STRUCT ATH_RX_STATS(9)
π struct ath_rx_stats β RX Statistics π
okay so this is a page from the Kernel API Manual, and today's main character is struct ath_rx_stats β the receipt-keeping era of your wireless driver's receive path π§Ύβ¨ she literally counts everything that comes in the door, the good, the bad, and the CRC-cursed. no cap.
β¨ SYNOPSIS β¨
bestie, here's the whole vibe, verbatim, do not touch:
struct ath_rx_stats {
u32 rx_pkts_all;
u32 rx_bytes_all;
u32 crc_err;
u32 decrypt_crc_err;
u32 phy_err;
u32 mic_err;
u32 pre_delim_crc_err;
u32 post_delim_crc_err;
u32 decrypt_busy_err;
u32 phy_err_stats[ATH9K_PHYERR_MAX];
u32 rx_len_err;
u32 rx_oom_err;
u32 rx_rate_err;
u32 rx_too_many_frags_err;
u32 rx_beacons;
u32 rx_frags;
u32 rx_spectral;
u32 rx_spectral_sample_good;
u32 rx_spectral_sample_err;
};
like, nineteen-ish u32 counters and one very glamorous array. she's giving "spreadsheet but make it wifi" ππ
π Members π
okay so each of these fields is a little counter bestie, let me walk you through them one at a time πΈ
rx_pkts_allβ No. of total frames received, including ones that may have had errors. she counts everybody, even the messy ones πrx_bytes_allβ No. of total bytes received, including ones that may have had errors. same energy, but in bytes π’crc_errβ No. of frames with incorrect CRC value π the checksum said nodecrypt_crc_errβ No. of frames whose CRC check failed after decryption process completed ππ the decryption finished and then the CRC was like "actually no"phy_errβ No. of frames whose reception failed because the PHY encountered an error β‘ the physical layer had a whole momentmic_errβ No. of frames with incorrect TKIP MIC verification failure π€ (not that kind of mic, but honestly equally dramatic)pre_delim_crc_errβ Pre-Frame delimiter CRC error detections π© caught before the frame delimiterpost_delim_crc_errβ Post-Frame delimiter CRC error detections π© caught after the frame delimiterdecrypt_busy_errβ Decryption interruptions counter βΈοΈ the decryptor got interrupted, rudephy_err_statsβ Individual PHY error statistics π one stat per error type, sizedATH9K_PHYERR_MAX, very thorough of herrx_len_errβ No. of frames discarded due to bad length. π thrown out for being the wrong sizerx_oom_errβ No. of frames dropped due to OOM issues. π« out of memory, out of luckrx_rate_errβ No. of frames dropped due to rate errors. π¨ dropped over rate dramarx_too_many_frags_errβ Frames dropped due to too-many-frags received. π§© just so many fragments, bestierx_beaconsβ No. of beacons received. π¦ lighthouse-corerx_fragsβ No. of rx-fragements received. π§© (yes, that's how the original spells "fragements" β we keep the facts, we keep the typo, we don't touch it, periodt π )rx_spectralβ No of spectral packets received. π (also verbatim: "No of", no period, iconic)rx_spectral_sample_goodβ No. of good spectral samples β¨ the samples that ATErx_spectral_sample_errβ No. of good spectral samples ππ«Ά yes, the original says "good" here too β that's literally what's written, so that's literally what you get. no editing, no notes, we report exactly what the page says.
π SEE ALSO π
if you wanna go read the source (and honestly, slay), check out this kernel file:
./drivers/net/wireless/ath/ath9k/common-debug.h
that's the one. go be nosy, iykyk π
π¦ Sign-off π¦
this little beauty lives over in ./drivers/net/wireless/ath/ath9k, and the page itself is dated October 2026 β so yeah, future-flavoured documentation, very forward-thinking of her πβ¨ go count some frames bestie, ily, bye π«Άπ
π¦ 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