ethernet: run callbacks for subifs too when mac changes 34/40034/2
authorAlexander Chernavin <achernavin@netgate.com>
Mon, 22 May 2023 14:27:24 +0000 (14:27 +0000)
committerDave Wallace <dwallacelf@gmail.com>
Fri, 1 Dec 2023 19:26:17 +0000 (19:26 +0000)
commit74a7a5ae0853e670885988adb795a735fd7334e7
tree9fe4090594bb261b61506c2cbf3032aecc2fd6f5
parent70591c147d11bc55c64c15546158c31ced3cd1df
ethernet: run callbacks for subifs too when mac changes

When MAC address changes for an interface, address change callbacks are
executed for it. In turn adjacencies register a callback for MAC address
changes to be able to update their rewrite strings accordingly.

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 when address change callbacks are executed. After MAC address
change on the parent interface, packets sent from subinterfaces might
have wrong source MAC address as the result of stale adjacencies. For
example, ARP messages might be sent with the wrong (previous) MAC
address and address resolution will fail.

With this fix, when address change callbacks are executed for an
interface, they will be also executed for its subinterfaces. And
adjacencies will be able to update accordingly.

Type: fix
Change-Id: I87349698c10b9c3a31a28c0287e6dc711d9413a2
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
(cherry picked from commit 8a92b68bc8eaaec48d144fba62490a32f28eb422)
src/vnet/ethernet/interface.c
test/test_neighbor.py