slave_set_ns_maddr(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… slave_set_ns_maddr(9) β€” like, the manual, but make it make sense πŸŽ€

okay bestie, so this is a page from the Kernel API Manual (yes, the (9) section, we love a kernel-internals moment ✨) and it's all about slave_set_ns_maddr. sit down, grab a strawberry, we're doing this πŸ“


🌸 NAME 🌸

slave_set_ns_maddr β€” sets a brand new NS mac address for a slave. that's the whole vibe. no cap. πŸ‘‘


✨ SYNOPSIS ✨

void slave_set_ns_maddr (struct bonding *bond , struct slave *slave ,
struct in6_addr *target , struct in6_addr *slot );

literally just a void function, no return value, we love a function that doesn't need to report back 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • bond β€” the bond device πŸ’œ
  • slave β€” the slave device, obviously 🌈
  • target β€” the new IPv6 target, the main character of this operation ⭐
  • slot β€” the old IPv6 target that's currently chilling in the slot πŸ™ˆ

πŸ’– DESCRIPTION πŸ’–

so what it does: this function tries to replace the old mac address with a new one on the slave. glow-up for the mac address, fr fr βœ¨πŸ’…

⚠️ okay, important note, don't skip this one: the target/slot IPv6 address is the unicast address in the Neighbor Solicitation (NS) message. the dest address of the NS message should be the solicited-node multicast address of the target. and the dest mac of the NS message is converted from that solicited-node multicast address. so like, that chain of address magic is load-bearing, iykyk 🧚

and this function gets called when:

  • An IPv6 NS target is added or removed. πŸ”₯

(single bullet, but an iconic single bullet 🌟)


πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file ./drivers/net/bonding/bond_options.c is the home base for all of these besties:


πŸŽ€ sign-off πŸŽ€

this little beauty lives under ./drivers/net/bonding, and the page is dated October 2026. that's it, that's the page, go forth and set those NS mac addresses πŸ’–πŸ¦‹πŸŒΈ periodt.

πŸ“¦ where this page comes from