STRUCT CFG80211_PMSR_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay bestie, welcome to the Kernel API Manual page for struct cfg80211_pmsr_request(9) β€” it’s literally the peer measurement request struct, and it is lowkey iconic πŸ’…

This is part one of the glow-up, so buckle up: every member gets its moment, no details skipped, no cap.

🌸 SYNOPSIS 🌸

struct cfg80211_pmsr_request {
    u64 cookie;
    void *drv_data;
    u32 n_peers;
    u32 nl_portid;
    u32 timeout;
    u8 mac_addr[ETH_ALEN];
    u8 mac_addr_mask[ETH_ALEN];
    struct list_head list;
    struct cfg80211_pmsr_request_peer peers[];
};

πŸŽ€ Members πŸŽ€

okay, member-by-member glow-up time β€” here’s exactly what every field is serving:

  • cookie β€” the cookie, and it’s set by cfg80211 πŸͺ
  • drv_data β€” driver data for this request, if it’s required for aborting; cfg80211 does not otherwise free it or anything like that πŸ’€
  • n_peers β€” number of peers to do measurements with πŸ‘―
  • nl_portid β€” netlink portid β€” used by cfg80211 πŸ›°οΈ
  • timeout β€” timeout (in milliseconds) for the whole operation; if it’s zero, that means there’s no timeout ⏳
  • mac_addr β€” MAC address used for the (randomised) request πŸŽ€
  • mac_addr_mask β€” MAC address mask used for randomisation: bits that are 0 in the mask should be randomised, and bits that are 1 should be taken from the mac_addr πŸ¦‹
  • list β€” used by cfg80211 to hold on to the request πŸ“‹
  • peers β€” per-peer measurement request data 🌈

✨ every field is accounted for, and the struct is absolutely serving its purpose β€” bestie, this is the whole layout πŸ’–

πŸ‘€ SEE ALSO πŸ‘€

okay bestie, this page is not a solo act β€” it lives inside a whole little ecosystem, and here's literally every single thing it's adjacent to. no skips, no "you don't need these", all of it. let's go πŸ’…


🧚 the home base & the band-and-rate girlies

🌸 actions, config & the chandef cinematic universe

πŸ¦‹ scanning, BSS lists & the connect pipeline

  • Scanning and BSS list handling(9) is the section to start with, then: 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)
  • BSS stuff, lowkey the main character: 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, the whole situationship: 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)
  • power-save / wowlan / coalesce girlies: 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)

πŸŽ€ NAN, PMK, external auth & the PMSR/FTM besties

  • Neighbor Awareness Networking (NAN)(9) and its whole squad: 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)
  • security/auth buddies: struct cfg80211_pmk_conf(9), struct cfg80211_external_auth_params(9)
  • FTM + PMSR β€” literally this page's direct relatives, so bestie pls read these: 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_update_owe_info(9)

πŸ’œ driver ops, wiphy caps & the wiphy struct itself

  • struct mgmt_frame_regs(9), 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)
  • iftype ext capa + PMSR capabilities + akms + the radio structs: 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)

πŸ”₯ struct wiphy & all its little helpers

🌈 utility functions (the little toolshed)

πŸ“ radiotap, headers & data path helpers

πŸ‘‘ regulatory enforcement & the internal db

πŸ’€ scan/BSS/MLME notification central

πŸ™ˆ RFkill, vendor commands & test mode

⭐ connect / roam / port-auth notifications

🧚 rx/tx status, CQM & radar/cac events

okay bestie, so the SEE ALSO crew is huge β€” like, this page is the main character and everyone wants a cameo. Here's the whole roster, every single one, no skips, no cuts:


and that's a wrap, queen πŸ‘‘ this lil masterpiece lives in ./include/net, version-dated October 2026, and the whole thing is filed under struct cfg80...pmsr_request(9) β€” go forth and slay your kernel reads, bestie πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from