diff options
Diffstat (limited to 'zebra/kernel_netlink.c')
| -rw-r--r-- | zebra/kernel_netlink.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index e121228ac8..5d64f57b3e 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -1059,7 +1059,7 @@ static int nl_batch_read_resp(struct nl_batch *bth) { struct nlmsghdr *h; struct sockaddr_nl snl; - struct msghdr msg; + struct msghdr msg = {}; int status, seq; const struct nlsock *nl; struct zebra_dplane_ctx *ctx; @@ -1329,6 +1329,7 @@ static enum netlink_msg_status nl_put_msg(struct nl_batch *bth, case DPLANE_OP_SYS_ROUTE_DELETE: case DPLANE_OP_ROUTE_NOTIFY: case DPLANE_OP_LSP_NOTIFY: + case DPLANE_OP_BR_PORT_UPDATE: return FRR_NETLINK_SUCCESS; case DPLANE_OP_NONE: @@ -1470,6 +1471,9 @@ void kernel_init(struct zebra_ns *zns) one = 1; ret = setsockopt(zns->netlink_dplane.sock, SOL_NETLINK, NETLINK_CAP_ACK, &one, sizeof(one)); + if (ret < 0) + zlog_notice( + "Registration for reduced ACK packet size failed, probably running an early kernel"); #endif /* Register kernel socket. */ @@ -1506,7 +1510,7 @@ void kernel_init(struct zebra_ns *zns) void kernel_terminate(struct zebra_ns *zns, bool complete) { - THREAD_READ_OFF(zns->t_netlink); + thread_cancel(&zns->t_netlink); if (zns->netlink.sock >= 0) { close(zns->netlink.sock); |
