STRUCT IEEE80211_IFACE_LIMIT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct ieee80211_iface_limit(9) β€” kernel API manual, bestie edition 🌸

okay so real talk, this is a page from the Kernel API Manual and it's literally about capping how many of certain interface types you can have. tiny struct, big main character energy. let's get into it 🫢


✨ NAME ✨

struct ieee80211_iface_limit β€” the vibe check for how many interfaces of certain types you're allowed to have. it's a limit. that's the whole thing. πŸ’…


✨ SYNOPSIS ✨

here's the struct in all its glory, copied exactly because we do not mess with code in this house:

struct ieee80211_iface_limit {
    u16 max;
    u16 types;
 };

that's it. two little u16 fields. small but mighty, no cap πŸ”₯


✨ Members ✨

okay let's meet the two icons in this struct, they both matter:

  • max β€” the maximum number of interfaces of these types. like, the actual ceiling. the "you shall not pass" number. 🚧
  • types β€” the interface types, stored as bits. yes bestie, bits. bitmask situation, iykyk πŸ‘‘

more parts coming, don't go anywhere πŸŽ€

πŸŽ€ SEE ALSO πŸŽ€

okay bestie, fair warning: this section is basically the manpage going "and here's everyone else at the party" and then the party has like three hundred guests πŸ’€ but we're gonna get through it together, no cap.

πŸ“ the source of truth

  • Kernel file ./include/net/cfg80211.h β€” literally the header where all of this lives, the origin story fr.
  • Introduction(9), Device registration(9) β€” start here if you're brand new, they're the vibes-setting prequels 🫢

πŸ“‘ channels, rates & band lore

  • enum ieee80211_channel_flags(9), struct ieee80211_channel(9) β€” the channel flag club and the channel struct itself, iconic duo.
  • enum ieee80211_rate_flags(9), struct ieee80211_rate(9) β€” rate flags and the rate struct, matching set ✨
  • enum ieee80211_bss_type(9), enum ieee80211_privacy(9) β€” what kind of BSS, and how private it is.
  • struct ieee80211_he_obss_pd(9), struct cfg80211_he_bss_color(9) β€” HE OBSS PD and BSS color, the modern-band girlies.

πŸ¦‹ the capability structs

  • struct ieee80211_sta_ht_cap(9), struct ieee80211_sta_vht_cap(9), struct ieee80211_sta_he_cap(9) β€” HT, VHT, HE caps, going in order like a glow-up timeline.
  • struct ieee80211_eht_mcs_nss_supp(9), struct ieee80211_sta_eht_cap(9), struct ieee80211_sta_uhr_cap(9) β€” EHT MCS/NSS support, EHT caps, and UHR caps, the newer the slay.
  • struct ieee80211_sband_iftype_data(9) β€” per-band, per-iftype data, main character of the band files.
  • enum ieee80211_edmg_bw_config(9), struct ieee80211_edmg(9), struct ieee80211_sta_s1g_cap(9) β€” EDMG bandwidth config, EDMG, and S1G caps.
  • struct ieee80211_supported_band(9) β€” what a band actually supports, the whole roster.

🧚 sband helpers & friends


πŸ› οΈ Actions and configuration

our biggest subsection, buckle up buttercup πŸ’…

πŸŽ›οΈ the params & tid crew

  • struct vif_params(9), struct key_params(9) β€” vif params and key params, the OGs.
  • struct cfg80211_tid_cfg(9), struct cfg80211_tid_config(9) β€” tid cfg and tid config, one is the piece, one is the set.
  • struct cfg80211_fils_aad(9), struct cfg80211_set_hw_timestamp(9) β€” FILS AAD and the hw timestamp setter.

πŸ“Ά the chandef cinematic universe

