diff --git a/src/sonic-frr/patch/0032-zebra-Fix-fpm-multipath-encap-addition.patch b/src/sonic-frr/patch/0032-zebra-Fix-fpm-multipath-encap-addition.patch new file mode 100644 index 000000000000..5e3ce1441206 --- /dev/null +++ b/src/sonic-frr/patch/0032-zebra-Fix-fpm-multipath-encap-addition.patch @@ -0,0 +1,58 @@ +From b7ac2397103fe7d347d0766bd9966ff2302403c5 Mon Sep 17 00:00:00 2001 +From: dgsudharsan +Date: Tue, 21 Nov 2023 01:17:24 +0000 +Subject: [PATCH] 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. + + +diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c +index 71505e037a..6bdc15592c 100644 +--- a/zebra/rt_netlink.c ++++ b/zebra/rt_netlink.c +@@ -2330,6 +2330,16 @@ ssize_t netlink_route_multipath_msg_encode(int cmd, + 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; +@@ -2343,23 +2353,6 @@ ssize_t netlink_route_multipath_msg_encode(int cmd, + + 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, +-- +2.17.1 + diff --git a/src/sonic-frr/patch/series b/src/sonic-frr/patch/series index a2689c1529ca..c87c5e61f986 100644 --- a/src/sonic-frr/patch/series +++ b/src/sonic-frr/patch/series @@ -31,3 +31,4 @@ cross-compile-changes.patch 0029-bgpd-Handle-MP_REACH_NLRI-malformed-packets-with-ses.patch 0030-bgpd-Treat-EOR-as-withdrawn-to-avoid-unwanted-handli.patch 0031-bgpd-Ignore-handling-NLRIs-if-we-received-MP_UNREACH.patch +0032-zebra-Fix-fpm-multipath-encap-addition.patch