diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2023-11-17 16:57:20 -0500 | 
|---|---|---|
| committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2023-11-21 07:09:35 +0000 | 
| commit | 8318d7ef30481c23b14f08d9250415f59d5c719d (patch) | |
| tree | 509983b85d09391414284b875c2f7422469c52bb | |
| parent | bd0ccd34202501cdeec2b595df74df0ecce19c3c (diff) | |
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>
(cherry picked from commit 6b23ece88bc061ed6c0bdabf6846e3d981aa757a)
| -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 7c7c41c4fa..b8362bbba5 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -2473,6 +2473,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; @@ -2486,23 +2496,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,  | 
