dev_uc_unsync(9)
π dev_uc_unsync(9) β the Kernel API Manual, bestie edition
okay so this is dev_uc_unsync from the kernel API manual, and it's lowkey iconic for what it does: it un-syncs. it's the cleanup queen. let's get into it π
β¨ NAME β¨
dev_uc_unsync β Remove synchronized addresses from the destination device
like literally, it takes the addresses that got synced over and yeets them back out. it's giving "you don't belong here anymore" π
π¦ SYNOPSIS π¦
void dev_uc_unsync (struct net_device *to , struct net_device *from );
two struct net_device * pointers, one called to, one called from, and it returns void because it's not here to give you answers, it's here to do the work. periodt.
πΈ ARGUMENTS πΈ
toβ destination device. the one getting its addresses removed. main character of this operation honestly πfromβ source device. the place those addresses originally came from. the origin story, if you will β¨
π₯ DESCRIPTION π₯
Remove all addresses that were added to the destination device by dev_uc_sync.
that's it. that's the whole vibe. it undoes what dev_uc_sync did, and it's not subtle about it β all the addresses, gone, no cap.
This function is intended to be called from the dev->stop function of layered software devices.
so like, when your layered software device is shutting down its dev->stop, that's your moment π«Ά. that's where you call this. it's the "closing time, turn the lights off" function of the address-syncing world. ngl it's kind of a slay that it's this straightforward.
π SEE ALSO π
Kernel file ./net/core/dev_addr_lists.c and its whole friend group β these are all in the same file, iykyk:
__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_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)__dev_set_rx_mode(9)netif_rx_mode_sync(9)
literally the entire multicast/unicast address family reunion, and dev_uc_unsync is the cousin who shows up, does one thing, and dips π
bestie reminder: this one only removes whatdev_uc_syncput there. it's a targeted cleanup, not adev_uc_flush. don't mix up your vibes π
and that's the page! π this masterpiece lives in ./net/core, comes from the October 2026 edition of the kernel docs, and honestly? she ate. πβ stay synced (or don't, that's literally the point) π§π
π¦ 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