Line data Source code
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>
22 :
23 : #include "lib/ferr.h"
24 : #include "zebra_errors.h"
25 :
26 : /* clang-format off */
27 : static struct log_ref ferr_zebra_err[] = {
28 : {
29 : .code = EC_ZEBRA_LM_RESPONSE,
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 : {
35 : .code = EC_ZEBRA_LM_NO_SUCH_CLIENT,
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 : {
41 : .code = EC_ZEBRA_LM_RELAY_FAILED,
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 : {
47 : .code = EC_ZEBRA_LM_BAD_INSTANCE,
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 : {
53 : .code = EC_ZEBRA_LM_EXHAUSTED_LABELS,
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 : {
59 : .code = EC_ZEBRA_LM_DAEMON_MISMATCH,
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 : {
65 : .code = EC_ZEBRA_LM_UNRELEASED_CHUNK,
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 : {
71 : .code = EC_ZEBRA_DP_INVALID_RC,
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 : {
77 : .code = EC_ZEBRA_WQ_NONEXISTENT,
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 : {
83 : .code = EC_ZEBRA_FEC_ADD_FAILED,
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 : },
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 : },
94 : {
95 : .code = EC_ZEBRA_FEC_RM_FAILED,
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 : {
101 : .code = EC_ZEBRA_IRDP_LEN_MISMATCH,
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 : {
107 : .code = EC_ZEBRA_RNH_UNKNOWN_FAMILY,
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 : {
113 : .code = EC_ZEBRA_DP_INSTALL_FAIL,
114 : .title = "Dataplane installation failure",
115 : .description = "Installation of routes to underlying dataplane failed.",
116 : .suggestion = "Check all configuration parameters for correctness.",
117 : },
118 : {
119 : .code = EC_ZEBRA_DP_DELETE_FAIL,
120 : .title = "Dataplane deletion failure",
121 : .description = "Deletion of routes from underlying dataplane failed.",
122 : .suggestion = "Check all configuration parameters for correctness.",
123 : },
124 : {
125 : .code = EC_ZEBRA_TABLE_LOOKUP_FAILED,
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 : {
131 : .code = EC_ZEBRA_NETLINK_NOT_AVAILABLE,
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 : {
137 : .code = EC_ZEBRA_PROTOBUF_NOT_AVAILABLE,
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 : {
143 : .code = EC_ZEBRA_TM_EXHAUSTED_IDS,
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 : {
149 : .code = EC_ZEBRA_TM_DAEMON_MISMATCH,
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 : {
155 : .code = EC_ZEBRA_TM_UNRELEASED_CHUNK,
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 : {
161 : .code = EC_ZEBRA_UNKNOWN_FAMILY,
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 : {
167 : .code = EC_ZEBRA_TM_WRONG_PROTO,
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 : {
173 : .code = EC_ZEBRA_PROTO_OR_INSTANCE_MISMATCH,
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 : {
179 : .code = EC_ZEBRA_LM_CANNOT_ASSIGN_CHUNK,
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 : {
185 : .code = EC_ZEBRA_LM_ALIENS,
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 : {
191 : .code = EC_ZEBRA_TM_CANNOT_ASSIGN_CHUNK,
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 : {
197 : .code = EC_ZEBRA_TM_ALIENS,
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 : {
203 : .code = EC_ZEBRA_RECVBUF,
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 : {
209 : .code = EC_ZEBRA_UNKNOWN_NLMSG,
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 : {
215 : .code = EC_ZEBRA_RECVMSG_OVERRUN,
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 : {
221 : .code = EC_ZEBRA_NETLINK_LENGTH_ERROR,
222 : .title = "Netlink message length mismatch",
223 : .description = "Zebra received a Netlink message with incorrect length fields.",
224 : .suggestion = "Notify a developer.",
225 : },
226 : {
227 : .code = EC_ZEBRA_NETLINK_LENGTH_ERROR,
228 : .title = "Netlink message length mismatch",
229 : .description = "Zebra received a Netlink message with incorrect length fields.",
230 : .suggestion = "Notify a developer.",
231 : },
232 : {
233 : .code = EC_ZEBRA_UNEXPECTED_MESSAGE,
234 : .title = "Received unexpected response from kernel",
235 : .description = "Received unexpected response from the kernel via Netlink.",
236 : .suggestion = "Notify a developer.",
237 : },
238 : {
239 : .code = EC_ZEBRA_NETLINK_BAD_SEQUENCE,
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 : {
245 : .code = EC_ZEBRA_BAD_MULTIPATH_NUM,
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 : {
251 : .code = EC_ZEBRA_PREFIX_PARSE_ERROR,
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 : {
257 : .code = EC_ZEBRA_MAC_ADD_FAILED,
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 : {
263 : .code = EC_ZEBRA_VNI_DEL_FAILED,
264 : .title = "Failed to delete VNI",
265 : .description = "Zebra attempted to delete a VNI entry and failed",
266 : .suggestion = "Notify a developer.",
267 : },
268 : {
269 : .code = EC_ZEBRA_VTEP_ADD_FAILED,
270 : .title = "Adding remote VTEP failed",
271 : .description = "Zebra attempted to add a remote VTEP and failed.",
272 : .suggestion = "Notify a developer.",
273 : },
274 : {
275 : .code = EC_ZEBRA_VNI_ADD_FAILED,
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 : },
280 : {
281 : .code = EC_ZEBRA_NS_NOTIFY_READ,
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 : },
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 : },
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 : },
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 : },
313 : {
314 : .code = EC_ZEBRA_NS_NO_DEFAULT,
315 : .title = "Zebra NameSpace failed to find Default",
316 : .description = "Zebra NameSpace subsystem failed to find a Default namespace during initialization.",
317 : .suggestion = "Open an Issue with all relevant log files and restart FRR",
318 : },
319 : /* Warnings */
320 : {
321 : .code = EC_ZEBRAING_LM_PROTO_MISMATCH,
322 : .title =
323 : "Zebra label manager received malformed label request",
324 : .description =
325 : "Zebra's label manager received a label request from a client whose protocol type does not match the protocol field received in the message.",
326 : .suggestion =
327 : "This is a bug. Please report it.",
328 : },
329 : {
330 : .code = EC_ZEBRA_LSP_INSTALL_FAILURE,
331 : .title =
332 : "Zebra failed to install LSP into the kernel",
333 : .description =
334 : "Zebra made an attempt to install a label switched path, but the kernel indicated that the installation was not successful.",
335 : .suggestion =
336 : "Wait for Zebra to reattempt installation.",
337 : },
338 : {
339 : .code = EC_ZEBRA_LSP_DELETE_FAILURE,
340 : .title =
341 : "Zebra failed to remove LSP from the kernel",
342 : .description =
343 : "Zebra made an attempt to remove a label switched path, but the kernel indicated that the deletion was not successful.",
344 : .suggestion =
345 : "Wait for Zebra to reattempt deletion.",
346 : },
347 : {
348 : .code = EC_ZEBRA_MPLS_SUPPORT_DISABLED,
349 : .title =
350 : "Zebra will not run with MPLS support",
351 : .description =
352 : "Zebra noticed that the running kernel does not support MPLS, so it disabled MPLS support.",
353 : .suggestion =
354 : "If you want MPLS support, upgrade the kernel to a version that provides MPLS support.",
355 : },
356 : {
357 : .code = EC_ZEBRA_SYSCTL_FAILED,
358 : .title = "A call to sysctl() failed",
359 : .description =
360 : "sysctl() returned a nonzero exit code, indicating an error.",
361 : .suggestion =
362 : "The log message should contain further details on the specific error that occurred; investigate the reported error.",
363 : },
364 : {
365 : .code = EC_ZEBRA_NS_VRF_CREATION_FAILED,
366 : .title =
367 : "Zebra failed to create namespace VRF",
368 : .description =
369 : "Zebra failed to create namespace VRF",
370 : .suggestion = "",
371 : },
372 : {
373 : .code = EC_ZEBRA_NS_DELETION_FAILED_NO_VRF,
374 : .title =
375 : "Zebra attempted to delete nonexistent namespace",
376 : .description =
377 : "Zebra attempted to delete a particular namespace, but no VRF associated with that namespace could be found to delete.",
378 : .suggestion = "Please report this bug.",
379 : },
380 : {
381 : .code = EC_ZEBRA_IFLIST_FAILED,
382 : .title =
383 : "Zebra interface listing failed",
384 : .description =
385 : "Zebra encountered an error attempting to query sysctl for a list of interfaces on the system.",
386 : .suggestion =
387 : "Check that Zebra is running with the appropriate permissions. If it is, please report this as a bug.",
388 : },
389 : {
390 : .code = EC_ZEBRA_IRDP_BAD_CHECKSUM,
391 : .title =
392 : "Zebra received ICMP packet with invalid checksum",
393 : .description =
394 : "Zebra received an ICMP packet with a bad checksum and has silently ignored it.",
395 : .suggestion =
396 : "If the problem continues to occur, investigate the source of the bad ICMP packets.",
397 : },
398 : {
399 : .code = EC_ZEBRA_IRDP_BAD_TYPE_CODE,
400 : .title =
401 : "Zebra received ICMP packet with bad type code",
402 : .description =
403 : "Zebra received an ICMP packet with a bad code for the message type and has silently ignored it.",
404 : .suggestion =
405 : "If the problem continues to occur, investigate the source of the bad ICMP packets.",
406 : },
407 : {
408 : .code = EC_ZEBRA_IRDP_BAD_RX_FLAGS,
409 : .title =
410 : "Zebra received IRDP packet while operating in wrong mode",
411 : .description =
412 : "Zebra received a multicast IRDP packet while operating in unicast mode, or vice versa.",
413 : .suggestion =
414 : "If you wish to receive the messages, change your IRDP settings accordingly.",
415 : },
416 : {
417 : .code = EC_ZEBRA_RNH_NO_TABLE,
418 : .title =
419 : "Zebra could not find table for next hop",
420 : .description =
421 : "Zebra attempted to add a next hop but could not find the appropriate table to install it in.",
422 : .suggestion = "Please report this bug.",
423 : },
424 : {
425 : .code = EC_ZEBRA_FPM_FORMAT_UNKNOWN,
426 : .title =
427 : "Unknown message format for Zebra's FPM module",
428 : .description =
429 : "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.",
430 : .suggestion =
431 : "Provide or correct the module argument to provide a valid format. See documentation for further information.",
432 : },
433 : {
434 : .code = EC_ZEBRA_CLIENT_IO_ERROR,
435 : .title =
436 : "Zebra client connection failed",
437 : .description =
438 : "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.",
439 : .suggestion =
440 : "Ignore this warning, it is mostly informational.",
441 : },
442 : {
443 : .code = EC_ZEBRA_CLIENT_WRITE_FAILED,
444 : .title =
445 : "Zebra failed to send message to client",
446 : .description =
447 : "Zebra attempted to send a message to one of its clients, but the write operation failed. The connection will be closed.",
448 : .suggestion =
449 : "Ignore this warning, it is mostly informational.",
450 : },
451 : {
452 : .code = EC_ZEBRA_NETLINK_INVALID_AF,
453 : .title =
454 : "Zebra received Netlink message with invalid family",
455 : .description =
456 : "Zebra received a Netlink message with an invalid address family.",
457 : .suggestion =
458 : "Inspect the logged address family and submit it with a bug report.",
459 : },
460 : {
461 : .code = EC_ZEBRA_REMOVE_ADDR_UNKNOWN_SUBNET,
462 : .title =
463 : "Zebra tried to remove address from unknown subnet",
464 : .description =
465 : "Zebra attempted to remove an address from an unknown subnet.",
466 : .suggestion =
467 : "This is a bug, please report it.",
468 : },
469 : {
470 : .code = EC_ZEBRA_REMOVE_UNREGISTERED_ADDR,
471 : .title =
472 : "Zebra tried to remove unregistered address",
473 : .description =
474 : "Zebra attempted to remove an address from a subnet it was not registered on.",
475 : .suggestion =
476 : "This is a bug, please report it.",
477 : },
478 : {
479 : .code = EC_ZEBRA_PTM_NOT_READY,
480 : .title =
481 : "Interface is up but PTM check has not completed",
482 : .description =
483 : "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.",
484 : .suggestion =
485 : "If the problem persists, ensure that the interface is actually up and that PTM is functioning properly.",
486 : },
487 : {
488 : .code = EC_ZEBRA_UNSUPPORTED_V4_SRCDEST,
489 : .title =
490 : "Kernel rejected sourcedest route",
491 : .description =
492 : "Zebra attempted to install a sourcedest route into the kernel, but the kernel did not acknowledge its installation. The route is unsupported.",
493 : .suggestion =
494 : "Check configuration values for correctness",
495 : },
496 : {
497 : .code = EC_ZEBRA_UNKNOWN_INTERFACE,
498 : .title =
499 : "Zebra encountered an unknown interface specifier",
500 : .description =
501 : "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.",
502 : .suggestion =
503 : "Check configuration values for correctness.",
504 : },
505 : {
506 : .code = EC_ZEBRA_VRF_NOT_FOUND,
507 : .title =
508 : "Zebra could not find the specified VRF",
509 : .description =
510 : "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.",
511 : .suggestion =
512 : "Check configuration values for correctness. If values are correct, please file a bug report.",
513 : },
514 : {
515 : .code = EC_ZEBRA_MORE_NH_THAN_MULTIPATH,
516 : .title =
517 : "More nexthops were provided than the configured multipath limit",
518 : .description =
519 : "A route with multiple nexthops was given, but the number of nexthops exceeded the configured multipath limit.",
520 : .suggestion =
521 : "Reduce the number of nexthops, or increase the multipath limit.",
522 : },
523 : {
524 : .code = EC_ZEBRA_NEXTHOP_CREATION_FAILED,
525 : .title =
526 : "Zebra failed to create one or more nexthops",
527 : .description =
528 : "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.",
529 : .suggestion =
530 : "Check configuration values for correctness. If they are correct, report this as a bug.",
531 : },
532 : {
533 : .code = EC_ZEBRA_RX_ROUTE_NO_NEXTHOPS,
534 : .title =
535 : "Zebra received an installation request for a route without nexthops",
536 : .description =
537 : "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.",
538 : .suggestion =
539 : "This is a bug; please report it.",
540 : },
541 : {
542 : .code = EC_ZEBRA_RX_SRCDEST_WRONG_AFI,
543 : .title =
544 : "Zebra received sourcedest route install without IPv6 address family",
545 : .description =
546 : "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.",
547 : .suggestion =
548 : "This is a bug; please report it.",
549 : },
550 : {
551 : .code = EC_ZEBRA_PSEUDOWIRE_EXISTS,
552 : .title =
553 : "Zebra received an installation / creation request for a pseudowire that already exists",
554 : .description =
555 : "Zebra received an installation or creation request for a pseudowire that already exists, so the installation / creation has been skipped.",
556 : .suggestion =
557 : "This message is informational.",
558 : },
559 : {
560 : .code = EC_ZEBRA_PSEUDOWIRE_NONEXISTENT,
561 : .title =
562 : "Zebra received an uninstallation / deletion request for a pseudowire that already exists",
563 : .description =
564 : "Zebra received an uninstallation / deletion request for a pseudowire that doesn't exist, so the uninstallation / deletion has been skipped.",
565 : .suggestion =
566 : "This message is informational.",
567 : },
568 : {
569 : .code = EC_ZEBRA_PSEUDOWIRE_UNINSTALL_NOT_FOUND,
570 : .title =
571 : "Zebra received uninstall request for a pseudowire that doesn't exist",
572 : .description =
573 : "Zebra received an uninstall request for a pseudowire that doesn't exist, so the uninstallation has been skipped.",
574 : .suggestion =
575 : "This message is informational.",
576 : },
577 : {
578 : .code = EC_ZEBRA_NO_IFACE_ADDR,
579 : .title = "No address on interface",
580 : .description =
581 : "Zebra attempted to retrieve a connected address for an interface, but the interface had no connected addresses.",
582 : .suggestion =
583 : "This warning is situational; it is usually informative but can indicate a misconfiguration.",
584 : },
585 : {
586 : .code = EC_ZEBRA_IFACE_ADDR_ADD_FAILED,
587 : .title =
588 : "Zebra failed to add address to interface",
589 : .description =
590 : "Zebra attempted to add an address to an interface but was unsuccessful.",
591 : .suggestion =
592 : "Check configuration values for correctness.",
593 : },
594 : {
595 : .code = EC_ZEBRA_IRDP_CANNOT_ACTIVATE_IFACE,
596 : .title =
597 : "Zebra could not enable IRDP on interface",
598 : .description =
599 : "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.",
600 : .suggestion =
601 : "Verify that Zebra has the appropriate privileges and that the system has sufficient socket resources.",
602 : },
603 : {
604 : .code = EC_ZEBRA_IRDP_IFACE_DOWN,
605 : .title =
606 : "Zebra attempted to enable IRDP on an interface, but the interface was down",
607 : .description = "Zebra attempted to enable IRDP on an interface, but the interface was down.",
608 : .suggestion =
609 : "Bring up the interface that IRDP is desired on.",
610 : },
611 : {
612 : .code = EC_ZEBRA_IRDP_IFACE_MCAST_DISABLED,
613 : .title =
614 : "Zebra cannot enable IRDP on interface because multicast is disabled",
615 : .description =
616 : "Zebra attempted to enable IRDP on an interface, but multicast functionality was not enabled on the interface.",
617 : .suggestion =
618 : "Enable multicast on the interface.",
619 : },
620 : {
621 : .code = EC_ZEBRA_NETLINK_EXTENDED_WARNING,
622 : .title =
623 : "Zebra received warning message from Netlink",
624 : .description =
625 : "Zebra received a warning message from Netlink",
626 : .suggestion =
627 : "This message is informational. See the Netlink error message for details.",
628 : },
629 : {
630 : .code = EC_ZEBRA_NAMESPACE_DIR_INACCESSIBLE,
631 : .title =
632 : "Zebra could not access /var/run/netns",
633 : .description =
634 : "Zebra tried to verify that the run directory for Linux network namespaces existed, but this test failed.",
635 : .suggestion =
636 : "Ensure that Zebra has the proper privileges to access this directory.",
637 : },
638 : {
639 : .code = EC_ZEBRA_CONNECTED_AFI_UNKNOWN,
640 : .title =
641 : "Zebra received unknown address family on interface",
642 : .description =
643 : "Zebra received a notification of a connected prefix on an interface but did not recognize the address family as IPv4 or IPv6",
644 : .suggestion =
645 : "This message is informational.",
646 : },
647 : {
648 : .code = EC_ZEBRA_IFACE_SAME_LOCAL_AS_PEER,
649 : .title =
650 : "Zebra route has same destination address as local interface",
651 : .description =
652 : "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.",
653 : .suggestion =
654 : "Investigate the source of the route to determine why the destination and interface addresses are the same.",
655 : },
656 : {
657 : .code = EC_ZEBRA_BCAST_ADDR_MISMATCH,
658 : .title =
659 : "Zebra broadcast address sanity check failed",
660 : .description =
661 : "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",
662 : .suggestion =
663 : "Investigate the source of the broadcast address to determine why it does not match the computed address.",
664 : },
665 : {
666 : .code = EC_ZEBRA_REDISTRIBUTE_UNKNOWN_AF,
667 : .title =
668 : "Zebra encountered unknown address family during redistribution",
669 : .description =
670 : "During a redistribution operation Zebra encountered an unknown address family.",
671 : .suggestion =
672 : "This warning can be ignored; the redistribution operation will skip the unknown address family.",
673 : },
674 : {
675 : .code = EC_ZEBRA_ADVERTISING_UNUSABLE_ADDR,
676 : .title =
677 : "Zebra advertising unusable interface address",
678 : .description =
679 : "Zebra is advertising an address on an interface that is not yet fully installed on the interface.",
680 : .suggestion =
681 : "This message is informational. The address should show up on the interface shortly after advertisement.",
682 : },
683 : {
684 : .code = EC_ZEBRA_RA_PARAM_MISMATCH,
685 : .title =
686 : "Zebra received route advertisement with parameter mismatch",
687 : .description =
688 : "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.",
689 : .suggestion =
690 : "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.",
691 : },
692 : {
693 : .code = EC_ZEBRA_RTM_VERSION_MISMATCH,
694 : .title =
695 : "Zebra received kernel message with unknown version",
696 : .description =
697 : "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.",
698 : .suggestion =
699 : "If issues arise, check if there is a version of FRR available for your kernel version.",
700 : },
701 : {
702 : .code = EC_ZEBRA_RTM_NO_GATEWAY,
703 : .title =
704 : "Zebra could not determine proper gateway for kernel route",
705 : .description =
706 : "Zebra attempted to install a route into the kernel, but noticed it had no gateway and no interface with a gateway could be located.",
707 : .suggestion =
708 : "Check configuration values for correctness.",
709 : },
710 : {
711 : .code = EC_ZEBRA_MAX_LABELS_PUSH,
712 : .title =
713 : "Zebra exceeded maximum LSP labels for a single rtmsg",
714 : .description =
715 : "Zebra attempted to push more than one label into the kernel; the maximum on OpenBSD is 1 label.",
716 : .suggestion =
717 : "This message is informational.",
718 : },
719 : {
720 : .code = EC_ZEBRA_STICKY_MAC_ALREADY_LEARNT,
721 : .title =
722 : "EVPN MAC already learnt as remote sticky MAC",
723 : .description =
724 : "Zebra tried to handle a local MAC addition but noticed that it had already learnt the MAC from a remote peer.",
725 : .suggestion =
726 : "Check configuration values for correctness.",
727 : },
728 : {
729 : .code = EC_ZEBRA_UNSUPPORTED_V6_SRCDEST,
730 : .title =
731 : "Kernel does not support IPv6 sourcedest routes",
732 : .description =
733 : "Zebra attempted to install a sourcedest route into the kernel, but IPv6 sourcedest routes are not supported on the current kernel.",
734 : .suggestion =
735 : "Do not use v6 sourcedest routes, or upgrade your kernel.",
736 : },
737 : {
738 : .code = EC_ZEBRA_DUP_MAC_DETECTED,
739 : .title =
740 : "EVPN MAC is detected duplicate",
741 : .description =
742 : "Zebra has hit duplicate address detection threshold which means host MAC is moving.",
743 : .suggestion =
744 : "Check network topology to detect duplicate host MAC for correctness.",
745 : },
746 : {
747 : .code = EC_ZEBRA_DUP_IP_INHERIT_DETECTED,
748 : .title =
749 : "EVPN IP is detected duplicate by MAC",
750 : .description =
751 : "Zebra has hit duplicate address detection threshold which means MAC-IP pair is moving.",
752 : .suggestion =
753 : "Check network topology to detect duplicate host MAC for correctness.",
754 : },
755 : {
756 : .code = EC_ZEBRA_DUP_IP_DETECTED,
757 : .title =
758 : "EVPN IP is detected duplicate",
759 : .description =
760 : "Zebra has hit duplicate address detection threshold which means host IP is moving.",
761 : .suggestion =
762 : "Check network topology to detect duplicate host IP for correctness.",
763 : },
764 : {
765 : .code = EC_ZEBRA_BAD_NHG_MESSAGE,
766 : .title =
767 : "Bad Nexthop Group Message",
768 : .description =
769 : "Zebra received Nexthop Group message from the kernel that it cannot process.",
770 : .suggestion =
771 : "Check the kernel's link states and routing table to see how it matches ours."
772 : },
773 : {
774 : .code = EC_ZEBRA_DUPLICATE_NHG_MESSAGE,
775 : .title =
776 : "Duplicate Nexthop Group Message",
777 : .description =
778 : "Zebra received Nexthop Group message from the kernel that it is identical to one it/we already have but with a different ID.",
779 : .suggestion =
780 : "See if the nexthop you are trying to add is already present in the fib."
781 : },
782 : {
783 : .code = EC_ZEBRA_VRF_MISCONFIGURED,
784 : .title = "Duplicate VRF table id detected",
785 : .description = "Zebra has detected a situation where there are two vrf devices with the exact same tableid. This is considered a complete misconfiguration of VRF devices and breaks a fundamental assumption in FRR about how VRF's work",
786 : .suggestion = "Use different table id's for the VRF's in question"
787 : },
788 : {
789 : .code = EC_ZEBRA_SRV6M_UNRELEASED_LOCATOR_CHUNK,
790 : .title = "Zebra did not free any srv6 locator chunks",
791 : .description = "Zebra's srv6-locator chunk cleanup procedure ran, but no srv6 locator chunks were released.",
792 : .suggestion = "Ignore this error.",
793 : },
794 : {
795 : .code = EC_ZEBRA_INTF_UPDATE_FAILURE,
796 : .title =
797 : "Zebra failed to update interface in the kernel",
798 : .description =
799 : "Zebra made an attempt to update an interfce in the kernel, but it was not successful.",
800 : .suggestion =
801 : "Wait for Zebra to reattempt update.",
802 : },
803 : {
804 : .code = END_FERR,
805 : }
806 : };
807 : /* clang-format on */
808 :
809 :
810 1 : void zebra_error_init(void)
811 : {
812 1 : log_ref_add(ferr_zebra_err);
813 1 : }
|