ixgbe_set_rx_mode(9)
π ixgbe_set_rx_mode(9) β from the Kernel API Manual β¨
okay so bestie, welcome to the group chat. this is a page from the Kernel API Manual (section 9, kernel land, no cap) and it's all about one lil function in the ixgbe driver that decides which packets your NIC is even willing to look at. it's short, it's sweet, it's lowkey the bouncer at the door of your network card π
πΈ NAME πΈ
ixgbe_set_rx_mode β Unicast, Multicast and Promiscuous mode set. that's it, that's the whole vibe: it sets the receive mode. iconic behavior fr fr π
β¨ SYNOPSIS β¨
void ixgbe_set_rx_mode (struct net_device *netdev );
return type is void, so it gives you nothing back β it just does the thing and leaves. main character energy tbh π
π¦ ARGUMENTS π¦
netdevβ the network interface device structure. yes, that's the whole argument list. one struct pointer, that's all she needs to run the world π
π DESCRIPTION π
so the set_rx_method entry point gets called whenever the unicast/multicast address list or the network interface flags get updated. like, the moment somebody edits the guest list, this function gets pinged π²
and its whole job? configuring the hardware so the unicast, multicast and promiscuous modes are actually set up properly. that's the assignment, and it ate π₯
so real quick, in bestie terms:
- unicast list changed? π she's called
- multicast list changed? π she's called
- interface flags changed? π she's called
- hardware needs to know how to filter packets accordingly? π that's literally her job, periodt
no extra params, no secret config file, no environment variables β just netdev and vibes π§
π SEE ALSO π
the source of truth lives right here in the kernel tree:
- Kernel file
./drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
and because the kernel docs love a good tag-along, here's the entire squad of related pages β every single one, bestie, we do not skip π:
ixgbe_pcie_from_parent(9),ixgbe_read_reg(9),ixgbe_set_ivar(9),ixgbe_get_vf_idx(9),ixgbe_tx_timeout_reset(9),ixgbe_tx_maxrate(9)ixgbe_update_tx_ring_stats(9),ixgbe_update_rx_ring_stats(9),ixgbe_pf_handle_tx_hang(9),ixgbe_vf_handle_tx_hang(9),ixgbe_check_illegal_queue(9),ixgbe_handle_mdd_event(9)ixgbe_clean_tx_irq(9),ixgbe_rx_is_fcoe(9),ixgbe_rx_checksum(9),ixgbe_alloc_rx_buffers(9),ixgbe_process_skb_fields(9),ixgbe_is_non_eop(9)ixgbe_pull_tail(9),ixgbe_dma_sync_frag(9),ixgbe_cleanup_headers(9),ixgbe_reuse_rx_page(9),ixgbe_add_rx_frag(9),ixgbe_clean_rx_irq(9)ixgbe_configure_msix(9),ixgbe_update_itr(9),ixgbe_write_eitr(9),ixgbe_check_overtemp_subtask(9),ixgbe_check_phy_fw_load(9),ixgbe_check_module_power(9)ixgbe_check_link_cfg_err(9),ixgbe_process_link_status_event(9),ixgbe_handle_link_status_event(9),ixgbe_schedule_fw_event(9),ixgbe_aci_event_cleanup(9),ixgbe_handle_fw_event(9)ixgbe_irq_enable(9),ixgbe_poll(9),ixgbe_request_msix_irqs(9),ixgbe_intr(9),ixgbe_request_irq(9),ixgbe_irq_disable(9)ixgbe_configure_msi_and_legacy(9),ixgbe_configure_tx_ring(9),ixgbe_configure_tx(9),ixgbe_rss_indir_tbl_entries(9),ixgbe_store_key(9),ixgbe_init_rss_key(9)ixgbe_store_reta(9),ixgbe_store_vfreta(9),ixgbe_configure_rscctl(9),ixgbe_configure_rx(9),ixgbe_vlan_strip_disable(9),ixgbe_vlan_strip_enable(9)ixgbe_write_mc_addr_list(9),ixgbe_configure_dcb(9),ixgbe_hpbthresh(9),ixgbe_lpbthresh(9),ixgbe_clean_rx_ring(9)ixgbe_enable_link_status_events(9),ixgbe_disable_link_status_events(9),ixgbe_sfp_link_config(9),ixgbe_non_sfp_link_config(9),ixgbe_check_media_subtask(9)ixgbe_clear_vf_stats_counters(9),ixgbe_clean_tx_ring(9),ixgbe_clean_all_rx_rings(9),ixgbe_clean_all_tx_rings(9),ixgbe_set_eee_capable(9),ixgbe_tx_timeout(9)ixgbe_sw_init(9),ixgbe_setup_tx_resources(9),ixgbe_setup_all_tx_resources(9),ixgbe_setup_rx_resources(9),ixgbe_setup_all_rx_resources(9)ixgbe_free_tx_resources(9),ixgbe_free_all_tx_resources(9),ixgbe_free_rx_resources(9),ixgbe_free_all_rx_resources(9)ixgbe_max_xdp_frame_size(9),ixgbe_change_mtu(9),ixgbe_open(9),ixgbe_close(9),ixgbe_update_stats(9)ixgbe_fdir_reinit_subtask(9),ixgbe_check_hang_subtask(9),ixgbe_watchdog_update_link(9),ixgbe_watchdog_link_is_up(9),ixgbe_watchdog_link_is_down(9),ixgbe_watchdog_flush_tx(9),ixgbe_watchdog_subtask(9)ixgbe_sfp_detection_subtask(9),ixgbe_sfp_link_config_subtask(9),ixgbe_service_timer(9),ixgbe_check_fw_error(9),ixgbe_service_task(9)ixgbe_set_mac(9),ixgbe_add_sanmac_netdev(9),ixgbe_del_sanmac_netdev(9),ixgbe_validate_rtr(9),ixgbe_set_prio_tc_map(9),ixgbe_setup_tc(9)ixgbe_configure_bridge_mode(9),ixgbe_irq_disable_single(9),ixgbe_txrx_ring_disable(9),ixgbe_txrx_ring_enable(9),ixgbe_enumerate_functions(9),ixgbe_wol_supported(9)ixgbe_set_fw_version_e610(9),ixgbe_set_fw_version(9),ixgbe_recovery_probe(9),ixgbe_probe(9),ixgbe_remove(9),ixgbe_io_error_detected(9),ixgbe_io_slot_reset(9),ixgbe_io_resume(9),ixgbe_init_module(9),ixgbe_exit_module(9)
like yes that is a lot of cross-references but she's popular, what can we say π
quick heads up bestie: this page doesn't list any flags, environment variables, exit statuses or return values, because the function returns void and takes exactly one argument. don't go looking for extras that aren't here β iykyk π
π«Ά and that's the page!! shoutout to the source line ./drivers/net/ethernet/intel/i... (yes, that's genuinely how it's truncated in the original, we're not fixing what isn't ours π) and to October 2026 for being the date on this one. bye bestie, go configure some hardware modes πβ¨π
π¦ 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