cfg80211_nan_ulw_update(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐ŸŒธ NAME ๐ŸŒธ

cfg80211_nan_ulw_update โ€” Notify user space about ULW update

Okay so this one is from the Kernel API Manual, bestie, and it's serving โ€œdriver tells user space that the ULW blob changedโ€ energy. Very niche, very real.


โœจ SYNOPSIS โœจ

void cfg80211_nan_ulw_update (struct wireless_dev *wdev , const u8 *ulw
, size_t ulw_len , gfp_t gfp );

๐ŸŽ€ ARGUMENTS ๐ŸŽ€

  • wdev โ€” Pointer to the wireless device structure. It's the wireless-device pointer, bestie, the main character of this little call.
  • ulw โ€” Pointer to the ULW blob data. Yep, the actual blob.
  • ulw_len โ€” Length of the ULW blob in bytes. Count 'em, don't guess.
  • gfp โ€” Memory allocation flags. The allocator vibes, basically.

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

Here's the tea: this function is used by drivers to notify user space when the device's ULW (Unaligned Schedule) blob has been updated. User space can use this blob to attach to frames sent to peers.

That's the whole plot. Iconic. ๐Ÿ’…

๐Ÿ”ฅ the source of truth & the door

Bestie, before we get into the 300-ish legendaries, here's where the whole thing actually lives and how a device gets in:

  • the kernel file ./include/net/cfg80211.h โ€” and with it Introduction(9) โœจ the origin story, read this one first
  • Device registration(9) โ€” how a device gets its whole life started ๐ŸŽ€

๐Ÿฆ‹ bands, channels & capability lore

This is the "what can your radio even do" chunk. Channels, rates, HT/VHT/HE/EHT/UHR caps, EDMG, S1G โ€” all the alphabet soup, all iconic:

  • enum ieee80211_channel_flags(9) โ€” the little flags that say things about a channel
  • struct ieee80211_channel(9) โ€” the channel herself, main character energy
  • enum ieee80211_rate_flags(9) โ€” flags for rates, yes really
  • enum ieee80211_bss_type(9) โ€” what kind of BSS we're even talking about
  • enum ieee80211_privacy(9) โ€” privacy vibes (the enum, not the concept)
  • struct ieee80211_rate(9) โ€” a rate, as a struct, as one does
  • struct ieee80211_he_obss_pd(9) โ€” HE OBSS PD, say it five times fast ๐Ÿ˜ญ
  • struct cfg80211_he_bss_color(9) โ€” the BSS color situation
  • struct ieee80211_sta_ht_cap(9) โ€” HT capabilities, the classic
  • struct ieee80211_sta_vht_cap(9) โ€” VHT caps, she leveled up
  • struct ieee80211_sta_he_cap(9) โ€” HE caps, very now
  • struct ieee80211_eht_mcs_nss_supp(9) โ€” MCS/NSS support for EHT, gesundheit
  • struct ieee80211_sta_eht_cap(9) โ€” EHT caps, the newer era
  • struct ieee80211_sta_uhr_cap(9) โ€” UHR caps, ultra high reliability bestie
  • struct ieee80211_sband_iftype_data(9) โ€” per-band, per-iftype data, the organizer
  • enum ieee80211_edmg_bw_config(9) โ€” EDMG bandwidth config enum ๐ŸŒ€
  • struct ieee80211_edmg(9) โ€” the EDMG struct itself
  • struct ieee80211_sta_s1g_cap(9) โ€” S1G capabilities, for the low-power girlies
  • struct ieee80211_supported_band(9) โ€” a whole supported band, like a whole personality
  • _ieee80211_set_sband_iftype_data(9) โ€” the underscore version, the private one, don't be weird about it
  • ieee80211_set_sband_iftype_data(9) โ€” and the public setter, slay
  • for_each_sband_iftype_data(9) โ€” a loop macro, she iterates ๐Ÿ’…
  • ieee80211_get_sband_iftype_data(9) โ€” the getter, matching the setter, as the universe intended
  • ieee80211_get_he_iftype_cap(9) โ€” grab HE caps for an iftype
  • ieee80211_get_he_6ghz_capa(9) โ€” HE 6 GHz capability, the fancy band
  • ieee80211_get_eht_iftype_cap(9) โ€” EHT caps per iftype
  • ieee80211_get_uhr_iftype_cap(9) โ€” UHR caps per iftype, newest girl on the block
  • wiphy_read_of_freq_limits(9) โ€” reads frequency limits, presumably from OF ๐ŸŒธ

๐Ÿ’œ actions & configuration (the big one)

Everything you can actually do โ€” interfaces, keys, chandefs, beacons, AP settings, stations, SAR, mesh, OCB, txq. Grab a snack ๐Ÿ“

  • Actions and configuration(9) โ€” the section that holds basically this whole chunk together
  • struct vif_params(9) โ€” virtual interface params, the basics
  • struct key_params(9) โ€” key params, security-core
  • struct cfg80211_chan_def(9) โ€” channel definition, the chandef legend herself
  • struct cfg80211_tid_cfg(9) โ€” TID config, one TID at a time
  • struct cfg80211_tid_config(9) โ€” the collection of TID configs
  • struct cfg80211_fils_aad(9) โ€” FILS AAD, yes that's the name
  • struct cfg80211_set_hw_timestamp(9) โ€” hardware timestamp setting, precise girlie
  • cfg80211_get_chandef_type(9) โ€” asks a chandef what type she is
  • cfg80211_chandef_create(9) โ€” makes a chandef from scratch โœจ
  • cfg80211_chandef_identical(9) โ€” are these two chandefs literally the same
  • cfg80211_chandef_is_edmg(9) โ€” is she EDMG or not, quick check
  • cfg80211_chandef_is_s1g(9) โ€” and is she S1G
  • cfg80211_chandef_compatible(9) โ€” do these chandefs get along
  • nl80211_chan_width_to_mhz(9) โ€” width to MHz, the conversion
  • cfg80211_chandef_get_width(9) โ€” get the width out of a chandef
  • cfg80211_chandef_valid(9) โ€” vibe check: is this chandef valid
  • cfg80211_chandef_usable(9) โ€” can we actually use it though
  • cfg80211_chandef_dfs_required(9) โ€” does this need DFS
  • cfg80211_chandef_dfs_usable(9) โ€” is the DFS one usable
  • cfg80211_chandef_dfs_cac_time(9) โ€” CAC time for the chandef, the waiting game ๐Ÿ˜ญ
  • cfg80211_chandef_primary(9) โ€” the primary channel bit
  • cfg80211_chandef_npca_valid(9) โ€” NPCA validity check
  • cfg80211_chandef_add_npca(9) โ€” add NPCA to a chandef
  • cfg80211_chandef_add_dbe(9) โ€” add DBE to a chandef, DBE girlies rise
  • nl80211_send_chandef(9) โ€” sends a chandef out into the world ๐Ÿ•Š๏ธ
  • ieee80211_chandef_max_power(9) โ€” max power for the chandef
  • cfg80211_chandef_s1g_pri_width(9) โ€” S1G primary width
  • cfg80211_any_usable_channels(9) โ€” is there literally any usable channel, please
  • enum survey_info_flags(9) โ€” survey info flags
  • struct survey_info(9) โ€” the survey info itself
  • struct cfg80211_crypto_settings(9) โ€” crypto settings, keys and ciphers and such
  • struct cfg80211_mbssid_config(9) โ€” MBSSID config
  • struct cfg80211_mbssid_elems(9) โ€” the MBSSID elements
  • struct cfg80211_rnr_elems(9) โ€” RNR elements, the neighbor report girlies
  • struct cfg80211_beacon_data(9) โ€” beacon data, the beacon payload situation
  • struct cfg80211_acl_data(9) โ€” ACL data, who's allowed in
  • struct cfg80211_fils_discovery(9) โ€” FILS discovery stuff
  • struct cfg80211_unsol_bcast_probe_resp(9) โ€” unsolicited broadcast probe response, that's the whole name, breathe
  • struct cfg80211_s1g_short_beacon(9) โ€” S1G short beacon
  • struct cfg80211_ap_settings(9) โ€” AP settings, the master doc for bringing up an AP ๐Ÿ‘‘
  • struct cfg80211_ap_update(9) โ€” AP update, for changing things live
  • struct cfg80211_csa_settings(9) โ€” channel switch announcement settings
  • struct cfg80211_color_change_settings(9) โ€” color change settings
  • struct iface_combination_params(9) โ€” interface combination params, the "can these ifaces coexist" bookkeeping
  • enum station_parameters_apply_mask(9) โ€” the apply mask for station params
  • struct sta_txpwr(9) โ€” station TX power
  • struct link_station_parameters(9) โ€” link station params, MLD era
  • struct link_station_del_parameters(9) โ€” and the delete-side params for a link station
  • struct cfg80211_ttlm_params(9) โ€” TTLM params
  • struct station_parameters(9) โ€” station params, the O.G.
  • struct station_del_parameters(9) โ€” params for deleting a station
  • enum cfg80211_station_type(9) โ€” station type enum
  • cfg80211_check_station_change(9) โ€” checks what changed on a station
  • enum rate_info_flags(9) โ€” rate info flags
  • enum rate_info_bw(9) โ€” rate info bandwidth enum
  • struct rate_info(9) โ€” the rate info struct
  • enum bss_param_flags(9) โ€” BSS param flags
  • struct sta_bss_parameters(9) โ€” station BSS parameters
  • struct cfg80211_txq_stats(9) โ€” txq stats, numbers girlies
  • struct cfg80211_tid_stats(9) โ€” per-TID stats
  • struct link_station_info(9) โ€” link station info
  • struct station_info(9) โ€” the big station info struct
  • struct cfg80211_sar_sub_specs(9) โ€” SAR sub-specs
  • struct cfg80211_sar_specs(9) โ€” SAR specs
  • struct cfg80211_sar_freq_ranges(9) โ€” SAR frequency ranges
  • struct cfg80211_sar_capa(9) โ€” SAR capabilities
  • cfg80211_get_station(9) โ€” get a station, go get her
  • enum monitor_flags(9) โ€” monitor flags
  • enum mpath_info_flags(9) โ€” mesh path info flags
  • struct mpath_info(9) โ€” mesh path info
  • enum wiphy_bss_param_flags(9) โ€” wiphy BSS param flags
  • struct bss_parameters(9) โ€” BSS parameters
  • struct mesh_config(9) โ€” mesh config
  • struct mesh_setup(9) โ€” mesh setup, the bring-up one
  • struct ocb_setup(9) โ€” OCB setup, niche but valid
  • struct ieee80211_txq_params(9) โ€” txq params

๐ŸŒˆ scanning & BSS list handling

Everything about finding networks and keeping a list of them. Very "who's out there" energy ๐Ÿซถ

  • Scanning and BSS list handling(9) โ€” the umbrella section for all of this
  • struct cfg80211_ssid(9) โ€” an SSID as a struct, the network name wrapper
  • struct cfg80211_scan_info(9) โ€” scan info
  • struct cfg80211_scan_6ghz_params(9) โ€” 6 GHz scan params, the special ones
  • struct cfg80211_scan_request(9) โ€” a scan request, the whole ask
  • struct cfg80211_match_set(9) โ€” match set, for sched scan filtering
  • struct cfg80211_sched_scan_plan(9) โ€” a sched scan plan, planning girlie
  • struct cfg80211_bss_select_adjust(9) โ€” BSS selection adjust
  • struct cfg80211_sched_scan_request(9) โ€” the sched scan request
  • enum cfg80211_signal_type(9) โ€” signal type enum
  • struct cfg80211_inform_bss(9) โ€” informing the kernel about a BSS
  • struct cfg80211_bss_ies(9) โ€” the IEs of a BSS
  • struct cfg80211_bss(9) โ€” the BSS herself, absolute icon
  • ieee80211_bss_get_elem(9) โ€” pull an element out of a BSS
  • ieee80211_bss_get_ie(9) โ€” and the IE flavor of that
  • struct cfg80211_auth_request(9) โ€” auth request
  • struct cfg80211_assoc_link(9) โ€” an assoc link
  • struct cfg80211_ml_reconf_req(9) โ€” ML reconfig request
  • enum cfg80211_assoc_req_flags(9) โ€” assoc request flags
  • struct cfg80211_assoc_request(9) โ€” assoc request
  • struct cfg80211_deauth_request(9) โ€” deauth request, the sad one ๐Ÿ˜ญ
  • struct cfg80211_disassoc_request(9) โ€” disassoc request
  • struct cfg80211_ibss_params(9) โ€” IBSS params
  • struct cfg80211_bss_selection(9) โ€” BSS selection
  • struct cfg80211_connect_params(9) โ€” connect params, the whole connect ask
  • enum cfg80211_connect_params_changed(9) โ€” which connect params changed
  • enum wiphy_params_flags(9) โ€” wiphy param flags
  • struct cfg80211_pmksa(9) โ€” PMKSA, the caching situation
  • struct cfg80211_pkt_pattern(9) โ€” packet pattern, wowlan matching
  • struct cfg80211_wowlan_tcp(9) โ€” wowlan TCP, very specific, very real
  • struct cfg80211_wowlan(9) โ€” wowlan config
  • struct cfg80211_coalesce_rules(9) โ€” coalesce rules
  • struct cfg80211_coalesce(9) โ€” coalesce config
  • struct cfg80211_wowlan_nd_match(9) โ€” wowlan net-detect match
  • struct cfg80211_wowlan_nd_info(9) โ€” wowlan net-detect info
  • struct cfg80211_wowlan_wakeup(9) โ€” the wakeup report
  • 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) โ€” a DSCP exception
  • struct cfg80211_dscp_range(9) โ€” a DSCP range
  • struct cfg80211_qos_map(9) โ€” QoS map