πŸ“Š survey, beacon & AP settings

  • enum survey_info_flags(9), struct survey_info(9) β€” survey flags and survey info.
  • struct cfg80211_crypto_settings(9) β€” crypto settings, keep it secure babes πŸ”
  • struct cfg80211_mbssid_config(9), struct cfg80211_mbssid_elems(9) β€” MBSSID config and MBSSID elements.
  • struct cfg80211_rnr_elems(9) β€” the RNR elements.
  • struct cfg80211_beacon_data(9) β€” beacon data, the whole point of an AP honestly.
  • struct cfg80211_acl_data(9) β€” ACL data, the guest list.
  • struct cfg80211_fils_discovery(9), struct cfg80211_unsol_bcast_probe_resp(9) β€” FILS discovery and unsolicited broadcast probe response.
  • struct cfg80211_s1g_short_beacon(9) β€” S1G short beacon, smol but mighty.
  • struct cfg80211_ap_settings(9), struct cfg80211_ap_update(9) β€” AP settings and AP update.
  • struct cfg80211_csa_settings(9), struct cfg80211_color_change_settings(9) β€” CSA settings and color change settings.
  • struct iface_combination_params(9) β€” iface combination params, very relevant to this whole page ngl.

πŸ“± station-side everything

  • enum station_parameters_apply_mask(9), struct sta_txpwr(9) β€” apply mask enum and sta txpwr.
  • struct link_station_parameters(9), struct link_station_del_parameters(9) β€” link station add params and delete params.
  • struct cfg80211_ttlm_params(9) β€” TTLM params.
  • struct station_parameters(9), struct station_del_parameters(9) β€” station params and station del params.
  • enum cfg80211_station_type(9), cfg80211_check_station_change(9) β€” station type enum and the change checker.
  • enum rate_info_flags(9), enum rate_info_bw(9), struct rate_info(9) β€” rate info flags, bandwidth, and the struct itself.
  • enum bss_param_flags(9), struct sta_bss_parameters(9) β€” BSS param flags and sta BSS parameters.
  • struct cfg80211_txq_stats(9), struct cfg80211_tid_stats(9) β€” TXQ stats and TID stats, numbers girlies.
  • struct link_station_info(9), struct station_info(9) β€” link station info and station info.
  • struct cfg80211_sar_sub_specs(9), struct cfg80211_sar_specs(9), struct cfg80211_sar_freq_ranges(9), struct cfg80211_sar_capa(9) β€” the whole SAR family: sub specs, specs, freq ranges, capa.
  • cfg80211_get_station(9) β€” getter for station stuff.
  • enum monitor_flags(9), enum mpath_info_flags(9), struct mpath_info(9) β€” monitor flags, mpath info flags, mpath info.
  • enum wiphy_bss_param_flags(9), struct bss_parameters(9) β€” wiphy BSS param flags and BSS parameters.
  • struct mesh_config(9), struct mesh_setup(9) β€” mesh config and mesh setup.
  • struct ocb_setup(9) β€” OCB setup, niche but valid.
  • struct ieee80211_txq_params(9) β€” TXQ params, closing out this chunk.

πŸ” Scanning and BSS list handling

the "where is everything" section, obsessed πŸ“

πŸ—ΊοΈ scan request vibes

  • struct cfg80211_ssid(9) β€” an SSID, yes it gets its own struct.
  • struct cfg80211_scan_info(9), struct cfg80211_scan_request(9) β€” scan info and the scan request.
  • struct cfg80211_scan_6ghz_params(9) β€” the 6GHz scan params, special little guy.
  • struct cfg80211_match_set(9) β€” match set.
  • struct cfg80211_sched_scan_plan(9), struct cfg80211_sched_scan_request(9) β€” scheduled scan plan and the sched scan request.
  • struct cfg80211_bss_select_adjust(9) β€” BSS select adjust.
  • enum cfg80211_signal_type(9) β€” signal type enum.
  • struct cfg80211_inform_bss(9), struct cfg80211_bss_ies(9), struct cfg80211_bss(9) β€” inform BSS, the IEs, and the BSS itself.
  • ieee80211_bss_get_elem(9), ieee80211_bss_get_ie(9) β€” get an element, get an IE, same energy different name.

