This PR deals with updating L3 egress entries.
There are L3 egress entries being removed on IPv6 Link Layer addresses neigh removal. This is a mismatch since we are not refcounting ipv6 ll addresses.
Additionally, we have to track nexthop changes, more specifically updating routes over a nexthop when it turns unreachable. This is done via registering a route and its nexthop on addition, and waiting on this object until the corresponding nexthop gets deleted via del_l3_neigh. We then rewrite the route to controller, which is a mismatch to Linux state. Linux "wipes" the route from the kernel state, but we do not receive a specific notification for this event.
Description
This PR deals with updating L3 egress entries. There are L3 egress entries being removed on IPv6 Link Layer addresses neigh removal. This is a mismatch since we are not refcounting ipv6 ll addresses.
Additionally, we have to track nexthop changes, more specifically updating routes over a nexthop when it turns unreachable. This is done via registering a route and its nexthop on addition, and waiting on this object until the corresponding nexthop gets deleted via del_l3_neigh. We then rewrite the route to controller, which is a mismatch to Linux state. Linux "wipes" the route from the kernel state, but we do not receive a specific notification for this event.
How Has This Been Tested?
Internal static-route test on the 4610.