From: Duncan Eastoe Date: Tue, 22 Dec 2020 21:23:43 +0000 (+0000) Subject: zebra: zebra2proto() handle kernel/connect type X-Git-Tag: base_7.6~97^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F7788%2Fhead;p=mirror%2Ffrr.git zebra: zebra2proto() handle kernel/connect type When dplane_fpm_nl is used the "Please add this protocol(n) to proper rt_netlink.c handling" debug message is emitted for any route of type kernel or connected. This severely reduces performance of dplane_fpm_nl when large numbers of these routes are present in the RIB. The messages are not observed when using the original fpm module since this uses a custom function, netlink_proto_from_route_type(). zebra2proto() now returns RTPROT_KERNEL for ZEBRA_ROUTE_CONNECT and ZEBRA_ROUTE_KERNEL. This should only impact dplane_fpm_nl's use of the common netlink routines since these routes generally ignored via checking of RSYSTEM_ROUTE(). Signed-off-by: Duncan Eastoe --- diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index f59fbae3af..c034ea2fd2 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -266,6 +266,10 @@ static inline int zebra2proto(int proto) case ZEBRA_ROUTE_NHG: proto = RTPROT_ZEBRA; break; + case ZEBRA_ROUTE_CONNECT: + case ZEBRA_ROUTE_KERNEL: + proto = RTPROT_KERNEL; + break; default: /* * When a user adds a new protocol this will show up