libnvme(9)
π libnvme(9) π
okay bestie, so this is a page straight out of the API Manual for libnvme, and today's main character is a struct. buckle up π«Ά
β¨ NAME β¨
struct libnbft_subsystem_ns β the Subsystem Namespace (SSNS) info struct, and yes she's giving very detailed, very "I have 21 fields and I'm gonna use all of them" energy π
π¦ SYNOPSIS π¦
struct libnbft_subsystem_ns {
int index;
struct libnbft_discovery *discovery;
struct libnbft_security *security;
int num_hfis;
struct libnbft_hfi **hfis;
char transport[8];
char traddr[40];
char *trsvcid;
__u16 subsys_port_id;
__u32 nsid;
enum libnbft_nid_type nid_type;
__u8 *nid;
char *subsys_nqn;
__u16 trflags;
int controller_id;
int asqsz;
char *dhcp_root_path_string;
__u8 naed;
__u8 cipeec;
__u16 cto;
__u8 nceec;
__u16 flags;
};
like, copy it exactly, no cap β every field, every type, every array size. π―
π Members π
okay so here's the full cast, in order, no skipping, we're doing all of them:
indexβ the SSNS Descriptor Index, aka where she sits in the descriptor list. her little seat number πͺdiscoveryβ the Primary Discovery Controller that's associated with this SSNS Descriptor. her plus-one π«securityβ the Security Profile Descriptor associated with this namespace. the bodyguard, lowkey πnum_hfisβ Number of HFIs. just a count, bestie.hfisβ the List of HFIs associated with this namespace. it includes the primary HFI at the first position and all secondary HFIs, and this array is null-terminated (important!! she has an ending, respect it β).transportβ the Transport Type string, like'tcp'for example πtraddrβ the Subsystem Transport Address.trsvcidβ the Subsystem Transport Service Identifier.subsys_port_idβ The Subsystem Port ID. iconic.nsidβ The Namespace ID of this descriptor, or whennidshould be used instead. choose your fighter π₯nid_typeβ Namespace Identifier Type, seeenum libnbft_nid_type.nidβ The Namespace Identifier value.subsys_nqnβ Subsystem and Namespace NQN. say it with me: N-Q-N πtrflagsβ Transport Specific Flags bitmask, seeenum nbft_ssns_trflags.controller_idβ Controller ID, from the SSNS Extended Information Descriptor: the controller ID associated with the Admin Queue, or0if not supported. zero means "no thoughts, head empty" πasqszβ Admin Submission Queue Size, from the SSNS Extended Information Descriptor, or0if not supported.dhcp_root_path_stringβ DHCP Root Path Override string, from the SSNS Extended Information Descriptor.naedβ Namespace Availability Enhanced Diagnostic, from the SSNS Extended Information Descriptor. it provides additional status codes from the pre-OS driver when the namespace is unavailable β seeenum nbft_ssns_ext_info_naedfor values. zero indicates no additional information. it's only present in NBFT rev. 1.1+, and zero otherwise. so if you're on 1.0, she's just not there, periodt πcipeecβ Connect Invalid Parameters Extended Error Code, from the SSNS Extended Information Descriptor. provides additional error detail when the pre-OS driver received a Connect Invalid Parameters status β seeenum nbft_ssns_ext_info_cipeecfor values. zero indicates no extended error. only present in NBFT rev. 1.1+, zero otherwise. π¨ctoβ Connection Timeout in seconds, from the SSNS Extended Information Descriptor. this is the timeout value the pre-OS driver used for connecting to the object specified with this SSNS descriptor. a value of0xFFFFindicates that no timeout was specified. zero indicates either a timeout of zero seconds or that the field is not present (NBFT rev. 1.0) β yes, ambiguous, we don't love that for us but that's the spec πnceecβ Network and Connection Extended Error Code, from the SSNS Extended Information Descriptor. provides error codes specific to network and connection errors encountered by the pre-OS driver β seeenum nbft_ssns_ext_info_nceecfor values. zero indicates no extended error. only present in NBFT rev. 1.1+, zero otherwise. πflagsβ SSNS Flags bitmask, seeenum nbft_ssns_flags. the vibe check of the whole struct β
fr fr: every field is listed, nothing got left on read. π
and that's the whole page, bestie β this one came from the libnvme API Manual, dated October 2026, starring struct libnbft_subsystem_ns in the libnvme(9) slot. slay, go read the enums next πΈβ¨π
π¦ 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