fib: fib api updates
[vpp.git] / src / vnet / api_errno.h
index ed8e7bb..8771d2c 100644 (file)
 #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")                       \
@@ -40,7 +44,7 @@ _(FEATURE_DISABLED, -30, "Feature disabled by configuration")           \
 _(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")                                    \
@@ -49,9 +53,8 @@ _(INVALID_SRC_ADDRESS, -57, "Invalid src address")                      \
 _(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")                                  \
@@ -136,7 +139,17 @@ _(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")
+_(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")
 
 typedef enum
 {
@@ -146,6 +159,30 @@ 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 */
 
 /*