STRUCT NFP_QDISC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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 the children array.
  • 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 reported mq.stats.
  • red β€” RED Qdisc specific parameters and state.
  • red.num_bands β€” number of valid entries in the red.band table.
  • 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 reported red.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