summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2020-10-18 14:29:19 +0200
committerGitHub <noreply@github.com>2020-10-18 14:29:19 +0200
commitc85b63238ae18baaabd833cdbfba79bba227a0e0 (patch)
treeafe22b8fe42275b637ea9a7488bdab7c54b92c0b
parentMerge pull request #7267 from donaldsharp/plist_relaxer (diff)
parentzebra: support multiple connected subnets on an interface (diff)
downloadfrr-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.c15
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;
}
/*