ice_sched_set_node_bw_lmt(9)
β¨ ice_sched_set_node_bw_lmt(9) β¨
Okay so bestie, we're deep in the kernel API manual today β this one's a (9) page, so you already know it's some internal kernel-function lore π
. It lives in the Kernel API Manual, and honestly? She's giving "small function, big responsibilities." Let's get into it π
πΈ NAME πΈ
ice_sched_set_node_bw_lmt β literally just sets a node's BW limit, no cap π«Ά
π¦ SYNOPSIS π¦
int ice_sched_set_node_bw_lmt (struct ice_port_info *pi , struct
ice_sched_node *node , enum ice_rl_type rl_type , u32 bw );
That's the whole signature, bestie β copy it exactly if you're typing it out, okay? π
π ARGUMENTS π
piβ the port information structure. Think of it as the home base π .nodeβ a tree node. Yep, we're in tree territory now π³.rl_typeβ the rate limit type:min,max, orshared. Pick your fighter β¨.bwβ bandwidth in Kbps β that's Kilo bits per sec, not kilobytes, don't get it twisted π.
π₯ DESCRIPTION π₯
So what does she actually do? She updates the node's BW limit parameters β specifically the BW RL profile ID of type CIR, EIR, or SRL. That's it, that's the job π
β οΈ But listen β the caller needs to hold the scheduler lock. No lock, no love. Do not skip this, fr fr π
π SEE ALSO π
The kernel file in question:
./drivers/net/ethernet/intel/ice/ice_sched.c
And the whole extended friend group (yes, all of them, we're not leaving anyone out π«Ά):
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_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_sched_set_node_bw_lmt_per_tc(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)
π§ Sign-off π§
That's the whole page, bestie β sourced from ./drivers/net/ethernet/intel/ice, dated October 2026, and yes, this is the ice_sched_set_node_bw_lmt(9) page you were looking for. Go forth, hold that scheduler lock, and set those BW limits like the icon you are βπ
π¦ 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