STATION TABLE - INTERNAL STATIONS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ station table - internal stations πŸŽ€

ok so this one's from the Kernel API Manual, and it's giving very much "behind the scenes lore" energy. buckle up bestie πŸ’–


✨ DESCRIPTION ✨

okay so here's the situation: the FW needs a few internal stations that are not reflected in mac80211. like, they just don't show up there. who are they? we're talking:

  • the broadcast station in AP / GO mode
  • the AUX sta, which is for scanning and P2P device (during the GO negotiation)

for these kinds of stations we have the iwl_mvm_int_sta struct, and it holds the data that's relevant for them β€” pulled from both iwl_mvm_sta and ieee80211_sta. two icons sharing one closet, iykyk 🫢

usually the data for these stations is static, so no locking is required, and there's no TID data either since that's also not needed. lowkey chill like that ✨

⚠️ but here's the one thing you actually need to note: these stations have an ID in the fw, but not in mac80211. so in order to "reserve" them a sta_id in fw_id_to_mac_id, we fill ERR_PTR(-EINVAL) in this mapping β€” and all other dereferencing of pointers from this mapping needs to check that the value is not error or NULL. no cap, do the check or it's gonna be a whole thing 😭

currently there is only one auxiliary station for scanning, initialized on init. that's it, that's the whole squad πŸ’…


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/mvm/sta.h
  • DQA - Dynamic Queue Allocation -introduction(9)
  • station table - introduction(9)
  • station table - locking(9)
  • station table - AP Station in STA mode(9)
  • station table - Drain vs. Flush(9)
  • station table - fw restart(9)
  • AP mode - PS(9)
  • enum iwl_mvm_agg_state(9)
  • struct iwl_mvm_tid_data(9)
  • enum iwl_mvm_rxq_notif_type(9)
  • struct iwl_mvm_internal_rxq_notif(9)
  • struct iwl_mvm_rxq_dup_data(9)
  • struct iwl_mvm_link_sta(9)
  • struct iwl_mvm_sta(9)
  • struct iwl_mvm_int_sta(9)
  • iwl_mvm_sta_send_to_fw(9)
  • struct iwl_mvm_sta_state_ops(9)

and that's the whole page, bestie!! πŸ¦‹ this one came from ./drivers/net/wireless/intel/i... (yeah the path got cut off, not my fault πŸ’€), dated October 2026, and it lives under the name station tab...nal stations(9) β€” also truncated, the terminal is just being mysterious today πŸ™ˆ go read the whole thing, mwah πŸ’œ

πŸ“¦ where this page comes from