STRUCT DPNI_CONGESTION_NOTIFICATION_CFG(9)
π 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 be16Baligned. it's only valid if'DPNI_CONG_OPT_WRITE_MEM_<X>'is contained in'options'β so like, noDPNI_CONG_OPT_WRITE_MEM_<X>inoptions, no validmessage_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_iovahas rules. DMA-able memory +16Baligned + 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
DPNI_MAX_TC(9),DPNI_MAX_DPBP(9),DPNI_ALL_TCS(9),DPNI_ALL_TC_FLOWS(9),DPNI_NEW_FLOW_ID(9),DPNI_OPT_TX_FRM_RELEASE(9),DPNI_OPT_NO_MAC_FILTER(9),DPNI_OPT_HAS_POLICING(9),DPNI_OPT_SHARED_CONGESTION(9),DPNI_OPT_HAS_KEY_MASKING(9),DPNI_OPT_NO_FS(9),DPNI_OPT_SHARED_FS(9),struct dpni_pools_cfg(9),struct dpni_attr(9),DPNI_ERROR_EOFHE(9),DPNI_ERROR_FLE(9),DPNI_ERROR_FPE(9),DPNI_ERROR_PHE(9),DPNI_ERROR_L3CE(9),DPNI_ERROR_L4CE(9),enum dpni_error_action(9),struct dpni_error_cfg(9),DPNI_BUF_LAYOUT_OPT_TIMESTAMP(9),DPNI_BUF_LAYOUT_OPT_PARSER_RESULT(9),DPNI_BUF_LAYOUT_OPT_FRAME_STATUS(9),DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE(9),DPNI_BUF_LAYOUT_OPT_DATA_ALIGN(9),DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM(9),DPNI_BUF_LAYOUT_OPT_DATA_TAIL_ROOM(9),struct dpni_buffer_layout(9),enum dpni_queue_type(9),enum dpni_offload(9),union dpni_statistics(9),struct dpni_link_cfg(9),struct dpni_link_state(9),enum dpni_dist_mode(9),enum dpni_fs_miss_action(9),struct dpni_fs_tbl_cfg(9),struct dpni_rx_tc_dist_cfg(9),DPNI_FS_MISS_DROP(9),struct dpni_rx_dist_cfg(9),struct dpni_qos_tbl_cfg(9),enum dpni_dest(9),struct dpni_queue(9),struct dpni_queue_id(9),enum dpni_congestion_unit(9),enum dpni_congestion_point(9),struct dpni_dest_cfg(9),DPNI_CONG_OPT_FLOW_CONTROL(9),struct dpni_taildrop(9),struct dpni_rule_cfg(9),DPNI_FS_OPT_DISCARD(9),DPNI_FS_OPT_SET_FLC(9),DPNI_FS_OPT_SET_STASH_CONTROL(9),struct dpni_fs_action_cfg(9),struct dpni_tx_shaping_cfg(9),struct dpni_single_step_cfg(9)
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
- 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