cfg80211_ve..._alloc_ucast(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so we're in the Kernel API Manual, and today's main character is cfg80211_ve..._alloc_ucast(9) β€” yes, the whole unhinged-looking name, we love her πŸ’…

✨ NAME ✨

cfg80211_vendor_event_alloc_ucast β€” alloc unicast vendor-specific event skb πŸ¦‹

🌸 SYNOPSIS 🌸

struct sk_buff * cfg80211_vendor_event_alloc_ucast (struct wiphy *wiphy
, struct wireless_dev *wdev , unsigned int portid , int approxlen , int
event_idx , gfp_t gfp );

πŸŽ€ ARGUMENTS πŸŽ€

  • wiphy β€” the wiphy 🫢
  • wdev β€” the wireless device 🌸
  • portid β€” port ID of the receiver πŸ“¬
  • approxlen β€” an upper bound of the length of the data that will be put into the skb πŸŽ€
  • event_idx β€” index of the vendor event in the wiphy's vendor_events πŸ”₯
  • gfp β€” allocation flags 🧚

πŸ’… DESCRIPTION πŸ’…

This function allocates and pre-fills an skb for an event to send to a specific (userland) socket. That socket would previously have been obtained by cfg80211_vendor_cmd_get_sender, and β€” listen, bestie β€” the caller MUST take care to register a netlink notifier to see when the socket closes. No cap, that part is serious.

If wdev != NULL, both the ifindex and identifier of the specified wireless device are added to the event message before the vendor data attribute. cute little bonus metadata, slay ✨

When you're done filling the skb, call cfg80211_vendor_event with the skb to send the event. that's the flow, periodt πŸ¦‹

πŸ¦‹ RETURN πŸ¦‹

An allocated and pre-filled skb. NULL if any errors happen. 😭

πŸ’– SEE ALSO πŸ’–

okay so before you close this tab, the cross-reference list here is long β€” like, 350-plus entries long, no exaggeration β€” and it's basically the whole cfg80211 extended universe. it's giving required reading for the wireless syllabus. i grouped them so your eyes don't glaze over, but every single one is still here, character for character, so you can look up literally any of them with man 9 and get your life together. πŸŽ€

bestie i'm so serious β€” that list is not decoration. if you're touching anything in here, go read the actual page for it, don't just vibe-guess the semantics. the kernel does not accept "i thought it worked like that" as a valid argument. πŸ˜­πŸ’€

Okay so the cross-reference list keeps going and honestly it's giving "the group chat keeps adding people to the call" energy 😭 β€” here's the rest of the crew, in the same order, no cap:

🌸 Regulatory & beaconing besties

  • cfg80211_reg_check_beaconing
  • cfg80211_reg_can_beacon
  • cfg80211_reg_can_beacon_relax

πŸ¦‹ Channel switch notify girlies

  • cfg80211_ch_switch_notify
  • cfg80211_ch_switch_started_notify

✨ Operating class / chandef conversion squad

  • ieee80211_operating_class_to_band
  • ieee80211_operating_class_to_chandef
  • ieee80211_chandef_to_operating_class
  • ieee80211_chandef_to_khz

πŸ’… Odds, ends, and device registration

  • cfg80211_tdls_oper_request
  • cfg80211_calculate_bitrate
  • cfg80211_unregister_wdev
  • cfg80211_register_netdevice
  • cfg80211_unregister_netdevice

πŸŽ€ Fast transition corner

  • struct cfg80211_ft_event_params
  • cfg80211_ft_event

🫢 P2P attrs & IE splitting

  • cfg80211_get_p2p_attr
  • ieee80211_ie_split_ric
  • ieee80211_ie_split
  • ieee80211_fragment_element

🌈 Wakeup & crit proto

  • cfg80211_report_wowlan_wakeup
  • cfg80211_crit_proto_stopped

⭐ Channels & combinations

  • ieee80211_get_num_supported_channels
  • cfg80211_check_combinations
  • cfg80211_iter_combinations
  • cfg80211_get_radio_idx_by_chan

πŸ’€ Stopping things (politely)

  • cfg80211_stop_link
  • cfg80211_stop_iface
  • cfg80211_shutdown_all_interfaces

πŸ”₯ Extended feature flags

  • wiphy_ext_feature_set
  • wiphy_ext_feature_isset

🧚 NAN girlies, part one

  • cfg80211_free_nan_func
  • struct cfg80211_nan_match_params
  • cfg80211_nan_match
  • cfg80211_nan_func_terminated
  • cfg80211_nan_sched_update_done
  • cfg80211_external_auth_request

πŸ“ PMSR & assorted interface lore

  • cfg80211_pmsr_report
  • cfg80211_pmsr_complete
  • cfg80211_iftype_allowed
  • cfg80211_assoc_comeback
  • cfg80211_update_owe_info_event
  • cfg80211_bss_flush

πŸ‘‘ Colour change committee

  • cfg80211_bss_color_notify
  • cfg80211_obss_color_collision_notify
  • cfg80211_color_change_started_notify
  • cfg80211_color_change_aborted_notify
  • cfg80211_color_change_notify
  • cfg80211_6ghz_power_type
  • cfg80211_links_removed
  • struct cfg80211_mlo_reconf_done_data
  • cfg80211_mlo_reconf_add_done
  • cfg80211_schedule_channels_check
  • cfg80211_epcs_changed

🌸 NAN girlies, part two (the sequel)

  • cfg80211_next_nan_dw_notif
  • cfg80211_nan_cluster_joined
  • cfg80211_nan_ulw_update
  • cfg80211_nan_channel_evac

πŸ”’ Locked debugfs duo

  • wiphy_locked_debugfs_read
  • wiphy_locked_debugfs_write

πŸ¦‹ S1G helpers

  • cfg80211_s1g_get_start_freq_khz
  • cfg80211_s1g_get_end_freq_khz
  • cfg80211_s1g_get_primary_sibling

⭐ And one last icon

  • cfg80211_incumbent_signal_notify

And that's the whole list, bestie β€” every single one, not a single name dropped πŸ’– Go click through whichever one you actually needed, iykyk.

This lil page lives in ./include/net and it's dated October 2026 β€” so yeah, it's giving "fresh out the kernel" energy πŸŽ€βœ¨ Ttyl! 🫢
πŸ“¦ where this page comes from