diff options
Diffstat (limited to 'zebra/rt_netlink.c')
| -rw-r--r-- | zebra/rt_netlink.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 33fe8db99e..10725665e8 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -2501,7 +2501,7 @@ static bool _netlink_nexthop_build_group(struct nlmsghdr *n, size_t req_size,   */  ssize_t netlink_nexthop_msg_encode(uint16_t cmd,  				   const struct zebra_dplane_ctx *ctx, -				   void *buf, size_t buflen) +				   void *buf, size_t buflen, bool fpm)  {  	struct {  		struct nlmsghdr n; @@ -2528,9 +2528,10 @@ ssize_t netlink_nexthop_msg_encode(uint16_t cmd,  	/*  	 * Nothing to do if the kernel doesn't support nexthop objects or -	 * we dont want to install this type of NHG +	 * we dont want to install this type of NHG, but FPM may possible to +	 * handle this.  	 */ -	if (!kernel_nexthops_supported()) { +	if (!fpm && !kernel_nexthops_supported()) {  		if (IS_ZEBRA_DEBUG_KERNEL || IS_ZEBRA_DEBUG_NHG)  			zlog_debug(  				"%s: nhg_id %u (%s): kernel nexthops not supported, ignoring", @@ -2850,7 +2851,7 @@ static ssize_t netlink_nexthop_msg_encoder(struct zebra_dplane_ctx *ctx,  		return -1;  	} -	return netlink_nexthop_msg_encode(cmd, ctx, buf, buflen); +	return netlink_nexthop_msg_encode(cmd, ctx, buf, buflen, false);  }  enum netlink_msg_status  | 
