libnvme(9)
π¦ libnvme(9) β the API Manual, bestie edition π¦
Okay so this page lives in the libnvme manual, section 9, and it's all about one very specific little struct. Grab a snack, we're doing a field-by-field tour π
β¨ NAME β¨
struct nvmf_dim_data β Discovery Information Management (DIM) β Data. That's the whole vibe: it's the data blob for DIM. Iconic, honestly.
πΈ SYNOPSIS πΈ
Here's the shape of it, exactly as the header gods wrote it:
struct nvmf_dim_data {
__le32 tdl;
__u8 rsvd4[4];
__le64 nument;
__le16 entfmt;
__le16 etype;
__u8 portlcl;
__u8 rsvd21;
__le16 ektype;
char eid[NVME_NQN_LENGTH];
char ename[NVMF_ENAME_LEN];
char ever[NVMF_EVER_LEN];
__u8 rsvd600[424];
union nvmf_die die[];
};
Look at that trailing flexible array member at the end, she's literally built to grow π§β¨
π Members π
Time for the meet-and-greet, one field at a time. No skipping, we don't do that here π«Ά
tdlβ Total Data Length. The overall length of the data, in case you were wondering how much data the data is πrsvd4β Reserved. Nothing to see, move along, it's just vibing there taking up space πnumentβ Number of entries. How manydieentries you're working with β remember this number, bestie, you'll need it later πentfmtβ Entry Format, and it's anenum nvmf_dim_entfmt. Fancy typed enum energy β¨etypeβ Entity Type, typed asenum nvmf_dim_etype. Yes there's two of these, no they're not the same thing, don't mix them up πportlclβ Port Local. That's the field name, that's the whole description, we simply report the facts πrsvd21β Reserved. Another reserved one. Reserved fields are having a whole moment on this struct, honestly πektypeβ Entry Key Type. The type of the entry key, lowkey self-explanatory π₯eidβ Entity Identifier, e.g. Host NQN. It's achararray ofNVME_NQN_LENGTH, and it holds stuff like your Host NQN βenameβ Entity Name, e.g. hostname. Achararray sizedNVMF_ENAME_LENπeverβ Entity Version, e.g. OS Name/Version. Achararray sizedNVMF_EVER_LENβ yes,ever, notenv, we're being careful here πrsvd600β Reserved. A whole__u8 rsvd600[424], which is a lot of reserved. 424 bytes of pure "please ignore me" energy π¦dieβ Discovery Information Entry (seenumentabove π). It's aunion nvmf_dieflexible array, so there are as many of these asnumentsays β that's the callback to the earlier field, iykyk π
Bestie note: those rsvd* fields are reserved β the manual just says "Reserved" and that's genuinely all the info there is. Don't go inventing meaning for them, that's not the move π§
π cute sign-off π
That's the whole page, and it's from October 2026, all about struct nvmf_dim_data, living in libnvme(9). Slay, go forth and parse your discovery data correctly, bestie π
β¨π
π¦ 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