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