libnvme(2)
π libnvme(2) β the API Manual, bestie edition π
okay so you're reading the manual for libnvme, and today's main character is one (1) enum. yes bestie, an enum. and she's iconic. let's get into it π
β¨ NAME β¨
enum nvme_subsys_type β literally just the Type of the NVM subsystem. that's the whole vibe. that's what she does. π
πΈ SYNOPSIS πΈ
here's the shape of her, copy it exactly, no edits, no cap:
enum nvme_subsys_type {
NVME_NQN_DISC ,
NVME_NQN_NVME ,
NVME_NQN_CURR
};
three little constants, three little moods. let's meet them π¦
π Constants π
NVME_NQN_DISC</p>
okay so this one is the Discovery type target subsystem. what does that mean?? it describes a referral to another Discovery Service β and that Discovery Service is made up of Discovery controllers that hand you extra discovery records. π«Ά
and listen, multiple Referral entries may be reported for each Discovery Service β specifically if that Discovery Service has multiple NVM subsystem ports, or supports multiple protocols. so yeah, she can show up more than once. she contains multitudes. β¨
NVME_NQN_NVME
this one is the NVME type target subsystem β the actual real-deal NVM subsystem. it describes an NVM subsystem whose controllers may have attached namespaces (aka: an NVM subsystem that is not composed of Discovery controllers, so like, the actual storage one, not the map). πΎ
and the same energy as before: multiple NVM Subsystem entries may be reported for each NVM subsystem if that NVM subsystem has multiple NVM subsystem ports. noted. periodt.
NVME_NQN_CURR
Current Discovery type target subsystem β this is the "you are here" pin on the map bestie π. it describes this Discovery subsystem: the Discovery Service that contains the controller processing the Get Log Page command.
and yes, multiple Current Discovery Subsystem entries may be reported for this Discovery subsystem if the current Discovery subsystem has multiple NVM subsystem ports. same rule, different constant. iykyk π
π quick recap so it sticks
NVME_NQN_DISCβ the referral to another Discovery Service, with its Discovery controllers and their extra discovery records πNVME_NQN_NVMEβ the real NVM subsystem, controllers may have namespaces attached πΎNVME_NQN_CURRβ this Discovery subsystem, the one whose controller is processing theGet Log Pagecommand π
and for literally all three: if the relevant thing has multiple NVM subsystem ports (or, for NVME_NQN_DISC, also supports multiple protocols), multiple entries may be reported. that's the recurring plot twist. π
ngl there's no danger here, no deprecated anything, no "undefined behaviour, run" β it's just three constants and their whole lore. but DO keep the names exactly as written, fr fr. don't be out here renaming NVME_NQN_CURR, she's booked and busy. π
okay that's the page!! this enum nvme_subsys_type page came out July 2026 as part of the libnvme(2) API Manual, and it lives in the enum nvme_subsys_type section of libnvme(2). mwah, love u, go read the next page bestie π«Άπβ¨
π¦ where this page comes from
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms