dev_uc_sync_multiple(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… dev_uc_sync_multiple(9) πŸ’…

okay so bestie, welcome to the Kernel API Manual β€” this one's about dev_uc_sync_multiple, and it's genuinely such a main character function. let's get into it 🫢


✨ NAME ✨

dev_uc_sync_multiple β€” sync a device's unicast list over to another device, but like... do it in a way that lets you call it multiple times and hit multiple destination devices. no cap. 🌸


πŸ¦‹ SYNOPSIS πŸ¦‹

int dev_uc_sync_multiple (struct net_device *to , struct net_device *from );

πŸŽ€ ARGUMENTS πŸŽ€

  • to β€” the destination device πŸ’– the one getting the addresses
  • from β€” the source device ✨ the one the addresses are coming from

πŸ”₯ DESCRIPTION πŸ”₯

so here's the vibe: this function takes the addresses that were newly added and adds them to the destination device, and it releases the addresses that have been deleted from the source. out with the old, in with the new, periodt. πŸ’…

⚠️ okay important: the source device must be locked by netif_addr_lock_bh. like, not optional. lock it. πŸ”’

this function is intended to be called from the dev->set_rx_mode function of layered software devices. it's literally designed so that a single source device can be synced to multiple destination devices β€” hence the name, iykyk. it's giving "one source, many destinations" energy and honestly? iconic. πŸ‘‘


🌈 SEE ALSO 🌈

Kernel file ./net/core/dev_addr_lists.c β€” and like, the whole friend group:


so yeah, that's the whole page bestie πŸ§šπŸ’œ it lives in ./net/core, and this edition dropped October 2026. go forth and sync responsibly β€” and remember to lock that source device, fr fr πŸ˜­πŸ’–

πŸ“¦ where this page comes from