dpni_add_fs_entry(9)
π dpni_add_fs_entry(9) β the Kernel API Manual, bestie edition π
okay so this is dpni_add_fs_entry(9) from the Kernel API Manual, and it's literally the glow-up your flow steering table has been waiting for. It adds a Flow Steering entry for a specific traffic class (to select a flow ID). That's the whole vibe. β¨
πΈ SYNOPSIS πΈ
int dpni_add_fs_entry (struct fsl_mc_io *mc_io , u32 cmd_flags , u16
token , u8 tc_id , u16 index , const struct dpni_rule_cfg *cfg , const
struct dpni_fs_action_cfg *action );
like, yes, it's a lot of arguments. she's high-maintenance but she delivers. π
π ARGUMENTS π
mc_ioβ Pointer to MC portal's I/O object. your little handle to the whole MC portal situation π«Άcmd_flagsβ Command flags; one or more of'MC_CMD_FLAG_'. pick your faves (one or more, no cap)tokenβ Token of DPNI object. it's giving VIP wristband ποΈtc_idβ Traffic class selection (0-7). numbers-wise you get0-7, that's the range, respect itindexβ Location in the FS table where to insert the entry. Only relevant if MASKING is enabled for FS classification on this DPNI, it is ignored for exact match. so if you're on exact match, bestie, this one's just vibing in the background doing nothing πcfgβ Flow steering rule to add. this is the rule itself, the main character πactionβ Action to be taken as result of a classification hit. what happens when the rule goes off π₯
π RETURN π
sooo the original page just... leaves this one blank. no return values documented. not me noticing an empty section π that's literally all the page gives us, so that's all you're getting β no invented lore on my watch.
π₯ SEE ALSO π₯
Kernel file ./drivers/net/ethernet/freescale/dpaa2/dpni.c β that's where she lives π‘
and then the whole extended friend group, in order, because we do NOT leave anyone out:
dpni_prepare_key_cfg(9),dpni_open(9),dpni_close(9),dpni_set_pools(9),dpni_enable(9),dpni_disable(9),dpni_is_enabled(9),dpni_reset(9),dpni_set_irq_enable(9),dpni_get_irq_enable(9),dpni_set_irq_mask(9),dpni_get_irq_mask(9),dpni_get_irq_status(9),dpni_clear_irq_status(9),dpni_get_attributes(9),dpni_set_errors_behavior(9),dpni_get_buffer_layout(9),dpni_set_buffer_layout(9),dpni_set_offload(9),dpni_get_qdid(9),dpni_get_tx_data_offset(9),dpni_set_link_cfg(9),dpni_get_link_cfg(9),dpni_get_link_state(9),dpni_set_max_frame_length(9),dpni_get_max_frame_length(9),dpni_set_multicast_promisc(9),dpni_get_multicast_promisc(9),dpni_set_unicast_promisc(9),dpni_get_unicast_promisc(9),dpni_set_primary_mac_addr(9),dpni_get_primary_mac_addr(9),dpni_get_port_mac_addr(9),dpni_enable_vlan_filter(9),dpni_add_vlan_id(9),dpni_remove_vlan_id(9),dpni_add_mac_addr(9),dpni_remove_mac_addr(9),dpni_clear_mac_filters(9),dpni_set_rx_tc_dist(9),dpni_set_congestion_notification(9),dpni_set_queue(9),dpni_get_queue(9),dpni_get_statistics(9),dpni_set_taildrop(9),dpni_get_taildrop(9),dpni_get_api_version(9),dpni_set_rx_fs_dist(9),dpni_set_rx_hash_dist(9),dpni_remove_fs_entry(9),dpni_set_qos_table(9),dpni_add_qos_entry(9),dpni_remove_qos_entry(9),dpni_clear_qos_table(9),dpni_set_tx_shaping(9),dpni_get_single_step_cfg(9),dpni_set_single_step_cfg(9)
ngl bestie, the one thing to actually clock: index only matters when MASKING is enabled for FS classification on this DPNI β it is ignored for exact match. everything else is just passing your args through. no drama. π¦
okay that's the page!! source/version situation is ./drivers/net/ethernet/freesca... and it's dated October 2026 β so like, future girlie energy β save it, cite it, live by it. mwah π
π¦ 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