๐Ÿงš NAN (neighbor awareness networking) & friends

The whole NAN family plus the auth/PMK/measurement crew that follows. So much lore ๐Ÿ’…

  • Neighbor Awareness Networking (NAN)(9) โ€” the NAN section, the whole awareness agenda
  • struct cfg80211_nan_band_config(9) โ€” NAN band config
  • struct cfg80211_nan_conf(9) โ€” NAN config
  • struct cfg80211_nan_channel(9) โ€” NAN channel
  • struct cfg80211_nan_local_sched(9) โ€” NAN local schedule
  • struct cfg80211_nan_peer_map(9) โ€” NAN peer map
  • struct cfg80211_nan_peer_sched(9) โ€” NAN peer schedule
  • enum cfg80211_nan_conf_changes(9) โ€” NAN config changes
  • struct cfg80211_nan_func_filter(9) โ€” NAN function filter
  • struct cfg80211_nan_func(9) โ€” NAN function, the big one
  • struct cfg80211_pmk_conf(9) โ€” PMK config
  • struct cfg80211_external_auth_params(9) โ€” external auth params
  • struct cfg80211_ftm_responder_stats(9) โ€” FTM responder stats
  • struct cfg80211_pmsr_ftm_result(9) โ€” PMSR FTM result
  • struct cfg80211_pmsr_result(9) โ€” PMSR result
  • struct cfg80211_pmsr_ftm_request_peer(9) โ€” PMSR FTM request peer
  • struct cfg80211_pmsr_request_peer(9) โ€” PMSR request peer
  • struct cfg80211_pmsr_request(9) โ€” PMSR request
  • struct cfg80211_update_owe_info(9) โ€” update OWE info
  • struct mgmt_frame_regs(9) โ€” management frame registrations

