cfg80211_port_authorized(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

โœจ cfg80211_port_authorized(9) โœจ

okay so this is straight out of the Kernel API Manual, and it's the cfg80211_port_authorized page โ€” yes the whole thing is named after the function, iconic behavior tbh ๐Ÿ’…


๐ŸŽ€ NAME ๐ŸŽ€

cfg80211_port_authorized โ€” the little function that goes "hey cfg80211, the security association popped OFF, it's official" ๐ŸŽ‰๐Ÿ”


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

void cfg80211_port_authorized (struct net_device *dev , const u8
*peer_addr , const u8* td_bitmap , u8 td_bitmap_len , gfp_t gfp );

like, five whole params bestie, but we're gonna walk through every single one ๐Ÿซถ


๐ŸŒธ ARGUMENTS ๐ŸŒธ

  • dev โ€” the network device, aka the whole vibe we're operating on ๐Ÿ–ฅ๏ธโœจ
  • peer_addr โ€” the BSSID of the AP/P2P GO when you're in STA/GC mode, or the STA/GC MAC address when you're the AP/P2P GO. depends on which side of the friendship you're on fr fr ๐Ÿ‘ฏ
  • td_bitmap โ€” the transition disable policy. yes it's a bitmap, yes it's doing its thing ๐Ÿ—บ๏ธ
  • td_bitmap_len โ€” the length of that transition disable policy. gotta know how big the bitmap is, no cap ๐Ÿ“
  • gfp โ€” allocation flags, the classic gfp_t situation ๐ŸŒฑ

๐Ÿ’– DESCRIPTION ๐Ÿ’–

so here's the tea โ˜• โ€” this function is for drivers that support 4 way handshake offload, and you call it after a security association has been successfully established (like, the 4 way handshake completed successfully, slay ๐Ÿ”ฅ๐Ÿ‘‘).

lowkey important: the call to this function should be preceded with a call to cfg80211_connect_result, cfg80211_connect_done, cfg80211_connect_bss or cfg80211_roamed to indicate the 802.11 association. don't skip that step bestie, it's giving prerequisites ๐Ÿ“‹โœจ

and it's not just for the STA side โ€” this function can also be called by an AP/P2P GO driver that supports authentication offload. in that case, the peer_mac you pass in is the MAC of the associated STA/GC ๐Ÿซถ๐Ÿฆ‹


(more parts incoming, don't go anywhere ๐Ÿ’œ)

๐Ÿ“š SEE ALSO ๐Ÿ“š

okay so the original page opens this section by just throwing the kernel file at you โ€” the actual source of truth lives in ./include/net/cfg80211.h โ€” and then it lists what feels like every single symbol in the subsystem. Bestie, it is a LOT. We're doing all of them, no skipping, that is the whole rule ๐Ÿซถ so grab a snack.

The two big-picture ones go first:

  • Introduction(9) โ€” start here if you're brand new
  • Device registration(9)

the band / channel / rate corner ๐Ÿฆ‹

Actions and configuration(9) era ๐Ÿ’…

yes there is literally a whole doc page called Actions and configuration(9), iconic, and it drags its entire struct friend group along:

Scanning and BSS list handling(9) ๐Ÿ˜ญ

  • 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) ๐Ÿงš

  • 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)

and the neighbours that got tacked on right after:

  • 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)

the wiphy filesystem of it all ๐Ÿ‘‘

Utility functions(9) โœจ

Data path helpers(9) ๐Ÿ”ฅ

Regulatory enforcement infrastructure(9) ๐ŸŒธ

Internal regulatory db functions(9):

the BSS / mlme reporting pile ๐Ÿ’€

RFkill integration(9) โญ

Vendor commands(9) ๐ŸŽ€

Test mode(9) ๐Ÿงช

and the rest of the extended fam (still SEE ALSO, still going) ๐Ÿ˜ฎโ€๐Ÿ’จ

and that's where the list just... cuts off ๐Ÿซ  the page keeps rolling though, so stay with me โ€” more coming ๐Ÿ’–

โ€ฆand the rest of the extended fam, no cap โ€” every single one of these is a real page you can go read, bestie ๐Ÿ’…


That's the whole list, not one name skipped, I promise you ๐Ÿซถ Go tap one of those pages whenever you're ready โ€” they're all sitting right there waiting for their moment, and honestly? Main character energy, every single one ๐Ÿ‘‘โœจ

Okay bye bestie, this page was served up fresh from ./include/net, dated October 2026, and it's filed under cfg80211_port_authorized(9) โ€” slay, study, and go touch some kernel code ๐Ÿ’–๐ŸŽ€๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from