2 * BGP-specific error messages.
3 * Copyright (C) 2018 Cumulus Networks, Inc.
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)
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
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
24 #include "bgp_errors.h"
26 /* clang-format off */
27 static struct log_ref ferr_bgp_warn
[] = {
29 .code
= EC_BGP_ASPATH_FEWER_HOPS
,
30 .title
= "BGP AS-path conversion has failed",
31 .description
= "BGP has attempted to convert a AS2 to AS4 path and has failed",
32 .suggestion
= "Open an Issue with all relevant log files and restart FRR"
35 .code
= EC_BGP_DEFUNCT_SNPA_LEN
,
36 .title
= "BGP has received a value in a reserved field",
37 .description
= "BGP has received a non-zero value in a reserved field that was used for SNPA-length at one point in time",
38 .suggestion
= "BGP has peered with either a router that is attempting to send SNPA data or it has received a corrupted packet. If we are peering with a SNPA aware router(unlikely) upgrade that router, else open an Issue after gathering relevant log files",
41 .code
= EC_BGP_MISSING_ATTRIBUTE
,
42 .title
= "BGP has received an update with missing a missing attribute",
43 .description
= "BGP received update packets must have some minimum attribute information within them",
44 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
47 .code
= EC_BGP_ATTRIBUTE_TOO_SMALL
,
48 .title
= "BGP udate packet with attribute data that is too small",
49 .description
= "BGP has received an update packet that is too small to parse a given attribute. This typically means that something has gone wrong between us and the remote peer",
50 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
53 .code
= EC_BGP_EXT_ATTRIBUTE_TOO_SMALL
,
54 .title
= "BGP udate packet with extended attribute data that is too small",
55 .description
= "BGP has received an update packet that is too small to parse a given extended attribute. This typically means that something has gone wrong between us and the remote peer",
56 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
59 .code
= EC_BGP_ATTRIBUTE_REPEATED
,
60 .title
= "BGP update packet received with a repeated attribute",
61 .description
= "BGP has received an update packet with a attribute that is repeated more than one time for a particular route. This typically means that something has gone wrong between us and the remote peer",
62 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
65 .code
= EC_BGP_ATTRIBUTE_TOO_LARGE
,
66 .title
= "BGP udate packet with attribute data that is too large",
67 .description
= "BGP has received an update packet that has too much data in a particular attribute. This typically means that something has gone wrong between us and the remote peer",
68 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
71 .code
= EC_BGP_ATTRIBUTE_PARSE_ERROR
,
72 .title
= "BGP update packet with attribute data has a parse error, specific to the attribute",
73 .description
= "BGP has received an update packet with an attribute that when parsed does not make sense in some manner",
74 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
77 .code
= EC_BGP_ATTRIBUTE_PARSE_WITHDRAW
,
78 .title
= "BGP update packet with a broken optional attribute has caused a withdraw of associated routes",
79 .description
= "BGP has received a update packet with optional attributes that did not parse correctly, instead of resetting the peer, withdraw associated routes and note that this has happened",
80 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
83 .code
= EC_BGP_ATTRIBUTE_FETCH_ERROR
,
84 .title
= "BGP update packet with a broken length",
85 .description
= "BGP has received a update packet with an attribute that has an incorrect length",
86 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
89 .code
= EC_BGP_ATTRIBUTES_MISMATCH
,
90 .title
= "BGP update packet with a length different than attribute data length",
91 .description
= "BGP has received a update packet with attributes that when parsed do not correctly add up to packet data length",
92 .suggestion
= "Gather log data from this and remote peer and open an Issue with this data",
96 .title
= "BGP MRT dump subsystem has encountered an issue",
97 .description
= "BGP has found that the attempted write of MRT data to a dump file has failed",
98 .suggestion
= "Ensure BGP has permissions to write the specified file",
101 .code
= EC_BGP_UPDATE_PACKET_SHORT
,
102 .title
= "BGP Update Packet is to Small",
103 .description
= "The update packet received from a peer is to small",
104 .suggestion
= "Determine the source of the update packet and examine that peer for what has gone wrong",
107 .code
= EC_BGP_UPDATE_PACKET_LONG
,
108 .title
= "BGP Update Packet is to large",
109 .description
= "The update packet received from a peer is to large",
110 .suggestion
= "Determine the source of the update packet and examine that peer for what has gone wrong",
113 .code
= EC_BGP_UNRECOGNIZED_CAPABILITY
,
114 .title
= "Unknown BGP Capability Received",
115 .description
= "The negotiation of capabilities has received a capability that we do not know what to do with",
116 .suggestion
= "Determine the source of the capability and remove the capability from what is sent",
119 .code
= EC_BGP_NO_TCP_MD5
,
120 .title
= "Unable to set TCP MD5 option on socket",
121 .description
= "BGP attempted to setup TCP MD5 configuration on the socket as per configuration but was unable to",
122 .suggestion
= "Please collect log files and open Issue",
125 .code
= EC_BGP_NO_SOCKOPT_MARK
,
126 .title
= "Unable to set socket MARK option",
127 .description
= "BGP attempted to set the SO_MARK option for a socket and was unable to do so",
128 .suggestion
= "Please collect log files and open Issue",
131 .code
= EC_BGP_EVPN_PMSI_PRESENT
,
132 .title
= "BGP Received a EVPN NLRI with PMSI included",
133 .description
= "BGP has received a type-3 NLRI with PMSI information. At this time FRR is not capable of properly handling this NLRI type",
134 .suggestion
= "Setup peer to not send this type of data to FRR"
137 .code
= EC_BGP_EVPN_VPN_VNI
,
138 .title
= "BGP has received a local macip and cannot properly handle it",
139 .description
= "BGP has received a local macip from zebra and has no way to properly handle the macip because the vni is not setup properly",
140 .suggestion
= "Ensure proper setup of BGP EVPN",
143 .code
= EC_BGP_EVPN_ESI
,
144 .title
= "BGP has received a local ESI for deletion",
145 .description
= "BGP has received a local ESI for deletion but when attempting to find the stored data internally was unable to find the information for deletion",
146 .suggestion
= "Gather logging and open an Issue",
149 .code
= EC_BGP_INVALID_LABEL_STACK
,
150 .title
= "BGP has received a label stack in a NLRI that does not have the BOS marked",
151 .description
= "BGP when it receives a NLRI with a label stack should have the BOS marked, this received packet does not have this",
152 .suggestion
= "Gather log information from here and remote peer and open an Issue",
155 .code
= EC_BGP_ZEBRA_SEND
,
156 .title
= "BGP has attempted to send data to zebra and has failed to do so",
157 .description
= "BGP has attempted to send data to zebra but has been unable to do so",
158 .suggestion
= "Gather log data, open an Issue and restart FRR"
161 .code
= EC_BGP_CAPABILITY_INVALID_LENGTH
,
162 .title
= "BGP has received a capability with an invalid length",
163 .description
= "BGP has received a capability from it's peer who's size is wrong",
164 .suggestion
= "Gather log files from here and from peer and open an Issue",
167 .code
= EC_BGP_CAPABILITY_INVALID_DATA
,
168 .title
= "BGP has received capability data with invalid information",
169 .description
= "BGP has noticed that during processing of capability information that data was wrong",
170 .suggestion
= "Gather log files from here and from peer and open an Issue",
173 .code
= EC_BGP_CAPABILITY_VENDOR
,
174 .title
= "BGP has recieved capability data specific to a particular vendor",
175 .description
= "BGP has received a capability that is vendor specific and as such we have no knowledge of how to use this capability in FRR",
176 .suggestion
= "On peer turn off this feature"
179 .code
= EC_BGP_CAPABILITY_UNKNOWN
,
180 .title
= "BGP has received capability data for a unknown capability",
181 .description
= "BGP has received a capability that it does not know how to decode. This may be due to a new feature that has not been coded into FRR or it may be a bug in the remote peer",
182 .suggestion
= "Gather log files from here and from peer and open an Issue",
185 .code
= EC_BGP_INVALID_NEXTHOP_LENGTH
,
186 .title
= "BGP is attempting to write an invalid nexthop length value",
187 .description
= "BGP is in the process of building NLRI information for a peer and has discovered an inconsistent internal state",
188 .suggestion
= "Gather log files and open an Issue, restart FRR",
195 static struct log_ref ferr_bgp_err
[] = {
197 .code
= EC_BGP_ATTR_FLAG
,
198 .title
= "BGP attribute flag is incorrect",
199 .description
= "BGP attribute flag is set to the wrong value (Optional/Transitive/Partial)",
200 .suggestion
= "Determine the soure of the attribute and determine why the attribute flag has been set incorrectly"
203 .code
= EC_BGP_ATTR_LEN
,
204 .title
= "BGP attribute length is incorrect",
205 .description
= "BGP attribute length is incorrect",
206 .suggestion
= "Determine the soure of the attribute and determine why the attribute length has been set incorrectly"
209 .code
= EC_BGP_ATTR_ORIGIN
,
210 .title
= "BGP attribute origin value invalid",
211 .description
= "BGP attribute origin value is invalid",
212 .suggestion
= "Determine the soure of the attribute and determine why the origin attribute has been set incorrectly"
215 .code
= EC_BGP_ATTR_MAL_AS_PATH
,
216 .title
= "BGP as path is invalid",
217 .description
= "BGP as path has been malformed",
218 .suggestion
= "Determine the soure of the update and determine why the as path has been set incorrectly"
221 .code
= EC_BGP_ATTR_FIRST_AS
,
222 .title
= "BGP as path first as is invalid",
223 .description
= "BGP update has invalid first as in as path",
224 .suggestion
= "Determine the soure of the update and determine why the as path first as value has been set incorrectly"
227 .code
= EC_BGP_ATTR_PMSI_TYPE
,
228 .title
= "BGP PMSI tunnel attribute type is invalid",
229 .description
= "BGP update has invalid type for PMSI tunnel",
230 .suggestion
= "Determine the soure of the update and determine why the PMSI tunnel attribute type has been set incorrectly"
233 .code
= EC_BGP_ATTR_PMSI_LEN
,
234 .title
= "BGP PMSI tunnel attribute length is invalid",
235 .description
= "BGP update has invalid length for PMSI tunnel",
236 .suggestion
= "Determine the soure of the update and determine why the PMSI tunnel attribute length has been set incorrectly"
239 .code
= EC_BGP_PEER_GROUP
,
240 .title
= "BGP peergroup operated on in error",
241 .description
= "BGP operating on peer-group instead of peers included",
242 .suggestion
= "Ensure the config doesn't contain peergroups contained within peergroups"
245 .code
= EC_BGP_PEER_DELETE
,
246 .title
= "BGP failed to delete peer structure",
247 .description
= "BGP was unable to delete peer structure when address-family removed",
248 .suggestion
= "Determine if all expected peers are removed and restart FRR if not. Most likely a bug"
251 .code
= EC_BGP_TABLE_CHUNK
,
252 .title
= "BGP failed to get table chunk memory",
253 .description
= "BGP unable to get chunk memory for table manager",
254 .suggestion
= "Ensure there is adequate memory on the device to support the table requirements"
257 .code
= EC_BGP_MACIP_LEN
,
258 .title
= "BGP received MACIP with invalid IP addr len",
259 .description
= "BGP received MACIP with invalid IP addr len from Zebra",
260 .suggestion
= "Verify MACIP entries inserted in Zebra are correct. Most likely a bug"
263 .code
= EC_BGP_LM_ERROR
,
264 .title
= "BGP received invalid label manager message",
265 .description
= "BGP received invalid label manager message from label manager",
266 .suggestion
= "Label manager sent invalid essage to BGP for wrong protocol, instance, etc. Most likely a bug"
269 .code
= EC_BGP_JSON_MEM_ERROR
,
270 .title
= "BGP unable to allocate memory for JSON output",
271 .description
= "BGP attempted to generate JSON output and was unable to allocate the memory required",
272 .suggestion
= "Ensure that the device has adequate memory to suport the required functions"
275 .code
= EC_BGP_UPDGRP_ATTR_LEN
,
276 .title
= "BGP update had attributes too long to send",
277 .description
= "BGP attempted to send an update but the attributes were too long to fit",
278 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
281 .code
= EC_BGP_UPDGRP_CREATE
,
282 .title
= "BGP update group creation failed",
283 .description
= "BGP attempted to create an update group but was unable to",
284 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
287 .code
= EC_BGP_UPDATE_SND
,
288 .title
= "BGP error creating update packet",
289 .description
= "BGP attempted to create an update packet but was unable to",
290 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
293 .code
= EC_BGP_PKT_OPEN
,
294 .title
= "BGP error receiving open packet",
295 .description
= "BGP received an open from a peer that was invalid",
296 .suggestion
= "Determine the sending peer and correct his invalid open packet"
299 .code
= EC_BGP_SND_FAIL
,
300 .title
= "BGP error sending to peer",
301 .description
= "BGP attempted to respond to open from a peer and failed",
302 .suggestion
= "BGP attempted to respond to an open and could not sene the packet. Check local IP address for source"
305 .code
= EC_BGP_INVALID_STATUS
,
306 .title
= "BGP error receiving from peer",
307 .description
= "BGP received an update from a peer but status was incorrect",
308 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
311 .code
= EC_BGP_UPDATE_RCV
,
312 .title
= "BGP error receiving update packet",
313 .description
= "BGP received an invalid update packet",
314 .suggestion
= "Determine the source of the update and resolve the invalid update being sent"
317 .code
= EC_BGP_NO_CAP
,
318 .title
= "BGP error due to capability not enabled",
319 .description
= "BGP attempted a function that did not have the capability enabled",
320 .suggestion
= "Enable the capability if this functionality is desired"
323 .code
= EC_BGP_NOTIFY_RCV
,
324 .title
= "BGP error receiving notify message",
325 .description
= "BGP unable to process notification message",
326 .suggestion
= "BGP notify received while in stopped state. If the problem persists, report for troubleshooting"
329 .code
= EC_BGP_KEEP_RCV
,
330 .title
= "BGP error receiving keepalive packet",
331 .description
= "BGP unable to process keepalive packet",
332 .suggestion
= "BGP keepalive received while in stopped state. If the problem persists, report for troubleshooting"
335 .code
= EC_BGP_RFSH_RCV
,
336 .title
= "BGP error receiving route refresh message",
337 .description
= "BGP unable to process route refresh message",
338 .suggestion
= "BGP route refresh received while in stopped state. If the problem persists, report for troubleshooting"},
340 .code
= EC_BGP_CAP_RCV
,
341 .title
= "BGP error capability message",
342 .description
= "BGP unable to process received capability",
343 .suggestion
= "BGP capability message received while in stopped state. If the problem persists, report for troubleshooting"
346 .code
= EC_BGP_NH_UPD
,
347 .title
= "BGP error with nexthopo update",
348 .description
= "BGP unable to process nexthop update",
349 .suggestion
= "BGP received nexthop update but nexthop is not reachable in this bgp instance. Report for troubleshooting"
352 .code
= EC_BGP_LABEL
,
353 .title
= "Failure to apply label",
354 .description
= "BGP attempted to attempted to apply a label but could not",
355 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
358 .code
= EC_BGP_MULTIPATH
,
359 .title
= "Multipath specified is invalid",
360 .description
= "BGP was started with an invalid ecmp/multipath value",
361 .suggestion
= "Correct the ecmp/multipath value supplied when starting the BGP daemon"
364 .code
= EC_BGP_PKT_PROCESS
,
365 .title
= "Failure to process a packet",
366 .description
= "BGP attempted to process a received packet but could not",
367 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
370 .code
= EC_BGP_CONNECT
,
371 .title
= "Failure to connect to peer",
372 .description
= "BGP attempted to send open to peer but couldn't connect",
373 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
377 .title
= "BGP FSM issue",
378 .description
= "BGP neighbor transition problem",
379 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
383 .title
= "BGP VNI creation issue",
384 .description
= "BGP could not create a new VNI",
385 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
388 .code
= EC_BGP_NO_DFLT
,
389 .title
= "BGP default instance missing",
390 .description
= "BGP could not find default instance",
391 .suggestion
= "Define a default instance of BGP since some feature requires it's existence"
394 .code
= EC_BGP_VTEP_INVALID
,
395 .title
= "BGP remote VTEP invalid",
396 .description
= "BGP remote VTEP is invalid and cannot be used",
397 .suggestion
= "Correct remote VTEP configuration or resolve the source of the problem"
400 .code
= EC_BGP_ES_INVALID
,
401 .title
= "BGP ES route error",
402 .description
= "BGP ES route incorrect, learned both local and remote",
403 .suggestion
= "Correct configuration or addressing so that same not learned both local and remote"
406 .code
= EC_BGP_EVPN_ROUTE_DELETE
,
407 .title
= "BGP EVPN route delete error",
408 .description
= "BGP attempted to delete an EVPN route and failed",
409 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
412 .code
= EC_BGP_EVPN_FAIL
,
413 .title
= "BGP EVPN install/uninstall error",
414 .description
= "BGP attempted to install or uninstall an EVPN prefix and failed",
415 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
418 .code
= EC_BGP_EVPN_ROUTE_INVALID
,
419 .title
= "BGP EVPN route received with invalid contents",
420 .description
= "BGP received an EVPN route with invalid contents",
421 .suggestion
= "Determine the source of the EVPN route and resolve whatever is causing invalid contents"
424 .code
= EC_BGP_EVPN_ROUTE_CREATE
,
425 .title
= "BGP EVPN route create error",
426 .description
= "BGP attempted to create an EVPN route and failed",
427 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
430 .code
= EC_BGP_ES_CREATE
,
431 .title
= "BGP EVPN ES entry create error",
432 .description
= "BGP attempted to create an EVPN ES entry and failed",
433 .suggestion
= "Most likely a bug. If the problem persists, report the problem for troubleshooting"
436 .code
= EC_BGP_MULTI_INSTANCE
,
437 .title
= "BGP config multi-instance issue",
438 .description
= "BGP configuration attempting multiple instances without enabling the feature",
439 .suggestion
= "Correct the configuration so that bgp multiple-instance is enabled if desired"
442 .code
= EC_BGP_EVPN_AS_MISMATCH
,
443 .title
= "BGP AS configuration issue",
444 .description
= "BGP configuration attempted for a different AS than currently configured",
445 .suggestion
= "Correct the configuration so that the correct BGP AS number is used"
448 .code
= EC_BGP_EVPN_INSTANCE_MISMATCH
,
449 .title
= "BGP EVPN AS and process name mismatch",
450 .description
= "BGP configuration has AS and process name mismatch",
451 .suggestion
= "Correct the configuration so that the BGP AS number and instance name are consistent"
454 .code
= EC_BGP_FLOWSPEC_PACKET
,
455 .title
= "BGP Flowspec packet processing error",
456 .description
= "The BGP flowspec subsystem has detected a error in the send or receive of a packet",
457 .suggestion
= "Gather log files from both sides of the peering relationship and open an issue"
460 .code
= EC_BGP_FLOWSPEC_INSTALLATION
,
461 .title
= "BGP Flowspec Installation/removal Error",
462 .description
= "The BGP flowspec subsystem has detected that there was a failure for installation/removal/modification of Flowspec from the dataplane",
463 .suggestion
= "Gather log files from the router and open an issue, Restart FRR"
469 /* clang-format on */
471 void bgp_error_init(void)
473 log_ref_add(ferr_bgp_err
);
474 log_ref_add(ferr_bgp_warn
);