session: improve error reporting
[vpp.git] / src / vnet / session / session_types.h
index a036013..ca5dcc1 100644 (file)
@@ -433,6 +433,53 @@ typedef struct session_dgram_header_
 
 STATIC_ASSERT (sizeof (session_dgram_hdr_t) == (SESSION_CONN_ID_LEN + 8),
               "session conn id wrong length");
+
+#define foreach_session_error                                          \
+  _(NONE, "no error")                                                  \
+  _(UNKNOWN, "generic/unknown error")                                  \
+  _(REFUSED, "refused")                                                        \
+  _(TIMEDOUT, "timedout")                                              \
+  _(ALLOC, "obj/memory allocation error")                              \
+  _(NOROUTE, "no route")                                               \
+  _(NOINTF, "no resolving interface")                                  \
+  _(NOIP, "no ip for lcl interface")                                   \
+  _(NOPORT, "no lcl port")                                             \
+  _(NOSUPPORT, "not supported")                                                \
+  _(PORTINUSE, "lcl port in use")                                      \
+  _(IPINUSE, "ip in use")                                              \
+  _(ALREADY_LISTENING, "ip port pair already listened on")             \
+  _(INVALID_RMT_IP, "invalid remote ip")                               \
+  _(SEG_NO_SPACE, "Couldn't allocate a fifo pair")                     \
+  _(SEG_NO_SPACE2, "Created segment, couldn't allocate a fifo pair")   \
+  _(SEG_CREATE, "Couldn't create a new segment")                       \
+  _(FILTERED, "session filtered")                                      \
+  _(SCOPE, "scope not supported")                                      \
+  _(BAPI_NO_FD, "bapi doesn't have a socket fd")                       \
+  _(BAPI_SEND_FD, "couldn't send fd over bapi socket fd")              \
+  _(BAPI_NO_REG, "app bapi registration not found")                    \
+  _(MQ_MSG_ALLOC, "failed to alloc mq msg")                            \
+  _(TLS_HANDSHAKE, "failed tls handshake")                             \
+
+typedef enum session_error_p_
+{
+#define _(sym, str) SESSION_EP_##sym,
+  foreach_session_error
+#undef _
+  SESSION_N_ERRORS
+} session_error_p_t;
+
+typedef enum session_error_
+{
+#define _(sym, str) SESSION_E_##sym = -SESSION_EP_##sym,
+  foreach_session_error
+#undef _
+} session_error_t;
+
+/* Maintained for compatibility. Will be deprecated */
+#define SESSION_ERROR_SEG_CREATE SESSION_E_SEG_CREATE
+#define SESSION_ERROR_NO_SPACE SESSION_E_SEG_NO_SPACE
+#define SESSION_ERROR_NEW_SEG_NO_SPACE SESSION_E_SEG_NO_SPACE2
+
 #endif /* SRC_VNET_SESSION_SESSION_TYPES_H_ */
 
 /*