STRUCT FQ_TIN(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct fq_tin(9) πŸ’–

okay so this is a page from the Kernel API Manual, and today's main character is struct fq_tin β€” yes bestie, we're doing kernel networking, and yes, it's iconic.


✨ NAME ✨

struct fq_tin β€” literally just a logical container of fq_flow. that's the whole vibe. it holds flows. it's a tin of flows. slay πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole struct, character for character, no cap:

struct fq_tin {
    struct list_head new_flows;
    struct list_head old_flows;
    struct list_head tin_list;
    struct fq_flow default_flow;
    u32 backlog_bytes;
    u32 backlog_packets;
    u32 overlimit;
    u32 collisions;
    u32 flows;
    u32 tx_bytes;
    u32 tx_packets;
 };

look at all those fields. gorgeous. πŸ¦‹


🫢 Members 🫢

  • new_flows β€” a linked list of fq_flow. the fresh ones. the new arrivals. the ones that just walked in πŸ’…
  • old_flows β€” a linked list of fq_flow. the ones that have been around a minute. still valid, still serving πŸŽ€

πŸ‘‘ Description πŸ‘‘

so what's the point of this thing? struct fq_tin is used to group fq_flows into a logical aggregate. that's the tea πŸ”₯

and the way it pulls packets out of the associated flows? a DRR++ scheme is used to pull interleaved packets out of them. yes, DRR++ β€” that's the actual name, i'm not making it up, i would never πŸ’€

so the flows are all chilling in these lists, and DRR++ does the work of interleaving packets out of them. ikyk. ⭐


🌈 SEE ALSO 🌈

  • Kernel file ./include/net/fq.h
  • struct fq_flow(9)
  • struct fq(9)

go read those too, bestie, they're friends of the family πŸ’œ


and that's the page!! this one lives in ./include/net and the version tag says October 2026 β€” so yeah, future-dated kernel docs, main character energy fr fr πŸŒΈβœ¨πŸ’–

πŸ“¦ where this page comes from