8 // VPPApiError represents VPP's vnet API error that is usually
9 // returned as Retval field in replies from VPP binary API.
10 type VPPApiError int32
12 func (e VPPApiError) Error() string {
14 if s, ok := vppApiErrors[e]; ok {
17 errstr = strconv.Itoa(int(e))
19 return fmt.Sprintf("VPPApiError: %s", errstr)
22 // definitions from: vpp/src/vnet/api_errno.h
26 INVALID_SW_IF_INDEX = -2
28 NO_SUCH_INNER_FIB = -4
34 INVALID_SW_IF_INDEX_2 = -10
44 SYSCALL_ERROR_10 = -20
45 FEATURE_DISABLED = -30
46 INVALID_REGISTRATION = -31
47 NEXT_HOP_NOT_IN_FIB = -50
48 UNKNOWN_DESTINATION = -51
49 PREFIX_MATCHES_NEXT_HOP = -52
50 NEXT_HOP_NOT_FOUND_MP = -53
51 NO_MATCHING_INTERFACE = -54
53 VLAN_ALREADY_EXISTS = -56
54 INVALID_SRC_ADDRESS = -57
55 INVALID_DST_ADDRESS = -58
56 ADDRESS_LENGTH_MISMATCH = -59
57 ADDRESS_NOT_FOUND_FOR_INTERFACE = -60
58 ADDRESS_NOT_LINK_LOCAL = -61
66 SUBIF_ALREADY_EXISTS = -68
67 SUBIF_CREATE_FAILED = -69
68 INVALID_MEMORY_SIZE = -70
69 INVALID_INTERFACE = -71
70 INVALID_VLAN_TAG_COUNT = -72
71 INVALID_ARGUMENT = -73
72 UNEXPECTED_INTF_STATE = -74
74 INVALID_DECAP_NEXT = -76
75 RESPONSE_NOT_READY = -77
77 IF_ALREADY_EXISTS = -79
78 BOND_SLAVE_NOT_ALLOWED = -80
81 IP6_MULTICAST_ADDRESS_NOT_PRESENT = -83
82 SR_POLICY_NAME_NOT_PRESENT = -84
83 NOT_RUNNING_AS_ROOT = -85
84 ALREADY_CONNECTED = -86
85 UNSUPPORTED_JNI_VERSION = -87
86 FAILED_TO_ATTACH_TO_JAVA_THREAD = -88
89 CLASSIFY_TABLE_NOT_FOUND = -91
90 INVALID_EID_TYPE = -92
91 CANNOT_CREATE_PCAP_FILE = -93
92 INCORRECT_ADJACENCY_TYPE = -94
93 EXCEEDED_NUMBER_OF_RANGES_CAPACITY = -95
94 EXCEEDED_NUMBER_OF_PORTS_CAPACITY = -96
95 INVALID_ADDRESS_FAMILY = -97
96 INVALID_SUB_SW_IF_INDEX = -98
98 CANNOT_ENABLE_DISABLE_FEATURE = -100
103 ADDRESS_IN_USE = -105
104 ADDRESS_NOT_IN_USE = -106
106 APP_UNSUPPORTED_CFG = -108
107 URI_FIFO_CREATE_FAILED = -109
108 LISP_RLOC_LOCAL = -110
110 INVALID_GPE_MODE = -112
111 LISP_GPE_ENTRIES_PRESENT = -113
112 ADDRESS_FOUND_FOR_INTERFACE = -114
113 SESSION_CONNECT = -115
114 ENTRY_ALREADY_EXISTS = -116
115 SVM_SEGMENT_CREATE_FAIL = -117
116 APPLICATION_NOT_ATTACHED = -118
117 BD_ALREADY_EXISTS = -119
119 BD_NOT_MODIFIABLE = -121
120 BD_ID_EXCEED_MAX = -122
121 SUBIF_DOESNT_EXIST = -123
122 L2_MACS_EVENT_CLINET_PRESENT = -124
125 DUPLICATE_IF_ADDRESS = -127
126 APP_INVALID_NS = -128
127 APP_WRONG_NS_SECRET = -129
128 APP_CONNECT_SCOPE = -130
129 APP_ALREADY_ATTACHED = -131
130 SESSION_REDIRECT = -132
132 NO_NAME_SERVERS = -134
133 NAME_SERVER_NOT_FOUND = -135
134 NAME_RESOLUTION_NOT_ENABLED = -136
135 NAME_SERVER_FORMAT_ERROR = -137
136 NAME_SERVER_NO_SUCH_NAME = -138
137 NAME_SERVER_NO_ADDRESSES = -139
138 NAME_SERVER_NEXT_SERVER = -140
139 APP_CONNECT_FILTERED = -141
140 ACL_IN_USE_INBOUND = -142
141 ACL_IN_USE_OUTBOUND = -143
144 BIER_BSL_UNSUP = -146
145 INSTANCE_IN_USE = -147
146 INVALID_SESSION_ID = -148
147 ACL_IN_USE_BY_LOOKUP_CONTEXT = -149
150 var vppApiErrors = map[VPPApiError]string{
151 UNSPECIFIED: "Unspecified Error",
152 INVALID_SW_IF_INDEX: "Invalid sw_if_index",
153 NO_SUCH_FIB: "No such FIB / VRF",
154 NO_SUCH_INNER_FIB: "No such inner FIB / VRF",
155 NO_SUCH_LABEL: "No such label",
156 NO_SUCH_ENTRY: "No such entry",
157 INVALID_VALUE: "Invalid value",
158 INVALID_VALUE_2: "Invalid value #2",
159 UNIMPLEMENTED: "Unimplemented",
160 INVALID_SW_IF_INDEX_2: "Invalid sw_if_index #2",
161 SYSCALL_ERROR_1: "System call error #1",
162 SYSCALL_ERROR_2: "System call error #2",
163 SYSCALL_ERROR_3: "System call error #3",
164 SYSCALL_ERROR_4: "System call error #4",
165 SYSCALL_ERROR_5: "System call error #5",
166 SYSCALL_ERROR_6: "System call error #6",
167 SYSCALL_ERROR_7: "System call error #7",
168 SYSCALL_ERROR_8: "System call error #8",
169 SYSCALL_ERROR_9: "System call error #9",
170 SYSCALL_ERROR_10: "System call error #10",
171 FEATURE_DISABLED: "Feature disabled by configuration",
172 INVALID_REGISTRATION: "Invalid registration",
173 NEXT_HOP_NOT_IN_FIB: "Next hop not in FIB",
174 UNKNOWN_DESTINATION: "Unknown destination",
175 PREFIX_MATCHES_NEXT_HOP: "Prefix matches next hop",
176 NEXT_HOP_NOT_FOUND_MP: "Next hop not found (multipath)",
177 NO_MATCHING_INTERFACE: "No matching interface for probe",
178 INVALID_VLAN: "Invalid VLAN",
179 VLAN_ALREADY_EXISTS: "VLAN subif already exists",
180 INVALID_SRC_ADDRESS: "Invalid src address",
181 INVALID_DST_ADDRESS: "Invalid dst address",
182 ADDRESS_LENGTH_MISMATCH: "Address length mismatch",
183 ADDRESS_NOT_FOUND_FOR_INTERFACE: "Address not found for interface",
184 ADDRESS_NOT_LINK_LOCAL: "Address not link-local",
185 IP6_NOT_ENABLED: "ip6 not enabled",
186 IN_PROGRESS: "Operation in progress",
187 NO_SUCH_NODE: "No such graph node",
188 NO_SUCH_NODE2: "No such graph node #2",
189 NO_SUCH_TABLE: "No such table",
190 NO_SUCH_TABLE2: "No such table #2",
191 NO_SUCH_TABLE3: "No such table #3",
192 SUBIF_ALREADY_EXISTS: "Subinterface already exists",
193 SUBIF_CREATE_FAILED: "Subinterface creation failed",
194 INVALID_MEMORY_SIZE: "Invalid memory size requested",
195 INVALID_INTERFACE: "Invalid interface",
196 INVALID_VLAN_TAG_COUNT: "Invalid number of tags for requested operation",
197 INVALID_ARGUMENT: "Invalid argument",
198 UNEXPECTED_INTF_STATE: "Unexpected interface state",
199 TUNNEL_EXIST: "Tunnel already exists",
200 INVALID_DECAP_NEXT: "Invalid decap-next",
201 RESPONSE_NOT_READY: "Response not ready",
202 NOT_CONNECTED: "Not connected to the data plane",
203 IF_ALREADY_EXISTS: "Interface already exists",
204 BOND_SLAVE_NOT_ALLOWED: "Operation not allowed on slave of BondEthernet",
205 VALUE_EXIST: "Value already exists",
206 SAME_SRC_DST: "Source and destination are the same",
207 IP6_MULTICAST_ADDRESS_NOT_PRESENT: "IP6 multicast address required",
208 SR_POLICY_NAME_NOT_PRESENT: "Segement routing policy name required",
209 NOT_RUNNING_AS_ROOT: "Not running as root",
210 ALREADY_CONNECTED: "Connection to the data plane already exists",
211 UNSUPPORTED_JNI_VERSION: "Unsupported JNI version",
212 FAILED_TO_ATTACH_TO_JAVA_THREAD: "Failed to attach to Java thread",
213 INVALID_WORKER: "Invalid worker thread",
214 LISP_DISABLED: "LISP is disabled",
215 CLASSIFY_TABLE_NOT_FOUND: "Classify table not found",
216 INVALID_EID_TYPE: "Unsupported LSIP EID type",
217 CANNOT_CREATE_PCAP_FILE: "Cannot create pcap file",
218 INCORRECT_ADJACENCY_TYPE: "Invalid adjacency type for this operation",
219 EXCEEDED_NUMBER_OF_RANGES_CAPACITY: "Operation would exceed configured capacity of ranges",
220 EXCEEDED_NUMBER_OF_PORTS_CAPACITY: "Operation would exceed capacity of number of ports",
221 INVALID_ADDRESS_FAMILY: "Invalid address family",
222 INVALID_SUB_SW_IF_INDEX: "Invalid sub-interface sw_if_index",
223 TABLE_TOO_BIG: "Table too big",
224 CANNOT_ENABLE_DISABLE_FEATURE: "Cannot enable/disable feature",
225 BFD_EEXIST: "Duplicate BFD object",
226 BFD_ENOENT: "No such BFD object",
227 BFD_EINUSE: "BFD object in use",
228 BFD_NOTSUPP: "BFD feature not supported",
229 ADDRESS_IN_USE: "Address in use",
230 ADDRESS_NOT_IN_USE: "Address not in use",
231 QUEUE_FULL: "Queue full",
232 APP_UNSUPPORTED_CFG: "Unsupported application config",
233 URI_FIFO_CREATE_FAILED: "URI FIFO segment create failed",
234 LISP_RLOC_LOCAL: "RLOC address is local",
235 BFD_EAGAIN: "BFD object cannot be manipulated at this time",
236 INVALID_GPE_MODE: "Invalid GPE mode",
237 LISP_GPE_ENTRIES_PRESENT: "LISP GPE entries are present",
238 ADDRESS_FOUND_FOR_INTERFACE: "Address found for interface",
239 SESSION_CONNECT: "Session failed to connect",
240 ENTRY_ALREADY_EXISTS: "Entry already exists",
241 SVM_SEGMENT_CREATE_FAIL: "svm segment create fail",
242 APPLICATION_NOT_ATTACHED: "application not attached",
243 BD_ALREADY_EXISTS: "Bridge domain already exists",
244 BD_IN_USE: "Bridge domain has member interfaces",
245 BD_NOT_MODIFIABLE: "Bridge domain 0 can't be deleted/modified",
246 BD_ID_EXCEED_MAX: "Bridge domain ID exceed 16M limit",
247 SUBIF_DOESNT_EXIST: "Subinterface doesn't exist",
248 L2_MACS_EVENT_CLINET_PRESENT: "Client already exist for L2 MACs events",
249 INVALID_QUEUE: "Invalid queue",
250 UNSUPPORTED: "Unsupported",
251 DUPLICATE_IF_ADDRESS: "Address already present on another interface",
252 APP_INVALID_NS: "Invalid application namespace",
253 APP_WRONG_NS_SECRET: "Wrong app namespace secret",
254 APP_CONNECT_SCOPE: "Connect scope",
255 APP_ALREADY_ATTACHED: "App already attached",
256 SESSION_REDIRECT: "Redirect failed",
257 ILLEGAL_NAME: "Illegal name",
258 NO_NAME_SERVERS: "No name servers configured",
259 NAME_SERVER_NOT_FOUND: "Name server not found",
260 NAME_RESOLUTION_NOT_ENABLED: "Name resolution not enabled",
261 NAME_SERVER_FORMAT_ERROR: "Server format error (bug!)",
262 NAME_SERVER_NO_SUCH_NAME: "No such name",
263 NAME_SERVER_NO_ADDRESSES: "No addresses available",
264 NAME_SERVER_NEXT_SERVER: "Retry with new server",
265 APP_CONNECT_FILTERED: "Connect was filtered",
266 ACL_IN_USE_INBOUND: "Inbound ACL in use",
267 ACL_IN_USE_OUTBOUND: "Outbound ACL in use",
268 INIT_FAILED: "Initialization Failed",
269 NETLINK_ERROR: "netlink error",
270 BIER_BSL_UNSUP: "BIER bit-string-length unsupported",
271 INSTANCE_IN_USE: "Instance in use",
272 INVALID_SESSION_ID: "session ID out of range",
273 ACL_IN_USE_BY_LOOKUP_CONTEXT: "ACL in use by a lookup context",