STRUCT DPNI_CONGESTION_NOTIFICATION_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct dpni_congestion_notification_cfg(9) β€” like, the congestion notification config bestie ✨

okay so real talk: this is a page from the Kernel API Manual and it's all about struct dpni_congestion_notification_cfg, which is genuinely just the little bundle of settings that tells your NIC when to start panicking about congestion and when to chill out again. no cap, it's giving "thermostat but for network traffic" 🌑️


πŸŽ€ NAME πŸŽ€

struct dpni_congestion_notification_cfg β€” congestion notification configuration. that's it, that's the whole vibe πŸ¦‹


✨ SYNOPSIS ✨

struct dpni_congestion_notification_cfg {
    enum dpni_congestion_unit units;
    u32 threshold_entry;
    u32 threshold_exit;
    u64 message_ctx;
    u64 message_iova;
    struct dpni_dest_cfg dest_cfg;
    u16 notification_mode;
 };

look at her. seven fields. absolute main character energy πŸ‘‘


🌸 Members 🌸

honestly the member list is where it gets juicy, so let's go one by one, bestie:

  • units β€” the units type. that's the unit system your thresholds are measured in, iykyk πŸ“
  • threshold_entry β€” the moment you go above this threshold, boom, you've entered a congestion state 😭 set it to '0' to disable it entirely (yes, zero means off, don't ask, that's just how it is).
  • threshold_exit β€” and when you drop below this one, you exit the congestion state. bye bestie, we're calm again 🫢
  • message_ctx β€” the context that will be part of the CSCN message. it rides along with the notification, cute little passenger πŸŽ€
  • message_iova β€” the I/O virtual address. important: it must be in DMA-able memory, and it must be 16B aligned. it's only valid if 'DPNI_CONG_OPT_WRITE_MEM_<X>' is contained in 'options' β€” so like, no DPNI_CONG_OPT_WRITE_MEM_<X> in options, no valid message_iova. periodt πŸ’…
  • dest_cfg β€” the destination config, because CSCN can be send to either DPIO or DPCON WQ channel. two destinations, pick your fighter 🌈
  • notification_mode β€” a mask of available options; use 'DPNI_CONG_OPT_<X>' values in there. it's a mask, so stack those flags like accessories ✨
bestie reminder: message_iova has rules. DMA-able memory + 16B aligned + gated on 'DPNI_CONG_OPT_WRITE_MEM_<X>' being in 'options'. don't skip the vibe check on that one, fr fr πŸ™ˆ

πŸ‘‘ SEE ALSO πŸ‘‘

the whole extended friend group, no one left out πŸ’–

Kernel file ./drivers/net/ethernet/freescale/dpaa2/dpni.h


and that's the page!! source/version is ./drivers/net/ethernet/freesca... dated October 2026, and yes the footer still says struct dpni...fication_cfg(9) because the terminal truncates and we respect the truncation πŸ˜ŒπŸ’œ stay congested-aware, bestie 🧚⭐

πŸ“¦ where this page comes from