STRUCT NFP_QDISC(9)
β¨ struct nfp_qdisc π (Kernel API Manual energy, bestie)
okay so this is the whole entire struct nfp_qdisc β it's literally the tracked TC Qdisc, like the kernel's little receipt for a qdisc it's keeping an eye on. It lives in the Kernel API Manual, and ngl it's giving "very demure, very mindful bookkeeping" π
πΈ NAME πΈ
struct nfp_qdisc β tracked TC Qdisc. That's it, that's the whole vibe. She tracks, she qdiscs, she slays β¨
π¦ SYNOPSIS π¦
struct nfp_qdisc {
struct net_device *netdev;
enum nfp_qdisc_type type;
u32 handle;
u32 parent_handle;
unsigned int use_cnt;
unsigned int num_children;
struct nfp_qdisc **children;
bool params_ok;
bool offload_mark;
bool offloaded;
union {
struct {
struct nfp_alink_stats stats;
struct nfp_alink_stats prev_stats;
} mq;
struct {
unsigned int num_bands;
struct {
bool ecn;
u32 threshold;
struct nfp_alink_stats stats;
struct nfp_alink_stats prev_stats;
struct nfp_alink_xstats xstats;
struct nfp_alink_xstats prev_xstats;
} band[MAX_DPs];
} red;
};
};
like look at her. nested unions, arrays of bands, MAX_DPs just vibing there at the end of the band array. icon behavior fr fr π
π Members π
okay bestie let's go through every single field, no skipping, no cap:
netdevβ the netdev on which this Qdisc was created. her home address basically πtypeβ the Qdisc type. which flavor of qdisc she is.handleβ the handle of this Qdisc.parent_handleβ the handle of the parent. β οΈ fair warning: this is unreliable if the Qdisc was grafted β so like, don't trust her after a glow-up, she's been moved around πuse_cntβ number of attachment points in the hierarchy. how many places are holding onto her.num_childrenβ the current size of thechildrenarray.childrenβ pointers to children. her little offspring pointers π«Άparams_okβ parameters of this Qdisc are OK for offload. the vibe check result, basically.offload_markβ offload refresh state β selected for offload. lowkey a "you're on the list" situation.offloadedβ the Qdisc is currently offloaded to the HW. she's out there, in the hardware, living her best life π₯{unnamed_union}β anonymous. no name, just mystery π΅οΈββοΈmqβ MQ Qdisc specific parameters and state.mq.statsβ current stats of the MQ Qdisc.mq.prev_statsβ previously reportedmq.stats.redβ RED Qdisc specific parameters and state.red.num_bandsβ number of valid entries in thered.bandtable.red.bandβ per-band array of RED instances.red.band.ecnβ ECN marking is enabled (rather than drop). mark, don't drop, periodt β¨red.band.thresholdβ the ECN marking threshold.red.band.statsβ current stats of the RED Qdisc.red.band.prev_statsβ previously reportedred.stats.red.band.xstatsβ extended stats for RED β current.red.band.prev_xstatsβ extended stats for RED β previously reported. yes she keeps receipts of her receipts π
π SEE ALSO π
- Kernel file
./drivers/net/ethernet/netronome/nfp/abm/main.hβ that's where she actually lives, go say hi π§ struct nfp_abm(9)struct nfp_alink_stats(9)struct nfp_alink_xstats(9)struct nfp_abm_link(9)
the whole friend group honestly. go read all of them, iykyk π
okay that's the page!! no notes, she ate π
kiss kiss, this was struct nfp_qdisc(9) from the Kernel API Manual, coming at you from ./drivers/net/ethernet/netrono... (yes it got cut off bestie, that's literally how it's printed) and dated October 2026 β see u in the next man page, mwah π
π¦ 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