libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– libnvme(9) β€” enum nbft_ssns_flags πŸ’–

okay so bestie, welcome to the libnvme API manual, and today's main character is enum nbft_ssns_flags β€” literally the Subsystem and Namespace Specific Flags Field (Figure 18) πŸŽ€. yes the figure number is part of the vibe. no cap. let's get into it ✨


🌸 NAME 🌸

enum nbft_ssns_flags β€” Subsystem and Namespace Specific Flags Field (Figure 18). that's it, that's the whole name, and it ate πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

enum nbft_ssns_flags {
    NBFT_SSNS_VALID ,
    NBFT_SSNS_NON_BOOTABLE_ENTRY ,
    NBFT_SSNS_USE_SECURITY_FIELD ,
    NBFT_SSNS_DHCP_ROOT_PATH_OVERRIDE ,
    NBFT_SSNS_EXTENDED_INFO_IN_USE ,
    NBFT_SSNS_SEPARATE_DISCOVERY_CTRL ,
    NBFT_SSNS_DISCOVERED_NAMESPACE ,
    NBFT_SSNS_UNAVAIL_NAMESPACE_MASK ,
    NBFT_SSNS_UNAVAIL_NAMESPACE_NOTIND ,
    NBFT_SSNS_UNAVAIL_NAMESPACE_AVAIL ,
    NBFT_SSNS_UNAVAIL_NAMESPACE_UNAVAIL

};

yes, there's a lil blank line before the closing brace, and yes we're keeping it exactly as it is, because accuracy is the whole personality here 🫢


⭐ Constants ⭐

okay so this is where the actual lore lives. every flag is either set to 1h or cleared to 0h, and bestie, the difference is everything. πŸ‘‘

  • NBFT_SSNS_VALID β€” Descriptor Valid: if it's set to 1h, this descriptor is valid. if it's cleared to 0h, it's not valid. and lowkey this is so real of them: a host that supports NVMe-oF Boot but doesn't currently have a remote Subsystem and Namespace assigned is allowed to clear this bit to 0h. no assignment, no validity, periodt. 🌈
  • NBFT_SSNS_NON_BOOTABLE_ENTRY β€” Non-bootable Entry Flag:</char>? no wait β€” Non-bootable Entry Flag: if set to 1h, this flag is telling you that this SSNS Descriptor contains a namespace that's admin-purposeful to the boot process, but the pre-OS may not have established connectivity to it or evaluated its contents. such namespaces may hold supplemental data the Administrator deemed relevant for the pre-OS β†’ OS handoff. this can include properties like a UEFI device path that may not have been created for this namespace. which means an OS runtime may still need the contents of such a namespace to finish later stages of boot 😭. if cleared to 0h, then this namespace had no special administrative intent at all. simple as that πŸ’«
  • NBFT_SSNS_USE_SECURITY_FIELD β€” Use Security Flag: set to 1h β†’ there is a Security Profile Descriptor associated with this SSNS record, and the Security Profile Descriptor Index field is valid πŸ”₯. cleared to 0h β†’ no Security Profile Descriptor for this SSNS record, and the Security Profile Descriptor Index field is not valid. it's giving "the index is a lie" energy πŸ’€
  • NBFT_SSNS_DHCP_ROOT_PATH_OVERRIDE β€” DHCP Root-Path Override Flag: set to 1h β†’ this SSNS descriptor was populated by consuming the DHCP Root-Path on this interface. cleared to 0h β†’ the DHCP Root-Path was not used in populating the SSNS descriptor. iykyk 🌸
  • NBFT_SSNS_EXTENDED_INFO_IN_USE β€” SSNS Extended Info In-use Flag: set to 1h β†’ the SSNS Extended Information Offset field and the SSNS Extended Information Length field are both valid. and this flag, when it's 1h, means a Subsystem and Namespace Extended Information Descriptor corresponding to this descriptor is present. both fields, present and accounted for, slay ✨
  • NBFT_SSNS_SEPARATE_DISCOVERY_CTRL β€” Separate Discovery Controller Flag: set to 1h β†’ the Discovery controller associated with this volume lives on a different transport address than the one specified in the Subsystem Transport Address Heap Object Reference. cleared to 0h β†’ the Discovery controller is the same as the Subsystem Transport Address Heap Object Reference. same address, no drama πŸŽ€
  • NBFT_SSNS_DISCOVERED_NAMESPACE β€” Discovered Namespace Flag: set to 1h β†’ this namespace was acquired through discovery πŸ¦‹. cleared to 0h β†’ this namespace was explicitly configured in the system. found vs. hand-placed, we love a distinction πŸ’œ
  • NBFT_SSNS_UNAVAIL_NAMESPACE_MASK β€” Mask to get Unavailable Namespace Flag: this field tells you the availability of the namespace at a specific point in time. and here's the caveat bestie, listen up: such use is only a hint, and using it does not guarantee that the referenced namespace will be available at any future point in time. time is a construct, namespace availability even more so 😭
  • NBFT_SSNS_UNAVAIL_NAMESPACE_NOTIND β€” Not Indicated by Driver: no information is provided. that's the whole thing. the void. the silence. iconic πŸ™ˆ
  • NBFT_SSNS_UNAVAIL_NAMESPACE_AVAIL β€” Available: a referenced namespace described by this flag was previously accessible by the pre-OS driver βœ…
  • NBFT_SSNS_UNAVAIL_NAMESPACE_UNAVAIL β€” Unavailable: this namespace was administratively configured but unattempted, unavailable or inaccessible when establishing connectivity by the pre-OS driver πŸ’€. it was supposed to be there. it was not. we've all been there.

πŸ’‘ friendly reminder bestie: those 1h / 0h values are hex, and every single one of these flags keeps its exact meaning up there. don't go inventing new behaviour, the spec said what it said 🫢

and that's the whole page!! mwah πŸ’‹ this manual page was served up by the libnvme API Manual, October 2026 edition β€” enum nbft_ssns_flags, pages libnvme(9), source/version and date all present and accounted for, no cap 🌟 bye bestie, go read your flags responsibly πŸ§šβ€β™€οΈπŸ’–

πŸ“¦ where this page comes from