libnvme(9)
π NAME π
okay so welcome to libnvme(9), bestie π this page is all about struct nbft_ssns β the Subsystem Namespace (SSNS) Descriptor (Figure 17). she's a descriptor with a lot of fields, but we are gonna meet every single one. no skipping, no cap. π
β¨
β¨ SYNOPSIS β¨
here's the exact struct, every field in its little spot:
struct nbft_ssns {
__u8 structure_id;
__le16 index;
__le16 flags;
__u8 trtype;
__le16 trflags;
__u8 primary_discovery_ctrl_index;
__u8 reserved1;
struct nbft_heap_obj subsys_traddr_obj;
struct nbft_heap_obj subsys_trsvcid_obj;
__le16 subsys_port_id;
__le32 nsid;
__u8 nidt;
__u8 nid[16];
__u8 security_desc_index;
__u8 primary_hfi_desc_index;
__u8 reserved2;
struct nbft_heap_obj secondary_hfi_assoc_obj;
struct nbft_heap_obj subsys_ns_nqn_obj;
struct nbft_heap_obj ssns_extended_info_desc_obj;
__u8 reserved3[62];
};
π§ Members π§
okay now the member-by-member tea β every field, every reserved, every shall β all here, bestie:
structure_idβ Structure ID: this field shall be set to4h(i.e.,SSNS;#NBFT_DESC_SSNS). iconic little ID moment. πindexβ SSNS Descriptor Index: this field indicates the number of this Subsystem Namespace Descriptor in the Subsystem Namespace Descriptor List. she's literally numbered. π’flagsβ SSNS Flags, seeenum nbft_ssns_flags. flags doing flag things. π©trtypeβ Transport Type, seeenum nbft_trtype. transport type representation. πtrflagsβ Transport Specific Flags, seeenum nbft_ssns_trflags. yes, another flags field, she contains multitudes. β¨primary_discovery_ctrl_indexβ Primary Discovery Controller Index: the Discovery Descriptor Index field of the Discovery Descriptor (seestruct nbft_discovery) that is associated with this SSNS Descriptor. If a Discovery controller was used to establish this record this value shall be set to a non-zero value. If this namespace was associated with multiple Discovery controllers, those Discovery controllers shall have records in the Discovery Descriptor to facilitate multi-path rediscovery as required. If no Discovery controller was utilized to inform this namespace record, this field shall be cleared to0h. bestie that's a whole paragraph, but we said every detail and we meant it. π€reserved1β Reserved. that's it, that's the field. π«subsys_traddr_objβ Subsystem Transport Address Heap Object Reference: this field indicates the location and size of a heap object containing the Subsystem Transport Address. For IP based transports types, shall be an IP Address. location + size + heap object, we love a reference. πsubsys_trsvcid_objβ Subsystem Transport Service Identifier Heap Object Reference: this field indicates the location and size of a heap object containing an array of bytes indicating the Subsystem Transport Service Identifier. Seeenum nbft_trtype. array of bytes being all mysterious. π§subsys_port_idβ Subsystem Port ID: port in the NVM subsystem associated with this transport address used by the pre-OS driver. pre-OS driver said "this one's mine." π«Άnsidβ Namespace ID: this field indicates the namespace identifier (NSID) of the namespace indicated by this descriptor. This field shall be cleared to0hif not specified by the user. If this value is cleared to0h, then consumers of the NBFT shall rely on the NID. so if it's0h, the NID is carrying the group chat. πnidtβ Namespace Identifier Type (NIDT): this field contains the value of the Namespace Identifier Type (NIDT) field in the Namespace Identification Descriptor for the namespace indicated by this descriptor. If a namespace supports multiple NIDT entries for uniqueness, the order of preference is NIDT field value of3h(i.e., UUID) before2h(i.e., NSGUID), and2hbefore1h(i.e., EUI-64). the preference order is giving very "ranked list, do not argue." πnidβ Namespace Identifier (NID): this field contains the value of the Namespace Identifier (NID) field in the Namespace Identification Descriptor for the namespace indicated by this descriptor. the NID is literally the moment. β¨security_desc_indexβ Security Profile Descriptor Index: if the Use Security Flag bit in the SSNS Flags field is set to1h, then this field indicates the value of the Security Profile Descriptor Index field of the Security Profile Descriptor (seestruct nbft_security) associated with this namespace. If the Use Security Flag bit is cleared to0h, then no Security Profile Descriptor is associated with this namespace and this field is reserved. security flag on? linked. off? reserved. simple as that, bestie. πprimary_hfi_desc_indexβ Primary HFI Descriptor Index: this field indicates the value of the HFI Descriptor Index field of the HFI Descriptor (seestruct nbft_hfi) for the interface associated with this namespace. If multiple HFIs are associated with this record, subsequent interfaces should be populated in the Secondary HFI Associations field. primary HFI first, others go in secondary. main character energy fr fr. πreserved2β Reserved. another reserved baddie. πsecondary_hfi_assoc_objβ Secondary HFI Associations Heap Object Reference: if this field is set to a non-zero value, then this field indicates an array of bytes, in which each byte contains the value of the HFI Descriptor Index field of an HFI Descriptor in the HFI Descriptor List. If this field is cleared to0h, then no secondary HFI associations are specified. array of bytes doing association work. πsubsys_ns_nqn_objβ Subsystem and Namespace NQN Heap Object Reference: this field indicates the location and size of a heap object containing the Subsystem and Namespace NQN. NQN said "I'm in this heap object." π¦ssns_extended_info_desc_objβ SSNS Extended Information Descriptor Heap Object Reference: if the SSNS Extended Info In-use Flag bit is set to1h, then this field indicates the offset in bytes of a heap object containing an SSNS Extended Information Descriptor (seestruct nbft_ssns_ext_info) heap object from byte offset0hof the NBFT Table Header. If the SSNS Extended Info In-use Flag bit is cleared to0h, then this field is reserved. offset in bytes, heap object, NBFT Table Header β the whole extended-info situation. πreserved3β Reserved.reserved3[62], a whole reserved array living her best life. β¨
mwah π okay bestie, this was the struct nbft_ssns page from the libnvme(9) manual β source/version: struct nbft_ssns, manual: libnvme(9), dated October 2026. go forth and descriptor responsibly π«Άπ
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms