hw_set_multicast(9)
π hw_set_multicast(9) β the "accept ALL the multicast" switch π
okay bestie, so this is a kernel API manual page, section 9, and the star of the show is hw_set_multicast. Literally one job, and it does it well. Let me tell you everything β¨
πΈ NAME πΈ
hw_set_multicast β enable or disable all multicast receiving π¦
bestie. that's it. that's the whole vibe. it flips the "gimme every multicast packet" switch on or off. no cap π
β¨ SYNOPSIS β¨
void hw_set_multicast (struct ksz_hw *hw , u8 multicast );
returns void, so likeβ¦ it gives you nothing back. and honestly? it doesn't owe you anything π it just does the thing.
π ARGUMENTS π
hwβ The hardware instance. like, the actual hardware babe, the thing you're about to talk to π«Άmulticastβ To turn on or off the all multicast feature. yes queen, this is the on/off knob π₯
π DESCRIPTION π
This routine enables/disables the hardware to accept all multicast packets π
okay so, translate that for me: this little routine is the one that tells the hardware β not the software, the actual silicon bestie β whether it should scoop up all multicast packets or not. enable = accept everything multicast. disable = nope, not today. iconic behaviour, zero notes π
it's giving "one flag, one vibe check, one job" energy and i'm obsessed β¨
π SEE ALSO π
okay so there is a lot here and i am not skipping a single one of them, because every single one matters π«Ά starting with the file itself:
- Kernel file
./drivers/net/ethernet/micrel/ksz884x.c
now the structs, in order, no crumbs left behind π
struct ksz_hw_desc(9),struct ksz_sw_desc(9),struct ksz_dma_buf(9),struct ksz_desc(9),struct ksz_desc_info(9),struct ksz_mac_table(9),struct ksz_vlan_table(9),struct ksz_port_mib(9),struct ksz_port_cfg(9),struct ksz_switch(9),struct ksz_port_info(9),struct ksz_hw(9),struct ksz_port(9),struct ksz_timer_info(9),struct ksz_shared_mem(9),struct ksz_counter_info(9),struct dev_info(9),struct dev_priv(9)
the interrupt + table gang π§
hw_turn_on_intr(9),hw_block_intr(9),sw_r_table(9),sw_w_table_64(9),sw_w_sta_mac_table(9),sw_r_vlan_table(9),port_r_mib_cnt(9),port_r_mib_pkt(9),port_r_cnt(9),port_init_cnt(9),port_cfg(9),port_r8(9),port_r16(9),port_w16(9),sw_chk(9),sw_cfg(9),sw_cfg_broad_storm(9),sw_get_broad_storm(9),sw_dis_broad_storm(9),sw_ena_broad_storm(9),sw_init_broad_storm(9),hw_cfg_broad_storm(9),sw_dis_prio_rate(9),sw_init_prio_rate(9),sw_dis_diffserv(9),sw_dis_802_1p(9),sw_cfg_replace_null_vid(9),sw_cfg_replace_vid(9),sw_cfg_port_based(9),sw_dis_multi_queue(9),sw_init_prio(9),port_get_def_vid(9),sw_init_vlan(9),sw_cfg_port_base_vlan(9),sw_set_addr(9),sw_set_global_ctrl(9),port_set_stp_state(9),sw_clr_sta_mac_table(9),sw_init_stp(9),sw_block_addr(9)
hardware-side besties π₯
hw_r_phy(9),hw_w_phy(9),eeprom_read(9),eeprom_write(9),port_get_link_speed(9),port_set_link_speed(9),port_force_link_speed(9)
the wake-on-lan era πΈ
hw_chk_wol_pme_status(9),hw_clr_wol_pme_status(9),hw_cfg_wol_pme(9),hw_cfg_wol(9),hw_set_wol_frame(9),hw_add_wol_arp(9),hw_add_wol_bcast(9),hw_add_wol_mcast(9),hw_add_wol_ucast(9),hw_enable_wol(9)
the hw lifecycle crew β
hw_init(9),hw_reset(9),hw_setup(9),hw_setup_intr(9),hw_set_desc_base(9),hw_start_rx(9),hw_stop_rx(9),hw_start_tx(9),hw_stop_tx(9),hw_disable(9),hw_enable(9),hw_alloc_pkt(9),hw_send_pkt(9),hw_set_addr(9),hw_read_addr(9),hw_clr_multicast(9),hw_set_grp_addr(9),hw_set_promiscuous(9)β yes,hw_clr_multicast(9)is literally our sister function, family π
switch + timers + memory π
sw_enable(9),sw_setup(9),ksz_start_timer(9),ksz_stop_timer(9),ksz_alloc_soft_desc(9),ksz_alloc_desc(9),free_dma_buf(9),ksz_init_rx_buffers(9),ksz_alloc_mem(9),ksz_free_desc(9),ksz_free_buffers(9),ksz_free_mem(9)
the transmit/cleanup squad π¦
send_packet(9),transmit_cleanup(9),tx_done(9),netdev_tx(9),netdev_tx_timeout(9),netdev_intr(9),netdev_close(9),netdev_open(9),netdev_query_statistics(9),netdev_set_mac_address(9),netdev_set_rx_mode(9),netdev_ioctl(9)
mdio + link settings π
mdio_read(9),mdio_write(9),netdev_get_link_ksettings(9),netdev_set_link_ksettings(9),netdev_nway_reset(9),netdev_get_link(9)
all the ethtool goodies π
netdev_get_drvinfo(9),netdev_get_regs_len(9),netdev_get_regs(9),netdev_get_wol(9),netdev_set_wol(9),netdev_get_msglevel(9),netdev_set_msglevel(9),netdev_get_eeprom_len(9),netdev_get_eeprom(9),netdev_set_eeprom(9),netdev_get_pauseparam(9),netdev_set_pauseparam(9),netdev_get_ringparam(9),netdev_get_strings(9),netdev_get_sset_count(9),netdev_get_ethtool_stats(9),netdev_set_features(9)
and the last two, main character energy to the end π
fr fr bestie, that's the whole page. nothing cut, nothing merged, nothing invented. if you needed more, this manpage simply does not have it π
mwah π this page came from the source path ./drivers/net/ethernet/micrel, dated October 2026, and it lives in the kernel API manual, section 9 β hw_set_multicast(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