STRUCT CFG80211_MATCH_SET(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cfg80211_match_set(9) πŸ’…

ok so this is from the Kernel API Manual, bestie β€” and it's literally about sets of attributes to match. that's the whole NAME section, no cap: sets of attributes to match. it's giving "we're gonna filter your scan results" energy and honestly? iconic. πŸŽ€

This page is long so it comes in 3 parts β€” buckle up, part 1 is the setup arc. ✨


✨ SYNOPSIS ✨

okay so here's the actual struct, and yes it's exactly this, copy it character for character, i don't make the rules (i do enforce them tho 🫢):

struct cfg80211_match_set {
    struct cfg80211_ssid ssid;
    u8 bssid[ETH_ALEN];
    s32 rssi_thold;
};

like. three members. that's it. she's small but she's doing a lot. main character energy in eleven lines. 🌸


πŸ¦‹ Members πŸ¦‹

  • ssid β€” the SSID you wanna match, bestie. but listen: it may be zero-length if you're doing a BSSID match instead, or if you're doing no match at all (i.e. RSSI only). so an empty SSID isn't a bug, it's a choice. πŸ’–
  • bssid β€” the BSSID you wanna match. same deal, flipped: it may be all-zero BSSID if you're matching on SSID instead, or again if there's no match at all (RSSI only). zeroed out = vibes only, no BSSID hunting. ✨
  • rssi_thold β€” lowkey a bouncer for your scan results: don't report scan results below this threshold, and it's measured in s32 dBm. so anything weaker than your number just doesn't get in the group chat. πŸ™ˆ

so that's part 1 β€” the struct itself and who's who in the friend group. part 2 and part 3 are coming, don't go anywhere. πŸ’œ

🌈 SEE ALSO 🌈

Okay bestie, this is the part where the page just… names everyone in the group chat. πŸ’… Every single one of these lives in the kernel file ./include/net/cfg80211.h β€” that's the mothership β€” and each one has its own (9) page waiting for you to fall down a rabbit hole. No cap, it's a lot of them. Buckle up. πŸŽ€

Where it all starts + the wireless basics ✨

  • Introduction(9)
  • Device registration(9)
  • enum ieee80211_channel_flags(9)
  • struct ieee80211_channel(9)
  • enum ieee80211_rate_flags(9)
  • enum ieee80211_bss_type(9)
  • enum ieee80211_privacy(9)
  • struct ieee80211_rate(9)
  • struct ieee80211_he_obss_pd(9)
  • struct cfg80211_he_bss_color(9)

the whole HT/VHT/HE/EHT/UHR capability family β€” the girls are all here πŸ‘‘

  • struct ieee80211_sta_ht_cap(9)
  • struct ieee80211_sta_vht_cap(9)
  • struct ieee80211_sta_he_cap(9)
  • struct ieee80211_eht_mcs_nss_supp(9)
  • struct ieee80211_sta_eht_cap(9)
  • struct ieee80211_sta_uhr_cap(9)
  • struct ieee80211_sband_iftype_data(9)
  • enum ieee80211_edmg_bw_config(9)
  • struct ieee80211_edmg(9)
  • struct ieee80211_sta_s1g_cap(9)

bands + the iftype data helpers πŸ¦‹


Actions and configuration, aka the chandef section, aka strap in πŸ”₯

  • Actions and configuration(9)
  • struct vif_params(9)
  • struct key_params(9)
  • struct cfg80211_chan_def(9)
  • struct cfg80211_tid_cfg(9)
  • struct cfg80211_tid_config(9)
  • struct cfg80211_fils_aad(9)
  • struct cfg80211_set_hw_timestamp(9)

every single chandef function, and yes there are this many πŸ’€

survey stuff, crypto, and the AP/beacon crowd 🌸

  • enum survey_info_flags(9)
  • struct survey_info(9)
  • struct cfg80211_crypto_settings(9)
  • struct cfg80211_mbssid_config(9)
  • struct cfg80211_mbssid_elems(9)
  • struct cfg80211_rnr_elems(9)
  • struct cfg80211_beacon_data(9)
  • struct cfg80211_acl_data(9)
  • struct cfg80211_fils_discovery(9)
  • struct cfg80211_unsol_bcast_probe_resp(9)
  • struct cfg80211_s1g_short_beacon(9)
  • struct cfg80211_ap_settings(9)
  • struct cfg80211_ap_update(9)
  • struct cfg80211_csa_settings(9)
  • struct cfg80211_color_change_settings(9)
  • struct iface_combination_params(9)

stations, links, rates, and all the stats πŸ‘‘

  • enum station_parameters_apply_mask(9)
  • struct sta_txpwr(9)
  • struct link_station_parameters(9)
  • struct link_station_del_parameters(9)
  • struct cfg80211_ttlm_params(9)
  • struct station_parameters(9)
  • struct station_del_parameters(9)
  • enum cfg80211_station_type(9)
  • cfg80211_check_station_change(9)
  • enum rate_info_flags(9)
  • enum rate_info_bw(9)
  • struct rate_info(9)
  • enum bss_param_flags(9)
  • struct sta_bss_parameters(9)
  • struct cfg80211_txq_stats(9)
  • struct cfg80211_tid_stats(9)
  • struct link_station_info(9)
  • struct station_info(9)

SAR + get_station + mesh/OCB/txq neighbours πŸ“

  • struct cfg80211_sar_sub_specs(9)
  • struct cfg80211_sar_specs(9)
  • struct cfg80211_sar_freq_ranges(9)
  • struct cfg80211_sar_capa(9)
  • cfg80211_get_station(9)
  • enum monitor_flags(9)
  • enum mpath_info_flags(9)
  • struct mpath_info(9)
  • enum wiphy_bss_param_flags(9)
  • struct bss_parameters(9)
  • struct mesh_config(9)
  • struct mesh_setup(9)
  • struct ocb_setup(9)
  • struct ieee80211_txq_params(9)

Scanning and BSS list handling β€” yes, that's the whole section name, it's giving main character energy ⭐

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

auth / assoc / deauth / disassoc / connect params β€” the whole handshake arc 🫢

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

wowlan, coalesce, and packet patterns (sleepy-time tech) 😴

  • 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) β€” the whole neighbourly era 🧚

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

