linux-cp: update adjs for subifs too when mac changes 59/38859/3
authorAlexander Chernavin <[email protected]>
Fri, 19 May 2023 15:43:06 +0000 (15:43 +0000)
committerMatthew Smith <[email protected]>
Fri, 26 May 2023 21:52:18 +0000 (21:52 +0000)
commit2355e4973365b0ea3f14737f894636973e656b16
treedb2d4c67e99db51dcc1e48c77e98dbbd83ae4ecd
parent4778164869395ec9efeeef31fc08f97b93cdff90
linux-cp: update adjs for subifs too when mac changes

The plugin creates and manages adjacencies for the physical interface in
each interface pair (they are part of the x-connect feature). When a
link update notification is received from the host system, MAC address
of the corresponding physical interface is updated (as needed) as well
as previously created adjacencies for it (because a new rewrite string
needs to be generated).

Subinterfaces inherit MAC address from the parent interface. When MAC
address of the parent interface changes, it also implies MAC address
change for its subinterfaces. The problem is that this is currently not
considered in the plugin. After MAC address update on the parent
interface, packets sent from subinterfaces might have wrong source MAC
address. For example, IPv6 Neighbor Solicitation messages will be sent
with the wrong (previous) MAC address and neighbor discovery will fail.

With this fix, when the plugin updates adjacencies for a physical
interface, it will also update adjacencies for the subinterfaces with
existing interface pair.

Type: fix
Change-Id: Ia5f617197e33cb79b9b025c02c2c126c31a551ec
Signed-off-by: Alexander Chernavin <[email protected]>
src/plugins/linux-cp/lcp_router.c