diff options
| author | Russ White <russ@riw.us> | 2018-12-13 10:41:26 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-13 10:41:26 -0500 |
| commit | f4aaa039075548760cd5e619c5d241dc3bbae22c (patch) | |
| tree | 194b49e32aa86aee8b57b421081643be49605fab /zebra/rt_netlink.c | |
| parent | f1663c1eaefed315a6e614a5ecfccbf6ca0286b5 (diff) | |
| parent | 220f0f4245e36cd170bea79e501de43ac46e428a (diff) | |
Merge pull request #3477 from donaldsharp/multipath_respect
zebra: Allow zebra to only mark up to multipath_num nexthops as ACTIVE
Diffstat (limited to 'zebra/rt_netlink.c')
| -rw-r--r-- | zebra/rt_netlink.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index cb9ef8e36f..8ce963b37b 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -1584,7 +1584,7 @@ static int netlink_route_multipath(int cmd, struct zebra_dplane_ctx *ctx) } /* Singlepath case. */ - if (nexthop_num == 1 || multipath_num == 1) { + if (nexthop_num == 1) { nexthop_num = 0; for (ALL_NEXTHOPS_PTR(dplane_ctx_get_ng(ctx), nexthop)) { /* @@ -1676,9 +1676,6 @@ static int netlink_route_multipath(int cmd, struct zebra_dplane_ctx *ctx) nexthop_num = 0; for (ALL_NEXTHOPS_PTR(dplane_ctx_get_ng(ctx), nexthop)) { - if (nexthop_num >= multipath_num) - break; - if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_RECURSIVE)) { /* This only works for IPv4 now */ @@ -1876,12 +1873,6 @@ enum zebra_dplane_result kernel_route_update(struct zebra_dplane_ctx *ctx) if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_ACTIVE)) { SET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB); - - /* If we're only allowed a single nh, don't - * continue. - */ - if (multipath_num == 1) - break; } } } @@ -2698,7 +2689,7 @@ int netlink_mpls_multipath(int cmd, zebra_lsp_t *lsp) /* Fill nexthops (paths) based on single-path or multipath. The paths * chosen depend on the operation. */ - if (nexthop_num == 1 || multipath_num == 1) { + if (nexthop_num == 1) { routedesc = "single-path"; _netlink_mpls_debug(cmd, lsp->ile.in_label, routedesc); @@ -2745,9 +2736,6 @@ int netlink_mpls_multipath(int cmd, zebra_lsp_t *lsp) if (!nexthop) continue; - if (nexthop_num >= multipath_num) - break; - if ((cmd == RTM_NEWROUTE && (CHECK_FLAG(nhlfe->flags, NHLFE_FLAG_SELECTED) && CHECK_FLAG(nexthop->flags, |
