i40e_vsi_config_tc(9)
π i40e_vsi_config_tc(9) β Kernel API Manual π
okay so bestie, you found the page for i40e_vsi_config_tc(9) in the Kernel API Manual and honestly? it's a little guy with one job and it does it. let's get into it π«Ά
β¨ NAME β¨
i40e_vsi_config_tc β Configure VSI Tx Scheduler for given TC map
like, that's the whole personality. it configures the Tx scheduler of a VSI based on a TC map. iconic behavior, no notes. π
πΈ SYNOPSIS πΈ
int i40e_vsi_config_tc (struct i40e_vsi *vsi , u8 enabled_tc );
(yes, the spacing in that line is exactly like that, don't @ me, that's just how it's written π )
π ARGUMENTS π
vsiβ the VSI you're configuring. the main character of this function call β¨enabled_tcβ the TC bitmap. a lilu8that says which traffic classes are, well, enabled π¦
π§ DESCRIPTION π§
so what it actually does: it configures a particular VSI for the TCs that are mapped to the TC bitmap you passed in. that's it, that's the vibe check.
and how does it pick the numbers? it uses the default bandwidth share for TCs across VSIs to configure the TC for that particular VSI. so like, no custom bw drama here β it's the default share, periodt. π
π NOTE π
this is the important part, bestie, don't skip it: it's expected that the VSI queues have been quiesced before calling this function. so put the queues to sleep first, then call this. do it out of order and that's on you ππ
π₯ SEE ALSO π₯
here's where it gets unhinged β the related-reference list is genuinely enormous, like a group chat with 400 members. but every single one is here, i promise:
- Kernel file
./drivers/net/ethernet/intel/i40e/i40e_main.c i40e_hw_to_dev(9),i40e_allocate_dma_mem(9),i40e_free_dma_mem(9),i40e_allocate_virt_mem(9),i40e_free_virt_mem(9),i40e_get_lump(9),i40e_put_lump(9),i40e_find_vsi_from_id(9)i40e_service_event_schedule(9),i40e_tx_timeout(9),i40e_get_vsi_stats_struct(9),i40e_get_netdev_stats_struct_tx(9),i40e_get_netdev_stats_struct(9),i40e_vsi_reset_stats(9),i40e_pf_reset_stats(9),i40e_compute_pci_to_hw_id(9)i40e_stat_update64(9),i40e_stat_update48(9),i40e_stat_update32(9),i40e_stat_update_and_clear32(9),i40e_stats_update_rx_discards(9),i40e_update_eth_stats(9),i40e_update_veb_stats(9),i40e_update_vsi_stats(9)i40e_update_pf_stats(9),i40e_update_stats(9),i40e_count_all_filters(9),i40e_count_active_filters(9),i40e_find_filter(9),i40e_find_mac(9),i40e_is_vsi_in_vlan(9),i40e_correct_mac_vlan_filters(9)i40e_get_vf_new_vlan(9),i40e_correct_vf_mac_vlan_filters(9),i40e_rm_default_mac_filter(9),i40e_add_filter(9),__i40e_del_filter(9),i40e_add_mac_filter(9),i40e_del_mac_filter(9),i40e_set_mac(9)i40e_config_rss_aq(9),i40e_vsi_config_rss(9),i40e_vsi_setup_queue_map_mqprio(9),i40e_vsi_setup_queue_map(9),i40e_addr_sync(9),i40e_addr_unsync(9),i40e_set_rx_mode(9),i40e_undo_del_filter_entries(9)i40e_undo_add_filter_entries(9),i40e_next_filter(9),i40e_update_filter_state(9),i40e_aqc_del_filters(9),i40e_aqc_add_filters(9),i40e_aqc_broadcast_filter(9),i40e_set_promiscuous(9),i40e_sync_vsi_filters(9)i40e_sync_filters_subtask(9),i40e_calculate_vsi_rx_buf_len(9),i40e_max_vsi_frame_size(9),i40e_change_mtu(9),i40e_vlan_stripping_enable(9),i40e_vlan_stripping_disable(9),i40e_add_vlan_all_mac(9),i40e_vsi_add_vlan(9)i40e_rm_vlan_all_mac(9),i40e_vsi_kill_vlan(9),i40e_vlan_rx_add_vid(9),i40e_vlan_rx_add_vid_up(9),i40e_vlan_rx_kill_vid(9),i40e_restore_vlan(9),i40e_vsi_add_pvid(9),i40e_vsi_remove_pvid(9)i40e_vsi_setup_tx_resources(9),i40e_vsi_free_tx_resources(9),i40e_vsi_setup_rx_resources(9),i40e_vsi_free_rx_resources(9),i40e_config_xps_tx_ring(9),i40e_xsk_pool(9),i40e_configure_tx_ring(9),i40e_rx_offset(9)i40e_configure_rx_ring(9),i40e_vsi_configure_tx(9),i40e_vsi_configure_rx(9),i40e_vsi_config_dcb_rings(9),i40e_set_vsi_rx_mode(9),i40e_reset_fdir_filter_cnt(9),i40e_fdir_filter_restore(9),i40e_vsi_configure(9)i40e_vsi_configure_msix(9),i40e_enable_misc_int_causes(9),i40e_configure_msi_and_legacy(9),i40e_irq_dynamic_disable_icr0(9),i40e_irq_dynamic_enable_icr0(9),i40e_msix_clean_rings(9),i40e_irq_affinity_notify(9),i40e_irq_affinity_release(9)i40e_vsi_request_irq_msix(9),i40e_vsi_disable_irq(9),i40e_vsi_enable_irq(9),i40e_free_misc_vector(9),i40e_intr(9),i40e_clean_fdir_tx_irq(9),i40e_fdir_clean_ring(9),i40e_map_vector_to_qp(9)i40e_vsi_map_rings_to_vectors(9),i40e_vsi_request_irq(9),i40e_netpoll(9),i40e_pf_txq_wait(9),i40e_control_tx_q(9),i40e_control_wait_tx_q(9),i40e_vsi_enable_tx(9),i40e_pf_rxq_wait(9)i40e_control_rx_q(9),i40e_control_wait_rx_q(9),i40e_vsi_enable_rx(9),i40e_vsi_start_rings(9),i40e_vsi_stop_rings(9),i40e_vsi_stop_rings_no_wait(9),i40e_vsi_free_irq(9),i40e_free_q_vector(9)i40e_vsi_free_q_vectors(9),i40e_reset_interrupt_capability(9),i40e_clear_interrupt_scheme(9),i40e_napi_enable_all(9),i40e_napi_disable_all(9),i40e_vsi_close(9),i40e_quiesce_vsi(9),i40e_unquiesce_vsi(9)i40e_pf_quiesce_all_vsi(9),i40e_pf_unquiesce_all_vsi(9),i40e_vsi_wait_queues_disabled(9),i40e_pf_wait_queues_disabled(9),i40e_get_iscsi_tc_map(9),i40e_dcb_get_num_tc(9),i40e_dcb_get_enabled_tc(9),i40e_mqprio_get_enabled_tc(9)i40e_pf_get_num_tc(9),i40e_pf_get_tc_map(9),i40e_vsi_get_bw_info(9),i40e_vsi_configure_bw_alloc(9),i40e_vsi_config_netdev_tc(9),i40e_vsi_update_queue_map(9),i40e_update_adq_vsi_queues(9),i40e_vsi_reconfig_tc(9)i40e_get_link_speed(9),i40e_bw_bytes_to_mbits(9),i40e_set_bw_limit(9),i40e_remove_queue_channels(9),i40e_get_max_queues_for_channel(9),i40e_validate_num_queues(9),i40e_vsi_reconfig_rss(9),i40e_channel_setup_queue_map(9)i40e_add_channel(9),i40e_channel_config_tx_ring(9),i40e_setup_hw_channel(9),i40e_setup_channel(9),i40e_validate_and_set_switch_mode(9),i40e_create_queue_channel(9),i40e_configure_queue_channels(9),i40e_veb_config_tc(9)i40e_dcb_reconfigure(9),i40e_resume_port_tx(9),i40e_suspend_port_tx(9),i40e_hw_set_dcb_config(9),i40e_hw_dcb_config(9),i40e_dcb_sw_default_config(9),i40e_init_pf_dcb(9),i40e_print_link_message(9)i40e_up_complete(9),i40e_vsi_reinit_locked(9),i40e_force_link_state(9),i40e_up(9),i40e_down(9),i40e_validate_mqprio_qopt(9),i40e_vsi_set_default_tc_config(9),i40e_del_macvlan_filter(9)i40e_add_macvlan_filter(9),i40e_reset_ch_rings(9),i40e_free_macvlan_channels(9),i40e_fwd_ring_up(9),i40e_setup_macvlans(9),i40e_fwd_add(9),i40e_del_all_macvlans(9),i40e_fwd_del(9)i40e_setup_tc(9),i40e_set_cld_element(9),i40e_add_del_cloud_filter(9),i40e_add_del_cloud_filter_big_buf(9),i40e_parse_cls_flower(9),i40e_handle_tclass(9),i40e_configure_clsflower(9),i40e_find_cloud_filter(9)i40e_delete_clsflower(9),i40e_setup_tc_cls_flower(9),i40e_open(9),i40e_netif_set_realnum_tx_rx_queues(9),i40e_vsi_open(9),i40e_fdir_filter_exit(9),i40e_cloud_filter_exit(9),i40e_close(9)i40e_do_reset(9),i40e_dcb_need_reconfig(9),i40e_handle_lldp_event(9),i40e_do_reset_safe(9),i40e_handle_lan_overflow_event(9),i40e_get_current_fd_count(9),i40e_get_global_fd_count(9),i40e_reenable_fdir_sb(9)i40e_reenable_fdir_atr(9),i40e_delete_invalid_filter(9),i40e_fdir_check_and_reenable(9),i40e_fdir_flush_and_replay(9),i40e_get_current_atr_cnt(9),i40e_fdir_reinit_subtask(9),i40e_vsi_link_event(9),i40e_veb_link_event(9)i40e_link_event(9),i40e_watchdog_subtask(9),i40e_reset_subtask(9),i40e_handle_link_event(9),i40e_clean_adminq_subtask(9),i40e_verify_eeprom(9),i40e_enable_pf_switch_lb(9),i40e_disable_pf_switch_lb(9)i40e_config_bridge_mode(9),i40e_reconstitute_veb(9),i40e_get_capabilities(9),i40e_fdir_sb_setup(9),i40e_fdir_teardown(9),i40e_rebuild_cloud_filters(9),i40e_rebuild_channels(9),i40e_clean_xps_state(9)i40e_prep_for_reset(9),i40e_send_version(9),i40e_get_oem_version(9),i40e_reset(9),i40e_rebuild(9),i40e_reset_and_rebuild(9),i40e_handle_reset_warning(9),i40e_print_vf_mdd_event(9)i40e_print_vfs_mdd_events(9),i40e_handle_mdd_event(9),i40e_service_task(9),i40e_service_timer(9),i40e_set_num_rings_in_vsi(9),i40e_vsi_alloc_arrays(9),i40e_vsi_mem_alloc(9),i40e_vsi_free_arrays(9)i40e_clear_rss_config_user(9),i40e_vsi_clear(9),i40e_vsi_clear_rings(9),i40e_alloc_rings(9),i40e_reserve_msix_vectors(9),i40e_init_msix(9),i40e_vsi_alloc_q_vector(9),i40e_vsi_alloc_q_vectors(9)i40e_init_interrupt_scheme(9),i40e_restore_interrupt_scheme(9),i40e_setup_misc_vector_for_recovery_mode(9),i40e_setup_misc_vector(9),i40e_get_rss_aq(9),i40e_config_rss_reg(9),i40e_get_rss_reg(9),i40e_config_rss(9)i40e_get_rss(9),i40e_fill_rss_lut(9),i40e_pf_config_rss(9),i40e_reconfig_rss_queues(9),i40e_get_partition_bw_setting(9),i40e_set_partition_bw_setting(9),i40e_is_total_port_shutdown_enabled(9),i40e_sw_init(9)i40e_set_ntuple(9),i40e_clear_rss_lut(9),i40e_set_loopback(9),i40e_set_features(9),i40e_ndo_fdb_add(9),i40e_ndo_bridge_setlink(9),i40e_ndo_bridge_getlink(9),i40e_features_check(9)i40e_xdp_setup(9),i40e_enter_busy_conf(9),i40e_exit_busy_conf(9),i40e_queue_pair_reset_stats(9),i40e_queue_pair_clean_rings(9),i40e_queue_pair_toggle_napi(9),i40e_queue_pair_toggle_rings(9),i40e_queue_pair_enable_irq(9)i40e_queue_pair_disable_irq(9),i40e_queue_pair_disable(9),i40e_queue_pair_enable(9),i40e_xdp(9),i40e_config_netdev(9),i40e_vsi_delete(9),i40e_is_vsi_uplink_mode_veb(9),i40e_add_vsi(9)i40e_vsi_release(9),i40e_vsi_setup_vectors(9),i40e_vsi_reinit_setup(9),i40e_vsi_setup(9),i40e_veb_get_bw_info(9),i40e_veb_mem_alloc(9),i40e_switch_branch_release(9),i40e_veb_clear(9)i40e_veb_release(9),i40e_add_veb(9),i40e_veb_setup(9),i40e_setup_pf_switch_element(9),i40e_fetch_switch_configuration(9),i40e_setup_pf_switch(9),i40e_determine_queue_usage(9),i40e_setup_pf_filter_control(9)i40e_get_platform_mac_addr(9),i40e_set_fec_in_flags(9),i40e_check_recovery_mode(9),i40e_pf_loop_reset(9),i40e_check_fw_empr(9),i40e_handle_resets(9),i40e_init_recovery_mode(9),i40e_set_subsystem_device_id(9)i40e_probe(9),i40e_remove(9),i40e_enable_mc_magic_wake(9),i40e_io_suspend(9),i40e_io_resume(9),i40e_pci_error_detected(9),i40e_pci_error_slot_reset(9),i40e_pci_error_reset_prepare(9)i40e_pci_error_reset_done(9),i40e_pci_error_resume(9),i40e_shutdown(9),i40e_suspend(9),i40e_resume(9),i40e_init_module(9),i40e_exit_module(9)
likeβ¦ that's the whole friend group right there. ate and left no crumbs π
and that's the page, bestie!! π one last lil sign-off for the credits: this beauty lives in ./drivers/net/ethernet/intel/i40e, dated October 2026, and it's the i40e_vsi_config_tc(9) page you just read. go configure some traffic classes responsibly, and remember to quiesce those queues first πππ
π¦ 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