__dev_set_rx_mode(9)
π
__dev_set_rx_mode β Kernel API Manual β¨
okay so bestie, welcome to the __dev_set_rx_mode(9) page, like the actual kernel API manual entry for it, and honestly it's a whole vibe. it's short, it's iconic, it does one thing and does it well. let's get into it π
β¨ NAME β¨
__dev_set_rx_mode β this one's job is to upload unicast and multicast address lists to the device and then configure RX filtering. that's it, that's the whole mission statement, and she ate π
πΈ SYNOPSIS πΈ
void __dev_set_rx_mode (struct net_device *dev );
that's the signature fr fr β returns void, so no exit-status shenanigans to worry about, and takes exactly one argument. she's lowkey minimalist π¦
π¦ ARGUMENTS π¦
devβ the device. yep, that's the whole description. the device. the one and only. the main character of this function call π
π DESCRIPTION π
so here's the tea, bestie: when the device doesn't support unicast filtering, it gets put into promiscuous mode while unicast addresses are present. that's the whole behaviour. no cap.
like, the device is basically standing there going "i literally cannot filter by unicast address, i don't have that feature," so the kernel's like "okay periodt, promiscuous mode it is then," but only while there are unicast addresses hanging around. so it's conditional promiscuity, which is honestly very demure, very mindful πβ¨
β SEE ALSO β
kernels are all about the friend group, so here's the entire squad β they all hang out in the kernel file ./net/core/dev_addr_lists.c:
__hw_addr_sync_dev(9)__hw_addr_ref_sync_dev(9)__hw_addr_ref_unsync_dev(9)__hw_addr_unsync_dev(9)__hw_addr_list_snapshot(9)__hw_addr_list_reconcile(9)dev_addr_flush(9)dev_addr_init(9)dev_addr_add(9)dev_addr_del(9)dev_uc_add_excl(9)dev_uc_add(9)dev_uc_del(9)dev_uc_sync(9)dev_uc_sync_multiple(9)dev_uc_unsync(9)dev_uc_flush(9)dev_uc_init(9)dev_mc_add_excl(9)dev_mc_add(9)dev_mc_add_global(9)dev_mc_del(9)dev_mc_del_global(9)dev_mc_sync(9)dev_mc_sync_multiple(9)dev_mc_unsync(9)dev_mc_flush(9)dev_mc_init(9)netif_uc_promisc_update(9)netif_rx_mode_sync(9)
go read them all, i'll wait. well, actually no i won't, but you get it π
ngl bestie, this page is short enough that you could read it while the kernel compiles. that's a compliment. that's a flex. π«Ά
and that's a wrap! this page lives under ./net/core and it's dated October 2026, so like... very forward-looking of her honestly πβ bye bestie, go configure those RX filters, slay ππ₯
π¦ 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