STRUCT IWL_HE_STA_CONTEXT_CMD_V2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iwl_he_sta_context_cmd_v2 β€” NAME πŸ’–

okay so bestie, welcome to the Kernel API Manual ✨ this page is literally all about struct iwl_he_sta_context_cmd_v2 β€” the thing that configures the firmware to work with an HE AP. yes. that's the whole vibe. HE AP. firmware. slay 🫢


🌸 SYNOPSIS 🌸

like, here's the whole struct, character for character, no cap:

struct iwl_he_sta_context_cmd_v2 {
    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_v1 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 reserved3;
    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];
 };

it's giving field after field after field and honestly? iconic πŸ’…


πŸ¦‹ Members πŸ¦‹

okay so let's go through every single one because we do not skip. periodt.

  • sta_id β€” the STA id. that's it, that's the whole thing πŸ’–
  • tid_limit β€” max num of TIDs in TX HE-SU multi-TID agg. and listen, the values matter: 0 = bad value (do not do this), 1 = multi-tid not supported, 2..8 = tid limit. iykyk ✨
  • reserved1 β€” reserved byte for future use πŸ™ˆ (future us is gonna be so grateful)
  • reserved2 β€” reserved byte for future use, again. two of them. matching set πŸŽ€
  • flags β€” see iwl_11ax_sta_ctxt_flags. go look, bestie πŸ‘‘
  • ref_bssid_addr β€” reference BSSID used by the AP πŸ¦‹
  • reserved0 β€” reserved 2 bytes for aligning the ref_bssid_addr field to 8 bytes. it's an alignment thing, it's fine, it's doing its job 🌸
  • htc_flags β€” which features are supported in HTC πŸ”₯
  • frag_flags β€” frag support in A-MSDU
  • frag_level β€” frag support level
  • frag_max_num β€” max num of "open" MSDUs in the receiver (in power of 2). note the quotes around "open", that's canon πŸ’€
  • frag_min_size β€” min frag size (except last frag). last frag gets to be different, main character energy honestly ⭐
  • pkt_ext β€” optional! exists according to PPE-present bit in the HE-PHY capa. so like, conditional queen πŸ’œ
  • 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. that's 32us, not 4us, don't mix em up 😭
  • rand_alloc_ecwmin β€” random CWmin = 2**ECWmin-1 🧚
  • rand_alloc_ecwmax β€” random CWmax = 2**ECWmax-1 🧚 (yes the twin, yes the formula)
  • reserved3 β€” reserved byte for future use πŸŽ€
  • trig_based_txf β€” MU EDCA Parameter set for the trigger based traffic queues. it's an array: struct iwl_he_backoff_conf trig_based_txf[AC_NUM] πŸ’…
  • 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 ⭐
  • bssid_count β€” actual number of VAPs in the MultiBSS Set πŸ”₯
  • reserved4 β€” alignment. just alignment. that's its whole personality πŸ™ˆ (it's u8 reserved4[3], for the record)

🌈 SEE ALSO 🌈

bestie the rabbit hole is deep and honestly i'm obsessed. the source of truth lives in the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/mac.h, and then there's all of this:

  • 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_v3(9)
  • struct iwl_he_monitor_cmd(9)

v1, v2, v3 β€” it's a whole family and v2 is the middle child but we love her πŸ’–


okay and just so we're clear, this page came from ./drivers/net/wireless/intel/i... and it's dated October 2026, and the title up top is struct iwl_h...ntext_cmd_v2(9) β€” so like, that's the whole citation situation, bestie πŸŽ€

that's it! go forth and configure that firmware βœ¨πŸ’…πŸ¦‹

πŸ“¦ where this page comes from