๐Ÿ‘‘ the ops, the wiphy & the plumbing

Driver ops, wiphy flags/caps, then the entire "wiphy lifecycle & locking" cinematic universe. This is the backbone, no cap:


โญ utility functions

The little helpers that make everything else possible. Underrated, honestly:


๐Ÿซถ data path helpers

Turning frames into 802.3 and finding IEs in a buffer. Unglamorous, essential, we respect her:


๐ŸŽ€ regulatory enforcement infrastructure

The law. The vibes. The "you may not transmit there" energy:


๐Ÿ’€ notifying the world: BSS, MLME & friends

All the "hey kernel, something happened" calls. Very main character, very loud ๐Ÿ“ฃ


๐ŸŒธ rfkill integration

Small section, big "turn the radio off" energy:


๐Ÿ“ vendor commands

For the drivers with main character syndrome and proprietary extras:


๐Ÿ™ˆ test mode

Yes, it exists. Yes, it's documented. We love a niche queen:


๐Ÿ’– connect, roam, disconnect & the rest of the notification girlies

The whole lifecycle of "you're connectedโ€ฆ now you're notโ€ฆ now you're on another channel":


and that's the list bestie, every single one accounted for ๐Ÿ’œ keep scrolling, there's still more page coming ๐Ÿ‘‡

โ€ฆand the list keeps GOING, bestie ๐Ÿ˜ญ like genuinely, here's the rest of the cross-refs โ€” all sixty-three of them, no skips, no cap:


okay that's genuinely the whole page, bestie, we made it ๐ŸŽ€๐Ÿ’œ like that is the entire cross-reference situation, nothing hidden, nothing skipped.

ngl if you actually read all sixty-three of those you're built different โœจ

and that's a wrap on cfg80211_nan_ulw_update(9) โ€” pulled straight from ./include/net in the tree, dated October 2026 (yes, future girlie things ๐Ÿ”ฎ), and you can find the full man page under exactly that name. mwah, go touch some grass now ๐Ÿซถ๐Ÿ’…

๐Ÿ“ฆ where this page comes from