blob: 1ec5ad4a68372d08a022ba84624d5f56589aee6e [file] [log] [blame]
Ed Warnickecb9cada2015-12-08 15:45:58 -07001/*
2 * Copyright (c) 2015 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15#ifndef included_vnet_api_errno_h
16#define included_vnet_api_errno_h
17
Klement Sekeraff92efe2017-11-30 07:00:31 +010018#include <stdarg.h>
19#include <vppinfra/types.h>
20#include <vppinfra/format.h>
21
Ed Warnickecb9cada2015-12-08 15:45:58 -070022#define foreach_vnet_api_error \
23_(UNSPECIFIED, -1, "Unspecified Error") \
24_(INVALID_SW_IF_INDEX, -2, "Invalid sw_if_index") \
25_(NO_SUCH_FIB, -3, "No such FIB / VRF") \
26_(NO_SUCH_INNER_FIB, -4, "No such inner FIB / VRF") \
27_(NO_SUCH_LABEL, -5, "No such label") \
28_(NO_SUCH_ENTRY, -6, "No such entry") \
29_(INVALID_VALUE, -7, "Invalid value") \
30_(INVALID_VALUE_2, -8, "Invalid value #2") \
31_(UNIMPLEMENTED, -9, "Unimplemented") \
32_(INVALID_SW_IF_INDEX_2, -10, "Invalid sw_if_index #2") \
33_(SYSCALL_ERROR_1, -11, "System call error #1") \
34_(SYSCALL_ERROR_2, -12, "System call error #2") \
35_(SYSCALL_ERROR_3, -13, "System call error #3") \
36_(SYSCALL_ERROR_4, -14, "System call error #4") \
37_(SYSCALL_ERROR_5, -15, "System call error #5") \
38_(SYSCALL_ERROR_6, -16, "System call error #6") \
39_(SYSCALL_ERROR_7, -17, "System call error #7") \
40_(SYSCALL_ERROR_8, -18, "System call error #8") \
41_(SYSCALL_ERROR_9, -19, "System call error #9") \
Dave Barach2feaffc2017-01-14 10:30:50 -050042_(SYSCALL_ERROR_10, -20, "System call error #10") \
Ed Warnickecb9cada2015-12-08 15:45:58 -070043_(FEATURE_DISABLED, -30, "Feature disabled by configuration") \
44_(INVALID_REGISTRATION, -31, "Invalid registration") \
45_(NEXT_HOP_NOT_IN_FIB, -50, "Next hop not in FIB") \
46_(UNKNOWN_DESTINATION, -51, "Unknown destination") \
47_(PREFIX_MATCHES_NEXT_HOP, -52, "Prefix matches next hop") \
48_(NEXT_HOP_NOT_FOUND_MP, -53, "Next hop not found (multipath)") \
49_(NO_MATCHING_INTERFACE, -54, "No matching interface for probe") \
50_(INVALID_VLAN, -55, "Invalid VLAN") \
51_(VLAN_ALREADY_EXISTS, -56, "VLAN subif already exists") \
52_(INVALID_SRC_ADDRESS, -57, "Invalid src address") \
53_(INVALID_DST_ADDRESS, -58, "Invalid dst address") \
54_(ADDRESS_LENGTH_MISMATCH, -59, "Address length mismatch") \
55_(ADDRESS_NOT_FOUND_FOR_INTERFACE, -60, "Address not found for interface") \
Juraj Sloboda5bb1eca2018-10-22 09:57:13 +020056_(ADDRESS_NOT_DELETABLE, -61, "Address not deletable") \
Ed Warnickecb9cada2015-12-08 15:45:58 -070057_(IP6_NOT_ENABLED, -62, "ip6 not enabled") \
Ed Warnickecb9cada2015-12-08 15:45:58 -070058_(IN_PROGRESS, 10, "Operation in progress") \
59_(NO_SUCH_NODE, -63, "No such graph node") \
60_(NO_SUCH_NODE2, -64, "No such graph node #2") \
61_(NO_SUCH_TABLE, -65, "No such table") \
62_(NO_SUCH_TABLE2, -66, "No such table #2") \
63_(NO_SUCH_TABLE3, -67, "No such table #3") \
64_(SUBIF_ALREADY_EXISTS, -68, "Subinterface already exists") \
65_(SUBIF_CREATE_FAILED, -69, "Subinterface creation failed") \
66_(INVALID_MEMORY_SIZE, -70, "Invalid memory size requested") \
67_(INVALID_INTERFACE, -71, "Invalid interface") \
68_(INVALID_VLAN_TAG_COUNT, -72, "Invalid number of tags for requested operation") \
69_(INVALID_ARGUMENT, -73, "Invalid argument") \
70_(UNEXPECTED_INTF_STATE, -74, "Unexpected interface state") \
71_(TUNNEL_EXIST, -75, "Tunnel already exists") \
72_(INVALID_DECAP_NEXT, -76, "Invalid decap-next") \
73_(RESPONSE_NOT_READY, -77, "Response not ready") \
Damjan Marion83243a02016-02-29 13:09:30 +010074_(NOT_CONNECTED, -78, "Not connected to the data plane") \
John Lobcebbb92016-04-05 15:47:43 -040075_(IF_ALREADY_EXISTS, -79, "Interface already exists") \
Andrej Kozemcakb92feb62016-03-31 13:51:42 +020076_(BOND_SLAVE_NOT_ALLOWED, -80, "Operation not allowed on slave of BondEthernet") \
Chris Luke99cb3352016-04-26 10:49:53 -040077_(VALUE_EXIST, -81, "Value already exists") \
Keith Burns (alagalah)52fc44d2016-03-25 09:38:50 -070078_(SAME_SRC_DST, -82, "Source and destination are the same") \
79_(IP6_MULTICAST_ADDRESS_NOT_PRESENT, -83, "IP6 multicast address required") \
Marek Gradzkid85036f2016-04-26 12:09:05 +020080_(SR_POLICY_NAME_NOT_PRESENT, -84, "Segement routing policy name required") \
81_(NOT_RUNNING_AS_ROOT, -85, "Not running as root") \
82_(ALREADY_CONNECTED, -86, "Connection to the data plane already exists") \
83_(UNSUPPORTED_JNI_VERSION, -87, "Unsupported JNI version") \
Damjan Marion0247b462016-06-08 01:37:11 +020084_(FAILED_TO_ATTACH_TO_JAVA_THREAD, -88, "Failed to attach to Java thread") \
Andrej Kozemcak8ebb2a12016-06-07 12:25:20 +020085_(INVALID_WORKER, -89, "Invalid worker thread") \
Pavel Kotucek20c90f72016-06-07 14:44:26 +020086_(LISP_DISABLED, -90, "LISP is disabled") \
Filip Tehlar006eb262016-06-27 13:09:20 +020087_(CLASSIFY_TABLE_NOT_FOUND, -91, "Classify table not found") \
Pavel Kotucek9e6ed6e2016-07-12 10:18:26 +020088_(INVALID_EID_TYPE, -92, "Unsupported LSIP EID type") \
Dave Barach6f9bca22016-04-30 10:25:32 -040089_(CANNOT_CREATE_PCAP_FILE, -93, "Cannot create pcap file") \
90_(INCORRECT_ADJACENCY_TYPE, -94, "Invalid adjacency type for this operation") \
91_(EXCEEDED_NUMBER_OF_RANGES_CAPACITY, -95, "Operation would exceed configured capacity of ranges") \
Pierre Pfister041eacc2016-08-04 16:13:09 +010092_(EXCEEDED_NUMBER_OF_PORTS_CAPACITY, -96, "Operation would exceed capacity of number of ports") \
Pavel Kotucekd85590a2016-08-26 13:35:40 +020093_(INVALID_ADDRESS_FAMILY, -97, "Invalid address family") \
Filip Tehlar69a9b762016-09-23 10:00:52 +020094_(INVALID_SUB_SW_IF_INDEX, -98, "Invalid sub-interface sw_if_index") \
Pavel Kotucek7490a752016-11-15 09:19:11 +010095_(TABLE_TOO_BIG, -99, "Table too big") \
Klement Sekera0e3c0de2016-09-29 14:43:44 +020096_(CANNOT_ENABLE_DISABLE_FEATURE, -100, "Cannot enable/disable feature") \
Dave Barach68b0fb02017-02-28 15:15:56 -050097_(BFD_EEXIST, -101, "Duplicate BFD object") \
98_(BFD_ENOENT, -102, "No such BFD object") \
99_(BFD_EINUSE, -103, "BFD object in use") \
100_(BFD_NOTSUPP, -104, "BFD feature not supported") \
101_(ADDRESS_IN_USE, -105, "Address in use") \
102_(ADDRESS_NOT_IN_USE, -106, "Address not in use") \
103_(QUEUE_FULL, -107, "Queue full") \
Florin Corasb384b542018-01-15 01:08:33 -0800104_(APP_UNSUPPORTED_CFG, -108, "Unsupported application config") \
Dave Barach68b0fb02017-02-28 15:15:56 -0500105_(URI_FIFO_CREATE_FAILED, -109, "URI FIFO segment create failed") \
106_(LISP_RLOC_LOCAL, -110, "RLOC address is local") \
107_(BFD_EAGAIN, -111, "BFD object cannot be manipulated at this time") \
108_(INVALID_GPE_MODE, -112, "Invalid GPE mode") \
Neale Ranns4008ac92017-02-13 23:20:04 -0800109_(LISP_GPE_ENTRIES_PRESENT, -113, "LISP GPE entries are present") \
Florin Corase04c2992017-03-01 08:17:34 -0800110_(ADDRESS_FOUND_FOR_INTERFACE, -114, "Address found for interface") \
Florin Corascea194d2017-10-02 00:18:51 -0700111_(SESSION_CONNECT, -115, "Session failed to connect") \
Florin Coras6cf30ad2017-04-04 23:08:23 -0700112_(ENTRY_ALREADY_EXISTS, -116, "Entry already exists") \
113_(SVM_SEGMENT_CREATE_FAIL, -117, "svm segment create fail") \
Eyal Barib1352ed2017-04-07 23:14:17 +0300114_(APPLICATION_NOT_ATTACHED, -118, "application not attached") \
115_(BD_ALREADY_EXISTS, -119, "Bridge domain already exists") \
Damjan Marion44036902017-04-28 12:29:15 +0200116_(BD_IN_USE, -120, "Bridge domain has member interfaces") \
John Lo97934772017-05-18 22:26:47 -0400117_(BD_NOT_MODIFIABLE, -121, "Bridge domain 0 can't be deleted/modified") \
118_(BD_ID_EXCEED_MAX, -122, "Bridge domain ID exceed 16M limit") \
John Lo8d00fff2017-08-03 00:35:36 -0400119_(SUBIF_DOESNT_EXIST, -123, "Subinterface doesn't exist") \
120_(L2_MACS_EVENT_CLINET_PRESENT, -124, "Client already exist for L2 MACs events") \
Stevenbd8a6112017-07-30 10:29:26 -0700121_(INVALID_QUEUE, -125, "Invalid queue") \
Jon Loeliger35ffa3e2017-09-28 13:54:16 -0500122_(UNSUPPORTED, -126, "Unsupported") \
Florin Corascea194d2017-10-02 00:18:51 -0700123_(DUPLICATE_IF_ADDRESS, -127, "Address already present on another interface") \
124_(APP_INVALID_NS, -128, "Invalid application namespace") \
125_(APP_WRONG_NS_SECRET, -129, "Wrong app namespace secret") \
126_(APP_CONNECT_SCOPE, -130, "Connect scope") \
127_(APP_ALREADY_ATTACHED, -131, "App already attached") \
128_(SESSION_REDIRECT, -132, "Redirect failed") \
Dave Barach65457162017-10-10 17:53:14 -0400129_(ILLEGAL_NAME, -133, "Illegal name") \
130_(NO_NAME_SERVERS, -134, "No name servers configured") \
131_(NAME_SERVER_NOT_FOUND, -135, "Name server not found") \
132_(NAME_RESOLUTION_NOT_ENABLED, -136, "Name resolution not enabled") \
133_(NAME_SERVER_FORMAT_ERROR, -137, "Server format error (bug!)") \
134_(NAME_SERVER_NO_SUCH_NAME, -138, "No such name") \
135_(NAME_SERVER_NO_ADDRESSES, -139, "No addresses available") \
Florin Corasa2ff7b82017-11-08 17:55:03 -0800136_(NAME_SERVER_NEXT_SERVER, -140, "Retry with new server") \
Jon Loeliger27cadd22017-11-10 13:15:12 -0600137_(APP_CONNECT_FILTERED, -141, "Connect was filtered") \
138_(ACL_IN_USE_INBOUND, -142, "Inbound ACL in use") \
Damjan Marion91c6ef72017-12-01 13:34:24 +0100139_(ACL_IN_USE_OUTBOUND, -143, "Outbound ACL in use") \
140_(INIT_FAILED, -144, "Initialization Failed") \
Neale Rannsf0510722018-01-31 11:35:41 -0800141_(NETLINK_ERROR, -145, "netlink error") \
Jon Loeliger3d460bd2018-02-01 16:36:12 -0600142_(BIER_BSL_UNSUP, -146, "BIER bit-string-length unsupported") \
John Loa43ccae2018-02-13 17:15:23 -0500143_(INSTANCE_IN_USE, -147, "Instance in use") \
Andrew Yourtchenko94f9a6d2018-03-21 19:53:39 +0100144_(INVALID_SESSION_ID, -148, "session ID out of range") \
145_(ACL_IN_USE_BY_LOOKUP_CONTEXT, -149, "ACL in use by a lookup context") \
Alexander Chernavine178b272018-09-24 05:42:01 -0400146_(INVALID_VALUE_3, -150, "Invalid value #3") \
147_(NON_ETHERNET, -151, "Interface is not an Ethernet interface") \
148_(BD_ALREADY_HAS_BVI, -152, "Bridge domain already has a BVI interface")
Ed Warnickecb9cada2015-12-08 15:45:58 -0700149
Dave Barachba868bb2016-08-08 09:51:21 -0400150typedef enum
151{
Ed Warnickecb9cada2015-12-08 15:45:58 -0700152#define _(a,b,c) VNET_API_ERROR_##a = (b),
Dave Barachba868bb2016-08-08 09:51:21 -0400153 foreach_vnet_api_error
Ed Warnickecb9cada2015-12-08 15:45:58 -0700154#undef _
155 VNET_API_N_ERROR,
156} vnet_api_error_t;
157
Klement Sekeraff92efe2017-11-30 07:00:31 +0100158/* *INDENT-OFF* */
159static inline u8 *
160format_vnet_api_errno (u8 * s, va_list * args)
161{
162 vnet_api_error_t api_error = va_arg (*args, vnet_api_error_t);
163#ifdef _
164#undef _
165#endif
166#define _(a, b, c) \
167 case b: \
168 s = format (s, "%s", c); \
169 break;
170 switch (api_error)
171 {
172 foreach_vnet_api_error
173 default:
174 s = format (s, "UNKNOWN");
175 break;
176 }
177 return s;
178#undef _
179}
180/* *INDENT-ON* */
181
Ed Warnickecb9cada2015-12-08 15:45:58 -0700182#endif /* included_vnet_api_errno_h */
Dave Barachba868bb2016-08-08 09:51:21 -0400183
184/*
185 * fd.io coding-style-patch-verification: ON
186 *
187 * Local Variables:
188 * eval: (c-set-style "gnu")
189 * End:
190 */