cfg80211_vendor_event_alloc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 cfg80211_vendor_event_alloc(9) β€” Kernel API Manual 🌸

okay so bestie, buckle up, we're diving into cfg80211_vendor_event_alloc πŸ’– this is from the Kernel API Manual and it's genuinely one of those little helper functions that does exactly what it says on the tin β€” no cap.


✨ NAME ✨

cfg80211_vendor_event_alloc β€” allocate a vendor-specific event skb πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct sk_buff * cfg80211_vendor_event_alloc (struct wiphy *wiphy ,
       struct wireless_dev *wdev , int approxlen , int event_idx , gfp_t gfp );

like, five args, one struct sk_buff * back out. she's giving "utility function that carries the whole team" πŸ’…


πŸ‘‘ ARGUMENTS πŸ‘‘

  • wiphy β€” the wiphy 🌈 (yes, the wiphy. iconic.)
  • wdev β€” the wireless device 🫢
  • approxlen β€” an upper bound of the length of the data that will be put into the skb πŸ“ literally just an upper bound, not a promise, not an exactness situation
  • event_idx β€” index of the vendor event in the wiphy's vendor_events πŸ”’
  • gfp β€” allocation flags 🌱 (the GFP flags, you know the vibe)

πŸ’œ DESCRIPTION πŸ’œ

so what does she actually do? this function allocates and pre-fills an skb for an event on the vendor-specific multicast group ✨ like, both steps, one call, no extra work for you.

here's the little detail that matters a lot: if wdev != NULL, then both the ifindex and the identifier of the specified wireless device get added to the event message before the vendor data attribute πŸŽ€ so the ordering is ifindex + identifier first, then the vendor data attribute. periodt.

and when you're done filling the skb 🧚 call cfg80211_vendor_event with the skb to actually send the event. that's the whole pipeline iykyk.


⭐ RETURN ⭐

an allocated and pre-filled skb πŸ’– that's the dream. and then β€” NULL if any errors happen 😭 like, any errors. no fancy error codes here, just vibes and a NULL.


✨ SEE ALSO ✨

okay bestie, this is the part where the page just hands you the entire extended cinematic universe πŸ’… like the whole friend group is linked down here. Everyone's got a (9) after their name so you already know the drill β€” go read them next, they're all part of the same saga 🫢

  • Kernel file ./include/net/cfg80211.h β€” the actual source file, the mothership, the origin story 🌸

πŸŽ€ the starters

  • Introduction(9) β€” start here if you're new, no cap
  • Device registration(9) β€” how the device part shows up to the party

πŸ“‘ bands, channels, rates & caps (the capability lore)


πŸ”§ Actions and configuration (9)

the whole "make it do the thing" section, and it is long β€” buckle up buttercup 🌈


πŸ” Scanning and BSS list handling (9)

the "who's out there and what do they want" section ✨

  • struct cfg80211_ssid(9)
  • struct cfg80211_scan_info(9)
  • struct cfg80211_scan_6ghz_params(9)
  • struct cfg80211_scan_request(9)
  • struct cfg80211_match_set(9)
  • struct cfg80211_sched_scan_plan(9)
  • struct cfg80211_bss_select_adjust(9)
  • struct cfg80211_sched_scan_request(9)
  • enum cfg80211_signal_type(9)
  • struct cfg80211_inform_bss(9)
  • struct cfg80211_bss_ies(9)
  • struct cfg80211_bss(9)
  • ieee80211_bss_get_elem(9)
  • ieee80211_bss_get_ie(9)
  • struct cfg80211_auth_request(9)
  • struct cfg80211_assoc_link(9)
  • struct cfg80211_ml_reconf_req(9)
  • enum cfg80211_assoc_req_flags(9)
  • struct cfg80211_assoc_request(9)
  • struct cfg80211_deauth_request(9)
  • struct cfg80211_disassoc_request(9)
  • struct cfg80211_ibss_params(9)
  • struct cfg80211_bss_selection(9)
  • struct cfg80211_connect_params(9)
  • enum cfg80211_connect_params_changed(9)
  • enum wiphy_params_flags(9)
  • struct cfg80211_pmksa(9)
  • struct cfg80211_pkt_pattern(9)
  • struct cfg80211_wowlan_tcp(9)
  • struct cfg80211_wowlan(9)
  • struct cfg80211_coalesce_rules(9)
  • struct cfg80211_coalesce(9)
  • struct cfg80211_wowlan_nd_match(9)
  • struct cfg80211_wowlan_nd_info(9)
  • struct cfg80211_wowlan_wakeup(9)
  • struct cfg80211_gtk_rekey_data(9)
  • struct cfg80211_update_ft_ies_params(9)
  • struct cfg80211_mgmt_tx_params(9)
  • struct cfg80211_dscp_exception(9)
  • struct cfg80211_dscp_range(9)
  • struct cfg80211_qos_map(9)

πŸ¦‹ Neighbor Awareness Networking (NAN)(9)

the whole NAN arc, it's giving niche but iconic πŸ‘‘

  • struct cfg80211_nan_band_config(9)
  • struct cfg80211_nan_conf(9)
  • struct cfg80211_nan_channel(9)
  • struct cfg80211_nan_local_sched(9)
  • struct cfg80211_nan_peer_map(9)
  • struct cfg80211_nan_peer_sched(9)
  • enum cfg80211_nan_conf_changes(9)
  • struct cfg80211_nan_func_filter(9)
  • struct cfg80211_nan_func(9)
  • struct cfg80211_pmk_conf(9)
  • struct cfg80211_external_auth_params(9)
  • struct cfg80211_ftm_responder_stats(9)
  • struct cfg80211_pmsr_ftm_result(9)
  • struct cfg80211_pmsr_result(9)
  • struct cfg80211_pmsr_ftm_request_peer(9)
  • struct cfg80211_pmsr_request_peer(9)
  • struct cfg80211_pmsr_request(9)
  • struct cfg80211_update_owe_info(9)
  • struct mgmt_frame_regs(9)

πŸ‘‘ the wiphy / driver-ops saga

this is the big one, main character energy fr πŸ”₯


🧚 Utility functions (9)

the little helpers that carry the whole team, lowkey underrated πŸ’œ


πŸ“ Data path helpers (9)

packets go brrr πŸ’€


🌈 Regulatory enforcement infrastructure (9)

the rulesβ„’ section, respect it 😀

πŸ”’ Internal regulatory db functions (9)


🌸 the "everything else in the notification life" pile

genuinely huge, but every single one matters bestie 😭


πŸ“Ά RFkill integration (9)


πŸ’… Vendor commands (9)

yes this is the family this very page belongs to, hi bestie 🫢

πŸ§ͺ Test mode (9)


πŸŽ€ connection & management drama

the "did we connect or not" saga, honestly gripping 😭

ngl that's a lot of links, but that's the whole commit-adjacent family and we don't skip a single one here πŸ’–

…and the rest of the extended fam, because the SEE ALSO list on this page is long long β€” like, keep-scrolling long, bestie 🫢


Okay so that's genuinely everybody β€” and that's a wrap on this whole page, bestie πŸŽ€ You made it to the end of a three-part man page and I'm so proud, no cap πŸ’…

Tiny receipts, because credit is cute: this guy lives under ./include/net, it's the October 2026 edition of cfg80211_vendor_event_alloc(9), and that's the whole vibe check. Now go forth and allocate your events responsibly βœ¨πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from