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