🀝 auth, assoc & connect

  • struct cfg80211_auth_request(9) β€” auth request.
  • struct cfg80211_assoc_link(9), struct cfg80211_ml_reconf_req(9) β€” assoc link and ML reconfig request.
  • enum cfg80211_assoc_req_flags(9), struct cfg80211_assoc_request(9) β€” assoc request flags and the assoc request.
  • struct cfg80211_deauth_request(9), struct cfg80211_disassoc_request(9) β€” deauth and disassoc requests, the sad ones 😭
  • struct cfg80211_ibss_params(9), struct cfg80211_bss_selection(9) β€” IBSS params and BSS selection.
  • struct cfg80211_connect_params(9), enum cfg80211_connect_params_changed(9) β€” connect params and the "what changed" enum.
  • enum wiphy_params_flags(9) β€” wiphy params flags.
  • struct cfg80211_pmksa(9) β€” PMKSA, caching queen.

πŸ’€ WoWLAN & the sleepy stuff

  • struct cfg80211_pkt_pattern(9), struct cfg80211_wowlan_tcp(9), struct cfg80211_wowlan(9) β€” packet pattern, WoWLAN TCP, and WoWLAN itself.
  • struct cfg80211_coalesce_rules(9), struct cfg80211_coalesce(9) β€” coalesce rules and coalesce.
  • struct cfg80211_wowlan_nd_match(9), struct cfg80211_wowlan_nd_info(9), struct cfg80211_wowlan_wakeup(9) β€” net-detect match, net-detect info, and the wakeup.
  • struct cfg80211_gtk_rekey_data(9) β€” GTK rekey data.
  • struct cfg80211_update_ft_ies_params(9) β€” update FT IEs params.
  • struct cfg80211_mgmt_tx_params(9) β€” mgmt TX params.
  • struct cfg80211_dscp_exception(9), struct cfg80211_dscp_range(9) β€” DSCP exception and DSCP range.
  • struct cfg80211_qos_map(9) β€” QoS map, mapping the vibes.

🧲 NAN, PMSR & the fancy extras

  • Neighbor Awareness Networking (NAN)(9) β€” the whole NAN overview page, start here.
  • struct cfg80211_nan_band_config(9), struct cfg80211_nan_conf(9), struct cfg80211_nan_channel(9) β€” NAN band config, NAN conf, NAN 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) β€” NAN conf changes enum.
  • struct cfg80211_nan_func_filter(9), struct cfg80211_nan_func(9) β€” NAN func filter and NAN func.
  • struct cfg80211_pmk_conf(9), struct cfg80211_external_auth_params(9) β€” PMK conf and external auth params.
  • struct cfg80211_ftm_responder_stats(9) β€” FTM responder stats.
  • struct cfg80211_pmsr_ftm_result(9), struct cfg80211_pmsr_result(9) β€” PMSR FTM result and PMSR result.
  • struct cfg80211_pmsr_ftm_request_peer(9), struct cfg80211_pmsr_request_peer(9), struct cfg80211_pmsr_request(9) β€” the request chain: FTM request peer, request peer, request.
  • struct cfg80211_update_owe_info(9) β€” update OWE info.
  • struct mgmt_frame_regs(9) β€” mgmt frame regs.
  • struct cfg80211_ops(9) β€” the ops struct, the driver's whole personality tbh.
  • enum wiphy_flags(9) β€” wiphy flags.
  • struct ieee80211_iface_combination(9) β€” iface combination, bestie this is the sibling of the page you're on, go read it πŸ’–

πŸ‘‘ wiphy everything (yes, all of it)


🌈 Utility functions

the little helpers that ate, honestly πŸ”₯

πŸš€ Data path helpers

πŸ›οΈ Regulatory enforcement infrastructure

πŸ—„οΈ Internal regulatory db functions

πŸ“£ BSS, scan-done & notification central

πŸ“΄ RFkill integration

πŸ›οΈ Vendor commands

πŸ§ͺ Test mode

πŸ«‚ connection results, roaming & notifications

and the SEE ALSO roster keeps going, because this page said β€œrange” and meant it πŸ’…βœ¨ Here’s the whole crew, in order, no cap:


okay that’s the whole page, bestie 🫢 Source: ./include/net, date: October 2026, and the footer title is literally struct ieee8..._iface_limit(9) β€” iconic sign-off behavior, no notes πŸ’–βœ¨πŸ’‹

πŸ“¦ where this page comes from