STRUCT FQ_FLOW(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

struct fq_flow(9) Β· Kernel API Manual πŸ’…

πŸŽ€ NAME πŸŽ€

struct fq_flow β€” the per traffic flow queue, bestie. Literally one queue for each traffic flow, that’s the whole assignment. ✨

✨ SYNOPSIS ✨

Okay so here’s the struct, and we are keeping it exact because we do not mess with code, periodt:

       struct fq_flow {
           struct fq_tin *tin;
           struct list_head flowchain;
           struct sk_buff_head queue;
           u32 backlog;
           int deficit;
        };

🫢 Members 🫢

  • tin β€” owner of this flow. It’s for managing collisions, i.e. when a packet hashes to an index which points to a flow that is already owned by a different tin the packet is destined to. In such case the implementer must provide a fallback flow. yes bestie, a fallback flow is required, iykyk πŸ’–
  • flowchain β€” can be linked to fq_tin's new_flows or old_flows. Used for DRR++ (deficit round robin) based round robin queuing similar to the one found in net/sched/sch_fq_codel.c. same energy as that file, fr fr ✨
  • queue β€” sk_buff queue to hold packets. the packets live here πŸ’…
  • backlog β€” number of bytes pending in the queue. The number of packets can be found in queue.qlen. bytes pending = backlog, packet count = queue.qlen πŸ”₯
  • deficit β€” used for DRR++. deficit round robin says hi πŸ¦‹

πŸ”— SEE ALSO πŸ”—

  • Kernel file ./include/net/fq.h β€” also go say hi to struct fq_tin(9) and struct fq(9). 🌈
🌸 Source/version: ./include/net Β· Date: October 2026 Β· Page: struct fq_flow(9) β€” okay love u, bye bestie! πŸ’–
πŸ“¦ where this page comes from