STRUCT MVM_STATISTICS_RX_NON_PHY(9)
π struct mvm_statistics_rx_non_phy(9) β a lil' Kernel API Manual moment
okay so bestie, welcome to section 9 of the kernel API manual, and today's main character is struct mvm_statistics_rx_non_phy β literally the non-PHY RX statistics struct. yes that's a mouthful, no I will not be shortening it, we respect the full name here π«Ά
β¨ NAME β¨
struct mvm_statistics_rx_non_phy β non-PHY RX statistics. that's it, that's the whole vibe check. it's a bag of counters that tells you what the radio heard when it wasn't busy being all PHY about it π
πΈ SYNOPSIS πΈ
struct mvm_statistics_rx_non_phy {
__le32 bogus_cts;
__le32 bogus_ack;
__le32 non_channel_beacons;
__le32 channel_beacons;
__le32 num_missed_bcon;
__le32 adc_rx_saturation_time;
__le32 ina_detection_search_time;
__le32 beacon_silence_rssi_a;
__le32 beacon_silence_rssi_b;
__le32 beacon_silence_rssi_c;
__le32 interference_data_flag;
__le32 channel_load;
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 beacon_rssi_c;
__le32 beacon_energy_a;
__le32 beacon_energy_b;
__le32 beacon_energy_c;
__le32 num_bt_kills;
__le32 mac_id;
};
look at her. twenty __le32 fields, all little-endian, all iconic, all accounted for π₯
π¦ MEMBERS π¦
twenty members, zero skips, let's go member by member because we do NOT leave anyone out:
bogus_ctsβ CTS received when you weren't even expecting a CTS. rude. unexpected. counted anyway πbogus_ackβ ACK received when not expecting an ACK. same energy, different frame.non_channel_beaconsβ beacons that have our bss id but aren't on our serving channel. so close and yet so far πchannel_beaconsβ beacons with our bss id and sitting right in our serving channel. these are the good ones πnum_missed_bconβ number of missed beacons. ngl this one hurts to look at.adc_rx_saturation_timeβ count, in 0.8us units, of the time the ADC was in saturation. yes, 0.8us. not 1us. remember that. β¨ina_detection_search_timeβ total time (in 0.8us) spent searching for INA. same unit, keep it consistent bestie πbeacon_silence_rssi_aβ RSSI silence after beacon frame. antenna A, doing her thing πbeacon_silence_rssi_bβ RSSI silence after beacon frame. antenna B, same energy πΈbeacon_silence_rssi_cβ RSSI silence after beacon frame. antenna C, completing the trio πinterference_data_flagβ a flag for interference data availability: it's1when the data is available. literally just tell me if you have the data, king πchannel_loadβ counts RX Enable time in uSec. note: uSec here, 0.8us up there. do not mix them up fr frbeacon_rssi_aβ beacon RSSI on antenna A π‘beacon_rssi_bβ beacon RSSI on antenna B π‘beacon_rssi_cβ beacon RSSI on antenna C π‘beacon_energy_aβ beacon energy on antenna A β‘beacon_energy_bβ beacon energy on antenna B β‘beacon_energy_cβ beacon energy on antenna C β‘num_bt_killsβ number of BT "kills" (frame TX aborts). quoting "kills" because that's literally how the manpage says it and I am not about to editorialise πmac_idβ mac ID. short, sweet, essential. we stan a minimal field π«Ά
π SEE ALSO π
the friend group is huge, buckle up. all of these live in the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/stats.h:
struct mvm_statistics_load(9)enum iwl_statistics_notif_flags(9)enum iwl_statistics_cmd_flags(9)struct iwl_statistics_cmd(9)enum iwl_statistics_notify_type_id(9)enum iwl_statistics_cfg_flags(9)struct iwl_system_statistics_cmd(9)enum iwl_fw_statistics_type(9)struct iwl_statistics_ntfy_hdr(9)struct iwl_stats_ntfy_per_link(9)struct iwl_stats_ntfy_part1_per_link(9)struct iwl_stats_ntfy_per_mac(9)struct iwl_stats_ntfy_per_phy_v1(9)struct iwl_stats_ntfy_coex(9)struct iwl_stats_ntfy_per_phy(9)struct iwl_stats_ntfy_per_sta(9)struct iwl_system_statistics_notif_oper_v3(9)struct iwl_system_statistics_notif_oper(9)struct iwl_system_statistics_part1_notif_oper(9)struct iwl_system_statistics_end_notif(9)struct iwl_statistics_operational_ntfy(9)struct iwl_statistics_operational_ntfy_ver_14(9)struct iwl_statistics_phy_ntfy(9)struct iwl_statistics_mac_ntfy(9)struct iwl_statistics_rx_ntfy(9)struct iwl_statistics_tx_ntfy(9)struct iwl_statistics_duration_ntfy(9)struct iwl_statistics_he_ntfy(9)
like I said. huge friend group. go read them, they're all lovely π§
ok and a tiny heads-up before you go: everything above is a straight-up field dump, so don't go assuming behaviour the page doesn't state. the manpage gives you fields, units, and flags β nothing more, no cap π
that's the whole page bestie, hope the stats struct is now your best friend πβ¨
sign-off time π β this little slice of documentation comes straight from ./drivers/net/wireless/intel/i... (yes, the path really does get truncated like that in the footer, it's giving mysterious) and it's dated October 2026. mwah, go forth and count your beacons ππ
π¦ 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