cfg80211_un...er_netdevice(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ cfg80211_unregister_netdevice πŸ’…

okay so bestie, welcome to the cfg80211_unregister_netdevice(9) page β€” this is part 1, so don't go anywhere, there's more coming 🫢

It's a Kernel API Manual situation, and the whole vibe is: you got a netdev, and you need it *un*registered. iconic. let's get into it.


🌸 NAME 🌸

cfg80211_unregister_netdevice β€” unregister the given netdev ✨

like literally, that's the whole job. unregister the netdev. no cap.


πŸŽ€ SYNOPSIS πŸŽ€

void cfg80211_unregister_netdevice (struct net_device *dev );

that's it. that's the whole signature. she's serving concise πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • dev β€” the netdev to register πŸ‘€

okay yes, the page says "to register" and we are literally on the *un*register function's page. we don't make the rules, bestie, we just report them πŸ’€ the argument is the dev β€” the struct net_device * β€” and that's the thing you're handing over.


πŸ’– NOTE πŸ’–

this part is important, so pause the group chat and read it fr fr:

In contexts coming from cfg80211 callbacks, you must call this rather than unregister_netdevice, unregister_netdev is impossible as the RTNL is held. Otherwise, both unregister_netdevice and unregister_netdev are usable instead as well.

so, translating the vibes: if you're coming from a cfg80211 callback, this function is the main character and you call this one, not unregister_netdevice. and unregister_netdev? not even an option in that context β€” it's impossible, because the RTNL is held 😭

but in other contexts (not coming from cfg80211 callbacks), you're free β€” both unregister_netdevice and unregister_netdev are usable instead as well 🌈 so nobody's forcing you, it's just a context thing, iykyk.


πŸ”₯ CONTEXT πŸ”₯

Requires the RTNL and the wiphy mutex to be held πŸ‘‘

like, both of them. held. before you call this. that's the vibe check and you gotta pass it 🫢


okay that's the first chunk β€” more parts are coming, so stay tuned bestie πŸ’œ

✨ SEE ALSO ✨

okay bestie, this is basically the link tree of the whole wireless subsystem 🌈 every single one of these is another man page you can go read next β€” no gatekeeping, we're listing all of them, fr fr.


πŸŽ€ the origin story

  • Kernel file ./include/net/cfg80211.h Introduction(9) β€” the header that started it all πŸ’–
  • Device registration(9) β€” how the devices get themselves on the list ✨

πŸ“‘ channels, rates & capabilities

πŸ› οΈ actions & configuration

  • Actions and configuration(9) β€” the whole section, main character energy πŸ‘‘
  • struct vif_params(9), struct key_params(9), struct cfg80211_chan_def(9) β€” vif, key, chandef, the setup trio ✨
  • struct cfg80211_tid_cfg(9), struct cfg80211_tid_config(9), struct cfg80211_fils_aad(9), struct cfg80211_set_hw_timestamp(9) β€” TID config and FILS and hw-timestamp, slay πŸ’…

the chandef helpers (a whole squad)

survey, crypto, beacons & AP stuff

  • enum survey_info_flags(9), struct survey_info(9), struct cfg80211_crypto_settings(9) β€” survey flags, survey info, crypto settings πŸ’œ
  • struct cfg80211_mbssid_config(9), struct cfg80211_mbssid_elems(9), struct cfg80211_rnr_elems(9) β€” MBSSID and RNR, we love to see it 🌸
  • struct cfg80211_beacon_data(9), struct cfg80211_acl_data(9), struct cfg80211_fils_discovery(9) β€” beacon data, ACL data, FILS discovery πŸ“
  • struct cfg80211_unsol_bcast_probe_resp(9), struct cfg80211_s1g_short_beacon(9) β€” unsolicited broadcast probe response and S1G short beacon, lowkey iconic 🧚
  • struct cfg80211_ap_settings(9), struct cfg80211_ap_update(9), struct cfg80211_csa_settings(9), struct cfg80211_color_change_settings(9) β€” AP settings/update, CSA, color change πŸ‘‘
  • struct iface_combination_params(9) β€” interface combination params, the combo meal πŸ’…

station station station

  • enum station_parameters_apply_mask(9), struct sta_txpwr(9), struct link_station_parameters(9) β€” apply mask, txpwr, link station params ✨
  • struct link_station_del_parameters(9), struct cfg80211_ttlm_params(9), struct station_parameters(9) β€” delete params, TTLM, station params πŸ¦‹
  • struct station_del_parameters(9), enum cfg80211_station_type(9), cfg80211_check_station_change(9) β€” del params, station type, change checker 🌈
  • enum rate_info_flags(9), enum rate_info_bw(9), struct rate_info(9) β€” rate info flags, bw, struct, the rate report crew πŸ”₯
  • enum bss_param_flags(9), struct sta_bss_parameters(9), struct cfg80211_txq_stats(9), struct cfg80211_tid_stats(9) β€” BSS param flags, sta BSS params, txq stats, tid stats πŸ’–
  • struct link_station_info(9), struct station_info(9) β€” link station info and station info, besties 🫢

SAR & the rest of the config gang

  • struct cfg80211_sar_sub_specs(9), struct cfg80211_sar_specs(9), struct cfg80211_sar_freq_ranges(9), struct cfg80211_sar_capa(9) β€” SAR sub specs, specs, freq ranges, capa ⭐
  • cfg80211_get_station(9), enum monitor_flags(9), enum mpath_info_flags(9), struct mpath_info(9) β€” get station, monitor flags, mpath flags, mpath info πŸŽ€
  • enum wiphy_bss_param_flags(9), struct bss_parameters(9), struct mesh_config(9) β€” wiphy BSS param flags, BSS parameters, mesh config 🌸
  • struct mesh_setup(9), struct ocb_setup(9), struct ieee80211_txq_params(9) β€” mesh setup, OCB setup, txq params πŸ’œ

πŸ” Scanning and BSS list handling

  • Scanning and BSS list handling(9) β€” the section itself, main character πŸ’…
  • struct cfg80211_ssid(9), struct cfg80211_scan_info(9), struct cfg80211_scan_6ghz_params(9) β€” SSID, scan info, 6GHz scan params ✨
  • struct cfg80211_scan_request(9), struct cfg80211_match_set(9), struct cfg80211_sched_scan_plan(9) β€” scan request, match set, sched scan plan πŸ¦‹
  • struct cfg80211_bss_select_adjust(9), struct cfg80211_sched_scan_request(9), enum cfg80211_signal_type(9) β€” BSS select adjust, sched scan request, signal type 🌈
  • struct cfg80211_inform_bss(9), struct cfg80211_bss_ies(9), struct cfg80211_bss(9) β€” inform BSS, BSS IEs, BSS, the BSS trio πŸ‘‘
  • ieee80211_bss_get_elem(9), ieee80211_bss_get_ie(9) β€” get elem and get IE, the element hunters πŸ”₯
  • struct cfg80211_auth_request(9), struct cfg80211_assoc_link(9), struct cfg80211_ml_reconf_req(9) β€” auth request, assoc link, ML reconf req πŸ“
  • enum cfg80211_assoc_req_flags(9), struct cfg80211_assoc_request(9), struct cfg80211_deauth_request(9) β€” assoc req flags, assoc request, deauth request 🧚
  • struct cfg80211_disassoc_request(9), struct cfg80211_ibss_params(9), struct cfg80211_bss_selection(9) β€” disassoc request, IBSS params, BSS selection πŸ’–
  • struct cfg80211_connect_params(9), enum cfg80211_connect_params_changed(9), enum wiphy_params_flags(9) β€” connect params, changed flags, wiphy params flags ✨
  • struct cfg80211_pmksa(9), struct cfg80211_pkt_pattern(9), struct cfg80211_wowlan_tcp(9) β€” PMKSA, packet pattern, WoWLAN TCP 🌟
  • struct cfg80211_wowlan(9), struct cfg80211_coalesce_rules(9), struct cfg80211_coalesce(9) β€” WoWLAN, coalesce rules, coalesce πŸ’œ
  • struct cfg80211_wowlan_nd_match(9), struct cfg80211_wowlan_nd_info(9), struct cfg80211_wowlan_wakeup(9) β€” WoWLAN ND match, ND info, wakeup πŸ¦‹
  • struct cfg80211_gtk_rekey_data(9), struct cfg80211_update_ft_ies_params(9), struct cfg80211_mgmt_tx_params(9) β€” GTK rekey data, update FT IEs params, mgmt TX params πŸŽ€
  • struct cfg80211_dscp_exception(9), struct cfg80211_dscp_range(9), struct cfg80211_qos_map(9) β€” DSCP exception, DSCP range, QoS map 🌸

🐝 Neighbor Awareness Networking (NAN)

  • Neighbor Awareness Networking (NAN)(9) β€” the whole NAN section, so fetch πŸ‘‘
  • struct cfg80211_nan_band_config(9), struct cfg80211_nan_conf(9), struct cfg80211_nan_channel(9) β€” NAN band config, conf, channel ✨
  • struct cfg80211_nan_local_sched(9), struct cfg80211_nan_peer_map(9), struct cfg80211_nan_peer_sched(9) β€” local sched, peer map, peer sched πŸ’…
  • enum cfg80211_nan_conf_changes(9), struct cfg80211_nan_func_filter(9), struct cfg80211_nan_func(9) β€” conf changes, func filter, func 🌈

🫢 auth, PMK, PMSR & the ops

  • struct cfg80211_pmk_conf(9), struct cfg80211_external_auth_params(9) β€” PMK conf and external auth params πŸ’–
  • struct cfg80211_ftm_responder_stats(9), struct cfg80211_pmsr_ftm_result(9), struct cfg80211_pmsr_result(9) β€” FTM responder stats, PMSR FTM result, PMSR result πŸ¦‹
  • struct cfg80211_pmsr_ftm_request_peer(9), struct cfg80211_pmsr_request_peer(9), struct cfg80211_pmsr_request(9) β€” FTM request peer, request peer, request πŸ”₯
  • struct cfg80211_update_owe_info(9), struct mgmt_frame_regs(9), struct cfg80211_ops(9) β€” OWE info, mgmt frame regs, and the big one, cfg80211_ops πŸ‘‘

🌐 all things wiphy

🧰 Utility functions

πŸ›£οΈ Data path helpers

πŸ“œ Regulatory enforcement infrastructure

πŸ—‚οΈ more BSS & MLME handling

πŸ“Ά RFkill integration

πŸ›οΈ Vendor commands

πŸ§ͺ Test mode

πŸ”Œ connect, roam, mgmt & notifications

okay so the see-also squad keeps going 😭 this is the extended extended friend group and honestly? iconic of them to all show up. every single name, no skipping, we don't do "etc." in this house πŸ’…


and that's genuinely all of them, every single name accounted for, nobody left on read 🫢

okay so the wrap-up bestie: this whole page lives in ./include/net, it's stamped October 2026, and the page itself answers to the name cfg80211_un...er_netdevice(9). that's the source, that's the date, that's the title β€” go forth and unregister responsibly, love u, bye πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from