STRUCT DPNI_RX_TC_DIST_CFG(9)
π struct dpni_rx_tc_dist_cfg β from the Kernel API Manual
okay so bestie, this is a page about struct dpni_rx_tc_dist_cfg, which is literally the Rx traffic class distribution configuration struct. yes, that's a mouthful, but it's giving "control panel for how incoming packets get sorted into traffic classes" and honestly? iconic π
β¨ NAME β¨
struct dpni_rx_tc_dist_cfg β Rx traffic class distribution configuration π¦
β¨ SYNOPSIS β¨
struct dpni_rx_tc_dist_cfg {
u16 dist_size;
enum dpni_dist_mode dist_mode;
u64 key_cfg_iova;
struct dpni_fs_tbl_cfg fs_cfg;
};
so cute, so compact, four fields, no cap π«Ά
πΈ Members πΈ
dist_sizeβ this one sets the distribution size. the supported values are literally these and nothing else, bestie:
1,2,3,4,6,7,8,12,14,16,24,28,32,48,56,64,96,112,128,192,224,256,384,448,512,768,896,1024
like, that's the whole vibe check list. pick from it. π
dist_modeβ the Distribution mode. yep, that's it, that's the description π (it's anenum dpni_dist_mode, the details live over on that page, iykyk)key_cfg_iovaβ I/O virtual address of 256 bytes of DMA-able memory, filled with the extractions to be used for the distribution key, and you fill it by callingdpni_prepare_key_cfg. relevant only when (and the manpage literally trails off here, so I'm not gonna invent the rest β periodt, no guessing) πfs_cfgβ Flow Steering table configuration; only relevant if (same situation, the sentence stops right there, keeping it 100% as-is because we do not make things up) β
real talk: those two dangling "relevant only when" / "only relevant if" clauses are just how the source page ends. I'm not filling in the blanks β that would be adding technical claims and we don't do that here π
π SEE ALSO π
Kernel file: ./drivers/net/ethernet/freescale/dpaa2/dpni.h
and now, the friend group roll call β everyone's here, in order, don't skip anybody:
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), 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_congestion_notification_cfg(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)
like, that's the whole squad. go read them. obsessed, honestly π
okay last thing, the little signature at the bottom of the page π β it's sourced from ./drivers/net/ethernet/freesca... (yes, truncated with the dots and everything, that's just how it's printed), dated October 2026, and it's all wrapped up under struct dpni_rx_tc_dist_cfg(9). mwah, bye 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