Hi Jiri,
In libteam teamd/teamd_runner_activebackup.c, when there is a failover, function ab_set_active_port() will enable port first and set new hwaddr later. Sometimes the gratuitous ARP will be sent before the new hwaddr be set on team. This will cause the ARP src mac address is still using the old hwaddr. Here is the code.
libteam team_set_port_enabled(): - team_port_enable() - team_notify_peers() - team_notify_peers_work() - call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, team->dev) - inetdev_send_gratuitous_arp(dev, in_dev);
ab->hwaddr_policy->active_set(ctx, ab, tdport)
Do you think if we should move the hwaddr setting before enabling ports? I just a little warry about what we should do if hwaddr setting pass but the port enable failed.
WDYT?
Thanks Hangbin
libteam@lists.fedorahosted.org