STRUCT DPNI_RX_TC_DIST_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 an enum 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 calling dpni_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