i40e_pf_get_tc_map(9)
π i40e_pf_get_tc_map β¨
okay so this one's from the Kernel API Manual (section 9, kernel interfaces, iykyk) and honestly it's a tiny little function with a huge friend group. Let's get into it π«Ά
πΈ NAME
i40e_pf_get_tc_map β get a bitmap for the enabled traffic classes π
β¨ SYNOPSIS
u8 i40e_pf_get_tc_map (struct i40e_pf *pf );
π ARGUMENTS
pfβ the PF you're asking about. that's it. that's the whole input π¦
π DESCRIPTION
You hand it a PF, it hands you back a bitmap of the traffic classes that are enabled for that PF. Literally the entire plot. no side quests, no surprises, just vibes and a u8 π
π¦ SEE ALSO
Bestie, buckle up. This page's SEE ALSO is iconic β the whole i40e extended universe is here, in order, no cap:
- where it all lives: the kernel file
./drivers/net/ethernet/intel/i40e/i40e_main.c - plumbing + memory:
i40e_hw_to_dev,i40e_allocate_dma_mem,i40e_free_dma_mem,i40e_allocate_virt_mem,i40e_free_virt_mem,i40e_get_lump,i40e_put_lump,i40e_find_vsi_from_id,i40e_service_event_schedule,i40e_tx_timeout - stats structs:
i40e_get_vsi_stats_struct,i40e_get_netdev_stats_struct_tx,i40e_get_netdev_stats_struct,i40e_vsi_reset_stats,i40e_pf_reset_stats,i40e_compute_pci_to_hw_id - number crunching (the stats girlies):
i40e_stat_update64,i40e_stat_update48,i40e_stat_update32,i40e_stat_update_and_clear32,i40e_stats_update_rx_discards,i40e_update_eth_stats,i40e_update_veb_stats,i40e_update_vsi_stats,i40e_update_pf_stats,i40e_update_stats - filter + mac squad:
i40e_count_all_filters,i40e_count_active_filters,i40e_find_filter,i40e_find_mac,i40e_is_vsi_in_vlan,i40e_correct_mac_vlan_filters,i40e_get_vf_new_vlan,i40e_correct_vf_mac_vlan_filters,i40e_rm_default_mac_filter,i40e_add_filter,__i40e_del_filter,i40e_add_mac_filter,i40e_del_mac_filter,i40e_set_mac - rss + queue maps:
i40e_config_rss_aq,i40e_vsi_config_rss,i40e_vsi_setup_queue_map_mqprio,i40e_vsi_setup_queue_map - keeping filters in sync π₯:
i40e_addr_sync,i40e_addr_unsync,i40e_set_rx_mode,i40e_undo_del_filter_entries,i40e_undo_add_filter_entries,i40e_next_filter,i40e_update_filter_state,i40e_aqc_del_filters,i40e_aqc_add_filters,i40e_aqc_broadcast_filter,i40e_set_promiscuous,i40e_sync_vsi_filters,i40e_sync_filters_subtask - buffers + mtu:
i40e_calculate_vsi_rx_buf_len,i40e_max_vsi_frame_size,i40e_change_mtu - vlan era π:
i40e_vlan_stripping_enable,i40e_vlan_stripping_disable,i40e_add_vlan_all_mac,i40e_vsi_add_vlan,i40e_rm_vlan_all_mac,i40e_vsi_kill_vlan,i40e_vlan_rx_add_vid,i40e_vlan_rx_add_vid_up,i40e_vlan_rx_kill_vid,i40e_restore_vlan,i40e_vsi_add_pvid,i40e_vsi_remove_pvid - rings + resources:
i40e_vsi_setup_tx_resources,i40e_vsi_free_tx_resources,i40e_vsi_setup_rx_resources,i40e_vsi_free_rx_resources,i40e_config_xps_tx_ring,i40e_xsk_pool,i40e_configure_tx_ring,i40e_rx_offset,i40e_configure_rx_ring,i40e_vsi_configure_tx,i40e_vsi_configure_rx,i40e_vsi_config_dcb_rings - vsi config + fdir bookkeeping:
i40e_set_vsi_rx_mode,i40e_reset_fdir_filter_cnt,i40e_fdir_filter_restore,i40e_vsi_configure,i40e_vsi_configure_msix,i40e_enable_misc_int_causes - IRQ / MSI-X central β‘:
i40e_configure_msi_and_legacy,i40e_irq_dynamic_disable_icr0,i40e_irq_dynamic_enable_icr0,i40e_msix_clean_rings,i40e_irq_affinity_notify,i40e_irq_affinity_release,i40e_vsi_request_irq_msix,i40e_vsi_disable_irq,i40e_vsi_enable_irq,i40e_free_misc_vector,i40e_intr,i40e_clean_fdir_tx_irq,i40e_fdir_clean_ring,i40e_map_vector_to_qp,i40e_vsi_map_rings_to_vectors,i40e_vsi_request_irq,i40e_netpoll - TX/RX control + ring start/stop:
i40e_pf_txq_wait,i40e_control_tx_q,i40e_control_wait_tx_q,i40e_vsi_enable_tx,i40e_pf_rxq_wait,i40e_control_rx_q,i40e_control_wait_rx_q,i40e_vsi_enable_rx,i40e_vsi_start_rings,i40e_vsi_stop_rings,i40e_vsi_stop_rings_no_wait,i40e_vsi_free_irq,i40e_free_q_vector,i40e_vsi_free_q_vectors,i40e_reset_interrupt_capability,i40e_clear_interrupt_scheme,i40e_napi_enable_all,i40e_napi_disable_all - closing / quiescing the vsi:
i40e_vsi_close,i40e_quiesce_vsi,i40e_unquiesce_vsi,i40e_pf_quiesce_all_vsi,i40e_pf_unquiesce_all_vsi,i40e_vsi_wait_queues_disabled,i40e_pf_wait_queues_disabled - traffic class town (our girl's home turf):
i40e_get_iscsi_tc_map,i40e_dcb_get_num_tc,i40e_dcb_get_enabled_tc,i40e_mqprio_get_enabled_tc,i40e_pf_get_num_tc,i40e_vsi_get_bw_info,i40e_vsi_configure_bw_alloc,i40e_vsi_config_netdev_tc,i40e_vsi_update_queue_map,i40e_update_adq_vsi_queues,i40e_vsi_config_tc,i40e_vsi_reconfig_tc,i40e_get_link_speed,i40e_bw_bytes_to_mbits,i40e_set_bw_limit - channels (the queue-channel lore):
i40e_remove_queue_channels,i40e_get_max_queues_for_channel,i40e_validate_num_queues,i40e_vsi_reconfig_rss,i40e_channel_setup_queue_map,i40e_add_channel,i40e_channel_config_tx_ring,i40e_setup_hw_channel,i40e_setup_channel,i40e_validate_and_set_switch_mode,i40e_create_queue_channel,i40e_configure_queue_channels,i40e_veb_config_tc,i40e_dcb_reconfigure,i40e_resume_port_tx,i40e_suspend_port_tx,i40e_hw_set_dcb_config,i40e_hw_dcb_config,i40e_dcb_sw_default_config,i40e_init_pf_dcb - link + up/down:
i40e_print_link_message,i40e_up_complete,i40e_vsi_reinit_locked,i40e_force_link_state,i40e_up,i40e_down,i40e_validate_mqprio_qopt,i40e_vsi_set_default_tc_config - macvlan + cloud filters + tc flower πΈ:
i40e_del_macvlan_filter,i40e_add_macvlan_filter,i40e_reset_ch_rings,i40e_free_macvlan_channels,i40e_fwd_ring_up,i40e_setup_macvlans,i40e_fwd_add,i40e_del_all_macvlans,i40e_fwd_del,i40e_setup_tc,i40e_set_cld_element,i40e_add_del_cloud_filter,i40e_add_del_cloud_filter_big_buf,i40e_parse_cls_flower,i40e_handle_tclass,i40e_configure_clsflower,i40e_find_cloud_filter,i40e_delete_clsflower,i40e_setup_tc_cls_flower - dev open/close:
i40e_open,i40e_netif_set_realnum_tx_rx_queues,i40e_vsi_open,i40e_fdir_filter_exit,i40e_cloud_filter_exit,i40e_close - reset + event handling:
i40e_do_reset,i40e_dcb_need_reconfig,i40e_handle_lldp_event,i40e_do_reset_safe,i40e_handle_lan_overflow_event,i40e_get_current_fd_count,i40e_get_global_fd_count,i40e_reenable_fdir_sb,i40e_reenable_fdir_atr,i40e_delete_invalid_filter,i40e_fdir_check_and_reenable,i40e_fdir_flush_and_replay,i40e_get_current_atr_cnt,i40e_fdir_reinit_subtask,i40e_vsi_link_event - more link + subtask things:
i40e_veb_link_event,i40e_link_event,i40e_watchdog_subtask,i40e_reset_subtask,i40e_handle_link_event,i40e_clean_adminq_subtask,i40e_verify_eeprom - switch / veb / capabilities:
i40e_enable_pf_switch_lb,i40e_disable_pf_switch_lb,i40e_config_bridge_mode,i40e_reconstitute_veb,i40e_get_capabilities,i40e_fdir_sb_setup,i40e_fdir_teardown,i40e_rebuild_cloud_filters,i40e_rebuild_channels,i40e_clean_xps_state,i40e_prep_for_reset,i40e_send_version,i40e_get_oem_version - reset/rebuild + MDD π«Ά:
i40e_reset,i40e_rebuild,i40e_reset_and_rebuild,i40e_handle_reset_warning,i40e_print_vf_mdd_event,i40e_print_vfs_mdd_events,i40e_handle_mdd_event,i40e_service_task,i40e_service_timer - rings + vectors allocation:
i40e_set_num_rings_in_vsi,i40e_vsi_alloc_arrays,i40e_vsi_mem_alloc,i40e_vsi_free_arrays,i40e_clear_rss_config_user,i40e_vsi_clear,i40e_vsi_clear_rings,i40e_alloc_rings,i40e_reserve_msix_vectors,i40e_init_msix,i40e_vsi_alloc_q_vector,i40e_vsi_alloc_q_vectors,i40e_init_interrupt_scheme,i40e_restore_interrupt_scheme,i40e_setup_misc_vector_for_recovery_mode,i40e_setup_misc_vector - RSS everything:
i40e_get_rss_aq,i40e_config_rss_reg,i40e_get_rss_reg,i40e_config_rss,i40e_get_rss,i40e_fill_rss_lut,i40e_pf_config_rss,i40e_reconfig_rss_queues - bw settings, features, xdp, busy conf:
i40e_get_partition_bw_setting,i40e_set_partition_bw_setting,i40e_is_total_port_shutdown_enabled,i40e_sw_init,i40e_set_ntuple,i40e_clear_rss_lut,i40e_set_loopback,i40e_set_features,i40e_ndo_fdb_add,i40e_ndo_bridge_setlink,i40e_ndo_bridge_getlink,i40e_features_check,i40e_xdp_setup,i40e_enter_busy_conf,i40e_exit_busy_conf - queue pairs:
i40e_queue_pair_reset_stats,i40e_queue_pair_clean_rings,i40e_queue_pair_toggle_napi,i40e_queue_pair_toggle_rings,i40e_queue_pair_enable_irq,i40e_queue_pair_disable_irq,i40e_queue_pair_disable,i40e_queue_pair_enable,i40e_xdp - netdev + vsi setup:
i40e_config_netdev,i40e_vsi_delete,i40e_is_vsi_uplink_mode_veb,i40e_add_vsi,i40e_vsi_release,i40e_vsi_setup_vectors,i40e_vsi_reinit_setup,i40e_vsi_setup - veb setup era:
i40e_veb_get_bw_info,i40e_veb_mem_alloc,i40e_switch_branch_release,i40e_veb_clear,i40e_veb_release,i40e_add_veb,i40e_veb_setup,i40e_setup_pf_switch_element,i40e_fetch_switch_configuration,i40e_setup_pf_switch - pf bring-up + recovery:
i40e_determine_queue_usage,i40e_setup_pf_filter_control,i40e_get_platform_mac_addr,i40e_set_fec_in_flags,i40e_check_recovery_mode,i40e_pf_loop_reset,i40e_check_fw_empr,i40e_handle_resets,i40e_init_recovery_mode,i40e_set_subsystem_device_id - probe / remove / PCI / module π:
i40e_probe,i40e_remove,i40e_enable_mc_magic_wake,i40e_io_suspend,i40e_io_resume,i40e_pci_error_detected,i40e_pci_error_slot_reset,i40e_pci_error_reset_prepare,i40e_pci_error_reset_done,i40e_pci_error_resume,i40e_shutdown,i40e_suspend,i40e_resume,i40e_init_module,i40e_exit_module
and that's the whole friend group, fr fr β not one name skipped π
This lil page comes to you from ./drivers/net/ethernet/intel/i40e, dated October 2026, and it lives in the Kernel API Manual (page i40e_pf_get_tc_map(9)). periodt. ππ¦β¨
π¦ 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