STRUCT IWL_RX_MPDU_DESC(9)
π NAME π
struct iwl_rx_mpdu_desc β the RX MPDU descriptor, bestie. That's it, that's the whole vibe. This is the 9th section kernel API manual page, and we're about to read it together like it's the group chat at 2am π¦
β¨ SYNOPSIS β¨
okay so here's literally the whole shape of it, no cap, character for character:
struct iwl_rx_mpdu_desc {
__le16 mpdu_len;
u8 mac_flags1;
u8 mac_flags2;
u8 amsdu_info;
__le16 phy_info;
u8 mac_phy_band;
union {
struct {
__le16 raw_csum;
union {
__le16 l3l4_flags;
__le16 phy_data4;
};
};
__le32 phy_eht_data4;
};
__le32 status;
__le32 reorder_data;
union {
struct iwl_rx_mpdu_desc_v1 v1;
struct iwl_rx_mpdu_desc_v3 v3;
};
};
look at her. structure icon behavior. the nesting? the anonymous unions? she ate π
π Members π
breaking it down field by field, because every single one matters and we're not skipping a single one, fr fr:
mpdu_lenβ the MPDU length. the literal length bestie πΈmac_flags1β typed asenum iwl_rx_mpdu_mac_flags1mac_flags2β typed asenum iwl_rx_mpdu_mac_flags2amsdu_infoβ typed asenum iwl_rx_mpdu_amsdu_infophy_infoβ typed asenum iwl_rx_mpdu_phy_infomac_phy_bandβ MAC/link ID, PHY ID, band; seeenum iwl_rx_mpdu_mac_phy_band. she's holding three whole identities at once, main character energy π{unnamed_union}β anonymous. no name, all mystery π{unnamed_struct}β anonymous too. nesting dolls but make it kernel πraw_csumβ raw checksum (alledgedly unreliable). alledgedly. that spelling is in the original and I'm not touching it, and also the unreliable part is not a joke, keep an eye on her π{unnamed_union}β anonymous again. we stay unbothered π«Άl3l4_flagsβ typed asenum iwl_rx_l3l4_flagsphy_data4β depends on info type, seephy_data1phy_eht_data4β depends on info type, seephy_data1statusβ typed asenum iwl_rx_mpdu_statusreorder_dataβ typed asenum iwl_rx_mpdu_reorder_data{unnamed_union}β anonymous (yes, another one) β¨v1β version 1 of the remaining RX descriptor, seestruct iwl_rx_mpdu_desc_v1v3β version 3 of the remaining RX descriptor, seestruct iwl_rx_mpdu_desc_v3
note that the union at the end gives you eitherv1orv3β it's one or the other, not both. pick your fighter π₯
π SEE ALSO π
the whole friend group, all of them, linked from the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/rx.h:
struct iwl_rx_phy_info(9)struct iwl_rx_mpdu_res_start(9)enum iwl_rx_phy_flags(9)enum iwl_mvm_rx_status(9)struct iwl_rx_mpdu_desc_v1(9)struct iwl_rx_mpdu_desc_v3(9)struct iwl_rx_no_data(9)struct iwl_rx_no_data_ver_3(9)enum iwl_bar_frame_release_sta_tid(9)enum iwl_bar_frame_release_ba_info(9)struct iwl_bar_frame_release(9)struct iwl_rss_config_cmd(9)struct iwl_rxq_sync_cmd(9)struct iwl_rxq_sync_notification(9)enum iwl_mvm_pm_event(9)struct iwl_mvm_pm_state_notification(9)struct iwl_ba_window_status_notif(9)struct iwl_rfh_queue_data(9)struct iwl_rfh_queue_config(9)struct iwl_beacon_filter_notif_v1(9)struct iwl_beacon_filter_notif(9)struct iwl_rx_phy_air_sniffer_ntfy(9)
okay and that's the page!! mwah π source path got truncated to ./drivers/net/wireless/intel/i... and the date on it is October 2026, and the whole thing lives under the manual name struct iwl_rx_mpdu_desc(9) β go read it again if you need to, i'm obsessed, bye bestie π§π
π¦ 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