diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2023-11-06 08:56:50 -0500 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2023-11-06 08:56:50 -0500 | 
| commit | 7e1b56ba98c22bb26cd798b289a214abfb32a8e2 (patch) | |
| tree | be3a9db0cc4e78f15f97178ca84c2cb91342b422 /zebra/rt_netlink.c | |
| parent | 7fe9333dd7e963dd6c96e1dac1dbbc4271ad693f (diff) | |
zebra: When using Nexthop groups, use v6 RR semantics
The nexthop group route replace operation was made consistent
across all versions of the kernel.  A v6 route replacement
does not need to do a delete than add when using nexthop
groups
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'zebra/rt_netlink.c')
| -rw-r--r-- | zebra/rt_netlink.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 3351b03950..58116c6563 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -2209,7 +2209,8 @@ ssize_t netlink_route_multipath_msg_encode(int cmd, struct zebra_dplane_ctx *ctx  	req->n.nlmsg_flags = NLM_F_CREATE | NLM_F_REQUEST;  	if (((cmd == RTM_NEWROUTE) && -	     ((p->family == AF_INET) || zrouter.v6_rr_semantics)) || +	     ((p->family == AF_INET) || kernel_nexthops_supported() || +	      zrouter.v6_rr_semantics)) ||  	    force_rr)  		req->n.nlmsg_flags |= NLM_F_REPLACE; @@ -3095,7 +3096,8 @@ netlink_put_route_update_msg(struct nl_batch *bth, struct zebra_dplane_ctx *ctx)  	} else if (dplane_ctx_get_op(ctx) == DPLANE_OP_ROUTE_INSTALL) {  		cmd = RTM_NEWROUTE;  	} else if (dplane_ctx_get_op(ctx) == DPLANE_OP_ROUTE_UPDATE) { -		if (p->family == AF_INET || zrouter.v6_rr_semantics) { +		if (p->family == AF_INET || kernel_nexthops_supported() || +		    zrouter.v6_rr_semantics) {  			/* Single 'replace' operation */  			/*  | 
