summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorDaniel Walton <dwalton76@gmail.com>2017-09-07 15:19:56 -0400
committerGitHub <noreply@github.com>2017-09-07 15:19:56 -0400
commit43fba41d39e955f7bb85bfe5b36db12b47ddd816 (patch)
tree96157232ebd824e926b26728839cc616b4812cf2 /zebra/zebra_rib.c
parentb200bb7484dc0a2eb5691c39a4441d823e1b4cee (diff)
parentc2713b2acbbf09a37db868f8b92775ea5cb41501 (diff)
Merge pull request #1127 from opensourcerouting/connected_duplicates
zebra: allow multiple connected routes for the same prefix
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index d74f84a1f6..c4c80b156b 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -2475,10 +2475,11 @@ int rib_add(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
return 0;
/*
* Nexthop is different. Remove the old route unless it's
- * a link-local route.
+ * a connected route. This exception is necessary because
+ * of IPv6 link-local routes and unnumbered interfaces on
+ * Linux.
*/
- else if (afi != AFI_IP6
- || !IN6_IS_ADDR_LINKLOCAL(&p->u.prefix6))
+ else if (type != ZEBRA_ROUTE_CONNECT)
same = re;
}