]> git.proxmox.com Git - mirror_frr.git/blame - zebra/zebra_errors.c
Merge pull request #5706 from mjstapp/fix_nh_debug_show
[mirror_frr.git] / zebra / zebra_errors.c
CommitLineData
43e52561
QY
1/*
2 * Zebra-specific error messages.
3 * Copyright (C) 2018 Cumulus Networks, Inc.
4 * Quentin Young
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the Free
8 * Software Foundation; either version 2 of the License, or (at your option)
9 * any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; see the file COPYING; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <zebra.h>
247dcce2
QY
22
23#include "lib/ferr.h"
43e52561 24#include "zebra_errors.h"
43e52561
QY
25
26/* clang-format off */
85cd2f9f 27static struct log_ref ferr_zebra_err[] = {
43e52561 28 {
e914ccbe 29 .code = EC_ZEBRA_LM_RESPONSE,
43e52561
QY
30 .title = "Error reading response from label manager",
31 .description = "Zebra could not read the ZAPI header from the label manager",
32 .suggestion = "Wait for the error to resolve on its own. If it does not resolve, restart Zebra.",
33 },
34 {
e914ccbe 35 .code = EC_ZEBRA_LM_NO_SUCH_CLIENT,
43e52561
QY
36 .title = "Label manager could not find ZAPI client",
37 .description = "Zebra was unable to find a ZAPI client matching the given protocol and instance number.",
38 .suggestion = "Ensure clients which use the label manager are properly configured and running.",
39 },
40 {
e914ccbe 41 .code = EC_ZEBRA_LM_RELAY_FAILED,
43e52561
QY
42 .title = "Zebra could not relay label manager response",
43 .description = "Zebra found the client and instance to relay the label manager response or request to, but was not able to do so, possibly because the connection was closed.",
44 .suggestion = "Ensure clients which use the label manager are properly configured and running.",
45 },
46 {
e914ccbe 47 .code = EC_ZEBRA_LM_BAD_INSTANCE,
43e52561
QY
48 .title = "Mismatch between ZAPI instance and encoded message instance",
49 .description = "While relaying a request to the external label manager, Zebra noticed that the instance number encoded in the message did not match the client instance number.",
50 .suggestion = "Notify a developer.",
51 },
52 {
e914ccbe 53 .code = EC_ZEBRA_LM_EXHAUSTED_LABELS,
43e52561
QY
54 .title = "Zebra label manager used all available labels",
55 .description = "Zebra is unable to assign additional label chunks because it has exhausted its assigned label range.",
56 .suggestion = "Make the label range bigger and restart Zebra.",
57 },
58 {
e914ccbe 59 .code = EC_ZEBRA_LM_DAEMON_MISMATCH,
43e52561
QY
60 .title = "Daemon mismatch when releasing label chunks",
61 .description = "Zebra noticed a mismatch between a label chunk and a protocol daemon number or instance when releasing unused label chunks.",
62 .suggestion = "Ignore this error.",
63 },
64 {
e914ccbe 65 .code = EC_ZEBRA_LM_UNRELEASED_CHUNK,
43e52561
QY
66 .title = "Zebra did not free any label chunks",
67 .description = "Zebra's chunk cleanup procedure ran, but no label chunks were released.",
68 .suggestion = "Ignore this error.",
69 },
70 {
e914ccbe 71 .code = EC_ZEBRA_DP_INVALID_RC,
43e52561
QY
72 .title = "Dataplane returned invalid status code",
73 .description = "The underlying dataplane responded to a Zebra message or other interaction with an unrecognized, unknown or invalid status code.",
74 .suggestion = "Notify a developer.",
75 },
76 {
e914ccbe 77 .code = EC_ZEBRA_WQ_NONEXISTENT,
43e52561
QY
78 .title = "A necessary work queue does not exist.",
79 .description = "A necessary work queue does not exist.",
80 .suggestion = "Notify a developer.",
81 },
82 {
e914ccbe 83 .code = EC_ZEBRA_FEC_ADD_FAILED,
43e52561
QY
84 .title = "Failed to add FEC for MPLS client",
85 .description = "A client requested a label binding for a new FEC, but Zebra was unable to add the FEC to its internal table.",
86 .suggestion = "Notify a developer.",
87 },
57592a53
AD
88 {
89 .code = EC_ZEBRA_FEC_LABEL_INDEX_LABEL_CONFLICT,
90 .title = "Refused to add FEC for MPLS client with both label index and label specified",
91 .description = "A client requested a label binding for a new FEC specifying a label index and a label at the same time.",
92 .suggestion = "Notify a developer.",
93 },
43e52561 94 {
e914ccbe 95 .code = EC_ZEBRA_FEC_RM_FAILED,
43e52561
QY
96 .title = "Failed to remove FEC for MPLS client",
97 .description = "Zebra was unable to find and remove a FEC in its internal table.",
98 .suggestion = "Notify a developer.",
99 },
100 {
e914ccbe 101 .code = EC_ZEBRA_IRDP_LEN_MISMATCH,
43e52561
QY
102 .title = "IRDP message length mismatch",
103 .description = "The length encoded in the IP TLV does not match the length of the packet received.",
104 .suggestion = "Notify a developer.",
105 },
106 {
e914ccbe 107 .code = EC_ZEBRA_RNH_UNKNOWN_FAMILY,
43e52561
QY
108 .title = "Attempted to perform nexthop update for unknown address family",
109 .description = "Zebra attempted to perform a nexthop update for unknown address family",
110 .suggestion = "Notify a developer.",
111 },
112 {
e914ccbe 113 .code = EC_ZEBRA_DP_INSTALL_FAIL,
43e52561
QY
114 .title = "Dataplane installation failure",
115 .description = "Installation of routes to underlying dataplane failed.",
116 .suggestion = "Check all configuration parameters for correctness.",
117 },
9df414fe 118 {
e914ccbe 119 .code = EC_ZEBRA_DP_DELETE_FAIL,
9df414fe
QY
120 .title = "Dataplane deletion failure",
121 .description = "Deletion of routes from underlying dataplane failed.",
122 .suggestion = "Check all configuration parameters for correctness.",
123 },
43e52561 124 {
e914ccbe 125 .code = EC_ZEBRA_TABLE_LOOKUP_FAILED,
43e52561
QY
126 .title = "Zebra table lookup failed",
127 .description = "Zebra attempted to look up a table for a particular address family and subsequent address family, but didn't find anything.",
128 .suggestion = "If you entered a command to trigger this error, make sure you entered the arguments correctly. Check your config file for any potential errors. If these look correct, seek help.",
129 },
130 {
e914ccbe 131 .code = EC_ZEBRA_NETLINK_NOT_AVAILABLE,
43e52561
QY
132 .title = "Netlink backend not available",
133 .description = "FRR was not compiled with support for Netlink. Any operations that require Netlink will fail.",
134 .suggestion = "Recompile FRR with Netlink, or install a package that supports this feature.",
135 },
136 {
e914ccbe 137 .code = EC_ZEBRA_PROTOBUF_NOT_AVAILABLE,
43e52561
QY
138 .title = "Protocol Buffers backend not available",
139 .description = "FRR was not compiled with support for Protocol Buffers. Any operations that require Protobuf will fail.",
140 .suggestion = "Recompile FRR with Protobuf support, or install a package that supports this feature.",
141 },
142 {
e914ccbe 143 .code = EC_ZEBRA_TM_EXHAUSTED_IDS,
43e52561
QY
144 .title = "Table manager used all available IDs",
145 .description = "Zebra's table manager used up all IDs available to it and can't assign any more.",
146 .suggestion = "Reconfigure Zebra with a larger range of table IDs.",
147 },
148 {
e914ccbe 149 .code = EC_ZEBRA_TM_DAEMON_MISMATCH,
43e52561
QY
150 .title = "Daemon mismatch when releasing table chunks",
151 .description = "Zebra noticed a mismatch between a table ID chunk and a protocol daemon number instance when releasing unused table chunks.",
152 .suggestion = "Ignore this error.",
153 },
154 {
e914ccbe 155 .code = EC_ZEBRA_TM_UNRELEASED_CHUNK,
43e52561
QY
156 .title = "Zebra did not free any table chunks",
157 .description = "Zebra's table chunk cleanup procedure ran, but no table chunks were released.",
158 .suggestion = "Ignore this error.",
159 },
160 {
e914ccbe 161 .code = EC_ZEBRA_UNKNOWN_FAMILY,
43e52561
QY
162 .title = "Address family specifier unrecognized",
163 .description = "Zebra attempted to process information from somewhere that included an address family specifier, but did not recognize the provided specifier.",
164 .suggestion = "Ensure that your configuration is correct. If it is, notify a developer.",
165 },
166 {
e914ccbe 167 .code = EC_ZEBRA_TM_WRONG_PROTO,
43e52561
QY
168 .title = "Incorrect protocol for table manager client",
169 .description = "Zebra's table manager only accepts connections from daemons managing dynamic routing protocols, but received a connection attempt from a daemon that does not meet this criterion.",
170 .suggestion = "Notify a developer.",
171 },
172 {
e914ccbe 173 .code = EC_ZEBRA_PROTO_OR_INSTANCE_MISMATCH,
43e52561
QY
174 .title = "Mismatch between message and client protocol and/or instance",
175 .description = "Zebra detected a mismatch between a client's protocol and/or instance numbers versus those stored in a message transiting its socket.",
176 .suggestion = "Notify a developer.",
177 },
178 {
e914ccbe 179 .code = EC_ZEBRA_LM_CANNOT_ASSIGN_CHUNK,
43e52561
QY
180 .title = "Label manager unable to assign label chunk",
181 .description = "Zebra's label manager was unable to assign a label chunk to client.",
182 .suggestion = "Ensure that Zebra has a sufficient label range available and that there is not a range collision.",
183 },
184 {
e914ccbe 185 .code = EC_ZEBRA_LM_ALIENS,
43e52561
QY
186 .title = "Label request from unidentified client",
187 .description = "Zebra's label manager received a label request from an unidentified client.",
188 .suggestion = "Notify a developer.",
189 },
190 {
e914ccbe 191 .code = EC_ZEBRA_TM_CANNOT_ASSIGN_CHUNK,
43e52561
QY
192 .title = "Table manager unable to assign table chunk",
193 .description = "Zebra's table manager was unable to assign a table chunk to a client.",
194 .suggestion = "Ensure that Zebra has sufficient table ID range available and that there is not a range collision.",
195 },
196 {
e914ccbe 197 .code = EC_ZEBRA_TM_ALIENS,
43e52561
QY
198 .title = "Table request from unidentified client",
199 .description = "Zebra's table manager received a table request from an unidentified client.",
200 .suggestion = "Notify a developer.",
201 },
202 {
e914ccbe 203 .code = EC_ZEBRA_RECVBUF,
43e52561
QY
204 .title = "Cannot set receive buffer size",
205 .description = "Socket receive buffer size could not be set in the kernel",
206 .suggestion = "Ignore this error.",
207 },
208 {
e914ccbe 209 .code = EC_ZEBRA_UNKNOWN_NLMSG,
43e52561
QY
210 .title = "Unknown Netlink message type",
211 .description = "Zebra received a Netlink message with an unrecognized type field.",
212 .suggestion = "Verify that you are running the latest version of FRR to ensure kernel compatibility. If the problem persists, notify a developer.",
213 },
214 {
e914ccbe 215 .code = EC_ZEBRA_RECVMSG_OVERRUN,
43e52561
QY
216 .title = "Receive buffer overrun",
217 .description = "The kernel's buffer for a socket has been overrun, rendering the socket invalid.",
218 .suggestion = "Zebra will restart itself. Notify a developer if this issue shows up frequently.",
219 },
220 {
e914ccbe 221 .code = EC_ZEBRA_NETLINK_LENGTH_ERROR,
43e52561
QY
222 .title = "Netlink message length mismatch",
223 .description = "Zebra received a Netlink message with incorrect length fields.",
224 .suggestion = "Notify a developer.",
225 },
226 {
e914ccbe 227 .code = EC_ZEBRA_NETLINK_LENGTH_ERROR,
43e52561
QY
228 .title = "Netlink message length mismatch",
229 .description = "Zebra received a Netlink message with incorrect length fields.",
230 .suggestion = "Notify a developer.",
231 },
232 {
e914ccbe 233 .code = EC_ZEBRA_UNEXPECTED_MESSAGE,
43e52561
QY
234 .title = "Received unexpected response from kernel",
235 .description = "Received unexpected response from the kernel via Netlink.",
236 .suggestion = "Notify a developer.",
237 },
238 {
e914ccbe 239 .code = EC_ZEBRA_NETLINK_BAD_SEQUENCE,
43e52561
QY
240 .title = "Bad sequence number in Netlink message",
241 .description = "Zebra received a Netlink message with a bad sequence number.",
242 .suggestion = "Notify a developer.",
243 },
244 {
e914ccbe 245 .code = EC_ZEBRA_BAD_MULTIPATH_NUM,
43e52561
QY
246 .title = "Multipath number was out of valid range",
247 .description = "Multipath number specified to Zebra must be in the appropriate range",
248 .suggestion = "Provide a multipath number that is within its accepted range",
249 },
250 {
e914ccbe 251 .code = EC_ZEBRA_PREFIX_PARSE_ERROR,
43e52561
QY
252 .title = "String could not be parsed as IP prefix",
253 .description = "There was an attempt to parse a string as an IPv4 or IPv6 prefix, but the string could not be parsed and this operation failed.",
254 .suggestion = "Notify a developer.",
255 },
256 {
e914ccbe 257 .code = EC_ZEBRA_MAC_ADD_FAILED,
43e52561
QY
258 .title = "Failed to add MAC address to interface",
259 .description = "Zebra attempted to assign a MAC address to a vxlan interface but failed",
260 .suggestion = "Notify a developer.",
261 },
262 {
e914ccbe 263 .code = EC_ZEBRA_VNI_DEL_FAILED,
43e52561
QY
264 .title = "Failed to delete VNI",
265 .description = "Zebra attempted to delete a VNI entry and failed",
266 .suggestion = "Notify a developer.",
267 },
268 {
e914ccbe 269 .code = EC_ZEBRA_VTEP_ADD_FAILED,
43e52561
QY
270 .title = "Adding remote VTEP failed",
271 .description = "Zebra attempted to add a remote VTEP and failed.",
272 .suggestion = "Notify a developer.",
273 },
274 {
e914ccbe 275 .code = EC_ZEBRA_VNI_ADD_FAILED,
43e52561
QY
276 .title = "Adding VNI failed",
277 .description = "Zebra attempted to add a VNI hash to an interface and failed",
278 .suggestion = "Notify a developer.",
279 },
9df414fe 280 {
e914ccbe 281 .code = EC_ZEBRA_NS_NOTIFY_READ,
9df414fe
QY
282 .title = "Zebra failed to read namespace inotify information",
283 .description = "Zebra received an event from inotify, but failed to read what it was.",
284 .suggestion = "Notify a developer.",
285 },
3463f295
SW
286 {
287 .code = EC_ZEBRA_NHG_TABLE_INSERT_FAILED,
288 .title =
289 "Nexthop Group Hash Table Insert Failure",
290 .description =
291 "Zebra failed in inserting a Nexthop Group into its hash tables.",
292 .suggestion =
293 "Check to see if the entry already exists or if the netlink message was parsed incorrectly."
294 },
d9f5b2f5
SW
295 {
296 .code = EC_ZEBRA_NHG_SYNC,
297 .title =
298 "Zebra's Nexthop Groups are out of sync",
299 .description =
300 "Zebra's nexthop group tables are out of sync with the nexthop groups in the fib.",
301 .suggestion =
302 "Check the current status of the kernels nexthop groups and compare it to Zebra's."
303 },
1ba2db77
SW
304 {
305 .code = EC_ZEBRA_NHG_FIB_UPDATE,
306 .title =
307 "Zebra failed updating the fib with Nexthop Group",
308 .description =
309 "Zebra was not able to successfully install a new nexthop group into the fib",
310 .suggestion =
311 "Check to see if the nexthop group on the route you tried to install is valid."
312 },
7f1abf79
SW
313 {
314 .code = EC_ZEBRA_IF_LOOKUP_FAILED,
315 .title = "Zebra interface lookup failed",
316 .description = "Zebra attempted to look up a interface for a particular vrf_id and interface index, but didn't find anything.",
317 .suggestion = "If you entered a command to trigger this error, make sure you entered the arguments correctly. Check your config file for any potential errors. If these look correct, seek help.",
318 },
257b245c
SW
319 {
320 .code = EC_ZEBRA_NS_NO_DEFAULT,
321 .title = "Zebra NameSpace failed to find Default",
322 .description = "Zebra NameSpace subsystem failed to find a Default namespace during initialization.",
323 .suggestion = "Open an Issue with all relevant log files and restart FRR",
324 },
9df414fe
QY
325 /* Warnings */
326 {
e914ccbe 327 .code = EC_ZEBRAING_LM_PROTO_MISMATCH,
9df414fe
QY
328 .title =
329 "Zebra label manager received malformed label request",
330 .description =
331 "Zebra's label manager received a label request from a client whose protocol type does not match the protocol field received in the message.",
332 .suggestion =
333 "This is a bug. Please report it.",
334 },
335 {
e914ccbe 336 .code = EC_ZEBRA_LSP_INSTALL_FAILURE,
9df414fe
QY
337 .title =
338 "Zebra failed to install LSP into the kernel",
339 .description =
340 "Zebra made an attempt to install a label switched path, but the kernel indicated that the installation was not successful.",
341 .suggestion =
342 "Wait for Zebra to reattempt installation.",
343 },
344 {
e914ccbe 345 .code = EC_ZEBRA_LSP_DELETE_FAILURE,
9df414fe
QY
346 .title =
347 "Zebra failed to remove LSP from the kernel",
348 .description =
349 "Zebra made an attempt to remove a label switched path, but the kernel indicated that the deletion was not successful.",
350 .suggestion =
351 "Wait for Zebra to reattempt deletion.",
352 },
353 {
e914ccbe 354 .code = EC_ZEBRA_MPLS_SUPPORT_DISABLED,
9df414fe
QY
355 .title =
356 "Zebra will not run with MPLS support",
357 .description =
358 "Zebra noticed that the running kernel does not support MPLS, so it disabled MPLS support.",
359 .suggestion =
360 "If you want MPLS support, upgrade the kernel to a version that provides MPLS support.",
361 },
362 {
e914ccbe 363 .code = EC_ZEBRA_SYSCTL_FAILED,
9df414fe
QY
364 .title = "A call to sysctl() failed",
365 .description =
366 "sysctl() returned a nonzero exit code, indicating an error.",
367 .suggestion =
368 "The log message should contain further details on the specific error that occurred; investigate the reported error.",
369 },
370 {
e914ccbe 371 .code = EC_ZEBRA_NS_VRF_CREATION_FAILED,
9df414fe
QY
372 .title =
373 "Zebra failed to create namespace VRF",
374 .description =
375 "Zebra failed to create namespace VRF",
376 .suggestion = "",
377 },
378 {
e914ccbe 379 .code = EC_ZEBRA_NS_DELETION_FAILED_NO_VRF,
9df414fe
QY
380 .title =
381 "Zebra attempted to delete nonexistent namespace",
382 .description =
383 "Zebra attempted to delete a particular namespace, but no VRF associated with that namespace could be found to delete.",
384 .suggestion = "Please report this bug.",
385 },
386 {
e914ccbe 387 .code = EC_ZEBRA_IFLIST_FAILED,
9df414fe
QY
388 .title =
389 "Zebra interface listing failed",
390 .description =
391 "Zebra encountered an error attempting to query sysctl for a list of interfaces on the system.",
392 .suggestion =
393 "Check that Zebra is running with the appropriate permissions. If it is, please report this as a bug.",
394 },
395 {
e914ccbe 396 .code = EC_ZEBRA_IRDP_BAD_CHECKSUM,
9df414fe
QY
397 .title =
398 "Zebra received ICMP packet with invalid checksum",
399 .description =
400 "Zebra received an ICMP packet with a bad checksum and has silently ignored it.",
401 .suggestion =
402 "If the problem continues to occur, investigate the source of the bad ICMP packets.",
403 },
404 {
e914ccbe 405 .code = EC_ZEBRA_IRDP_BAD_TYPE_CODE,
9df414fe
QY
406 .title =
407 "Zebra received ICMP packet with bad type code",
408 .description =
409 "Zebra received an ICMP packet with a bad code for the message type and has silently ignored it.",
410 .suggestion =
411 "If the problem continues to occur, investigate the source of the bad ICMP packets.",
412 },
413 {
e914ccbe 414 .code = EC_ZEBRA_IRDP_BAD_RX_FLAGS,
9df414fe
QY
415 .title =
416 "Zebra received IRDP packet while operating in wrong mode",
417 .description =
418 "Zebra received a multicast IRDP packet while operating in unicast mode, or vice versa.",
419 .suggestion =
420 "If you wish to receive the messages, change your IRDP settings accordingly.",
421 },
9df414fe 422 {
e914ccbe 423 .code = EC_ZEBRA_RNH_NO_TABLE,
9df414fe
QY
424 .title =
425 "Zebra could not find table for next hop",
426 .description =
427 "Zebra attempted to add a next hop but could not find the appropriate table to install it in.",
428 .suggestion = "Please report this bug.",
429 },
430 {
e914ccbe 431 .code = EC_ZEBRA_FPM_FORMAT_UNKNOWN,
9df414fe
QY
432 .title =
433 "Unknown message format for Zebra's FPM module",
434 .description =
435 "Zebra's FPM module takes an argument which specifies the message format to use, but the format was either not provided or was not a valid format. The FPM interface will be disabled.",
436 .suggestion =
437 "Provide or correct the module argument to provide a valid format. See documentation for further information.",
438 },
439 {
e914ccbe 440 .code = EC_ZEBRA_CLIENT_IO_ERROR,
9df414fe
QY
441 .title =
442 "Zebra client connection failed",
443 .description =
444 "A Zebra client encountered an I/O error and is shutting down. This can occur under normal circumstances, such as when FRR is restarting or shutting down; it can also happen if the daemon crashed. Usually this warning can be ignored.",
445 .suggestion =
446 "Ignore this warning, it is mostly informational.",
447 },
448 {
e914ccbe 449 .code = EC_ZEBRA_CLIENT_WRITE_FAILED,
9df414fe
QY
450 .title =
451 "Zebra failed to send message to client",
452 .description =
453 "Zebra attempted to send a message to one of its clients, but the write operation failed. The connection will be closed.",
454 .suggestion =
455 "Ignore this warning, it is mostly informational.",
456 },
457 {
e914ccbe 458 .code = EC_ZEBRA_NETLINK_INVALID_AF,
9df414fe
QY
459 .title =
460 "Zebra received Netlink message with invalid family",
461 .description =
462 "Zebra received a Netlink message with an invalid address family.",
463 .suggestion =
464 "Inspect the logged address family and submit it with a bug report.",
465 },
466 {
e914ccbe 467 .code = EC_ZEBRA_REMOVE_ADDR_UNKNOWN_SUBNET,
9df414fe
QY
468 .title =
469 "Zebra tried to remove address from unknown subnet",
470 .description =
471 "Zebra attempted to remove an address from an unknown subnet.",
472 .suggestion =
473 "This is a bug, please report it.",
474 },
475 {
e914ccbe 476 .code = EC_ZEBRA_REMOVE_UNREGISTERED_ADDR,
9df414fe
QY
477 .title =
478 "Zebra tried to remove unregistered address",
479 .description =
480 "Zebra attempted to remove an address from a subnet it was not registered on.",
481 .suggestion =
482 "This is a bug, please report it.",
483 },
484 {
e914ccbe 485 .code = EC_ZEBRA_PTM_NOT_READY,
9df414fe
QY
486 .title =
487 "Interface is up but PTM check has not completed",
488 .description =
489 "Zebra noticed that an interface came up and attempted to perform its usual setup procedures, but the PTM check failed and the operation was aborted.",
490 .suggestion =
491 "If the problem persists, ensure that the interface is actually up and that PTM is functioning properly.",
492 },
493 {
e914ccbe 494 .code = EC_ZEBRA_UNSUPPORTED_V4_SRCDEST,
9df414fe
QY
495 .title =
496 "Kernel rejected sourcedest route",
497 .description =
498 "Zebra attempted to install a sourcedest route into the kernel, but the kernel did not acknowledge its installation. The route is unsupported.",
499 .suggestion =
500 "Check configuration values for correctness",
501 },
502 {
e914ccbe 503 .code = EC_ZEBRA_UNKNOWN_INTERFACE,
9df414fe
QY
504 .title =
505 "Zebra encountered an unknown interface specifier",
506 .description =
507 "Zebra was asked to look up an interface with a given name or index, but could not find the interface corresponding to the given name or index.",
508 .suggestion =
509 "Check configuration values for correctness.",
510 },
511 {
e914ccbe 512 .code = EC_ZEBRA_VRF_NOT_FOUND,
9df414fe
QY
513 .title =
514 "Zebra could not find the specified VRF",
515 .description =
516 "Zebra tried to look up a VRF, either by name or ID, and could not find it. This could be due to internal inconsistency (a bug) or a configuration error.",
517 .suggestion =
518 "Check configuration values for correctness. If values are correct, please file a bug report.",
519 },
520 {
e914ccbe 521 .code = EC_ZEBRA_MORE_NH_THAN_MULTIPATH,
9df414fe
QY
522 .title =
523 "More nexthops were provided than the configured multipath limit",
524 .description =
525 "A route with multiple nexthops was given, but the number of nexthops exceeded the configured multipath limit.",
526 .suggestion =
527 "Reduce the number of nexthops, or increase the multipath limit.",
528 },
529 {
e914ccbe 530 .code = EC_ZEBRA_NEXTHOP_CREATION_FAILED,
9df414fe
QY
531 .title =
532 "Zebra failed to create one or more nexthops",
533 .description =
534 "While attempting to create nexthops for a route installation operation, Zebra found that it was unable to create one or more of the given nexthops.",
535 .suggestion =
536 "Check configuration values for correctness. If they are correct, report this as a bug.",
537 },
7fcb24bb
RW
538 {
539 .code = EC_ZEBRA_RX_ROUTE_NO_NEXTHOPS,
540 .title =
541 "Zebra received an installation request for a route without nexthops",
542 .description =
543 "Zebra received a message from a client requesting a route installation, but the route is invalid since it doesn't have any nexthop address or interface.",
544 .suggestion =
545 "This is a bug; please report it.",
546 },
9df414fe 547 {
e914ccbe 548 .code = EC_ZEBRA_RX_SRCDEST_WRONG_AFI,
9df414fe
QY
549 .title =
550 "Zebra received sourcedest route install without IPv6 address family",
551 .description =
552 "Zebra received a message from a client requesting a sourcedest route installation, but the address family was not set to IPv6. Only IPv6 is supported for sourcedest routing.",
553 .suggestion =
554 "This is a bug; please report it.",
555 },
556 {
e914ccbe 557 .code = EC_ZEBRA_PSEUDOWIRE_EXISTS,
9df414fe
QY
558 .title =
559 "Zebra received an installation / creation request for a pseudowire that already exists",
560 .description =
561 "Zebra received an installation or creation request for a pseudowire that already exists, so the installation / creation has been skipped.",
562 .suggestion =
563 "This message is informational.",
564 },
565 {
e914ccbe 566 .code = EC_ZEBRA_PSEUDOWIRE_NONEXISTENT,
9df414fe
QY
567 .title =
568 "Zebra received an uninstallation / deletion request for a pseudowire that already exists",
569 .description =
570 "Zebra received an uninstallation / deletion request for a pseudowire that doesn't exist, so the uninstallation / deletion has been skipped.",
571 .suggestion =
572 "This message is informational.",
573 },
574 {
e914ccbe 575 .code = EC_ZEBRA_PSEUDOWIRE_UNINSTALL_NOT_FOUND,
9df414fe
QY
576 .title =
577 "Zebra received uninstall request for a pseudowire that doesn't exist",
578 .description =
579 "Zebra received an uninstall request for a pseudowire that doesn't exist, so the uninstallation has been skipped.",
580 .suggestion =
581 "This message is informational.",
582 },
583 {
e914ccbe 584 .code = EC_ZEBRA_NO_IFACE_ADDR,
9df414fe
QY
585 .title = "No address on interface",
586 .description =
587 "Zebra attempted to retrieve a connected address for an interface, but the interface had no connected addresses.",
588 .suggestion =
589 "This warning is situational; it is usually informative but can indicate a misconfiguration.",
590 },
591 {
e914ccbe 592 .code = EC_ZEBRA_IFACE_ADDR_ADD_FAILED,
9df414fe
QY
593 .title =
594 "Zebra failed to add address to interface",
595 .description =
596 "Zebra attempted to add an address to an interface but was unsuccessful.",
597 .suggestion =
598 "Check configuration values for correctness.",
599 },
600 {
e914ccbe 601 .code = EC_ZEBRA_IRDP_CANNOT_ACTIVATE_IFACE,
9df414fe
QY
602 .title =
603 "Zebra could not enable IRDP on interface",
604 .description =
605 "Zebra attempted to enable IRDP on an interface, but could not create the IRDP socket. The system may be out of socket resources, or privilege elevation may have failed.",
606 .suggestion =
607 "Verify that Zebra has the appropriate privileges and that the system has sufficient socket resources.",
608 },
609 {
e914ccbe 610 .code = EC_ZEBRA_IRDP_IFACE_DOWN,
9df414fe
QY
611 .title =
612 "Zebra attempted to enable IRDP on an interface, but the interface was down",
613 .description = "Zebra attempted to enable IRDP on an interface, but the interface was down.",
614 .suggestion =
615 "Bring up the interface that IRDP is desired on.",
616 },
617 {
e914ccbe 618 .code = EC_ZEBRA_IRDP_IFACE_MCAST_DISABLED,
9df414fe
QY
619 .title =
620 "Zebra cannot enable IRDP on interface because multicast is disabled",
621 .description =
622 "Zebra attempted to enable IRDP on an interface, but multicast functionality was not enabled on the interface.",
623 .suggestion =
624 "Enable multicast on the interface.",
625 },
626 {
e914ccbe 627 .code = EC_ZEBRA_NETLINK_EXTENDED_WARNING,
9df414fe
QY
628 .title =
629 "Zebra received warning message from Netlink",
630 .description =
631 "Zebra received a warning message from Netlink",
632 .suggestion =
633 "This message is informational. See the Netlink error message for details.",
634 },
635 {
e914ccbe 636 .code = EC_ZEBRA_NAMESPACE_DIR_INACCESSIBLE,
9df414fe
QY
637 .title =
638 "Zebra could not access /var/run/netns",
639 .description =
640 "Zebra tried to verify that the run directory for Linux network namespaces existed, but this test failed.",
641 .suggestion =
642 "Ensure that Zebra has the proper privileges to access this directory.",
643 },
644 {
e914ccbe 645 .code = EC_ZEBRA_CONNECTED_AFI_UNKNOWN,
9df414fe
QY
646 .title =
647 "Zebra received unknown address family on interface",
648 .description =
649 "Zebra received a notification of a connected prefix on an interface but did not recognize the address family as IPv4 or IPv6",
650 .suggestion =
651 "This message is informational.",
652 },
653 {
e914ccbe 654 .code = EC_ZEBRA_IFACE_SAME_LOCAL_AS_PEER,
9df414fe
QY
655 .title =
656 "Zebra route has same destination address as local interface",
657 .description =
658 "Zebra noticed that a route on an interface has the same destination address as an address on the interface itself, which may cause issues with routing protocols.",
659 .suggestion =
660 "Investigate the source of the route to determine why the destination and interface addresses are the same.",
661 },
662 {
e914ccbe 663 .code = EC_ZEBRA_BCAST_ADDR_MISMATCH,
9df414fe
QY
664 .title =
665 "Zebra broadcast address sanity check failed",
666 .description =
667 "Zebra computed the broadcast address for a connected prefix based on the netmask and found that it did not match the broadcast address it received for the prefix on that interface",
668 .suggestion =
669 "Investigate the source of the broadcast address to determine why it does not match the computed address.",
670 },
671 {
e914ccbe 672 .code = EC_ZEBRA_REDISTRIBUTE_UNKNOWN_AF,
9df414fe
QY
673 .title =
674 "Zebra encountered unknown address family during redistribution",
675 .description =
676 "During a redistribution operation Zebra encountered an unknown address family.",
677 .suggestion =
678 "This warning can be ignored; the redistribution operation will skip the unknown address family.",
679 },
680 {
e914ccbe 681 .code = EC_ZEBRA_ADVERTISING_UNUSABLE_ADDR,
9df414fe
QY
682 .title =
683 "Zebra advertising unusable interface address",
684 .description =
685 "Zebra is advertising an address on an interface that is not yet fully installed on the interface.",
686 .suggestion =
687 "This message is informational. The address should show up on the interface shortly after advertisement.",
688 },
689 {
e914ccbe 690 .code = EC_ZEBRA_RA_PARAM_MISMATCH,
9df414fe
QY
691 .title =
692 "Zebra received route advertisement with parameter mismatch",
693 .description =
694 "Zebra received a router advertisement, but one of the non-critical parameters (AdvCurHopLimit, AdvManagedFlag, AdvOtherConfigFlag, AdvReachableTime or AdvRetransTimer) does not match Zebra's local settings.",
695 .suggestion =
696 "This message is informational; the route advertisement will be processed as normal. If issues arise due to the parameter mismatch, check Zebra's router advertisement configuration.",
697 },
698 {
e914ccbe 699 .code = EC_ZEBRA_RTM_VERSION_MISMATCH,
9df414fe 700 .title =
f79f7a7b 701 "Zebra received kernel message with unknown version",
9df414fe
QY
702 .description =
703 "Zebra received a message from the kernel with a message version that does not match Zebra's internal version. Depending on version compatibility, this may cause issues sending and receiving messages to the kernel.",
704 .suggestion =
705 "If issues arise, check if there is a version of FRR available for your kernel version.",
706 },
707 {
e914ccbe 708 .code = EC_ZEBRA_RTM_NO_GATEWAY,
9df414fe
QY
709 .title =
710 "Zebra could not determine proper gateway for kernel route",
711 .description =
712 "Zebra attempted to install a route into the kernel, but noticed it had no gateway and no interface with a gateway could be located.",
713 .suggestion =
714 "Check configuration values for correctness.",
715 },
716 {
e914ccbe 717 .code = EC_ZEBRA_MAX_LABELS_PUSH,
9df414fe
QY
718 .title =
719 "Zebra exceeded maximum LSP labels for a single rtmsg",
720 .description =
721 "Zebra attempted to push more than one label into the kernel; the maximum on OpenBSD is 1 label.",
722 .suggestion =
723 "This message is informational.",
724 },
725 {
e914ccbe 726 .code = EC_ZEBRA_STICKY_MAC_ALREADY_LEARNT,
9df414fe
QY
727 .title =
728 "EVPN MAC already learnt as remote sticky MAC",
729 .description =
730 "Zebra tried to handle a local MAC addition but noticed that it had already learnt the MAC from a remote peer.",
731 .suggestion =
732 "Check configuration values for correctness.",
733 },
734 {
e914ccbe 735 .code = EC_ZEBRA_UNSUPPORTED_V6_SRCDEST,
9df414fe
QY
736 .title =
737 "Kernel does not support IPv6 sourcedest routes",
738 .description =
739 "Zebra attempted to install a sourcedest route into the kernel, but IPv6 sourcedest routes are not supported on the current kernel.",
740 .suggestion =
741 "Do not use v6 sourcedest routes, or upgrade your kernel.",
742 },
e22a946a
CS
743 {
744 .code = EC_ZEBRA_DUP_MAC_DETECTED,
745 .title =
746 "EVPN MAC is detected duplicate",
747 .description =
748 "Zebra has hit duplicate address detection threshold which means host MAC is moving.",
749 .suggestion =
750 "Check network topology to detect duplicate host MAC for correctness.",
751 },
752 {
753 .code = EC_ZEBRA_DUP_IP_INHERIT_DETECTED,
754 .title =
755 "EVPN IP is detected duplicate by MAC",
756 .description =
757 "Zebra has hit duplicate address detection threshold which means MAC-IP pair is moving.",
758 .suggestion =
759 "Check network topology to detect duplicate host MAC for correctness.",
760 },
761 {
762 .code = EC_ZEBRA_DUP_IP_DETECTED,
763 .title =
764 "EVPN IP is detected duplicate",
765 .description =
766 "Zebra has hit duplicate address detection threshold which means host IP is moving.",
767 .suggestion =
768 "Check network topology to detect duplicate host IP for correctness.",
769 },
347bb8e2
SW
770 {
771 .code = EC_ZEBRA_BAD_NHG_MESSAGE,
772 .title =
773 "Bad Nexthop Group Message",
774 .description =
775 "Zebra received Nexthop Group message from the kernel that it cannot process.",
776 .suggestion =
777 "Check the kernel's link states and routing table to see how it matches ours."
778 },
98fd0558
SW
779 {
780 .code = EC_ZEBRA_DUPLICATE_NHG_MESSAGE,
781 .title =
782 "Duplicate Nexthop Group Message",
783 .description =
784 "Zebra received Nexthop Group message from the kernel that it is identical to one it/we already have but with a different ID.",
785 .suggestion =
786 "See if the nexthop you are trying to add is already present in the fib."
787 },
5ad4c39c
QY
788 {
789 .code = END_FERR,
790 }
43e52561
QY
791};
792/* clang-format on */
793
794
795void zebra_error_init(void)
796{
85cd2f9f 797 log_ref_add(ferr_zebra_err);
43e52561 798}