Wed, Dec 04, 2019 at 08:17:11AM CET, liuhangbin@gmail.com wrote:
When adding the first slave to team dev, the team dev's hwaddr will be updated to this slave's hwaddr in function: teamd_event_watch_port_added()
- teamd_hwaddr_check_change(),
But we didn't update the ctx->hwaddr, which is still the team's init hwaddr.
Later in the following functions: lacp_port_set_mac() lb_event_watch_port_added() ab_hwaddr_policy_same_all_port_added() they will set the first slave's hwaddr to team's init hwaddr(ctx->hwaddr).
This will cause that the first slave(most likely the active slave)'s hwaddr changes to team dev's original hwaddr, and later back to its old hwaddr again, which would make the LACPDUs have different Actor System IDs.
Fix it by updating ctx->hwaddr when set ctx->ifindex to new hwaddr.
Note that teamd_set_hwaddr() doesn't need this fix as it will set ctx->hwaddr_explicit = true.
v2: update commit description, no code changes.
Signed-off-by: Hangbin Liu liuhangbin@gmail.com
applied, thanks.
Next time, please put the "v2" notes under "---"