]>
Commit | Line | Data |
---|---|---|
14454c9f | 1 | /* |
247dcce2 | 2 | * BGP-specific error messages. |
14454c9f DS |
3 | * Copyright (C) 2018 Cumulus Networks, Inc. |
4 | * Don Slice | |
5 | * | |
247dcce2 QY |
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. | |
14454c9f | 10 | * |
247dcce2 QY |
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. | |
14454c9f DS |
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 | */ | |
247dcce2 | 20 | |
14454c9f | 21 | #include <zebra.h> |
14454c9f | 22 | |
247dcce2 QY |
23 | #include "lib/ferr.h" |
24 | #include "bgp_errors.h" | |
25 | ||
26 | /* clang-format off */ | |
559aaa30 DS |
27 | static struct log_ref ferr_bgp_warn[] = { |
28 | { | |
29 | .code = BGP_WARN_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" | |
33 | }, | |
34 | { | |
35 | .code = BGP_WARN_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", | |
39 | }, | |
40 | { | |
41 | .code = BGP_WARN_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", | |
45 | }, | |
46 | { | |
47 | .code = BGP_WARN_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", | |
51 | }, | |
52 | { | |
53 | .code = BGP_WARN_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", | |
57 | }, | |
58 | { | |
59 | .code = BGP_WARN_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", | |
63 | }, | |
64 | { | |
65 | .code = BGP_WARN_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", | |
69 | }, | |
70 | { | |
71 | .code = BGP_WARN_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", | |
75 | }, | |
76 | { | |
77 | .code = BGP_WARN_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", | |
81 | }, | |
82 | { | |
83 | .code = BGP_WARN_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", | |
87 | }, | |
88 | { | |
89 | .code = BGP_WARN_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", | |
93 | }, | |
7077f45c DS |
94 | { |
95 | .code = BGP_WARN_DUMP, | |
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", | |
99 | }, | |
63d430ce DS |
100 | { |
101 | .code = BGP_WARN_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", | |
105 | }, | |
106 | { | |
107 | .code = BGP_WARN_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", | |
111 | }, | |
112 | { | |
113 | .code = BGP_WARN_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", | |
117 | }, | |
28f22e26 DS |
118 | { |
119 | .code = BGP_WARN_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", | |
123 | }, | |
124 | { | |
125 | .code = BGP_WARN_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", | |
129 | }, | |
559aaa30 DS |
130 | { |
131 | .code = END_FERR, | |
132 | } | |
133 | }; | |
134 | ||
85cd2f9f | 135 | static struct log_ref ferr_bgp_err[] = { |
14454c9f DS |
136 | { |
137 | .code = BGP_ERR_ATTR_FLAG, | |
138 | .title = "BGP attribute flag is incorrect", | |
139 | .description = "BGP attribute flag is set to the wrong value (Optional/Transitive/Partial)", | |
164ffab2 | 140 | .suggestion = "Determine the soure of the attribute and determine why the attribute flag has been set incorrectly" |
14454c9f DS |
141 | }, |
142 | { | |
143 | .code = BGP_ERR_ATTR_LEN, | |
144 | .title = "BGP attribute length is incorrect", | |
164ffab2 QY |
145 | .description = "BGP attribute length is incorrect", |
146 | .suggestion = "Determine the soure of the attribute and determine why the attribute length has been set incorrectly" | |
14454c9f DS |
147 | }, |
148 | { | |
149 | .code = BGP_ERR_ATTR_ORIGIN, | |
150 | .title = "BGP attribute origin value invalid", | |
151 | .description = "BGP attribute origin value is invalid", | |
164ffab2 | 152 | .suggestion = "Determine the soure of the attribute and determine why the origin attribute has been set incorrectly" |
14454c9f DS |
153 | }, |
154 | { | |
155 | .code = BGP_ERR_ATTR_MAL_AS_PATH, | |
156 | .title = "BGP as path is invalid", | |
157 | .description = "BGP as path has been malformed", | |
164ffab2 | 158 | .suggestion = "Determine the soure of the update and determine why the as path has been set incorrectly" |
14454c9f DS |
159 | }, |
160 | { | |
161 | .code = BGP_ERR_ATTR_FIRST_AS, | |
162 | .title = "BGP as path first as is invalid", | |
163 | .description = "BGP update has invalid first as in as path", | |
164ffab2 | 164 | .suggestion = "Determine the soure of the update and determine why the as path first as value has been set incorrectly" |
14454c9f DS |
165 | }, |
166 | { | |
167 | .code = BGP_ERR_ATTR_PMSI_TYPE, | |
168 | .title = "BGP PMSI tunnel attribute type is invalid", | |
169 | .description = "BGP update has invalid type for PMSI tunnel", | |
164ffab2 | 170 | .suggestion = "Determine the soure of the update and determine why the PMSI tunnel attribute type has been set incorrectly" |
14454c9f DS |
171 | }, |
172 | { | |
173 | .code = BGP_ERR_ATTR_PMSI_LEN, | |
174 | .title = "BGP PMSI tunnel attribute length is invalid", | |
175 | .description = "BGP update has invalid length for PMSI tunnel", | |
164ffab2 | 176 | .suggestion = "Determine the soure of the update and determine why the PMSI tunnel attribute length has been set incorrectly" |
14454c9f | 177 | }, |
14454c9f DS |
178 | { |
179 | .code = BGP_ERR_PEER_GROUP, | |
180 | .title = "BGP peergroup operated on in error", | |
181 | .description = "BGP operating on peer-group instead of peers included", | |
182 | .suggestion = "Ensure the config doesn't contain peergroups contained within peergroups" | |
183 | }, | |
184 | { | |
185 | .code = BGP_ERR_PEER_DELETE, | |
186 | .title = "BGP failed to delete peer structure", | |
187 | .description = "BGP was unable to delete peer structure when address-family removed", | |
164ffab2 | 188 | .suggestion = "Determine if all expected peers are removed and restart FRR if not. Most likely a bug" |
14454c9f DS |
189 | }, |
190 | { | |
191 | .code = BGP_ERR_TABLE_CHUNK, | |
192 | .title = "BGP failed to get table chunk memory", | |
193 | .description = "BGP unable to get chunk memory for table manager", | |
164ffab2 | 194 | .suggestion = "Ensure there is adequate memory on the device to support the table requirements" |
14454c9f DS |
195 | }, |
196 | { | |
197 | .code = BGP_ERR_MACIP_LEN, | |
198 | .title = "BGP received MACIP with invalid IP addr len", | |
199 | .description = "BGP received MACIP with invalid IP addr len from Zebra", | |
200 | .suggestion = "Verify MACIP entries inserted in Zebra are correct. Most likely a bug" | |
201 | }, | |
202 | { | |
203 | .code = BGP_ERR_LM_ERROR, | |
204 | .title = "BGP received invalid label manager message", | |
5e1e0166 | 205 | .description = "BGP received invalid label manager message from label manager", |
164ffab2 | 206 | .suggestion = "Label manager sent invalid essage to BGP for wrong protocol, instance, etc. Most likely a bug" |
14454c9f DS |
207 | }, |
208 | { | |
209 | .code = BGP_ERR_JSON_MEM_ERROR, | |
210 | .title = "BGP unable to allocate memory for JSON output", | |
164ffab2 | 211 | .description = "BGP attempted to generate JSON output and was unable to allocate the memory required", |
14454c9f DS |
212 | .suggestion = "Ensure that the device has adequate memory to suport the required functions" |
213 | }, | |
214 | { | |
215 | .code = BGP_ERR_UPDGRP_ATTR_LEN, | |
216 | .title = "BGP update had attributes too long to send", | |
217 | .description = "BGP attempted to send an update but the attributes were too long to fit", | |
218 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
219 | }, | |
220 | { | |
221 | .code = BGP_ERR_UPDGRP_CREATE, | |
222 | .title = "BGP update group creation failed", | |
223 | .description = "BGP attempted to create an update group but was unable to", | |
224 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
225 | }, | |
226 | { | |
227 | .code = BGP_ERR_UPDATE_SND, | |
228 | .title = "BGP error creating update packet", | |
229 | .description = "BGP attempted to create an update packet but was unable to", | |
230 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
231 | }, | |
232 | { | |
233 | .code = BGP_ERR_PKT_OPEN, | |
234 | .title = "BGP error receiving open packet", | |
235 | .description = "BGP received an open from a peer that was invalid", | |
236 | .suggestion = "Determine the sending peer and correct his invalid open packet" | |
237 | }, | |
14454c9f DS |
238 | { |
239 | .code = BGP_ERR_SND_FAIL, | |
240 | .title = "BGP error sending to peer", | |
241 | .description = "BGP attempted to respond to open from a peer and failed", | |
164ffab2 | 242 | .suggestion = "BGP attempted to respond to an open and could not sene the packet. Check local IP address for source" |
14454c9f DS |
243 | }, |
244 | { | |
245 | .code = BGP_ERR_INVALID_STATUS, | |
246 | .title = "BGP error receiving from peer", | |
247 | .description = "BGP received an update from a peer but status was incorrect", | |
248 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
249 | }, | |
250 | { | |
251 | .code = BGP_ERR_UPDATE_RCV, | |
252 | .title = "BGP error receiving update packet", | |
253 | .description = "BGP received an invalid update packet", | |
254 | .suggestion = "Determine the source of the update and resolve the invalid update being sent" | |
255 | }, | |
256 | { | |
257 | .code = BGP_ERR_NO_CAP, | |
258 | .title = "BGP error due to capability not enabled", | |
259 | .description = "BGP attempted a function that did not have the capability enabled", | |
260 | .suggestion = "Enable the capability if this functionality is desired" | |
261 | }, | |
262 | { | |
263 | .code = BGP_ERR_NOTIFY_RCV, | |
264 | .title = "BGP error receiving notify message", | |
265 | .description = "BGP unable to process notification message", | |
164ffab2 | 266 | .suggestion = "BGP notify received while in stopped state. If the problem persists, report for troubleshooting" |
14454c9f DS |
267 | }, |
268 | { | |
269 | .code = BGP_ERR_KEEP_RCV, | |
270 | .title = "BGP error receiving keepalive packet", | |
271 | .description = "BGP unable to process keepalive packet", | |
164ffab2 | 272 | .suggestion = "BGP keepalive received while in stopped state. If the problem persists, report for troubleshooting" |
14454c9f DS |
273 | }, |
274 | { | |
275 | .code = BGP_ERR_RFSH_RCV, | |
276 | .title = "BGP error receiving route refresh message", | |
277 | .description = "BGP unable to process route refresh message", | |
164ffab2 | 278 | .suggestion = "BGP route refresh received while in stopped state. If the problem persists, report for troubleshooting"}, |
14454c9f DS |
279 | { |
280 | .code = BGP_ERR_CAP_RCV, | |
281 | .title = "BGP error capability message", | |
282 | .description = "BGP unable to process received capability", | |
164ffab2 | 283 | .suggestion = "BGP capability message received while in stopped state. If the problem persists, report for troubleshooting" |
14454c9f DS |
284 | }, |
285 | { | |
286 | .code = BGP_ERR_NH_UPD, | |
287 | .title = "BGP error with nexthopo update", | |
288 | .description = "BGP unable to process nexthop update", | |
164ffab2 | 289 | .suggestion = "BGP received nexthop update but nexthop is not reachable in this bgp instance. Report for troubleshooting" |
14454c9f | 290 | }, |
14454c9f DS |
291 | { |
292 | .code = BGP_ERR_LABEL, | |
293 | .title = "Failure to apply label", | |
294 | .description = "BGP attempted to attempted to apply a label but could not", | |
295 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
296 | }, | |
297 | { | |
298 | .code = BGP_ERR_MULTIPATH, | |
299 | .title = "Multipath specified is invalid", | |
300 | .description = "BGP was started with an invalid ecmp/multipath value", | |
301 | .suggestion = "Correct the ecmp/multipath value supplied when starting the BGP daemon" | |
302 | }, | |
303 | { | |
304 | .code = BGP_ERR_PKT_PROCESS, | |
305 | .title = "Failure to process a packet", | |
306 | .description = "BGP attempted to process a received packet but could not", | |
307 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
308 | }, | |
309 | { | |
310 | .code = BGP_ERR_CONNECT, | |
311 | .title = "Failure to connect to peer", | |
312 | .description = "BGP attempted to send open to peer but couldn't connect", | |
313 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
314 | }, | |
315 | { | |
316 | .code = BGP_ERR_FSM, | |
317 | .title = "BGP FSM issue", | |
318 | .description = "BGP neighbor transition problem", | |
319 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
320 | }, | |
321 | { | |
322 | .code = BGP_ERR_VNI, | |
def31c13 | 323 | .title = "BGP VNI creation issue", |
14454c9f DS |
324 | .description = "BGP could not create a new VNI", |
325 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
326 | }, | |
327 | { | |
328 | .code = BGP_ERR_NO_DFLT, | |
329 | .title = "BGP default instance missing", | |
330 | .description = "BGP could not find default instance", | |
331 | .suggestion = "Define a default instance of BGP since some feature requires it's existence" | |
332 | }, | |
333 | { | |
334 | .code = BGP_ERR_VTEP_INVALID, | |
335 | .title = "BGP remote VTEP invalid", | |
336 | .description = "BGP remote VTEP is invalid and cannot be used", | |
337 | .suggestion = "Correct remote VTEP configuration or resolve the source of the problem" | |
338 | }, | |
339 | { | |
340 | .code = BGP_ERR_ES_INVALID, | |
341 | .title = "BGP ES route error", | |
342 | .description = "BGP ES route incorrect, learned both local and remote", | |
343 | .suggestion = "Correct configuration or addressing so that same not learned both local and remote" | |
344 | }, | |
345 | { | |
346 | .code = BGP_ERR_EVPN_ROUTE_DELETE, | |
347 | .title = "BGP EVPN route delete error", | |
348 | .description = "BGP attempted to delete an EVPN route and failed", | |
349 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
350 | }, | |
351 | { | |
352 | .code = BGP_ERR_EVPN_FAIL, | |
353 | .title = "BGP EVPN install/uninstall error", | |
354 | .description = "BGP attempted to install or uninstall an EVPN prefix and failed", | |
355 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
356 | }, | |
357 | { | |
358 | .code = BGP_ERR_EVPN_ROUTE_INVALID, | |
359 | .title = "BGP EVPN route received with invalid contents", | |
360 | .description = "BGP received an EVPN route with invalid contents", | |
164ffab2 | 361 | .suggestion = "Determine the source of the EVPN route and resolve whatever is causing invalid contents" |
14454c9f DS |
362 | }, |
363 | { | |
364 | .code = BGP_ERR_EVPN_ROUTE_CREATE, | |
365 | .title = "BGP EVPN route create error", | |
366 | .description = "BGP attempted to create an EVPN route and failed", | |
367 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
368 | }, | |
369 | { | |
370 | .code = BGP_ERR_ES_CREATE, | |
371 | .title = "BGP EVPN ES entry create error", | |
372 | .description = "BGP attempted to create an EVPN ES entry and failed", | |
373 | .suggestion = "Most likely a bug. If the problem persists, report the problem for troubleshooting" | |
374 | }, | |
375 | { | |
376 | .code = BGP_ERR_MULTI_INSTANCE, | |
377 | .title = "BGP config multi-instance issue", | |
378 | .description = "BGP configuration attempting multiple instances without enabling the feature", | |
379 | .suggestion = "Correct the configuration so that bgp multiple-instance is enabled if desired" | |
380 | }, | |
381 | { | |
382 | .code = BGP_ERR_EVPN_AS_MISMATCH, | |
383 | .title = "BGP AS configuration issue", | |
384 | .description = "BGP configuration attempted for a different AS than currently configured", | |
385 | .suggestion = "Correct the configuration so that the correct BGP AS number is used" | |
386 | }, | |
387 | { | |
388 | .code = BGP_ERR_EVPN_INSTANCE_MISMATCH, | |
389 | .title = "BGP EVPN AS and process name mismatch", | |
390 | .description = "BGP configuration has AS and process name mismatch", | |
164ffab2 | 391 | .suggestion = "Correct the configuration so that the BGP AS number and instance name are consistent" |
14454c9f | 392 | }, |
4f3be667 DS |
393 | { |
394 | .code = BGP_ERR_FLOWSPEC_PACKET, | |
395 | .title = "BGP Flowspec packet processing error", | |
396 | .description = "The BGP flowspec subsystem has detected a error in the send or receive of a packet", | |
397 | .suggestion = "Gather log files from both sides of the peering relationship and open an issue" | |
398 | }, | |
399 | { | |
400 | .code = BGP_ERR_FLOWSPEC_INSTALLATION, | |
401 | .title = "BGP Flowspec Installation/removal Error", | |
402 | .description = "The BGP flowspec subsystem has detected that there was a failure for installation/removal/modification of Flowspec from the dataplane", | |
403 | .suggestion = "Gather log files from the router and open an issue, Restart FRR" | |
404 | }, | |
def31c13 DS |
405 | { |
406 | .code = END_FERR, | |
407 | } | |
408 | }; | |
247dcce2 | 409 | /* clang-format on */ |
14454c9f | 410 | |
def31c13 | 411 | void bgp_error_init(void) |
14454c9f | 412 | { |
559aaa30 | 413 | log_ref_add(ferr_bgp_warn); |
85cd2f9f | 414 | log_ref_add(ferr_bgp_err); |
63d430ce | 415 | log_ref_add(ferr_bgp_warn); |
14454c9f | 416 | } |