]> git.proxmox.com Git - mirror_frr.git/blame - zebra/zebra_errors.c
bgpd, zebra: auto assign labels from label pool to regular prefixes in BGP labeled...
[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 },
286 /* Warnings */
287 {
e914ccbe 288 .code = EC_ZEBRAING_LM_PROTO_MISMATCH,
9df414fe
QY
289 .title =
290 "Zebra label manager received malformed label request",
291 .description =
292 "Zebra's label manager received a label request from a client whose protocol type does not match the protocol field received in the message.",
293 .suggestion =
294 "This is a bug. Please report it.",
295 },
296 {
e914ccbe 297 .code = EC_ZEBRA_LSP_INSTALL_FAILURE,
9df414fe
QY
298 .title =
299 "Zebra failed to install LSP into the kernel",
300 .description =
301 "Zebra made an attempt to install a label switched path, but the kernel indicated that the installation was not successful.",
302 .suggestion =
303 "Wait for Zebra to reattempt installation.",
304 },
305 {
e914ccbe 306 .code = EC_ZEBRA_LSP_DELETE_FAILURE,
9df414fe
QY
307 .title =
308 "Zebra failed to remove LSP from the kernel",
309 .description =
310 "Zebra made an attempt to remove a label switched path, but the kernel indicated that the deletion was not successful.",
311 .suggestion =
312 "Wait for Zebra to reattempt deletion.",
313 },
314 {
e914ccbe 315 .code = EC_ZEBRA_MPLS_SUPPORT_DISABLED,
9df414fe
QY
316 .title =
317 "Zebra will not run with MPLS support",
318 .description =
319 "Zebra noticed that the running kernel does not support MPLS, so it disabled MPLS support.",
320 .suggestion =
321 "If you want MPLS support, upgrade the kernel to a version that provides MPLS support.",
322 },
323 {
e914ccbe 324 .code = EC_ZEBRA_SYSCTL_FAILED,
9df414fe
QY
325 .title = "A call to sysctl() failed",
326 .description =
327 "sysctl() returned a nonzero exit code, indicating an error.",
328 .suggestion =
329 "The log message should contain further details on the specific error that occurred; investigate the reported error.",
330 },
331 {
e914ccbe 332 .code = EC_ZEBRA_NS_VRF_CREATION_FAILED,
9df414fe
QY
333 .title =
334 "Zebra failed to create namespace VRF",
335 .description =
336 "Zebra failed to create namespace VRF",
337 .suggestion = "",
338 },
339 {
e914ccbe 340 .code = EC_ZEBRA_NS_DELETION_FAILED_NO_VRF,
9df414fe
QY
341 .title =
342 "Zebra attempted to delete nonexistent namespace",
343 .description =
344 "Zebra attempted to delete a particular namespace, but no VRF associated with that namespace could be found to delete.",
345 .suggestion = "Please report this bug.",
346 },
347 {
e914ccbe 348 .code = EC_ZEBRA_IFLIST_FAILED,
9df414fe
QY
349 .title =
350 "Zebra interface listing failed",
351 .description =
352 "Zebra encountered an error attempting to query sysctl for a list of interfaces on the system.",
353 .suggestion =
354 "Check that Zebra is running with the appropriate permissions. If it is, please report this as a bug.",
355 },
356 {
e914ccbe 357 .code = EC_ZEBRA_IRDP_BAD_CHECKSUM,
9df414fe
QY
358 .title =
359 "Zebra received ICMP packet with invalid checksum",
360 .description =
361 "Zebra received an ICMP packet with a bad checksum and has silently ignored it.",
362 .suggestion =
363 "If the problem continues to occur, investigate the source of the bad ICMP packets.",
364 },
365 {
e914ccbe 366 .code = EC_ZEBRA_IRDP_BAD_TYPE_CODE,
9df414fe
QY
367 .title =
368 "Zebra received ICMP packet with bad type code",
369 .description =
370 "Zebra received an ICMP packet with a bad code for the message type and has silently ignored it.",
371 .suggestion =
372 "If the problem continues to occur, investigate the source of the bad ICMP packets.",
373 },
374 {
e914ccbe 375 .code = EC_ZEBRA_IRDP_BAD_RX_FLAGS,
9df414fe
QY
376 .title =
377 "Zebra received IRDP packet while operating in wrong mode",
378 .description =
379 "Zebra received a multicast IRDP packet while operating in unicast mode, or vice versa.",
380 .suggestion =
381 "If you wish to receive the messages, change your IRDP settings accordingly.",
382 },
383 {
e914ccbe 384 .code = EC_ZEBRA_IRDP_BAD_TYPE,
9df414fe
QY
385 .title =
386 "Zebra received IRDP packet with bad type",
387 .description =
388 "THIS IS BULLSHIT REMOVE ME",
389 .suggestion = "asdf",
390 },
391 {
e914ccbe 392 .code = EC_ZEBRA_RNH_NO_TABLE,
9df414fe
QY
393 .title =
394 "Zebra could not find table for next hop",
395 .description =
396 "Zebra attempted to add a next hop but could not find the appropriate table to install it in.",
397 .suggestion = "Please report this bug.",
398 },
399 {
e914ccbe 400 .code = EC_ZEBRA_FPM_FORMAT_UNKNOWN,
9df414fe
QY
401 .title =
402 "Unknown message format for Zebra's FPM module",
403 .description =
404 "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.",
405 .suggestion =
406 "Provide or correct the module argument to provide a valid format. See documentation for further information.",
407 },
408 {
e914ccbe 409 .code = EC_ZEBRA_CLIENT_IO_ERROR,
9df414fe
QY
410 .title =
411 "Zebra client connection failed",
412 .description =
413 "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.",
414 .suggestion =
415 "Ignore this warning, it is mostly informational.",
416 },
417 {
e914ccbe 418 .code = EC_ZEBRA_CLIENT_WRITE_FAILED,
9df414fe
QY
419 .title =
420 "Zebra failed to send message to client",
421 .description =
422 "Zebra attempted to send a message to one of its clients, but the write operation failed. The connection will be closed.",
423 .suggestion =
424 "Ignore this warning, it is mostly informational.",
425 },
426 {
e914ccbe 427 .code = EC_ZEBRA_NETLINK_INVALID_AF,
9df414fe
QY
428 .title =
429 "Zebra received Netlink message with invalid family",
430 .description =
431 "Zebra received a Netlink message with an invalid address family.",
432 .suggestion =
433 "Inspect the logged address family and submit it with a bug report.",
434 },
435 {
e914ccbe 436 .code = EC_ZEBRA_REMOVE_ADDR_UNKNOWN_SUBNET,
9df414fe
QY
437 .title =
438 "Zebra tried to remove address from unknown subnet",
439 .description =
440 "Zebra attempted to remove an address from an unknown subnet.",
441 .suggestion =
442 "This is a bug, please report it.",
443 },
444 {
e914ccbe 445 .code = EC_ZEBRA_REMOVE_UNREGISTERED_ADDR,
9df414fe
QY
446 .title =
447 "Zebra tried to remove unregistered address",
448 .description =
449 "Zebra attempted to remove an address from a subnet it was not registered on.",
450 .suggestion =
451 "This is a bug, please report it.",
452 },
453 {
e914ccbe 454 .code = EC_ZEBRA_PTM_NOT_READY,
9df414fe
QY
455 .title =
456 "Interface is up but PTM check has not completed",
457 .description =
458 "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.",
459 .suggestion =
460 "If the problem persists, ensure that the interface is actually up and that PTM is functioning properly.",
461 },
462 {
e914ccbe 463 .code = EC_ZEBRA_UNSUPPORTED_V4_SRCDEST,
9df414fe
QY
464 .title =
465 "Kernel rejected sourcedest route",
466 .description =
467 "Zebra attempted to install a sourcedest route into the kernel, but the kernel did not acknowledge its installation. The route is unsupported.",
468 .suggestion =
469 "Check configuration values for correctness",
470 },
471 {
e914ccbe 472 .code = EC_ZEBRA_UNKNOWN_INTERFACE,
9df414fe
QY
473 .title =
474 "Zebra encountered an unknown interface specifier",
475 .description =
476 "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.",
477 .suggestion =
478 "Check configuration values for correctness.",
479 },
480 {
e914ccbe 481 .code = EC_ZEBRA_VRF_NOT_FOUND,
9df414fe
QY
482 .title =
483 "Zebra could not find the specified VRF",
484 .description =
485 "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.",
486 .suggestion =
487 "Check configuration values for correctness. If values are correct, please file a bug report.",
488 },
489 {
e914ccbe 490 .code = EC_ZEBRA_MORE_NH_THAN_MULTIPATH,
9df414fe
QY
491 .title =
492 "More nexthops were provided than the configured multipath limit",
493 .description =
494 "A route with multiple nexthops was given, but the number of nexthops exceeded the configured multipath limit.",
495 .suggestion =
496 "Reduce the number of nexthops, or increase the multipath limit.",
497 },
498 {
e914ccbe 499 .code = EC_ZEBRA_NEXTHOP_CREATION_FAILED,
9df414fe
QY
500 .title =
501 "Zebra failed to create one or more nexthops",
502 .description =
503 "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.",
504 .suggestion =
505 "Check configuration values for correctness. If they are correct, report this as a bug.",
506 },
507 {
e914ccbe 508 .code = EC_ZEBRA_RX_SRCDEST_WRONG_AFI,
9df414fe
QY
509 .title =
510 "Zebra received sourcedest route install without IPv6 address family",
511 .description =
512 "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.",
513 .suggestion =
514 "This is a bug; please report it.",
515 },
516 {
e914ccbe 517 .code = EC_ZEBRA_PSEUDOWIRE_EXISTS,
9df414fe
QY
518 .title =
519 "Zebra received an installation / creation request for a pseudowire that already exists",
520 .description =
521 "Zebra received an installation or creation request for a pseudowire that already exists, so the installation / creation has been skipped.",
522 .suggestion =
523 "This message is informational.",
524 },
525 {
e914ccbe 526 .code = EC_ZEBRA_PSEUDOWIRE_NONEXISTENT,
9df414fe
QY
527 .title =
528 "Zebra received an uninstallation / deletion request for a pseudowire that already exists",
529 .description =
530 "Zebra received an uninstallation / deletion request for a pseudowire that doesn't exist, so the uninstallation / deletion has been skipped.",
531 .suggestion =
532 "This message is informational.",
533 },
534 {
e914ccbe 535 .code = EC_ZEBRA_PSEUDOWIRE_UNINSTALL_NOT_FOUND,
9df414fe
QY
536 .title =
537 "Zebra received uninstall request for a pseudowire that doesn't exist",
538 .description =
539 "Zebra received an uninstall request for a pseudowire that doesn't exist, so the uninstallation has been skipped.",
540 .suggestion =
541 "This message is informational.",
542 },
543 {
e914ccbe 544 .code = EC_ZEBRA_NO_IFACE_ADDR,
9df414fe
QY
545 .title = "No address on interface",
546 .description =
547 "Zebra attempted to retrieve a connected address for an interface, but the interface had no connected addresses.",
548 .suggestion =
549 "This warning is situational; it is usually informative but can indicate a misconfiguration.",
550 },
551 {
e914ccbe 552 .code = EC_ZEBRA_IFACE_ADDR_ADD_FAILED,
9df414fe
QY
553 .title =
554 "Zebra failed to add address to interface",
555 .description =
556 "Zebra attempted to add an address to an interface but was unsuccessful.",
557 .suggestion =
558 "Check configuration values for correctness.",
559 },
560 {
e914ccbe 561 .code = EC_ZEBRA_IRDP_CANNOT_ACTIVATE_IFACE,
9df414fe
QY
562 .title =
563 "Zebra could not enable IRDP on interface",
564 .description =
565 "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.",
566 .suggestion =
567 "Verify that Zebra has the appropriate privileges and that the system has sufficient socket resources.",
568 },
569 {
e914ccbe 570 .code = EC_ZEBRA_IRDP_IFACE_DOWN,
9df414fe
QY
571 .title =
572 "Zebra attempted to enable IRDP on an interface, but the interface was down",
573 .description = "Zebra attempted to enable IRDP on an interface, but the interface was down.",
574 .suggestion =
575 "Bring up the interface that IRDP is desired on.",
576 },
577 {
e914ccbe 578 .code = EC_ZEBRA_IRDP_IFACE_MCAST_DISABLED,
9df414fe
QY
579 .title =
580 "Zebra cannot enable IRDP on interface because multicast is disabled",
581 .description =
582 "Zebra attempted to enable IRDP on an interface, but multicast functionality was not enabled on the interface.",
583 .suggestion =
584 "Enable multicast on the interface.",
585 },
586 {
e914ccbe 587 .code = EC_ZEBRA_NETLINK_EXTENDED_WARNING,
9df414fe
QY
588 .title =
589 "Zebra received warning message from Netlink",
590 .description =
591 "Zebra received a warning message from Netlink",
592 .suggestion =
593 "This message is informational. See the Netlink error message for details.",
594 },
595 {
e914ccbe 596 .code = EC_ZEBRA_NAMESPACE_DIR_INACCESSIBLE,
9df414fe
QY
597 .title =
598 "Zebra could not access /var/run/netns",
599 .description =
600 "Zebra tried to verify that the run directory for Linux network namespaces existed, but this test failed.",
601 .suggestion =
602 "Ensure that Zebra has the proper privileges to access this directory.",
603 },
604 {
e914ccbe 605 .code = EC_ZEBRA_CONNECTED_AFI_UNKNOWN,
9df414fe
QY
606 .title =
607 "Zebra received unknown address family on interface",
608 .description =
609 "Zebra received a notification of a connected prefix on an interface but did not recognize the address family as IPv4 or IPv6",
610 .suggestion =
611 "This message is informational.",
612 },
613 {
e914ccbe 614 .code = EC_ZEBRA_IFACE_SAME_LOCAL_AS_PEER,
9df414fe
QY
615 .title =
616 "Zebra route has same destination address as local interface",
617 .description =
618 "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.",
619 .suggestion =
620 "Investigate the source of the route to determine why the destination and interface addresses are the same.",
621 },
622 {
e914ccbe 623 .code = EC_ZEBRA_BCAST_ADDR_MISMATCH,
9df414fe
QY
624 .title =
625 "Zebra broadcast address sanity check failed",
626 .description =
627 "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",
628 .suggestion =
629 "Investigate the source of the broadcast address to determine why it does not match the computed address.",
630 },
631 {
e914ccbe 632 .code = EC_ZEBRA_REDISTRIBUTE_UNKNOWN_AF,
9df414fe
QY
633 .title =
634 "Zebra encountered unknown address family during redistribution",
635 .description =
636 "During a redistribution operation Zebra encountered an unknown address family.",
637 .suggestion =
638 "This warning can be ignored; the redistribution operation will skip the unknown address family.",
639 },
640 {
e914ccbe 641 .code = EC_ZEBRA_ADVERTISING_UNUSABLE_ADDR,
9df414fe
QY
642 .title =
643 "Zebra advertising unusable interface address",
644 .description =
645 "Zebra is advertising an address on an interface that is not yet fully installed on the interface.",
646 .suggestion =
647 "This message is informational. The address should show up on the interface shortly after advertisement.",
648 },
649 {
e914ccbe 650 .code = EC_ZEBRA_RA_PARAM_MISMATCH,
9df414fe
QY
651 .title =
652 "Zebra received route advertisement with parameter mismatch",
653 .description =
654 "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.",
655 .suggestion =
656 "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.",
657 },
658 {
e914ccbe 659 .code = EC_ZEBRA_RTM_VERSION_MISMATCH,
9df414fe
QY
660 .title =
661 "Zebra received kernel message with uknown version",
662 .description =
663 "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.",
664 .suggestion =
665 "If issues arise, check if there is a version of FRR available for your kernel version.",
666 },
667 {
e914ccbe 668 .code = EC_ZEBRA_RTM_NO_GATEWAY,
9df414fe
QY
669 .title =
670 "Zebra could not determine proper gateway for kernel route",
671 .description =
672 "Zebra attempted to install a route into the kernel, but noticed it had no gateway and no interface with a gateway could be located.",
673 .suggestion =
674 "Check configuration values for correctness.",
675 },
676 {
e914ccbe 677 .code = EC_ZEBRA_MAX_LABELS_PUSH,
9df414fe
QY
678 .title =
679 "Zebra exceeded maximum LSP labels for a single rtmsg",
680 .description =
681 "Zebra attempted to push more than one label into the kernel; the maximum on OpenBSD is 1 label.",
682 .suggestion =
683 "This message is informational.",
684 },
685 {
e914ccbe 686 .code = EC_ZEBRA_STICKY_MAC_ALREADY_LEARNT,
9df414fe
QY
687 .title =
688 "EVPN MAC already learnt as remote sticky MAC",
689 .description =
690 "Zebra tried to handle a local MAC addition but noticed that it had already learnt the MAC from a remote peer.",
691 .suggestion =
692 "Check configuration values for correctness.",
693 },
694 {
e914ccbe 695 .code = EC_ZEBRA_UNSUPPORTED_V6_SRCDEST,
9df414fe
QY
696 .title =
697 "Kernel does not support IPv6 sourcedest routes",
698 .description =
699 "Zebra attempted to install a sourcedest route into the kernel, but IPv6 sourcedest routes are not supported on the current kernel.",
700 .suggestion =
701 "Do not use v6 sourcedest routes, or upgrade your kernel.",
702 },
e22a946a
CS
703 {
704 .code = EC_ZEBRA_DUP_MAC_DETECTED,
705 .title =
706 "EVPN MAC is detected duplicate",
707 .description =
708 "Zebra has hit duplicate address detection threshold which means host MAC is moving.",
709 .suggestion =
710 "Check network topology to detect duplicate host MAC for correctness.",
711 },
712 {
713 .code = EC_ZEBRA_DUP_IP_INHERIT_DETECTED,
714 .title =
715 "EVPN IP is detected duplicate by MAC",
716 .description =
717 "Zebra has hit duplicate address detection threshold which means MAC-IP pair is moving.",
718 .suggestion =
719 "Check network topology to detect duplicate host MAC for correctness.",
720 },
721 {
722 .code = EC_ZEBRA_DUP_IP_DETECTED,
723 .title =
724 "EVPN IP is detected duplicate",
725 .description =
726 "Zebra has hit duplicate address detection threshold which means host IP is moving.",
727 .suggestion =
728 "Check network topology to detect duplicate host IP for correctness.",
729 },
5ad4c39c
QY
730 {
731 .code = END_FERR,
732 }
43e52561
QY
733};
734/* clang-format on */
735
736
737void zebra_error_init(void)
738{
85cd2f9f 739 log_ref_add(ferr_zebra_err);
43e52561 740}