diff options
author | Donald Sharp <sharpd@nvidia.com> | 2023-11-17 22:57:20 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@nvidia.com> | 2023-11-20 15:47:31 +0100 |
commit | 6b23ece88bc061ed6c0bdabf6846e3d981aa757a (patch) | |
tree | a04d43c6efb7461a5c3e924d79edf4cc32985c04 /zebra | |
parent | Merge pull request #14824 from opensourcerouting/ospf6-p2xp-fixuninit (diff) | |
download | frr-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.c | 27 |
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, |