ENUM NCSI_NL_COMMANDS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum ncsi_nl_commands β€” the kernel API manual bestie

okay so this is the enum ncsi_nl_commands(9) page from the Kernel API Manual and honestly? it's giving "the entire menu of NCSI commands you're allowed to throw at the kernel" ✨ stay with me, it's not that deep.


🌸 NAME 🌸

enum ncsi_nl_commands β€” the supported NCSI commands, periodt πŸ’…


✨ SYNOPSIS ✨

no cap, here's the whole enum, exactly as it lives, don't touch a single character:

enum ncsi_nl_commands {
    NCSI_CMD_UNSPEC ,
    NCSI_CMD_PKG_INFO ,
    NCSI_CMD_SET_INTERFACE ,
    NCSI_CMD_CLEAR_INTERFACE ,
    NCSI_CMD_SEND_CMD ,
    NCSI_CMD_SET_PACKAGE_MASK ,
    NCSI_CMD_SET_CHANNEL_MASK ,
    __NCSI_CMD_AFTER_LAST ,
    NCSI_CMD_MAX

};

πŸŽ€ Constants πŸŽ€

okay, one by one, main character energy each:

  • NCSI_CMD_UNSPEC β€” the "unspecified command" that lowkey exists just to catch errors 🫢 it's the safety net of the enum, fr fr.
  • NCSI_CMD_PKG_INFO β€” lists package and channel attributes ✨ it requires NCSI_ATTR_IFINDEX. and listen: if NCSI_ATTR_PACKAGE_ID is specified, it returns that specific package plus its channels β€” otherwise a dump request returns all packages and all their associated channels 😭 that's a lot of tea.
  • NCSI_CMD_SET_INTERFACE β€” sets the preferred package and channel combination πŸ’– requires NCSI_ATTR_IFINDEX plus the preferred NCSI_ATTR_PACKAGE_ID, and optionally the preferred NCSI_ATTR_CHANNEL_ID.
  • NCSI_CMD_CLEAR_INTERFACE β€” clears any preferred package/channel combination 🧹 requires NCSI_ATTR_IFINDEX. that's it. clean slate, iconic.
  • NCSI_CMD_SEND_CMD β€” sends an NC-SI command to the network card πŸ”₯ requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID and NCSI_ATTR_CHANNEL_ID. all three, no skipping, iykyk.
  • NCSI_CMD_SET_PACKAGE_MASK β€” sets a whitelist of allowed packages πŸ‘‘ requires NCSI_ATTR_IFINDEX and NCSI_ATTR_PACKAGE_MASK.
  • NCSI_CMD_SET_CHANNEL_MASK β€” sets a whitelist of allowed channels 🌈 requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID, and NCSI_ATTR_CHANNEL_MASK. AND if NCSI_ATTR_CHANNEL_ID is present, it sets the primary channel ⭐ little bonus behaviour, we love to see it.
  • __NCSI_CMD_AFTER_LAST β€” honestly? -- undescribed -- πŸ’€ the manpage itself said nothing about it, so neither will i. she's mysterious. respect it.
  • NCSI_CMD_MAX β€” highest command number πŸ¦‹ the ceiling, the final boss, the end of the list.

πŸ¦‹ SEE ALSO πŸ¦‹

go read the kernel file ./include/uapi/linux/ncsi.h and then these three besties, they're all connected fr fr:

  • enum ncsi_nl_attrs(9)
  • enum ncsi_nl_pkg_attrs(9)
  • enum ncsi_nl_channel_attrs(9)

πŸ’œ friendly reminder: this page lives under ./include/uapi/linux β€” that's the home base, don't lose it.

and that's the whole vibe check πŸ’… from the Kernel API Manual, dated October 2026, signed off by the ./include/uapi/linux directory itself and stamped enum ncsi_nl_commands(9) β€” slay, you're now fluent in NCSI commands, bestie 🫢✨

πŸ“¦ where this page comes from