]>
Commit | Line | Data |
---|---|---|
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 | 27 | static 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 | }, | |
257b245c SW |
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 | }, | |
9df414fe QY |
319 | /* Warnings */ |
320 | { | |
e914ccbe | 321 | .code = EC_ZEBRAING_LM_PROTO_MISMATCH, |
9df414fe QY |
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 | { | |
e914ccbe | 330 | .code = EC_ZEBRA_LSP_INSTALL_FAILURE, |
9df414fe QY |
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 | { | |
e914ccbe | 339 | .code = EC_ZEBRA_LSP_DELETE_FAILURE, |
9df414fe QY |
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 | { | |
e914ccbe | 348 | .code = EC_ZEBRA_MPLS_SUPPORT_DISABLED, |
9df414fe QY |
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 | { | |
e914ccbe | 357 | .code = EC_ZEBRA_SYSCTL_FAILED, |
9df414fe QY |
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 | { | |
e914ccbe | 365 | .code = EC_ZEBRA_NS_VRF_CREATION_FAILED, |
9df414fe QY |
366 | .title = |
367 | "Zebra failed to create namespace VRF", | |
368 | .description = | |
369 | "Zebra failed to create namespace VRF", | |
370 | .suggestion = "", | |
371 | }, | |
372 | { | |
e914ccbe | 373 | .code = EC_ZEBRA_NS_DELETION_FAILED_NO_VRF, |
9df414fe QY |
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 | { | |
e914ccbe | 381 | .code = EC_ZEBRA_IFLIST_FAILED, |
9df414fe QY |
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 | { | |
e914ccbe | 390 | .code = EC_ZEBRA_IRDP_BAD_CHECKSUM, |
9df414fe QY |
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 | { | |
e914ccbe | 399 | .code = EC_ZEBRA_IRDP_BAD_TYPE_CODE, |
9df414fe QY |
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 | { | |
e914ccbe | 408 | .code = EC_ZEBRA_IRDP_BAD_RX_FLAGS, |
9df414fe QY |
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 | }, | |
9df414fe | 416 | { |
e914ccbe | 417 | .code = EC_ZEBRA_RNH_NO_TABLE, |
9df414fe QY |
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 | { | |
e914ccbe | 425 | .code = EC_ZEBRA_FPM_FORMAT_UNKNOWN, |
9df414fe QY |
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 | { | |
e914ccbe | 434 | .code = EC_ZEBRA_CLIENT_IO_ERROR, |
9df414fe QY |
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 | { | |
e914ccbe | 443 | .code = EC_ZEBRA_CLIENT_WRITE_FAILED, |
9df414fe QY |
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 | { | |
e914ccbe | 452 | .code = EC_ZEBRA_NETLINK_INVALID_AF, |
9df414fe QY |
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 | { | |
e914ccbe | 461 | .code = EC_ZEBRA_REMOVE_ADDR_UNKNOWN_SUBNET, |
9df414fe QY |
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 | { | |
e914ccbe | 470 | .code = EC_ZEBRA_REMOVE_UNREGISTERED_ADDR, |
9df414fe QY |
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 | { | |
e914ccbe | 479 | .code = EC_ZEBRA_PTM_NOT_READY, |
9df414fe QY |
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 | { | |
e914ccbe | 488 | .code = EC_ZEBRA_UNSUPPORTED_V4_SRCDEST, |
9df414fe QY |
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 | { | |
e914ccbe | 497 | .code = EC_ZEBRA_UNKNOWN_INTERFACE, |
9df414fe QY |
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 | { | |
e914ccbe | 506 | .code = EC_ZEBRA_VRF_NOT_FOUND, |
9df414fe QY |
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 | { | |
e914ccbe | 515 | .code = EC_ZEBRA_MORE_NH_THAN_MULTIPATH, |
9df414fe QY |
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 | { | |
e914ccbe | 524 | .code = EC_ZEBRA_NEXTHOP_CREATION_FAILED, |
9df414fe QY |
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 | }, | |
7fcb24bb RW |
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 | }, | |
9df414fe | 541 | { |
e914ccbe | 542 | .code = EC_ZEBRA_RX_SRCDEST_WRONG_AFI, |
9df414fe QY |
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 | { | |
e914ccbe | 551 | .code = EC_ZEBRA_PSEUDOWIRE_EXISTS, |
9df414fe QY |
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 | { | |
e914ccbe | 560 | .code = EC_ZEBRA_PSEUDOWIRE_NONEXISTENT, |
9df414fe QY |
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 | { | |
e914ccbe | 569 | .code = EC_ZEBRA_PSEUDOWIRE_UNINSTALL_NOT_FOUND, |
9df414fe QY |
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 | { | |
e914ccbe | 578 | .code = EC_ZEBRA_NO_IFACE_ADDR, |
9df414fe QY |
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 | { | |
e914ccbe | 586 | .code = EC_ZEBRA_IFACE_ADDR_ADD_FAILED, |
9df414fe QY |
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 | { | |
e914ccbe | 595 | .code = EC_ZEBRA_IRDP_CANNOT_ACTIVATE_IFACE, |
9df414fe QY |
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 | { | |
e914ccbe | 604 | .code = EC_ZEBRA_IRDP_IFACE_DOWN, |
9df414fe QY |
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 | { | |
e914ccbe | 612 | .code = EC_ZEBRA_IRDP_IFACE_MCAST_DISABLED, |
9df414fe QY |
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 | { | |
e914ccbe | 621 | .code = EC_ZEBRA_NETLINK_EXTENDED_WARNING, |
9df414fe QY |
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 | { | |
e914ccbe | 630 | .code = EC_ZEBRA_NAMESPACE_DIR_INACCESSIBLE, |
9df414fe QY |
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 | { | |
e914ccbe | 639 | .code = EC_ZEBRA_CONNECTED_AFI_UNKNOWN, |
9df414fe QY |
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 | { | |
e914ccbe | 648 | .code = EC_ZEBRA_IFACE_SAME_LOCAL_AS_PEER, |
9df414fe QY |
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 | { | |
e914ccbe | 657 | .code = EC_ZEBRA_BCAST_ADDR_MISMATCH, |
9df414fe QY |
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 | { | |
e914ccbe | 666 | .code = EC_ZEBRA_REDISTRIBUTE_UNKNOWN_AF, |
9df414fe QY |
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 | { | |
e914ccbe | 675 | .code = EC_ZEBRA_ADVERTISING_UNUSABLE_ADDR, |
9df414fe QY |
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 | { | |
e914ccbe | 684 | .code = EC_ZEBRA_RA_PARAM_MISMATCH, |
9df414fe QY |
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 | { | |
e914ccbe | 693 | .code = EC_ZEBRA_RTM_VERSION_MISMATCH, |
9df414fe | 694 | .title = |
f79f7a7b | 695 | "Zebra received kernel message with unknown version", |
9df414fe QY |
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 | { | |
e914ccbe | 702 | .code = EC_ZEBRA_RTM_NO_GATEWAY, |
9df414fe QY |
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 | { | |
e914ccbe | 711 | .code = EC_ZEBRA_MAX_LABELS_PUSH, |
9df414fe QY |
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 | { | |
e914ccbe | 720 | .code = EC_ZEBRA_STICKY_MAC_ALREADY_LEARNT, |
9df414fe QY |
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 | { | |
e914ccbe | 729 | .code = EC_ZEBRA_UNSUPPORTED_V6_SRCDEST, |
9df414fe QY |
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 | }, | |
e22a946a CS |
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 | }, | |
347bb8e2 SW |
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 | }, | |
98fd0558 SW |
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 | }, | |
5e031198 DS |
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 | }, | |
6e68a084 HS |
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 | }, | |
5d414138 SW |
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 | }, | |
5ad4c39c QY |
803 | { |
804 | .code = END_FERR, | |
805 | } | |
43e52561 QY |
806 | }; |
807 | /* clang-format on */ | |
808 | ||
809 | ||
810 | void zebra_error_init(void) | |
811 | { | |
85cd2f9f | 812 | log_ref_add(ferr_zebra_err); |
43e52561 | 813 | } |