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>
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;
}