libnvme(2)

πŸ’– libnvme(2) β€” API Manual πŸ’–

okay so bestie, sit down, hydrate, because we're talking about enum nvme_id_ctrl_ctratt β€” that's the Controller attributes enum from libnvme, and she is lowkey a whole vibe check for your NVMe controller. every single one of these constants is a "yes queen, I support that" bit that a controller can advertise about herself. let's get into it πŸ¦‹


✨ NAME ✨

enum nvme_id_ctrl_ctratt β€” Controller attributes πŸ‘‘


🌸 SYNOPSIS 🌸

enum nvme_id_ctrl_ctratt {
    NVME_CTRL_CTRATT_128_ID ,
    NVME_CTRL_CTRATT_NON_OP_PSP ,
    NVME_CTRL_CTRATT_NVM_SETS ,
    NVME_CTRL_CTRATT_READ_RECV_LVLS ,
    NVME_CTRL_CTRATT_ENDURANCE_GROUPS ,
    NVME_CTRL_CTRATT_PREDICTABLE_LAT ,
    NVME_CTRL_CTRATT_TBKAS ,
    NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY ,
    NVME_CTRL_CTRATT_SQ_ASSOCIATIONS ,
    NVME_CTRL_CTRATT_UUID_LIST ,
    NVME_CTRL_CTRATT_MDS ,
    NVME_CTRL_CTRATT_FIXED_CAP ,
    NVME_CTRL_CTRATT_VARIABLE_CAP ,
    NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS ,
    NVME_CTRL_CTRATT_DEL_NVM_SETS ,
    NVME_CTRL_CTRATT_ELBAS ,
    NVME_CTRL_CTRATT_MEM ,
    NVME_CTRL_CTRATT_HMBR ,
    NVME_CTRL_CTRATT_RHII ,
    NVME_CTRL_CTRATT_FDPS

};

like yes, that's the whole roster, no notes πŸ’…


πŸŽ€ Constants πŸŽ€

bestie these are the members, and each one is basically a lil flag saying "I can do this". here's the full lineup, no skips, no skips allowed:

  • NVME_CTRL_CTRATT_128_ID β€” 128-bit Host Identifier supported ✨
  • NVME_CTRL_CTRATT_NON_OP_PSP β€” Non-Operational Poser State Permissive Mode supported πŸ’€ (yes, that's literally how it's spelled in the source, we don't fix, we report)
  • NVME_CTRL_CTRATT_NVM_SETS β€” NVM Sets supported 🌸
  • NVME_CTRL_CTRATT_READ_RECV_LVLS β€” Read Recovery Levels supported 🫢
  • NVME_CTRL_CTRATT_ENDURANCE_GROUPS β€” Endurance Groups supported πŸ’ͺ
  • NVME_CTRL_CTRATT_PREDICTABLE_LAT β€” Predictable Latency Mode supported ⏱️
  • NVME_CTRL_CTRATT_TBKAS β€” Traffic Based Keep Alive Support πŸ«€
  • NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY β€” Namespace Granularity reporting supported πŸ”
  • NVME_CTRL_CTRATT_SQ_ASSOCIATIONS β€” SQ Associations supported πŸ”—
  • NVME_CTRL_CTRATT_UUID_LIST β€” UUID List reporting supported πŸ†”
  • NVME_CTRL_CTRATT_MDS β€” Multi-Domain Subsystem supported 🌐
  • NVME_CTRL_CTRATT_FIXED_CAP β€” Fixed Capacity Management supported 🧱
  • NVME_CTRL_CTRATT_VARIABLE_CAP β€” Variable Capacity Management supported 🎈
  • NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS β€” Delete Endurance Groups supported πŸ—‘οΈ
  • NVME_CTRL_CTRATT_DEL_NVM_SETS β€” Delete NVM Sets supported 🧹
  • NVME_CTRL_CTRATT_ELBAS β€” Extended LBA Formats supported πŸ“
  • NVME_CTRL_CTRATT_MEM β€” MDTS and Size Limits Exclude Metadata supported 🧠
  • NVME_CTRL_CTRATT_HMBR β€” HMB Restrict Non-Operational Power State Access πŸ”‹
  • NVME_CTRL_CTRATT_RHII β€” Reservations and Host Identifier Interaction 🀝
  • NVME_CTRL_CTRATT_FDPS β€” Flexible Data Placement supported 🧚

fr fr bestie, that's 20 constants, count 'em, all of them present and accounted for. no cap. 🫢

and that's the whole page, mwah πŸ’‹ this was enum nvme_id_ctrl_ctratt from the libnvme(2) API Manual, dated July 2026 β€” she ate, she left no crumbs, periodt. πŸ‘‘πŸ’…

πŸ“¦ where this page comes from