At the point of handling a deleted l3 neighbor, it might already be
removed from the fdb, so we can't rely on it having an entry to figure
out the physical port.
In that case, traverse the map and find a match for vid/src/dst, which
should exist at this point (and only have one entry), and use that.
Fixes the following assert:
3 0x00007f26bdd36b32 in __assert_fail () from /lib/libc.so.6
4 0x000055a87d18deda in basebox::nl_l3::del_l3_neigh_egress (this=0x55a87d389cb0, n=) at /usr/include/c++/9.3.0/ostream:181
5 0x000055a87d18e7f3 in basebox::nl_l3::del_l3_neigh (this=0x55a87d389cb0, n=0x55a87d398930) at ../git/src/netlink/nl_l3.cc:920
6 0x000055a87d170c51 in basebox::cnetlink::route_neigh_apply (this=0x55a87d368da0, obj=...) at ../git/src/netlink/nl_obj.h:24
At the point of handling a deleted l3 neighbor, it might already be removed from the fdb, so we can't rely on it having an entry to figure out the physical port.
In that case, traverse the map and find a match for vid/src/dst, which should exist at this point (and only have one entry), and use that.
Fixes the following assert:
Signed-off-by: Jonas Gorski jonas.gorski@bisdn.de
How Has This Been Tested?
Pipeline 16934