• Chaitanya Kulkarni's avatar
    nvmet: add Command Set Identifier support · ab5d0b38
    Chaitanya Kulkarni authored
    NVMe TP 4056 allows controllers to support different command sets.
    NVMeoF target currently only supports namespaces that contain
    traditional logical blocks that may be randomly read and written. In
    some applications there is a value in exposing namespaces that contain
    logical blocks that have special access rules (e.g. sequentially write
    required namespace such as Zoned Namespace (ZNS)).
    
    In order to support the Zoned Block Devices (ZBD) backend, controllers
    need to have support for ZNS Command Set Identifier (CSI).
    
    In this preparation patch, we adjust the code such that it can now
    support the default command set identifier. We update the namespace data
    structure to store the CSI value which defaults to NVME_CSI_NVM
    that represents traditional logical blocks namespace type.
    
    The CSI support is required to implement the ZBD backend for NVMeOF
    with host side NVMe ZNS interface, since ZNS commands belong to
    the different command set than the default one.
    Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    ab5d0b38
nvme.h 37.5 KB