libnvme(2)

NAME
struct nvme_id_ns - Identify Namespace data structure

SYNOPSIS
struct nvme_id_ns {
__le64 nsze;
__le64 ncap;
__le64 nuse;
__u8 nsfeat;
__u8 nlbaf;
__u8 flbas;
__u8 mc;
__u8 dpc;
__u8 dps;
__u8 nmic;
__u8 rescap;
__u8 fpi;
__u8 dlfeat;
__le16 nawun;
__le16 nawupf;
__le16 nacwu;
__le16 nabsn;
__le16 nabo;
__le16 nabspf;
__le16 noiob;
__u8 nvmcap[16];
__le16 npwg;
__le16 npwa;
__le16 npdg;
__le16 npda;
__le16 nows;
__le16 mssrl;
__le32 mcl;
__u8 msrc;
__u8 kpios;
__u8 nulbaf;
__u8 rsvd83;
__le32 kpiodaag;
__u8 rsvd88[4];
__le32 anagrpid;
__u8 rsvd96[3];
__u8 nsattr;
__le16 nvmsetid;
__le16 endgid;
__u8 nguid[16];
__u8 eui64[8];
struct nvme_lbaf lbaf[64];
__u8 vs[3712];
};

Members

nsze
    Namespace Size indicates the total size of the namespace in logical blocks. The number of logical blocks is based on the formatted LBA size.

ncap
    Namespace Capacity indicates the maximum number of logical blocks that may be allocated in the namespace at any point in time. The number of logical blocks is based on the formatted LBA size.

nuse
    Namespace Utilization indicates the current number of logical blocks allocated in the namespace. This field is smaller than or equal to the Namespace Capacity. The number of logical blocks is based on the formatted LBA size.

nsfeat
    Namespace Features, see enum nvme_id_nsfeat.

nlbaf
    Number of LBA Formats defines the number of supported LBA data size and metadata size combinations supported by the namespace and the highest possible index to struct nvme_id_ns.lbaf.

flbas
    Formatted LBA Size, see enum nvme_id_ns_flbas.

mc  Metadata Capabilities, see enum nvme_id_ns_mc.

dpc End-to-end Data Protection Capabilities, see enum nvme_id_ns_dpc.

dps End-to-end Data Protection Type Settings, see enum nvme_id_ns_dps.

nmic
    Namespace Multi-path I/O and Namespace Sharing Capabilities, see enum nvme_id_ns_nmic.

rescap
    Reservation Capabilities, see enum nvme_id_ns_rescap.

fpi Format Progress Indicator, see enum nvme_nd_ns_fpi.

dlfeat
    Deallocate Logical Block Features, see enum nvme_id_ns_dlfeat.

nawun
    Namespace Atomic Write Unit Normal indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM during normal operation.

nawupf
    Namespace Atomic Write Unit Power Fail indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM during a power fail or error condition.

nacwu
    Namespace Atomic Compare & Write Unit indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM for a Compare and Write fused command.

nabsn
    Namespace Atomic Boundary Size Normal indicates the atomic boundary size for this namespace for the NAWUN value. This field is specified in logical blocks.

nabo
    Namespace Atomic Boundary Offset indicates the LBA on this namespace where the first atomic boundary starts.

nabspf
    Namespace Atomic Boundary Size Power Fail indicates the atomic boundary size for this namespace specific to the Namespace Atomic Write Unit Power Fail value. This field is specified in logical blocks.

noiob
    Namespace Optimal I/O Boundary indicates the optimal I/O boundary for this namespace. This field is specified in logical blocks. The host should construct Read and Write commands that do not cross the I/O boundary to achieve optimal performance.

nvmcap
    NVM Capacity indicates the total size of the NVM allocated to this namespace. The value is in bytes.

npwg
    Namespace Preferred Write Granularity indicates the smallest recommended write granularity in logical blocks for this namespace. This is a 0's based value.

npwa
    Namespace Preferred Write Alignment indicates the recommended write alignment in logical blocks for this namespace. This is a 0's based value.

npdg
    Namespace Preferred Deallocate Granularity indicates the recommended granularity in logical blocks for the Dataset Management command with the Attribute - Deallocate bit.

npda
    Namespace Preferred Deallocate Alignment indicates the recommended alignment in logical blocks for the Dataset Management command with the Attribute - Deallocate bit

nows
    Namespace Optimal Write Size indicates the size in logical blocks for optimal write performance for this namespace. This is a 0's based value.

mssrl
    Maximum Single Source Range Length indicates the maximum number of logical blocks that may be specified in each valid Source Range field of a Copy command.

mcl Maximum Copy Length indicates the maximum number of logical blocks that may be specified in a Copy command.

msrc
    Maximum Source Range Count indicates the maximum number of Source Range entries that may be used to specify source data in a Copy command. This is a 0’s based value.

kpios
    Key Per I/O Status indicates namespace Key Per I/O capability status.

nulbaf
    Number of Unique Capability LBA Formats defines the number of supported user data size and metadata size combinations supported by the namespace that may not share the same capabilities. LBA formats shall be allocated in order and packed sequentially.

rsvd83
    Reserved

kpiodaag
    Key Per I/O Data Access Alignment and Granularity indicates the alignment and granularity in logical blocks that is required for commands that support a KPIOTAG value in the CETYPE field.

rsvd88
    Reserved

anagrpid
    ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member.

rsvd96
    Reserved

nsattr
    Namespace Attributes, see enum nvme_id_ns_attr.

nvmsetid
    NVM Set Identifier indicates the NVM Set with which this namespace is associated.

endgid
    Endurance Group Identifier indicates the Endurance Group with which this namespace is associated.

nguid
    Namespace Globally Unique Identifier contains a 128-bit value that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations

eui64
    IEEE Extended Unique Identifier contains a 64-bit IEEE Extended Unique Identifier (EUI-64) that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations

lbaf
    LBA Format, see struct nvme_lbaf.

vs  Vendor Specific