PMK / external auth / PMSR (the measurement girlies) πŸ“‘

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

cfg80211_ops and the wiphy configuration squad πŸ’œ

  • struct cfg80211_ops(9)
  • enum wiphy_flags(9)
  • struct ieee80211_iface_limit(9)
  • struct ieee80211_iface_combination(9)
  • enum wiphy_wowlan_support_flags(9)
  • struct wiphy_wowlan_support(9)
  • struct wiphy_coalesce_support(9)
  • enum wiphy_vendor_command_flags(9)
  • enum wiphy_opmode_flag(9)
  • struct sta_opmode_info(9)
  • struct wiphy_vendor_command(9)
  • struct wiphy_iftype_ext_capab(9)
  • cfg80211_get_iftype_ext_capa(9)
  • struct cfg80211_pmsr_capabilities(9)
  • struct wiphy_iftype_akm_suites(9)
  • struct wiphy_radio_cfg(9)
  • struct wiphy_radio_freq_range(9)
  • struct wiphy_radio(9)
  • enum wiphy_nan_flags(9)
  • struct wiphy_nan_capa(9)
  • struct wiphy(9)

wiphy lifecycle + all the work-queue helpers (there are SO many) βš™οΈ

wireless_dev and friends πŸŽ€


Utility functions β€” lowkey the most-used bits πŸ› οΈ

Data path helpers + the element-finding crew πŸ¦‹

Regulatory enforcement infrastructure β€” the vibes are legality βš–οΈ

Internal regulatory db functions πŸ—„οΈ

scan results, BSS inform, and get_bss πŸ”

MLME notifications + assoc failure + the mic failure moment πŸ“¨

RFkill integration πŸ“΄

Vendor commands 🏷️

Test mode πŸ§ͺ


connect / roam results and the disconnect arc πŸ’”

station bookkeeping πŸ“‹

mgmt rx/tx + control port πŸ“Ά

CQM, radar, CAC, GTK rekey, PMKSA candidates 🚨

weird frames + probe status + OBSS beacon reports πŸ‘€

Yeah okay that's the whole extended friend group πŸ’… like genuinely every single one of them, no cap, I didn't skip a single mutual. There's struct-prefixed ones and plain-function ones mixed in there and I kept them exactly as they came, because we do not deadname anybody's identifier in this house 🫢

bestie if one of these names makes you go "wait what does that even do" β€” that's literally what the (9) is for, go click it. I'm not out here guessing at behaviour for you, that would be so not slay of me 😭

Okay that's a wrap on this whole page, and I'm lowkey emotional about it πŸ₯Ή You made it to the end of struct cfg80211_match_set(9) β€” that's main character energy fr fr.

Where it lives: ./include/net πŸŽ€. What we're calling this era: October 2026 (yes, the future, we're ahead of the timeline, iconic). And the headline, the title card, the whole vibe: struct cfg80211_match_set(9) ✨

Now go forth and match some sets, bestie. Slay πŸ’–πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from