libnvme(9)
π 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 to1h, this descriptor is valid. if it's cleared to0h, 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 to0h. no assignment, no validity, periodt. πNBFT_SSNS_NON_BOOTABLE_ENTRYβ Non-bootable Entry Flag:</char>? no wait β Non-bootable Entry Flag: if set to1h, 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 to0h, then this namespace had no special administrative intent at all. simple as that π«NBFT_SSNS_USE_SECURITY_FIELDβ Use Security Flag: set to1hβ there is a Security Profile Descriptor associated with this SSNS record, and the Security Profile Descriptor Index field is valid π₯. cleared to0hβ 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 to1hβ this SSNS descriptor was populated by consuming the DHCP Root-Path on this interface. cleared to0hβ 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 to1hβ the SSNS Extended Information Offset field and the SSNS Extended Information Length field are both valid. and this flag, when it's1h, 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 to1hβ 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 to0hβ 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 to1hβ this namespace was acquired through discovery π¦. cleared to0hβ 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: those1h/0hvalues 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
- 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