diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2020-10-18 14:29:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-18 14:29:19 +0200 |
commit | c85b63238ae18baaabd833cdbfba79bba227a0e0 (patch) | |
tree | afe22b8fe42275b637ea9a7488bdab7c54b92c0b | |
parent | Merge pull request #7267 from donaldsharp/plist_relaxer (diff) | |
parent | zebra: support multiple connected subnets on an interface (diff) | |
download | frr-c85b63238ae18baaabd833cdbfba79bba227a0e0.tar.xz frr-c85b63238ae18baaabd833cdbfba79bba227a0e0.zip |
Merge pull request #7333 from mjstapp/fix_multi_connected
zebra: support multiple connected subnets on an interface
-rw-r--r-- | zebra/zebra_rib.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 8b375e44b..cc6e9c2ad 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -1378,8 +1378,6 @@ static void zebra_rib_fixup_system(struct route_node *rn) static bool rib_compare_routes(const struct route_entry *re1, const struct route_entry *re2) { - bool result = false; - if (re1->type != re2->type) return false; @@ -1393,17 +1391,14 @@ static bool rib_compare_routes(const struct route_entry *re1, re1->distance != re2->distance) return false; - /* Only connected routes need more checking, nexthop-by-nexthop */ + /* We support multiple connected routes: this supports multiple + * v6 link-locals, and we also support multiple addresses in the same + * subnet on a single interface. + */ if (re1->type != ZEBRA_ROUTE_CONNECT) return true; - /* Quick check if shared nhe */ - if (re1->nhe == re2->nhe) - return true; - - result = nexthop_group_equal_no_recurse(&re1->nhe->nhg, &re2->nhe->nhg); - - return result; + return false; } /* |