STRUCT IWL_RX_PHY_INFO(9)
π struct iwl_rx_phy_info(9) π
okay bestie, sit down, grab a boba, because we're about to get deep into the iwlwifi kernel API manual β this is a struct page from the Kernel API Manual, so it's giving very much "reference doc but make it fashion" πΈ
β¨ NAME β¨
struct iwl_rx_phy_info β the phy info struct, aka the one that shows up with REPLY_RX_PHY_CMD = 0xc0 π
lowkey the whole vibe is: it's the PHY info payload, and yes it is iconic for that π«Ά
π¦ SYNOPSIS π¦
struct iwl_rx_phy_info {
u8 non_cfg_phy_cnt;
u8 cfg_phy_cnt;
u8 stat_id;
u8 reserved1;
__le32 system_timestamp;
__le64 timestamp;
__le32 beacon_time_stamp;
__le16 phy_flags;
__le16 channel;
__le32 non_cfg_phy[IWL_RX_INFO_PHY_CNT];
__le32 rate_n_flags;
__le32 byte_count;
u8 mac_active_msk;
u8 mac_context_info;
__le16 frame_time;
};
like, look at her. every field accounted for, no notes π
π MEMBERS π
non_cfg_phy_cntβ the byte count for the non-configurable DSP phy data. she's counting bytes and she's slaying β¨cfg_phy_cntβ byte count for the configurable DSP phy data. same energy, different bucket πstat_idβ the ID of the configurable DSP phy data set. it's her little name tag πreserved1β reserved. not for us, bestie, we don't touch πsystem_timestampβGP2at on air rise. yes, exactly what it sounds like πtimestampβTSFat on air rise. the timeline queen herself πbeacon_time_stampβ beacon at on-air rise. it's giving punctual βphy_flagsβ general phy flags: band, modulation, ... (the...is canon, we don't elaborate, that's not our business π€«)channelβ the channel number. simple, clean, effective πnon_cfg_phyβ there's various implementations ofnon_cfg_phy, and this field is for all of them. versatility, we love to see it π¦rate_n_flagsβ theRATE_MCS_*situation πΈbyte_countβ the frame's byte-count, keeping receipts π§Ύmac_active_mskβ which MACs were active when the frame got received. a whole attendance sheet fr fr πmac_context_infoβ extra info about the context the frame was received in, as defined inenum iwl_mac_context_info. the backstory, the lore β¨frame_timeβ the frame's time on the air, based on byte count and frame rate calculation. math girlies rise π₯
π« DESCRIPTION π«
so here's the tea: before each Rx, the device sends this data. that's just the rules. and it contains the PHY information about the reception of the packet π like it literally arrives with the vibes pre-loaded, no cap.
π«Ά SEE ALSO π«Ά
Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/rx.h plus the whole friend group:
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_mpdu_desc(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)
that's the whole group chat, bestie. no one gets left on read π
ngl, this page is straight-up kernel documentation β read it carefully before you go poking atrx.h, okay? the struct fields are literal and the(9)tags mean business π
source: ./drivers/net/wireless/intel/i... πΈ dated October 2026 β and that's the struct iwl_rx_phy_info(9) page, done and dusted, 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