STRUCT WIL_TID_AMPDU_RX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ 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 β€” true when 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:

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