STRUCT CFG80211_NAN_PEER_MAP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct cfg80211_nan_peer_map(9) 🌸

okay bestie, so this is from the Kernel API Manual and it's literally the whole vibe of a NAN peer schedule map. yes, the title up there is the header line, i folded it in for you, you're welcome πŸ’–


✨ NAME ✨

struct cfg80211_nan_peer_map β€” NAN peer schedule map πŸ—ΊοΈ


✨ SYNOPSIS ✨

struct cfg80211_nan_peer_map {
    u8 map_id;
    u8 schedule[CFG80211_NAN_SCHED_NUM_TIME_SLOTS];
};

look at her. two members. iconic. no notes πŸ’…


πŸŽ€ Members πŸŽ€

  • map_id β€” the map ID of this schedule map. that's it, that's her whole job, and she's doing it beautifully 🫢
  • schedule β€” bestie this is the main character right here πŸ”₯ it's a mapping of time slots to chandef indexes in the schedule's nan_channels. each slot lasts 16TUs, no cap. and if a slot isn't scheduled? it gets set to NL80211_NAN_SCHED_NOT_AVAIL_SLOT. so if you see that value you know that slot is literally not available, don't come for her πŸ’€

✨ Description ✨

so like, this struct defines a single NAN peer schedule map. one. single. map. and it's giving exactly what it needs to give ✨


πŸ’– SEE ALSO πŸ’–

okay bestie this next bit is literally the entire friend group of this struct β€” every single page that's adjacent to it in the kernel docs 🫢. It's a long list, ngl, so grab a snack πŸ“. Nothing here is new info about struct cfg80211_nan_peer_map itself, it's just "go read these too." Every single one is listed below, promise, no skips πŸ’…

  • ./include/net/cfg80211.h β€” the actual kernel file where all this lives πŸ”₯
  • Introduction(9), Device registration(9) β€” start here if you're brand new, fr fr

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

these are the little channel-and-rate basics ✨ the lore you need before anything else makes sense.

getters, setters, a for_each macro β€” the whole little sband family tree 🌸

πŸŽ€ Actions and configuration section, lowkey huge

  • Actions and configuration(9) β€” the section heading itself, main character energy
  • 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)

then the chandef gang, and bestie they go off 😭

AP-mode structs my beloved πŸ¦‹ every one of those beacon and settings structs, all present and accounted for.

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

station everything πŸ’€ like actually everything. add, del, change, params, info, stats.

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

SAR, monitor mode, mesh, OCB β€” the side-quest squad 🧚

🌈 Scanning and BSS list handling

  • Scanning and BSS list handling(9) β€” the section itself, go click it
  • 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)

scan request, sched scan request, BSS, BSS IEs β€” the whole "what's out there" pipeline πŸ“‘

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

wowlan nation rise πŸ™ˆ packet patterns, TCP wakeup, coalesce rules, net-detect matches β€” it's giving "your laptop wakes up for no reason" energy.

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

  • Neighbor Awareness Networking (NAN)(9) β€” that's the section your girl lives in 🫢
  • 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_sched(9)
  • enum cfg80211_nan_conf_changes(9), struct cfg80211_nan_func_filter(9), struct cfg80211_nan_func(9)

NAN besties stay winning, no cap ✨

  • 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)
  • struct cfg80211_ops(9) β€” the big one, the driver ops table, the whole personality πŸ‘‘
  • 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)

the radio + NAN capability structs, very "what can this chip even do" 🌈

πŸ’œ the wiphy lifecycle crew

queue / cancel / flush / pending β€” four flavours of work, all listed, all yours πŸŽ€

the wdev trio, and wdev_chandef(9) if you want the channel def πŸ‘€

⭐ Utility functions

channel↔frequency conversions in both directions, plus PSC checks β€” super handy, lowkey underrated 🌸

πŸ”₯ Data path helpers

the "is this frame shaped right / turn it into 8023" squad 🫢

find, find_ext, find_vendor β€” three tiers of "where's that IE" energy πŸ”

πŸ’… Regulatory enforcement infrastructure

regulatory will end you if you get it wrong, so read these fr 😭


note the double underscore on __cfg80211_get_bss(9) β€” that's the internal flavour, not the same page as the public one πŸ‘‘

πŸ“ RFkill integration

start polling, stop polling β€” the on/off of it all πŸŽ€

🌸 Vendor commands

🧚 Test mode

test mode is deprecated-ish territory vibe-wise, but it's listed so here it is πŸ’€


connect succeeded, connect timed out, roamed, disconnected β€” the whole emotional arc of a connection 😭

rx, tx, ext variants, khz variants β€” pick your flavour bestie πŸ¦‹

okay and that's the entire see-also roster πŸŽ‰ every last (9) accounted for, nothing dropped, nothing merged, no invented extras. go forth and cross-reference, you've got this πŸ’–βœ¨

okay continuing the see-also scroll, bestie β€” part three is literally just the rest of the cross-reference wall and honestly? it's giving bibliography but make it cute πŸŽ€ every single one, no skips, no cap:

πŸ’« the regulatory girlypops

πŸ¦‹ channel switch vibes

🌈 operating class & chandef core

✨ odds and ends I refuse to skip

🧚 register / unregister energy

πŸŽ€ fast transition corner

πŸ“ P2P + IE splitting (the fiddly girlies)

πŸ’œ wakeup + crit proto

πŸ”₯ channels, combos, radio index

πŸ’€ the stopping of things

⭐ feature flags

🫢 NAN, part two (my beloved)

🌸 auth + PMS R

πŸ‘‘ iftype + assoc + OWE

πŸ¦‹ BSS + color change nation

🌈 6 GHz + MLO reconfig

✨ channel checks + EPCS

πŸŽ€ the NEW NAN pages (yes more of them)

🧚 debugfs, but locked πŸ”’

πŸ“ S1G trio

πŸ’œ last but never least


and that's the whole list, bestie β€” 64 references, zero skipped, we ate 🍽️✨

lowkey a reminder that this page lives in ./include/net, it's dated October 2026, and its full title is struct cfg80...nan_peer_map(9) β€” so if you're citing it in a paper or a group chat, that's the receipt right there πŸ§ΎπŸ’…

okay mwah, go read the actual functions now, you're literally so capable πŸ’–πŸ«ΆπŸ¦‹

πŸ“¦ where this page comes from