zebra: add an exception for link-local connected routes

Link-local routes are unique in the sense that they all have the same
prefix but have different nexthops (local interfaces). Add an exception
in rib_add() to allows us to keep track of all of them.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
Renato Westphal 2017-09-01 11:44:22 -03:00
parent 8ba5bd58aa
commit 5f20552d51

View File

@ -2472,7 +2472,12 @@ int rib_add(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
rtnh = re->nexthop;
if (nexthop_same_no_recurse(rtnh, nh))
return 0;
else
/*
* Nexthop is different. Remove the old route unless it's
* a link-local route.
*/
else if (afi != AFI_IP6
|| !IN6_IS_ADDR_LINKLOCAL(&p->u.prefix6))
same = re;
}