ice_sched_se...w_lmt_per_tc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ice_sched_set_node_bw_lmt_per_tc β€” set node BW limit per TC ✨

Okay so bestie, real talk: this page lives in the Kernel API Manual, and it's about telling an Intel ice scheduling node how much bandwidth it's allowed to have β€” per traffic class. Very demure, very mindful, very network-QoS. πŸŽ€


🌸 NAME 🌸

ice_sched_set_node_bw_lmt_per_tc β€” set node BW limit per TC


πŸ¦‹ SYNOPSIS πŸ¦‹

int ice_sched_set_node_bw_lmt_per_tc (struct ice_port_info *pi , u32 id
, enum ice_agg_type agg_type , u8 tc , enum ice_rl_type rl_type , u32 bw
);

πŸ“ ARGUMENTS πŸ“

  • pi β€” the port information structure, aka the whole vibe of the port you're messing with πŸ’–
  • id β€” the ID. It's either a software VSI handle or an AGG ID, depending on what you're doing ✨
  • agg_type β€” the aggregator type (a VSI node type or an AGG type node, pick your fighter) πŸ¦‹
  • tc β€” traffic class. yes we're doing per-TC things, stay with me πŸ‘‘
  • rl_type β€” min or max. as in, the rate-limit type. min. or max. that's the whole menu πŸ’…
  • bw β€” bandwidth in Kbps, not bytes, not Mbps, Kbps, write it down πŸ“

🌈 DESCRIPTION 🌈

So what this function does is it sets the BW limit of a VSI or an Aggregator scheduling node πŸ”₯ β€” and it does it based on the TC information plus the bw you passed in as an argument. Like, you hand it a bandwidth, it goes "say less" and applies the limit to that node for that traffic class. No cap. 🫢


⭐ SEE ALSO ⭐

The kernel file lives at ./drivers/net/ethernet/intel/ice/ice_sched.c β€” that's the main character right there πŸ“βœ¨

And now the family reunion, iykyk β€” literally the whole scheduling-adjacent extended cast:

ice_sched_add_root_node(9), ice_sched_find_node_by_teid(9), ice_sched_find_next_vsi_node(9), ice_aqc_send_sched_elem_cmd(9), ice_aq_query_sched_elems(9), ice_sched_add_node(9), ice_aq_delete_sched_elems(9), ice_sched_remove_elems(9), ice_sched_get_first_node(9), ice_sched_get_tc_node(9), ice_free_sched_node(9), ice_aq_get_dflt_topo(9), ice_aq_add_sched_elems(9), ice_aq_cfg_sched_elems(9), ice_aq_move_sched_elems(9), ice_aq_suspend_sched_elems(9), ice_aq_resume_sched_elems(9), ice_aq_query_sched_res(9), ice_sched_suspend_resume_elems(9), ice_alloc_lan_q_ctx(9), ice_alloc_rdma_q_ctx(9), ice_aq_rl_profile(9), ice_aq_add_rl_profile(9), ice_aq_remove_rl_profile(9), ice_sched_del_rl_profile(9), ice_sched_clear_rl_prof(9), ice_sched_clear_agg(9), ice_sched_clear_tx_topo(9), ice_sched_clear_port(9), ice_sched_cleanup_all(9), ice_sched_add_elems(9), ice_sched_add_nodes_to_hw_layer(9), ice_sched_add_nodes_to_layer(9), ice_sched_get_qgrp_layer(9), ice_sched_get_vsi_layer(9), ice_sched_get_agg_layer(9), ice_rm_dflt_leaf_node(9), ice_sched_rm_dflt_nodes(9), ice_sched_init_port(9), ice_sched_query_res_alloc(9), ice_sched_get_psm_clk_freq(9), ice_sched_find_node_in_subtree(9), ice_sched_get_free_qgrp(9), ice_sched_get_free_qparent(9), ice_sched_get_vsi_node(9), ice_sched_get_agg_node(9), ice_sched_calc_vsi_child_nodes(9), ice_sched_add_vsi_child_nodes(9), ice_sched_calc_vsi_support_nodes(9), ice_sched_add_vsi_support_nodes(9), ice_sched_add_vsi_to_topo(9), ice_sched_recalc_vsi_support_nodes(9), ice_sched_update_vsi_child_nodes(9), ice_sched_cfg_vsi(9), ice_sched_rm_agg_vsi_info(9), ice_sched_is_leaf_node_present(9), ice_sched_rm_vsi_subtree(9), ice_sched_rm_vsi_cfg(9), ice_rm_vsi_lan_cfg(9), ice_rm_vsi_rdma_cfg(9), ice_get_agg_info(9), ice_sched_get_free_vsi_parent(9), ice_sched_update_parent(9), ice_sched_move_nodes(9), ice_sched_move_vsi_to_agg(9), ice_move_all_vsi_to_dflt_agg(9), ice_sched_is_agg_inuse(9), ice_sched_rm_agg_cfg(9), ice_rm_agg_cfg_tc(9), ice_save_agg_tc_bitmap(9), ice_sched_add_agg_cfg(9), ice_sched_cfg_agg(9), ice_cfg_agg(9), ice_get_agg_vsi_info(9), ice_get_vsi_agg_info(9), ice_save_agg_vsi_tc_bitmap(9), ice_sched_assoc_vsi_to_agg(9), ice_sched_rm_unused_rl_prof(9), ice_sched_update_elem(9), ice_sched_cfg_node_bw_alloc(9), ice_move_vsi_to_agg(9), ice_set_clear_cir_bw(9), ice_set_clear_eir_bw(9), ice_set_clear_shared_bw(9), ice_sched_save_vsi_bw(9), ice_sched_calc_wakeup(9), ice_sched_bw_to_rl_profile(9), ice_sched_add_rl_profile(9), ice_sched_cfg_node_bw_lmt(9), ice_sched_get_node_rl_prof_id(9), ice_sched_get_rl_prof_layer(9), ice_sched_get_srl_node(9), ice_sched_rm_rl_profile(9), ice_sched_set_node_bw_dflt(9), ice_sched_set_eir_srl_excl(9), ice_sched_set_node_bw(9), ice_sched_set_node_priority(9), ice_sched_set_node_weight(9), ice_sched_set_node_bw_lmt(9), ice_sched_set_node_bw_dflt_lmt(9), ice_sched_validate_srl_node(9), ice_sched_save_q_bw(9), ice_sched_set_q_bw_lmt(9), ice_cfg_q_bw_lmt(9), ice_cfg_q_bw_dflt_lmt(9), ice_sched_get_node_by_id_type(9), ice_cfg_vsi_bw_lmt_per_tc(9), ice_cfg_vsi_bw_dflt_lmt_per_tc(9), ice_cfg_rl_burst_size(9), ice_sched_replay_node_prio(9), ice_sched_replay_node_bw(9), ice_sched_get_ena_tc_bitmap(9), ice_sched_replay_agg(9), ice_sched_replay_agg_vsi_preinit(9), ice_sched_replay_vsi_agg(9), ice_replay_vsi_agg(9), ice_sched_replay_q_bw(9)


πŸ’€ friendly reminder that this is a bandwidth limit, so pick your rl_type and bw values like you mean it, bestie. The page doesn't promise anything about what happens if you don't β€” it just says what the function does. πŸ™ˆ

Okay that's the whole page, mwah πŸ’‹ β€” brought to you by the source path ./drivers/net/ethernet/intel/ice and dated October 2026, still serving looks in ice_sched_se...w_lmt_per_tc(9) format. Go set those limits, queen πŸ‘‘βœ¨

πŸ“¦ where this page comes from