STRUCT IWL_MVM_STA_STATE_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

struct iwl_mvm_sta_state_ops β€” the callback squad for the sta_state() ops πŸ’… (this one's from the Kernel API Manual, bestie, so you know it's official)


✨ SYNOPSIS ✨

struct iwl_mvm_sta_state_ops {
    int (*add_sta)(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
struct ieee80211_sta *sta);
    int (*update_sta)(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
struct ieee80211_sta *sta);
    int (*rm_sta)(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct
ieee80211_sta *sta);
    int (*mac_ctxt_changed)(struct iwl_mvm *mvm, struct ieee80211_vif
*vif, bool force_assoc_off);
 };

okay so it's literally just a struct full of function pointers πŸŽ€ four of them, each one a lil designated driver for a different sta_state moment. no cap.


πŸ¦‹ Members πŸ¦‹

  • add_sta β€” pointer to the function that adds a new sta ✨ (yes, the name literally tells you what it does, we love a self-documenting king πŸ‘‘)
  • update_sta β€” pointer to the function that updates a sta πŸ”₯
  • rm_sta β€” pointer to the functions that removes a sta πŸ’€ (the original says "functions", plural, so I'm passing that along untouched, don't come for me πŸ™ˆ)
  • mac_ctxt_changed β€” pointer to the function that handles a change in mac ctxt 🧚

πŸ’– Description πŸ’–

So here's the tea β˜•: both the MLD and non-MLD versions of sta_state are, like, almost identical β€” the only difference between them is these function calls. That's it. That's the whole plot.

So instead of duplicating the entire vibe, each version just sends its own specific function calls over to iwl_mvm_mac_sta_state_common. Shared logic stays shared, version-specific behaviour gets slotted in through this little struct of callbacks. it's giving "we're not doing copy-paste in this house" 🫢 iconic, honestly.


🌈 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 - 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)
bestie, that's a lot of cross-references β€” go read them, I promise it's worth it πŸ’œ

and that's the whole page!! πŸŽ€ brought to you by ./drivers/net/wireless/intel/i..., stamped October 2026, and it's still out here being struct iwl_mvm_sta_state_ops(9) β€” slay, we stan a stable API legend πŸ‘‘βœ¨ byeee πŸ’…

πŸ“¦ where this page comes from