summaryrefslogtreecommitdiffstats
path: root/zebra
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2023-11-17 22:57:20 +0100
committerDonald Sharp <sharpd@nvidia.com>2023-11-20 15:47:31 +0100
commit6b23ece88bc061ed6c0bdabf6846e3d981aa757a (patch)
treea04d43c6efb7461a5c3e924d79edf4cc32985c04 /zebra
parentMerge pull request #14824 from opensourcerouting/ospf6-p2xp-fixuninit (diff)
downloadfrr-6b23ece88bc061ed6c0bdabf6846e3d981aa757a.tar.xz
frr-6b23ece88bc061ed6c0bdabf6846e3d981aa757a.zip
zebra: Fix fpm multipath encap addition
The fpm code path in building a ecmp route for evpn has a bug that caused it to not add the encap attribute to the netlink message. See #f0f7b285b99dbd971400d33feea007232c0bd4a9 for the single path case being fixed. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'zebra')
-rw-r--r--zebra/rt_netlink.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 58116c656..502b6be43 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -2475,6 +2475,16 @@ ssize_t netlink_route_multipath_msg_encode(int cmd, struct zebra_dplane_ctx *ctx
tag))
return 0;
+ /*
+ * Add encapsulation information when installing via
+ * FPM.
+ */
+ if (fpm) {
+ if (!netlink_route_nexthop_encap(
+ &req->n, datalen, nexthop))
+ return 0;
+ }
+
if (!setsrc && src1) {
if (p->family == AF_INET)
src.ipv4 = src1->ipv4;
@@ -2488,23 +2498,6 @@ ssize_t netlink_route_multipath_msg_encode(int cmd, struct zebra_dplane_ctx *ctx
nl_attr_nest_end(&req->n, nest);
- /*
- * Add encapsulation information when installing via
- * FPM.
- */
- if (fpm) {
- for (ALL_NEXTHOPS_PTR(dplane_ctx_get_ng(ctx),
- nexthop)) {
- if (CHECK_FLAG(nexthop->flags,
- NEXTHOP_FLAG_RECURSIVE))
- continue;
- if (!netlink_route_nexthop_encap(
- &req->n, datalen, nexthop))
- return 0;
- }
- }
-
-
if (setsrc) {
if (p->family == AF_INET) {
if (!nl_attr_put(&req->n, datalen, RTA_PREFSRC,