STRUCT IWL_HE_STA_CONTEXT_CMD_V3(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay bestie, so struct iwl_he_sta_context_cmd_v3 is literally the struct that configures the FW (firmware, iykyk) to work with an HE AP. that's it. that's the whole vibe. it's a Kernel API Manual page and we're gonna get through it together πŸ’–


✨ SYNOPSIS ✨

here's the whole squad, member by member, no cap:

struct iwl_he_sta_context_cmd_v3 {
    u8 sta_id;
    u8 tid_limit;
    u8 reserved1;
    u8 reserved2;
    __le32 flags;
    u8 ref_bssid_addr[6];
    __le16 reserved0;
    __le32 htc_flags;
    u8 frag_flags;
    u8 frag_level;
    u8 frag_max_num;
    u8 frag_min_size;
    struct iwl_he_pkt_ext_v2 pkt_ext;
    u8 bss_color;
    u8 htc_trig_based_pkt_ext;
    __le16 frame_time_rts_th;
    u8 rand_alloc_ecwmin;
    u8 rand_alloc_ecwmax;
    __le16 puncture_mask;
    struct iwl_he_backoff_conf trig_based_txf[AC_NUM];
    u8 max_bssid_indicator;
    u8 bssid_index;
    u8 ema_ap;
    u8 profile_periodicity;
    u8 bssid_count;
    u8 reserved4[3];
 };

like, look at all those fields. main character energy fr fr 🌟


πŸ¦‹ Members πŸ¦‹

time for the roll call, bestie. every single one, in order, periodt:

  • sta_id β€” the STA id. that's the whole thing. 🫢
  • tid_limit β€” max num of TIDs in TX HE-SU multi-TID agg. and the values? 0 β€” bad value (πŸ™ˆ), 1 β€” multi-tid not supported, 2..8 β€” tid limit. memorize it, i'm serious.
  • reserved1 β€” reserved byte for future use. it's just sitting there, being mysterious. πŸ’…
  • reserved2 β€” reserved byte for future use. twin of reserved1. iconic honestly.
  • flags β€” see iwl_11ax_sta_ctxt_flags. that's where the real lore is.
  • ref_bssid_addr β€” reference BSSID used by the AP.
  • reserved0 β€” reserved 2 bytes for aligning the ref_bssid_addr field to 8 bytes. not me being obsessed with alignment 😭 it's giving structural integrity.
  • htc_flags β€” which features are supported in HTC.
  • frag_flags β€” frag support in A-MSDU.
  • frag_level β€” frag support level. yes there's a level. yes it matters.
  • frag_max_num β€” max num of "open" MSDUs in the receiver (in power of 2). note the quotes around "open" β€” that's not me, that's the manual, i don't make the rules πŸŽ€
  • frag_min_size β€” min frag size (except last frag). last frag said "not today" πŸ’€
  • pkt_ext β€” optional, exists according to PPE-present bit in the HE-PHY capa. optional!! so if it ghosts you, that's allowed.
  • bss_color β€” 11ax AP ID that is used in the HE SIG-A to mark inter BSS frame.
  • htc_trig_based_pkt_ext β€” default PE in 4us units.
  • frame_time_rts_th β€” HE duration RTS threshold, in units of 32us. units matter, don't skip them. πŸ”₯
  • rand_alloc_ecwmin β€” random CWmin = 2**ECWmin-1.
  • rand_alloc_ecwmax β€” random CWmax = 2**ECWmax-1. matching set with the one above, we love a duo ✨
  • puncture_mask β€” puncture mask for EHT.
  • trig_based_txf β€” MU EDCA Parameter set for the trigger based traffic queues. it's an array, [AC_NUM], we see you πŸ‘‘
  • max_bssid_indicator β€” indicator of the max bssid supported on the associated bss.
  • bssid_index β€” index of the associated VAP.
  • ema_ap β€” AP supports enhanced Multi BSSID advertisement.
  • profile_periodicity β€” number of Beacon periods that are needed to receive the complete VAPs info. so like, patience is a virtue 🌸
  • bssid_count β€” actual number of VAPs in the MultiBSS Set. actual number, bestie. the real one. 😀
  • reserved4 β€” alignment. just alignment. [3] bytes of pure alignment vibes. 🧚

🌈 SEE ALSO 🌈

everything else in the family, go read these next β€” it lives in Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/mac.h, and it's adjacent to:

enum iwl_mac_protection_flags(9), enum iwl_mac_types(9), enum iwl_tsf_id(9), struct iwl_mac_data_ap(9), struct iwl_mac_data_ibss(9), enum iwl_mac_data_policy(9), struct iwl_mac_data_sta(9), struct iwl_mac_data_go(9), struct iwl_mac_data_p2p_sta(9), struct iwl_mac_data_pibss(9), enum iwl_mac_filter_flags(9), enum iwl_mac_qos_flags(9), struct iwl_ac_qos(9), struct iwl_mac_ctx_cmd(9), struct iwl_missed_beacons_notif_ver_3(9), struct iwl_missed_beacons_notif_v4(9), struct iwl_he_backoff_conf(9), enum iwl_he_pkt_ext_constellations(9), struct iwl_he_pkt_ext_v1(9), struct iwl_he_pkt_ext_v2(9), enum iwl_he_sta_ctxt_flags(9), enum iwl_he_htc_flags(9), struct iwl_he_sta_context_cmd_v1(9), struct iwl_he_sta_context_cmd_v2(9), struct iwl_he_monitor_cmd(9)

like, that's a whole friend group. v1, v2, and v3 walked so the rest could run πŸ’…


aaaand that's the page!! πŸ’œ giant slay for making it to the end, bestie β€” you literally know the entire iwl_he_sta_context_cmd_v3 struct now πŸŽ‰ the source is ./drivers/net/wireless/intel/i..., dated October 2026, and this was struct iwl_h...ntext_cmd_v3(9) β€” catch you on the next one! πŸ“πŸ¦‹πŸ’–

πŸ“¦ where this page comes from