Data Fields | |
| uint64_t | nsze |
| namespace size | |
| uint64_t | ncap |
| namespace capacity | |
| uint64_t | nuse |
| namespace utilization | |
| struct { | |
| uint8_t thin_prov: 1 | |
| thin provisioning | |
| uint8_t ns_atomic_write_unit: 1 | |
| NAWUN, NAWUPF, and NACWU are defined for this namespace. | |
| uint8_t dealloc_or_unwritten_error: 1 | |
| Supports Deallocated or Unwritten LBA error for this namespace. | |
| uint8_t guid_never_reused: 1 | |
| Non-zero NGUID and EUI64 for namespace are never reused. | |
| uint8_t optperf: 1 | |
| Optimal Performance field. | |
| uint8_t reserved1: 3 | |
| } | nsfeat |
| namespace features | |
| uint8_t | nlbaf |
| number of lba formats | |
| struct { | |
| uint8_t format: 4 | |
| LSB for Format index. | |
| uint8_t extended: 1 | |
| uint8_t msb_format: 2 | |
| MSB for Format index, to be ignored if nlbaf <= 16. | |
| uint8_t reserved2: 1 | |
| } | flbas |
| formatted lba size | |
| struct { | |
| uint8_t extended: 1 | |
| metadata can be transferred as part of data prp list | |
| uint8_t pointer: 1 | |
| metadata can be transferred with separate metadata pointer | |
| uint8_t reserved3: 6 | |
| reserved | |
| } | mc |
| metadata capabilities | |
| struct { | |
| uint8_t pit1: 1 | |
| protection information type 1 | |
| uint8_t pit2: 1 | |
| protection information type 2 | |
| uint8_t pit3: 1 | |
| protection information type 3 | |
| uint8_t md_start: 1 | |
| first eight bytes of metadata | |
| uint8_t md_end: 1 | |
| last eight bytes of metadata | |
| } | dpc |
| end-to-end data protection capabilities | |
| struct { | |
| uint8_t pit: 3 | |
| protection information type | |
| uint8_t md_start: 1 | |
| 1 == protection info transferred at start of metadata More... | |
| uint8_t reserved4: 4 | |
| } | dps |
| end-to-end data protection type settings | |
| struct { | |
| uint8_t can_share: 1 | |
| uint8_t reserved: 7 | |
| } | nmic |
| namespace multi-path I/O and namespace sharing capabilities | |
| union { | |
| struct { | |
| uint8_t persist: 1 | |
| supports persist through power loss | |
| uint8_t write_exclusive: 1 | |
| supports write exclusive | |
| uint8_t exclusive_access: 1 | |
| supports exclusive access | |
| uint8_t write_exclusive_reg_only: 1 | |
| supports write exclusive - registrants only | |
| uint8_t exclusive_access_reg_only: 1 | |
| supports exclusive access - registrants only | |
| uint8_t write_exclusive_all_reg: 1 | |
| supports write exclusive - all registrants | |
| uint8_t exclusive_access_all_reg: 1 | |
| supports exclusive access - all registrants | |
| uint8_t ignore_existing_key: 1 | |
| supports ignore existing key | |
| } rescap | |
| uint8_t raw | |
| } | nsrescap |
| reservation capabilities | |
| struct { | |
| uint8_t percentage_remaining: 7 | |
| uint8_t fpi_supported: 1 | |
| } | fpi |
| format progress indicator | |
| union { | |
| uint8_t raw | |
| struct { | |
| uint8_t read_value: 3 | |
| Value read from deallocated blocks. More... | |
| uint8_t write_zero_deallocate: 1 | |
| Supports Deallocate bit in Write Zeroes. | |
| uint8_t guard_value: 1 | |
| Guard field behavior for deallocated logical blocks 0: contains 0xFFFF 1: contains CRC for read value. | |
| uint8_t reserved: 3 | |
| } bits | |
| } | dlfeat |
| deallocate logical features | |
| uint16_t | nawun |
| namespace atomic write unit normal | |
| uint16_t | nawupf |
| namespace atomic write unit power fail | |
| uint16_t | nacwu |
| namespace atomic compare & write unit | |
| uint16_t | nabsn |
| namespace atomic boundary size normal | |
| uint16_t | nabo |
| namespace atomic boundary offset | |
| uint16_t | nabspf |
| namespace atomic boundary size power fail | |
| uint16_t | noiob |
| namespace optimal I/O boundary in logical blocks | |
| uint64_t | nvmcap [2] |
| NVM capacity. | |
| uint16_t | npwg |
| Namespace Preferred Write Granularity. | |
| uint16_t | npwa |
| Namespace Preferred Write Alignment. | |
| uint16_t | npdg |
| Namespace Preferred Deallocate Granularity. | |
| uint16_t | npda |
| Namespace Preferred Deallocate Alignment. | |
| uint16_t | nows |
| Namespace Optimal Write Size. | |
| uint16_t | mssrl |
| Maximum Single Source Range Length. | |
| uint32_t | mcl |
| Maximum Copy Length. | |
| uint8_t | msrc |
| Maximum Source Range Count. | |
| uint8_t | reserved81 [11] |
| uint32_t | anagrpid |
| ANA group identifier. | |
| uint8_t | reserved96 [3] |
| struct { | |
| uint8_t write_protected: 1 | |
| Namespace write protected. | |
| uint8_t reserved: 7 | |
| } | nsattr |
| namespace attributes | |
| uint16_t | nvmsetid |
| NVM Set Identifier. | |
| uint16_t | endgid |
| Endurance group identifier. | |
| uint8_t | nguid [16] |
| namespace globally unique identifier | |
| uint64_t | eui64 |
| IEEE extended unique identifier. | |
| struct { | |
| uint32_t ms: 16 | |
| metadata size | |
| uint32_t lbads: 8 | |
| lba data size | |
| uint32_t rp: 2 | |
| relative performance | |
| uint32_t reserved6: 6 | |
| } | lbaf [64] |
| lba format support | |
| uint8_t | vendor_specific [3712] |
| uint8_t spdk_nvme_ns_data::md_start |
first eight bytes of metadata
1 == protection info transferred at start of metadata
0 == protection info transferred at end of metadata
| uint8_t spdk_nvme_ns_data::read_value |
Value read from deallocated blocks.
000b = not reported 001b = all bytes 0x00 010b = all bytes 0xFF