STRUCT RATE_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct rate_info β€” literally just bitrate information, bestie. That's the whole vibe ✨

(you're reading the struct rate_info(9) page from the Kernel API Manual, and yes she's that girl πŸŽ€)


πŸ¦‹ SYNOPSIS πŸ¦‹

okay so here's the struct in all her glory, copy it exactly, no cap:

struct rate_info {
    u16 flags;
    u16 legacy;
    u8 mcs;
    u8 nss;
    u8 bw;
    u8 he_gi;
    u8 he_dcm;
    u8 he_ru_alloc;
    u8 n_bonded_ch;
    u8 eht_gi;
    u8 eht_ru_alloc;
 };

🌸 Members 🌸

time to meet the whole squad, one field at a time 🫢

  • flags β€” a bitflag situation, made of flags from enum rate_info_flags πŸ’…
  • legacy β€” the bitrate in 100kbit/s for 802.11abg (old money, but iconic)
  • mcs β€” the mcs index, but only if this struct is describing an HT/VHT/HE/EHT/S1G/UHR rate. she's conditional, she's mysterious πŸ™ˆ
  • nss β€” number of streams (VHT & HE only, don't @ me)
  • bw β€” bandwidth, straight from enum rate_info_bw
  • he_gi β€” HE guard interval, from enum nl80211_he_gi
  • he_dcm β€” the HE DCM value
  • he_ru_alloc β€” HE RU allocation, from enum nl80211_he_ru_alloc β€” and heads up, this one is only valid if bw is RATE_INFO_BW_HE_RU ⚠️
  • n_bonded_ch β€” in case of EDMG, the number of bonded channels, which is 1-4
  • eht_gi β€” EHT guard interval, from enum nl80211_eht_gi
  • eht_ru_alloc β€” EHT RU allocation, from enum nl80211_eht_ru_alloc β€” same deal, only valid if bw is RATE_INFO_BW_EHT_RU ⚠️

✨ Description ✨

It's information about a receiving or transmitting bitrate. that's it, that's the whole personality πŸ’–

✨ SEE ALSO ✨

okay so bestie, fair warning: this SEE ALSO is huge. like, the entire cfg80211 cinematic universe showed up to the group chat at once πŸ’€ but every single one is a real page and i'm not skipping a single one, so buckle up, no cap.

  • Kernel file ./include/net/cfg80211.h Introduction(9) β€” the origin story, the mothership, the file this whole struct lives in.
  • Device registration(9) β€” how devices get themselves onto the guest list.

πŸŽ€ the channel + rate era

  • 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) β€” the classic lineup, channels and rates and their little flag enums, iconic behaviour only.
  • struct ieee80211_he_obss_pd(9), struct cfg80211_he_bss_color(9) β€” HE-era stuff, spatial reuse vibes 🌸
  • 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) β€” the whole capability glow-up chain, HT β†’ VHT β†’ HE β†’ EHT β†’ UHR, they grow up so fast 😭
  • struct ieee80211_sband_iftype_data(9), enum ieee80211_edmg_bw_config(9), struct ieee80211_edmg(9), struct ieee80211_sta_s1g_cap(9), struct ieee80211_supported_band(9) β€” bands and iftypes and EDMG/S1G energy.
  • _ieee80211_set_sband_iftype_data(9), ieee80211_set_sband_iftype_data(9), for_each_sband_iftype_data(9), ieee80211_get_sband_iftype_data(9) β€” the underscore one is the internals, the no-underscore one is the "please use me" one, and yes i'm obsessed with how that's just a thing. ✨
  • ieee80211_get_he_iftype_cap(9), ieee80211_get_he_6ghz_capa(9), ieee80211_get_eht_iftype_cap(9), ieee80211_get_uhr_iftype_cap(9), wiphy_read_of_freq_limits(9) β€” getters, getters, getters, plus a little device-tree frequency-limits moment.

πŸ’… Actions and configuration


πŸ¦‹ Scanning and BSS list handling

  • Scanning and BSS list handling(9) β€” the whole chapter, go read it bestie.
  • 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) β€” scan requests, scheduled-scan plans, match sets, and the signal type enum.
  • struct cfg80211_inform_bss(9), struct cfg80211_bss_ies(9), struct cfg80211_bss(9), ieee80211_bss_get_elem(9), ieee80211_bss_get_ie(9) β€” the BSS objects themselves and how you dig elements out of them.
  • 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) β€” auth/assoc/deauth/disassoc requests, ML reconf, IBSS params.
  • 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) β€” connect params, PMKSA, packet patterns, WoWLAN and coalesce, the sleepy-time squad 😴
  • 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) β€” wakeup info, GTK rekey, FT IEs, mgmt tx params, DSCP exceptions/ranges and the QoS map.

🧚 NAN and friends

  • Neighbor Awareness Networking (NAN)(9) β€” yes it gets a capital-letter moment, she earned it.
  • 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) β€” the full NAN set, schedules and filters and functions included.
  • 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) β€” PMK conf, external auth, FTM stats, the entire PMSR request/result stack, OWE updates, and mgmt frame registrations.

πŸ‘‘ wiphy central


⭐ Utility functions


🌸 Regulatory enforcement infrastructure


πŸ’œ everything else, and yes there's more

aaaand that's the whole list, every last one, zero skips πŸ’–

okay the cross-reference list is long and we're still going, bestie β€” grab a snack, we're finishing the scroll πŸ’…










that's the whole list, bestie β€” 64 cross-refs deep and we made it 🫢 no skipping, every single one accounted for.

and that's a wrap on struct rate_info(9) πŸ’– sourced from ./include/net, dated October 2026, living at struct rate_info(9) β€” go forth and rate some info, you absolute icon πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from