STRUCT IWL_HE_PKT_EXT_V2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iwl_he_pkt_ext_v2 β€” a Kernel API Manual moment

okay so bestie, we're in the kernel API manual for struct iwl_he_pkt_ext_v2, and it's literally all about QAM thresholds ✨

The required PPE is set via the HE Capabilities IE, per Nss x BW x MCS. Keep up, because the IE is organized in the following way: support for the Nss x BW (or RU) matrix is (0=SISO, 1=MIMO2) x (0-20MHz, 1-40MHz, 2-80MHz, 3-160MHz) 🌈

Each entry contains 2 QAM thresholds for 8us and 16us, and the constellation lineup is iconic:

  • 0=BPSK
  • 1=QPSK
  • 2=16QAM
  • 3=64QAM
  • 4=256QAM
  • 5=1024QAM
  • 6=RES
  • 7=NONE

i.e. QAM_th1 < QAM_th2, such that if TX uses QAM_tx:

  • QAM_tx < QAM_th1 --> PPE=0us
  • QAM_th1 <= QAM_tx < QAM_th2 --> PPE=8us
  • QAM_th2 <= QAM_tx --> PPE=16us

✨ SYNOPSIS ✨

like, the shape of it, fr fr:

struct iwl_he_pkt_ext_v2 {
    u8 pkt_ext_qam_th[MAX_HE_SUPP_NSS][MAX_CHANNEL_BW_INDX_API_D_VER_2][2];
};

πŸŽ€ Members πŸŽ€

  • pkt_ext_qam_th β€” QAM thresholds 🫢 For each Nss/Bw, define 2 QAM thrsholds (0..5). For rates below the low_th, no need for PPE. For rates between low_th and high_th, you need 8us PPE. For rates equal or higher then the high_th, you need 16us PPE. And the indexing goes Nss (0-siso, 1-mimo2) x BW (0-20MHz, 1-40MHz, 2-80MHz, 3-160MHz, 4-320MHz) x (0-low_th, 1-high_th) πŸ‘‘

🌸 SEE ALSO 🌸

Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/mac.h, plus the whole friend group:

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

bestie this page lives at ./drivers/net/wireless/intel/i... and it's dated October 2026 β€” that's the whole struct iwl_he_pkt_ext_v2(9) vibe check, no cap πŸ’–

okay that's the whole page, you ate that πŸ“ mwah πŸ’œ

πŸ“¦ where this page comes from