STRUCT WIL_TID_AMPDU_RX(9)
π¦ struct wil_tid_ampdu_rx β a whole manual page, bestie π¦
Okay so this is struct wil_tid_ampdu_rx(9) from the Kernel API Manual, and honestly? It's giving "the backbone of your Wi-Fi not falling apart." Let's get into it π
β¨ NAME β¨
struct wil_tid_ampdu_rx β TID aggregation information (Rx). That's it, that's the whole name. Receive-side aggregation bookkeeping, slay.
πΈ SYNOPSIS πΈ
struct wil_tid_ampdu_rx {
struct sk_buff **reorder_buf;
unsigned long last_rx;
u16 head_seq_num;
u16 stored_mpdu_num;
u16 ssn;
u16 buf_size;
u16 ssn_last_drop;
unsigned long long total;
unsigned long long drop_dup;
unsigned long long drop_old;
bool first_time;
u16 mcast_last_seq;
unsigned long long drop_dup_mcast;
};
Copy that exactly, bestie, I'm not kidding. Every field, every type, character for character. No cap π
π Members π
Okay so here's the cast of characters, and every single one of them has a job:
reorder_bufβ the buffer to reorder incoming aggregated MPDUs. Yeah. It puts them back in order. Iconic behaviour honestly.last_rxβ jiffies of last rx activity. Like a little timestamp of the last time stuff actually happened πhead_seq_numβ head sequence number in reordering buffer. Lowkey the main character of the reorder logic πstored_mpdu_numβ number of MPDUs in reordering buffer. The headcount, fr fr.ssnβ Starting Sequence Number expected to be aggregated. It's expecting it. Manifesting, if you will β¨buf_sizeβ buffer size for incoming A-MPDUs. Know your limits, queen.ssn_last_dropβ SSN of the last dropped frame. RIP to that one, we remember πtotalβ total number of processed incoming frames. The receipts. The whole tally.drop_dupβ duplicate frames dropped for this reorder buffer. Dupes get dropped, sorry not sorry πdrop_oldβ old frames dropped for this reorder buffer. If you're late, you're late. Nothing personal π«Άfirst_timeβtruewhen this buffer used 1-st time. First-time energy! We love a debut πmcast_last_seqβ sequence number (SN) of last received multicast packet. Multicast gets its own little tracker, because of course it does π¦drop_dup_mcastβ duplicate multicast frames dropped for this reorder buffer. Yes, multicast dupes get their own counter. Separate stats, separate vibes π
π SEE ALSO π
Go look at the kernel file ./drivers/net/wireless/ath/wil6210/wil6210.h, and also these iconic siblings:
mk_cidxtid(9)parse_cidxtid(9)struct wil_tid_crypto_rx_single(9)
iykyk π§
Not me writing an entire struct page and it's literally all about dropping frames. The duality of packet processing π
Okay that's the whole thing, bestie β this page came from the kernel source file ./drivers/net/wireless/ath/wil6210/wil6210.h, dated October 2026, and it's still filed under struct wil_tid_ampdu_rx(9). Go reorder some MPDUs, you absolute queen ππ
π¦ 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