i40e_add_mac_filter(9)
π i40e_add_mac_filter(9) π
okay so this is a page straight out of the Kernel API Manual, bestie β i40e_add_mac_filter(9), the little helper that gets your MAC filter set up across, like, all the active VLANs. sit down, hydrate, let's go π«Ά
β¨ NAME β¨
i40e_add_mac_filter β add a MAC filter for all active VLANs π
π¦ SYNOPSIS π¦
struct i40e_mac_filter * i40e_add_mac_filter (struct i40e_vsi *vsi ,
const u8 *macaddr );
like, it takes your VSI and your mac address and hands you back a struct i40e_mac_filter *. that's the whole vibe β¨
πΈ ARGUMENTS πΈ
vsiβ the VSI to be searched π (this is the one we're poking around in)macaddrβ the mac address to be filtered π (the actual thing you're filtering on)
π DESCRIPTION π
so here's the tea, bestie π
If we're not in VLAN mode, we just add the filter to I40E_VLAN_ANY and call it a day. simple, iconic, no drama.
Otherwise? we're going through all the macvlan filters and adding a macvlan filter for each unique vlan that already exists. one per vlan, no duplicates, we're organized like that π
but wait β if a PVID has been assigned, we do not do the whole spread situation. instead we only add the macaddr to that specific VLAN. that's the rule, periodt.
Returns the last filter added on success, else NULL. so like, if you get NULL back, something did not slay π
π₯ SEE ALSO π₯
the kernel file lives right here, bestie:
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_main.c
and ngl, this is the part where the list just keeps going β full send, every single one, exactly as written, because we do not gatekeep π«Ά
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_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_config_tc(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)
okay that's genuinely the whole squad, no skips, no cuts ππ
π§ sign-off π§
this gem was pulled from ./drivers/net/ethernet/intel/i40e, dated October 2026, and it's filed under i40e_add_mac_filter(9) in the Kernel API Manual. that's the whole page bestie β go forth and filter, you've got this ππβ
π¦ 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