libnvme(2)

✨ NAME ✨

okay so bestie, welcome to the libnvme(2) API manual πŸ’– and today's main character is literally this struct:

struct nvme_reachability_group_desc β€” the Reachability Group Descriptor πŸ¦‹

that's it. that's the whole vibe. it's a descriptor. for reachability groups. slay.


🌈 SYNOPSIS 🌈

struct nvme_reachability_group_desc {
    __le32 rgid;
    __le32 nnid;
    __le64 chngc;
    __u8 rsvd16[16];
    __le32 nsid[];
};

no cap, that's the whole struct. look at her. she's iconic πŸ’…


πŸŽ€ Members πŸŽ€

  • rgid β€” the Reachability Group ID. it's the group's whole identity fr fr, like her name tag at the function ✨ (type: __le32, little-endian, don't come for me)
  • nnid β€” Number of NSID Values. yes bestie, it counts how many NSIDs are in the list. it's giving "I keep track of the guest list" πŸ‘‘
  • chngc β€” Change Count. the way this field just... counts changes 😭 it's __le64 so it's got room to grow, periodt
  • rsvd16 β€” Reserved. it's __u8 rsvd16[16], sixteen whole bytes of "mind your business" πŸ™ˆ do not touch, do not look at her, she is reserved for a reason
  • nsid β€” Namespace Identifier List. a flexible array member (__le32 nsid[]) full of NSIDs, living her best life at the end of the struct where flexible arrays go 🌸
ngl bestie, rsvd16 is reserved β€” meaning leave it alone. zero it, ignore it, don't invent meaning for it. the spec said reserved and the spec meant it πŸ’€

and that's the whole struct, mwah 🫢 go forth and parse responsibly, and remember: little-endian fields are still little-endian even when you're being iconic ⭐

this has been the libnvme(2) API Manual, struct nvme_reachability_group_desc edition, dated July 2026, from libnvme(2) πŸ’œ tysm for reading, ily, bye bestie πŸŽ€βœ¨

πŸ“¦ where this page comes from