libnvme(9)
π libnvme(9) β ok bestie, let's talk about this struct π
So this page lives in the API Manual of libnvme, section 9 (that's the kernel/API section, iykyk), and it's about one very specific little struct. She's niche, she's 92 bytes-ish of pure protocol energy, and honestly? She ate. π
β¨ NAME β¨
struct nvmf_auth_kxchap_protocol_descriptor β the KX-HMAC-CHAP Authentication Protocol Descriptor. That's her full government name. No nicknames, no cap. π
πΈ SYNOPSIS πΈ
Here's the whole vibe, verbatim, do not @ me:
struct nvmf_auth_kxchap_protocol_descriptor {
__u8 authid;
__u8 rsvd1;
__u8 halen;
__u8 kxlen;
__u8 hashidlist[30];
__u8 kxgidlist[30];
};
Like, look at her. Four little one-byte fields up front doing the intro, then two 30-byte arrays just vibing at the end. Main character energy honestly. β
π¦ Members π¦
Okay so let's go field by field, bestie, because every single one matters:
authidβ the Authentication Protocol Identifier. When you need to know which protocol this descriptor is describing, this is the field that tells you. For the actual list of values, go check outenum nvmf_auth_protocol_idβ that's where the receipts live. π₯rsvd1β Reserved. That's it, that's the whole description. She's the quiet one in the group chat. Don't touch her. πhalenβ this is the HashIDList Length: literally the number of hash function identifiers you've got in the list. Range is1to30β so at least one, at most thirty, no in-between nonsense. β¨kxlenβ the KXgIDList Length: the number of key exchange group identifiers in the list. Also1to30. Same energy, different list. πhashidlistβ the Hash Function Identifier List, one byte per identifier, and for what each identifier actually means you wanna look atenum libnvmf_hmac_alg. Big important note: any trailing bytes you're not using are padding, and they get cleared to0hβ so they're zeros, not vibes, not garbage. Keep it clean. π«Άkxgidlistβ the Key Exchange Group Identifier List, again one byte per identifier, and the meaning of each one lives inenum nvmf_auth_kxgid. Same deal as her sister: unused trailing bytes are padding cleared to0h. No leftover crumbs. π
Lowkey the whole struct is just "here's my protocol id, here's how long my two lists are, here's the two lists, plus some zero padding." That's the tea. And that's all the tea β the manpage doesn't say anything else, so I'm not gonna make stuff up. π§
π Sign-off π
This absolute icon of a page is dated October 2026, drops under the libnvme name in section 9, and came straight out of the API Manual β so yeah, libnvme(9) forever. Slay, stay hydrated, and clear your padding to 0h. ππ
π¦ 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