From: Mark Stapp Date: Tue, 1 Feb 2022 18:41:17 +0000 (-0500) Subject: zebra: reduce incoming netlink messages for dplane thread X-Git-Tag: pim6-testing-20220430~374^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=ceab66b7f42516412747e47a080125a9f758162a;p=mirror%2Ffrr.git zebra: reduce incoming netlink messages for dplane thread The dataplane pthread only processes a limited set of incoming netlink notifications: only register for that set of events, reducing duplicate incoming netlink messages. Signed-off-by: Mark Stapp --- diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index d614aa26d0..e7ef28d0f7 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -1455,7 +1455,7 @@ void kernel_update_multi(struct dplane_ctx_q *ctx_list) netlink_socket (). */ void kernel_init(struct zebra_ns *zns) { - uint32_t groups; + uint32_t groups, dplane_groups; #if defined SOL_NETLINK int one, ret; #endif @@ -1480,6 +1480,10 @@ void kernel_init(struct zebra_ns *zns) ((uint32_t) 1 << (RTNLGRP_IPV6_RULE - 1)) | ((uint32_t) 1 << (RTNLGRP_NEXTHOP - 1)); + dplane_groups = (RTMGRP_LINK | + RTMGRP_IPV4_IFADDR | + RTMGRP_IPV6_IFADDR); + snprintf(zns->netlink.name, sizeof(zns->netlink.name), "netlink-listen (NS %u)", zns->ns_id); zns->netlink.sock = -1; @@ -1514,7 +1518,8 @@ void kernel_init(struct zebra_ns *zns) sizeof(zns->netlink_dplane_in.name), "netlink-dp-in (NS %u)", zns->ns_id); zns->netlink_dplane_in.sock = -1; - if (netlink_socket(&zns->netlink_dplane_in, groups, zns->ns_id) < 0) { + if (netlink_socket(&zns->netlink_dplane_in, dplane_groups, + zns->ns_id) < 0) { zlog_err("Failure to create %s socket", zns->netlink_dplane_in.name); exit(-1);