libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– 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 when nid should be used instead. choose your fighter πŸ₯Š
  • nid_type β€” Namespace Identifier Type, see enum 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, see enum nbft_ssns_trflags.
  • controller_id β€” Controller ID, from the SSNS Extended Information Descriptor: the controller ID associated with the Admin Queue, or 0 if not supported. zero means "no thoughts, head empty" πŸ™ˆ
  • asqsz β€” Admin Submission Queue Size, from the SSNS Extended Information Descriptor, or 0 if 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 β€” see enum nbft_ssns_ext_info_naed for 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 β€” see enum nbft_ssns_ext_info_cipeec for 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 of 0xFFFF indicates 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 β€” see enum nbft_ssns_ext_info_nceec for values. zero indicates no extended error. only present in NBFT rev. 1.1+, zero otherwise. 🌐
  • flags β€” SSNS Flags bitmask, see enum 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