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 |
