#ifndef included_vnet_api_errno_h
#define included_vnet_api_errno_h
+#include <stdarg.h>
+#include <vppinfra/types.h>
+#include <vppinfra/format.h>
+
#define foreach_vnet_api_error \
_(UNSPECIFIED, -1, "Unspecified Error") \
_(INVALID_SW_IF_INDEX, -2, "Invalid sw_if_index") \
_(INVALID_REGISTRATION, -31, "Invalid registration") \
_(NEXT_HOP_NOT_IN_FIB, -50, "Next hop not in FIB") \
_(UNKNOWN_DESTINATION, -51, "Unknown destination") \
-_(PREFIX_MATCHES_NEXT_HOP, -52, "Prefix matches next hop") \
+_(NO_PATHS_IN_ROUTE, -52, "No paths specified in route") \
_(NEXT_HOP_NOT_FOUND_MP, -53, "Next hop not found (multipath)") \
_(NO_MATCHING_INTERFACE, -54, "No matching interface for probe") \
_(INVALID_VLAN, -55, "Invalid VLAN") \
_(INVALID_DST_ADDRESS, -58, "Invalid dst address") \
_(ADDRESS_LENGTH_MISMATCH, -59, "Address length mismatch") \
_(ADDRESS_NOT_FOUND_FOR_INTERFACE, -60, "Address not found for interface") \
-_(ADDRESS_NOT_LINK_LOCAL, -61, "Address not link-local") \
+_(ADDRESS_NOT_DELETABLE, -61, "Address not deletable") \
_(IP6_NOT_ENABLED, -62, "ip6 not enabled") \
-_(IN_PROGRESS, 10, "Operation in progress") \
_(NO_SUCH_NODE, -63, "No such graph node") \
_(NO_SUCH_NODE2, -64, "No such graph node #2") \
_(NO_SUCH_TABLE, -65, "No such table") \
_(VALUE_EXIST, -81, "Value already exists") \
_(SAME_SRC_DST, -82, "Source and destination are the same") \
_(IP6_MULTICAST_ADDRESS_NOT_PRESENT, -83, "IP6 multicast address required") \
-_(SR_POLICY_NAME_NOT_PRESENT, -84, "Segement routing policy name required") \
+_(SR_POLICY_NAME_NOT_PRESENT, -84, "Segment routing policy name required") \
_(NOT_RUNNING_AS_ROOT, -85, "Not running as root") \
_(ALREADY_CONNECTED, -86, "Connection to the data plane already exists") \
_(UNSUPPORTED_JNI_VERSION, -87, "Unsupported JNI version") \
_(INVALID_WORKER, -89, "Invalid worker thread") \
_(LISP_DISABLED, -90, "LISP is disabled") \
_(CLASSIFY_TABLE_NOT_FOUND, -91, "Classify table not found") \
-_(INVALID_EID_TYPE, -92, "Unsupported LSIP EID type") \
+_(INVALID_EID_TYPE, -92, "Unsupported LISP EID type") \
_(CANNOT_CREATE_PCAP_FILE, -93, "Cannot create pcap file") \
_(INCORRECT_ADJACENCY_TYPE, -94, "Invalid adjacency type for this operation") \
_(EXCEEDED_NUMBER_OF_RANGES_CAPACITY, -95, "Operation would exceed configured capacity of ranges") \
_(ADDRESS_IN_USE, -105, "Address in use") \
_(ADDRESS_NOT_IN_USE, -106, "Address not in use") \
_(QUEUE_FULL, -107, "Queue full") \
-_(UNKNOWN_URI_TYPE, -108, "Unknown URI type") \
+_(APP_UNSUPPORTED_CFG, -108, "Unsupported application config") \
_(URI_FIFO_CREATE_FAILED, -109, "URI FIFO segment create failed") \
_(LISP_RLOC_LOCAL, -110, "RLOC address is local") \
_(BFD_EAGAIN, -111, "BFD object cannot be manipulated at this time") \
_(INVALID_GPE_MODE, -112, "Invalid GPE mode") \
_(LISP_GPE_ENTRIES_PRESENT, -113, "LISP GPE entries are present") \
_(ADDRESS_FOUND_FOR_INTERFACE, -114, "Address found for interface") \
-_(SESSION_CONNECT_FAIL, -115, "Session failed to connect") \
+_(SESSION_CONNECT, -115, "Session failed to connect") \
_(ENTRY_ALREADY_EXISTS, -116, "Entry already exists") \
-_(SVM_SEGMENT_CREATE_FAIL, -117, "svm segment create fail") \
-_(APPLICATION_NOT_ATTACHED, -118, "application not attached") \
+_(SVM_SEGMENT_CREATE_FAIL, -117, "Svm segment create fail") \
+_(APPLICATION_NOT_ATTACHED, -118, "Application not attached") \
_(BD_ALREADY_EXISTS, -119, "Bridge domain already exists") \
_(BD_IN_USE, -120, "Bridge domain has member interfaces") \
-_(UNSUPPORTED, -121, "Unsupported")
+_(BD_NOT_MODIFIABLE, -121, "Bridge domain 0 can't be deleted/modified") \
+_(BD_ID_EXCEED_MAX, -122, "Bridge domain ID exceeds 16M limit") \
+_(SUBIF_DOESNT_EXIST, -123, "Subinterface doesn't exist") \
+_(L2_MACS_EVENT_CLINET_PRESENT, -124, "Client already exist for L2 MACs events") \
+_(INVALID_QUEUE, -125, "Invalid queue") \
+_(UNSUPPORTED, -126, "Unsupported") \
+_(DUPLICATE_IF_ADDRESS, -127, "Address already present on another interface") \
+_(APP_INVALID_NS, -128, "Invalid application namespace") \
+_(APP_WRONG_NS_SECRET, -129, "Wrong app namespace secret") \
+_(APP_CONNECT_SCOPE, -130, "Connect scope") \
+_(APP_ALREADY_ATTACHED, -131, "App already attached") \
+_(SESSION_REDIRECT, -132, "Redirect failed") \
+_(ILLEGAL_NAME, -133, "Illegal name") \
+_(NO_NAME_SERVERS, -134, "No name servers configured") \
+_(NAME_SERVER_NOT_FOUND, -135, "Name server not found") \
+_(NAME_RESOLUTION_NOT_ENABLED, -136, "Name resolution not enabled") \
+_(NAME_SERVER_FORMAT_ERROR, -137, "Server format error (bug!)") \
+_(NAME_SERVER_NO_SUCH_NAME, -138, "No such name") \
+_(NAME_SERVER_NO_ADDRESSES, -139, "No addresses available") \
+_(NAME_SERVER_NEXT_SERVER, -140, "Retry with new server") \
+_(APP_CONNECT_FILTERED, -141, "Connect was filtered") \
+_(ACL_IN_USE_INBOUND, -142, "Inbound ACL in use") \
+_(ACL_IN_USE_OUTBOUND, -143, "Outbound ACL in use") \
+_(INIT_FAILED, -144, "Initialization Failed") \
+_(NETLINK_ERROR, -145, "Netlink error") \
+_(BIER_BSL_UNSUP, -146, "BIER bit-string-length unsupported") \
+_(INSTANCE_IN_USE, -147, "Instance in use") \
+_(INVALID_SESSION_ID, -148, "Session ID out of range") \
+_(ACL_IN_USE_BY_LOOKUP_CONTEXT, -149, "ACL in use by a lookup context") \
+_(INVALID_VALUE_3, -150, "Invalid value #3") \
+_(NON_ETHERNET, -151, "Interface is not an Ethernet interface") \
+_(BD_ALREADY_HAS_BVI, -152, "Bridge domain already has a BVI interface") \
+_(INVALID_PROTOCOL, -153, "Invalid Protocol") \
+_(INVALID_ALGORITHM, -154, "Invalid Algorithm") \
+_(RSRC_IN_USE, -155, "Resource In Use") \
+_(KEY_LENGTH, -156, "invalid Key Length") \
+_(FIB_PATH_UNSUPPORTED_NH_PROTO, -157, "Unsupported FIB Path protocol") \
+_(API_ENDIAN_FAILED, -159, "Endian mismatch detected") \
+_(NO_CHANGE, -160, "No change in table") \
+_(MISSING_CERT_KEY, -161, "Missing certifcate or key") \
+_(LIMIT_EXCEEDED, -162, "limit exceeded")
typedef enum
{
VNET_API_N_ERROR,
} vnet_api_error_t;
+/* *INDENT-OFF* */
+static inline u8 *
+format_vnet_api_errno (u8 * s, va_list * args)
+{
+ vnet_api_error_t api_error = va_arg (*args, vnet_api_error_t);
+#ifdef _
+#undef _
+#endif
+#define _(a, b, c) \
+ case b: \
+ s = format (s, "%s", c); \
+ break;
+ switch (api_error)
+ {
+ foreach_vnet_api_error
+ default:
+ s = format (s, "UNKNOWN");
+ break;
+ }
+ return s;
+#undef _
+}
+/* *INDENT-ON* */
+
#endif /* included_vnet_api_errno_h */
/*