STATION TABLE - INTRODUCTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 STATION TABLE β€” INTRODUCTION (9) 🌸

okay so bestie, welcome to the Kernel API Manual, section 9 β€” literally the station table intro, and it's kind of a big deal. Sit down, grab a strawberry drink πŸ“, and let's get into it.


✨ NAME ✨

station table β€” introduction πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

The station table is a list of data structures that represent the stations. No cap.

In STA/P2P client mode, the driver will hold one station for the AP/GO. In GO/AP mode, the driver will have as many stations as associated clients β€” like, one per bestie who joined the group chat. πŸ‘‘

All these stations are reflected in the fw's station table, and the driver keeps the fw's station table up to date with the ADD_STA command. Stations can be removed by the REMOVE_STA command. Periodt.

All the data related to a station is held in the structure iwl_mvm_sta, which is embedded in mac80211's ieee80211_sta (in the drv_priv) area. This data includes the index of the station in the fw, per tid information (sequence numbers, Block-ack state machine, etc…). The stations are created and deleted by the sta_state callback from ieee80211_ops. It's giving very much main character energy.

The driver holds a map: fw_id_to_mac_id, and that map allows it to fetch a ieee80211_sta (and the iwl_mvm_sta embedded into it) based on a fw station index. That way, the driver is able to get the tid related data in O(1) in time sensitive paths (Tx / Tx response / BA notification). πŸš€

These paths are triggered by the fw, and the driver needs to get a pointer to the ieee80211 structure. This map helps to get that pointer quickly. Not me obsessing over a lookup table... but fr fr, she ate. πŸ”₯

🫢 Quick vibe check so nothing gets twisted: it's ADD_STA in, REMOVE_STA out, and fw_id_to_mac_id is the little black book that finds your station again in O(1).

πŸŽ€ SEE ALSO πŸŽ€

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/mvm/sta.h β€” the actual source, go read her πŸ“–
  • DQA - Dynamic Queue Allocation -introduction(9)
  • station table - locking(9)
  • station table - internal stations(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 β€” go forth and station-table responsibly. 🧚

πŸ’– sourced from ./drivers/net/wireless/intel/i..., dated October 2026, section 9 β€” mwah, bye! πŸ’–

πŸ“¦ where this page comes from