igb_set_uta(9)
π¦β¨ igb_set_uta β Set unicast filter table address β¨π¦
okay so bestie, welcome to the igb_set_uta(9) page from the Kernel API Manual π pull up a chair, this one's a little hardware-flavored but we got it.
πΈ NAME πΈ
igb_set_uta β Set unicast filter table address. that's the whole vibe. it sets the unicast filter table address, no cap π
π SYNOPSIS π
void igb_set_uta (struct igb_adapter *adapter , bool set );
like, that's literally the whole signature. iconic. short. slay.
π«Ά ARGUMENTS π«Ά
adapterβ your board private structure π this is the main character, the struct that holds all the board's private business.setβ abooltelling us whether we're setting or clearing bits β¨ that's it, that's the whole job. setting = yes bestie, clearing = no bestie.
π₯ DESCRIPTION π₯
okay so. the unicast table address is a register array of 32-bit registers π
the table is meant to be used in a way similar to how the MTA is used β but however, and this is the important part so listen up π’, due to certain limitations in the hardware it is necessary to set all the hash bits to 1 and use the VMOLR ROPE bit as a promiscuous enable bit to allow vlan tag stripping when promiscuous mode is enabled ππ
like yeah. that's the whole deal. all hash bits to 1, VMOLR ROPE bit doing promiscuous-enable duty, and vlan tag stripping stays working while promiscuous mode is on. the hardware said "limitations" and we said "fine, periodt" π β¨
π SEE ALSO π
first up, the source file bestie π
- Kernel file
./drivers/net/ethernet/intel/igb/igb_main.c
and then⦠the whole friend group 𫢠literally all of them, no skips:
igb_get_i2c_data(9)igb_set_i2c_data(9)igb_set_i2c_clk(9)igb_get_i2c_clk(9)igb_get_hw_dev(9)igb_init_module(9)igb_exit_module(9)igb_cache_ring_register(9)igb_write_ivar(9)igb_configure_msix(9)igb_request_msix(9)igb_free_q_vector(9)igb_reset_q_vector(9)igb_free_q_vectors(9)igb_clear_interrupt_scheme(9)igb_set_interrupt_capability(9)igb_alloc_q_vector(9)igb_alloc_q_vectors(9)igb_init_interrupt_scheme(9)igb_request_irq(9)igb_irq_disable(9)igb_irq_enable(9)igb_release_hw_control(9)igb_get_hw_control(9)igb_config_tx_modes(9)igb_setup_tx_mode(9)igb_configure(9)igb_power_up_link(9)igb_power_down_link(9)igb_check_swap_media(9)igb_up(9)igb_set_i2c_bb(9)igb_set_fw_version(9)igb_init_mas(9)igb_init_i2c(9)igb_probe(9)igb_remove_i2c(9)igb_remove(9)igb_probe_vfs(9)igb_sw_init(9)__igb_open(9)__igb_close(9)igb_setup_tx_resources(9)igb_setup_all_tx_resources(9)igb_setup_tctl(9)igb_configure_tx_ring(9)igb_configure_tx(9)igb_setup_rx_resources(9)igb_setup_all_rx_resources(9)igb_setup_mrqc(9)igb_setup_rctl(9)igb_setup_srrctl(9)igb_configure_rx_ring(9)igb_configure_rx(9)igb_free_tx_resources(9)igb_free_all_tx_resources(9)igb_clean_tx_ring(9)igb_clean_all_tx_rings(9)igb_free_rx_resources(9)igb_free_all_rx_resources(9)igb_clean_rx_ring(9)igb_clean_all_rx_rings(9)igb_set_mac(9)igb_write_mc_addr_list(9)igb_set_rx_mode(9)igb_has_link(9)igb_check_lvmmc(9)igb_watchdog(9)igb_update_ring_itr(9)igb_update_itr(9)igb_tx_timeout(9)igb_get_stats64(9)igb_change_mtu(9)igb_update_stats(9)igb_intr_msi(9)igb_intr(9)igb_poll(9)igb_clean_tx_irq(9)igb_reuse_rx_page(9)igb_add_rx_frag(9)igb_is_non_eop(9)igb_cleanup_headers(9)igb_process_skb_fields(9)igb_alloc_rx_buffers(9)igb_mii_ioctl(9)igb_ioctl(9)igb_io_error_detected(9)igb_io_slot_reset(9)igb_io_resume(9)igb_rar_set_index(9)igb_read_i2c_byte(9)igb_write_i2c_byte(9)
likeβ¦ the whole igb cinematic universe fr fr ππ
lowkey a whole register-array moment, but you ate that π
go read your driver source bestie, it's all in ./drivers/net/ethernet/intel/igb/igb_main.c π¦
and that's the page !! this cutie lives in ./drivers/net/ethernet/intel/igb and it's dated October 2026 πβ¨ bye bestie, mwah ππΈ
π¦ 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