igc_set_mac_filter_hw(9)
π igc_set_mac_filter_hw(9) β like, the Kernel API Manual one, bestie
Ok so picture this: you're deep in the igc driver, right, and you need hardware to actually know about a MAC address filter. That's the whole gig of this function. It's igc_set_mac_filter_hw, it lives in the Kernel API Manual section 9, and it is literally the "make the silicon care" moment. β¨
πΈ NAME πΈ
igc_set_mac_filter_hw β Set MAC address filter in hardware π
Like, you're not just writing a filter into some software list and hoping for the best. No no. This one goes into the hardware. Periodt.
π¦ SYNOPSIS π¦
void igc_set_mac_filter_hw (struct igc_adapter *adapter , int index ,
enum igc_mac_filter_type type , const u8 *addr , int queue );
It returns void, so like... no return value to check, she just does her thing. πββοΈ
π ARGUMENTS π
These are the five things you gotta hand her. Every single one. No skipping, bestie. π
adapterβ Pointer to the adapter where the filter should be set. This is your main character struct, the whole vibe check of "which NIC are we even talking about".indexβ The filter index. Which slot in the filter lineup we're messing with π₯typeβ MAC address filter type. And ngl, the options are source or destination, so like, is this address the one sending or the one receiving? You gotta know. πaddrβ The MAC address. The actual address. The star of the show. βqueueβ Okay this one has β¨conditionsβ¨. If it's non-negative, the queue assignment feature is enabled and frames matching the filter get enqueued onto'queue'. Otherwise β meaning if it's negative β queue assignment is disabled. That's it, that's the rule. Don't come for me.
π Fr fr, that queue thing is the one people get wrong. Non-negative = queue assignment ON. Anything else = OFF. Write it on your hand.
π SEE ALSO π
Ok so this is the part where the manpage goes absolutely feral and lists every single sibling function. She's got a big family and she wants you to meet all of them. π«Ά
First, the file she lives in:
- Kernel file
./drivers/net/ethernet/intel/igc/igc_main.c
Now the whole entire squad, in the order the manpage gives them, because I am not about to disrespect the ordering:
igc_power_up_link(9),igc_release_hw_control(9),igc_get_hw_control(9),igc_clean_tx_ring(9),igc_free_tx_resources(9),igc_free_all_tx_resources(9),igc_clean_all_tx_rings(9),igc_disable_all_tx_rings_hw(9),igc_setup_tx_resources(9),igc_setup_all_tx_resources(9),igc_clean_rx_ring(9),igc_clean_all_rx_rings(9),igc_free_rx_resources(9),igc_free_all_rx_resources(9),igc_setup_rx_resources(9),igc_setup_all_rx_resources(9),igc_configure_rx_ring(9),igc_configure_rx(9),igc_configure_tx_ring(9),igc_configure_tx(9),igc_setup_mrqc(9),igc_setup_rctl(9),igc_setup_tctl(9),igc_clear_mac_filter_hw(9),igc_set_mac(9),igc_write_mc_addr_list(9),igc_process_skb_fields(9),igc_add_rx_frag(9),igc_reuse_rx_page(9),igc_is_non_eop(9),igc_cleanup_headers(9),igc_alloc_rx_buffers(9),igc_clean_tx_irq(9),igc_add_mac_filter(9),igc_del_mac_filter(9),igc_add_vlan_prio_filter(9),igc_del_vlan_prio_filter(9),igc_add_etype_filter(9),igc_del_etype_filter(9),igc_get_nfc_rule(9),igc_del_nfc_rule(9),igc_add_nfc_rule(9),igc_enable_empty_addr_recv(9),igc_set_rx_mode(9),igc_configure(9),igc_write_ivar(9),igc_configure_msix(9),igc_irq_enable(9),igc_irq_disable(9),igc_reset_q_vector(9),igc_free_q_vector(9),igc_free_q_vectors(9),igc_update_itr(9),igc_set_interrupt_capability(9),igc_update_ring_itr(9),igc_cache_ring_register(9),igc_poll(9),igc_alloc_q_vector(9),igc_alloc_q_vectors(9),igc_init_interrupt_scheme(9),igc_sw_init(9),igc_up(9),igc_update_stats(9),igc_down(9),igc_change_mtu(9),igc_tx_timeout(9),igc_get_stats64(9),igc_msix_other(9),igc_request_msix(9),igc_clear_interrupt_scheme(9),igc_has_link(9),igc_watchdog(9),igc_intr_msi(9),igc_intr(9),igc_request_irq(9),__igc_open(9),__igc_close(9),igc_probe(9),igc_remove(9),igc_io_error_detected(9),igc_io_slot_reset(9),igc_io_resume(9),igc_reinit_queues(9),igc_get_hw_dev(9),igc_init_module(9),igc_exit_module(9)
Like I said. Huge family. But every single one of them is iconic in her own way. π
Anyway, mwah, that's the page. This one ships out of ./drivers/net/ethernet/intel/igc and it's dated October 2026, so yeah β future energy. π§ Go set some hardware filters, bestie. You 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