]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: When `zebra nexthop proto only` limit errors 10908/head
authorDonald Sharp <sharpd@nvidia.com>
Mon, 28 Mar 2022 11:35:53 +0000 (07:35 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 18 Apr 2022 13:41:38 +0000 (09:41 -0400)
Operators are seeing:

Mar 28 07:19:37 kingpin zebra[418]: [TZANK-DEMSE] netlink_nexthop_msg_encode: nhg_id 68 (zebra): proto-based nexthops only, ignoring
Mar 28 07:19:37 kingpin zebra[418]: [TZANK-DEMSE] netlink_nexthop_msg_encode: nhg_id 68 (zebra): proto-based nexthops only, ignoring
Mar 28 07:19:37 kingpin zebra[418]: [YXPF5-B2CE0] netlink_route_multipath_msg_encode: RTM_DELROUTE 2804:4d48:4000::/42 vrf 0(254)
Mar 28 07:19:37 kingpin zebra[418]: [YXPF5-B2CE0] netlink_route_multipath_msg_encode: RTM_NEWROUTE 2804:4d48:4000::/42 vrf 0(254)
Mar 28 07:19:37 kingpin zebra[418]: [TVM3E-A8ZAG] _netlink_route_build_singlepath: (single-path): 2804:4d48:4000::/42 nexthop via fe80::b6fb:e4ff:fe26:c5d5  if 2 vrf default(0)
Mar 28 07:19:37 kingpin zebra[418]: [HYEHE-CQZ9G] nl_batch_send: netlink-dp (NS 0), batch size=140, msg cnt=2
Mar 28 07:19:37 kingpin zebra[418]: [P2XBZ-RAFQ5][EC 4043309074] Failed to install Nexthop ID (68) into the kernel

When `zebra nexthop proto only` is turned on.

Effectively zebra intentionally does not do the nexthop group installation
and the dplane notification in zebra_nhg.c just assumes it was a failure
and prints an error message.  Since this act was intentional, let's
just notice that it was intentional and not report the message
as a failure.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra/zebra_nhg.c

index 02894632eadac22f303132b11e5d1927b29670cb..f4524a80180b8cd160ad54f07d363c49eb0dbc26 100644 (file)
@@ -3001,10 +3001,12 @@ void zebra_nhg_dplane_result(struct zebra_dplane_ctx *ctx)
                                                 nhe->zapi_session, nhe->id,
                                                 ZAPI_NHG_FAIL_INSTALL);
 
-                       flog_err(
-                               EC_ZEBRA_DP_INSTALL_FAIL,
-                               "Failed to install Nexthop ID (%u) into the kernel",
-                               nhe->id);
+                       if (!(zebra_nhg_proto_nexthops_only() &&
+                             !PROTO_OWNED(nhe)))
+                               flog_err(
+                                       EC_ZEBRA_DP_INSTALL_FAIL,
+                                       "Failed to install Nexthop ID (%u) into the kernel",
+                                       nhe->id);
                }
                break;