STRUCT IWL_MLD_WOWLAN_STATUS(9)
β¨ NAME β¨
struct iwl_mld_wowlan_status β bestie, this is the struct that holds all the wowlan status data from every single wowlan notification π it's giving "one struct to rule them all" and honestly? iconic.
π¦ SYNOPSIS π¦
struct iwl_mld_wowlan_status {
u32 wakeup_reasons;
u64 replay_ctr;
u16 pattern_number;
u16 last_qos_seq;
u32 num_of_gtk_rekeys;
u8 tid_offloaded_tx;
u8 *wake_packet;
u32 wake_packet_length;
u32 wake_packet_bufsize;
struct iwl_mld_mcast_key_data gtk[WOWLAN_GTK_KEYS_NUM];
struct iwl_mld_mcast_key_data igtk;
struct iwl_mld_mcast_key_data bigtk[WOWLAN_BIGTK_KEYS_NUM];
struct {
struct ieee80211_key_seq aes_seq[IWL_MAX_TID_COUNT];
struct ieee80211_key_seq tkip_seq[IWL_MAX_TID_COUNT];
} ptk;
int num_mlo_keys;
struct iwl_mld_wowlan_mlo_key mlo_keys[WOWLAN_MAX_MLO_KEYS];
};
look at that nesting in ptk, we love a struct-in-a-struct moment π«Ά
π MEMBERS π
okay so let's go field by field, no skipping, we do not leave anyone out in this house π
wakeup_reasonsβ the wakeup reasons themselves, seeenum iwl_wowlan_wakeup_reasonfor the actual list π₯replay_ctrβ the GTK rekey replay counter, au64because we're fancy like thatpattern_numberβ how many patterns matched on packetslast_qos_seqβ the QoS sequence counter of the offloaded tidnum_of_gtk_rekeysβ how many GTK rekeys happened during D3tid_offloaded_txβ the tid the firmware uses to transmit data packets while in wowlanwake_packetβ the wakeup packet we received π¦ (it's au8 *, so yeah, pointer to the goods)wake_packet_lengthβ the wake packet lengthwake_packet_bufsizeβ the wake packet bufsizegtkβ data of the last two used gtk's by the FW upon resume (WOWLAN_GTK_KEYS_NUMof them, it's an array)igtkβ data of the last used igtk by the FW upon resumebigtkβ data of the last two used gtk's by the FW upon resume (WOWLAN_BIGTK_KEYS_NUMarray, and yes they wrote "gtk's" here too, we keep it π)ptkβ the last seq numbers per tid passed by the FW, and it holds them in both tkip and aes formats β hence theaes_seq[IWL_MAX_TID_COUNT]andtkip_seq[IWL_MAX_TID_COUNT]inside πnum_mlo_keysβ number ofstruct iwl_mld_wowlan_mlo_keystructsmlo_keysβ array of MLO keys, sizedWOWLAN_MAX_MLO_KEYS
ngl, if you're touchingptk, remember it's dual-format: aes and tkip,IWL_MAX_TID_COUNTof each. don't forget half of it, bestie π
π SEE ALSO π
- the kernel file
./drivers/net/wireless/intel/iwlwifi/mld/d3.c enum iwl_mld_d3_notif(9)struct iwl_mld_netdetect_res(9)struct iwl_mld_resume_data(9)
iykyk, go read d3.c, it's the whole vibe π
okay that's the page!! π this one came straight out of ./drivers/net/wireless/intel/i... (yes, the truncated path, we love a cliffhanger) and it's dated October 2026 β so like, future vibes, periodt β¨π
π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms