STRUCT WIPHY_VENDOR_COMMAND(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, we're looking at the Kernel API Manual page for struct wiphy_vendor_command(9), and it's giving β€œvendor command definition” main character energy πŸ’…

🌸 NAME 🌸

struct wiphy_vendor_command β€” vendor command definition. That's the whole vibe, bestie: it's the definition for a vendor command, no cap ✨

✨ SYNOPSIS ✨

okay so here's the exact struct shape, and we are not messing with these types or signatures:

struct wiphy_vendor_command {
    struct nl80211_vendor_cmd_info info;
    u32 flags;
    int (*doit)(struct wiphy *wiphy, struct wireless_dev *wdev, const
void *data, int data_len);
    int (*dumpit)(struct wiphy *wiphy, struct wireless_dev *wdev, struct
sk_buff *skb, const void *data, int data_len, unsigned long *storage);
    const struct nla_policy *policy;
    unsigned int maxattr;
};

πŸŽ€ Members πŸŽ€

  • info β€” vendor command identifying information, as used in nl80211 🫢
  • flags β€” flags, see enum wiphy_vendor_command_flags ⭐
  • doit β€” callback for the operation. Important lil detail: wdev is NULL if the flags didn't ask for a wdev and non-NULL otherwise; the data pointer may be NULL if userspace provided no data at all πŸ™ˆ
  • dumpit β€” dump callback, for transferring bigger/multiple items. The storage points to cb->args[5], ie. is preserved over the multiple dumpit calls πŸ’–
  • policy β€” policy pointer for attributes within NL80211_ATTR_VENDOR_DATA. Set this to VENDOR_CMD_RAW_DATA if no policy can be given and the attribute is just raw data (e.g. a firmware command) πŸ”₯
  • maxattr β€” highest attribute number in policy. And a lil recommendation: it's recommended to not have the same sub command with both doit and dumpit, so that userspace can assume certain ones are get and others are used with dump requests πŸ‘‘

πŸ¦‹ SEE ALSO πŸ¦‹

Okay bestie, buckle up β€” this is the part where the manual just. keeps. going. Everything down here lives in the kernel file ./include/net/cfg80211.h, and yes, you're gonna want to read basically all of it. It's giving "one big happy cfg80211 family" energy πŸ’–

And that's the whole reference list, fr fr β€” nothing skipped, nothing merged, we kept every single one because bestie deserves the full picture πŸ’–


…and the rest of the friend group, because this struct literally does not exist in a vacuum, bestie:


okay that is literally every single cross-reference on the page, all 64 of them, not one skipped, because we don't do half-finished over here πŸ’… you're officially done with struct wiphy_vendor_command(9) β€” go forth and vendor-command responsibly, bestie πŸ‘‘

this page lives in ./include/net, October 2026 edition, and the footer line is the very last thing you'll see β€” so consider this your sparkly sign-off: page over, vibe intact, struct wiphy_vendor_command(9) ate and left no crumbs πŸŒˆβ­πŸ’œ

πŸ“¦ where this page comes from