vcl: move binary api and cfg to separate files
[vpp.git] / src / vnet / session / stream_session.h
index 6f6dce6..34f122f 100644 (file)
@@ -16,7 +16,6 @@
 #ifndef SRC_VNET_SESSION_STREAM_SESSION_H_
 #define SRC_VNET_SESSION_STREAM_SESSION_H_
 
-#include <vnet/vnet.h>
 #include <svm/svm_fifo.h>
 #include <vnet/session/transport.h>
 
@@ -31,30 +30,20 @@ typedef enum
   SESSION_STATE_CONNECTING,
   SESSION_STATE_ACCEPTING,
   SESSION_STATE_READY,
-  SESSION_STATE_CONNECTING_READY,
+  SESSION_STATE_OPENED,
+  SESSION_STATE_CLOSING,
   SESSION_STATE_CLOSED,
   SESSION_STATE_N_STATES,
 } stream_session_state_t;
 
-/* TODO convert to macro once cleanup completed */
-typedef struct app_session_
+typedef struct generic_session_
 {
-  /** fifo pointers. Once allocated, these do not move */
-  svm_fifo_t *server_rx_fifo;
-  svm_fifo_t *server_tx_fifo;
-
-  /** Type */
-  session_type_t session_type;
-
-  /** State */
-  volatile u8 session_state;
-
-  /** Session index in owning pool */
-  u32 session_index;
-
-  /** Application index */
-  u32 app_index;
-} app_session_t;
+  svm_fifo_t *rx_fifo;         /**< rx fifo */
+  svm_fifo_t *tx_fifo;         /**< tx fifo */
+  session_type_t session_type; /**< session type */
+  volatile u8 session_state;   /**< session state */
+  u32 session_index;           /**< index in owning pool */
+} generic_session_t;
 
 typedef struct _stream_session_t
 {
@@ -141,7 +130,6 @@ typedef struct local_session_
 #define foreach_session_endpoint_fields                                \
     foreach_transport_connection_fields                                \
     _(u8, transport_proto)                                     \
-    _(u8, app_proto)                                           \
 
 typedef struct _session_endpoint
 {
@@ -157,6 +145,7 @@ typedef struct _session_endpoint_extended
 #undef _
   u32 app_index;
   u32 opaque;
+  u8 *hostname;
 } session_endpoint_extended_t;
 
 #define SESSION_IP46_ZERO              \
@@ -173,7 +162,18 @@ typedef struct _session_endpoint_extended
   .is_ip4 = 0,                         \
   .port = 0,                           \
   .transport_proto = 0,                        \
-  .app_proto = 0,                      \
+}
+#define SESSION_ENDPOINT_EXT_NULL      \
+{                                      \
+  .sw_if_index = ENDPOINT_INVALID_INDEX,       \
+  .ip = SESSION_IP46_ZERO,             \
+  .fib_index = ENDPOINT_INVALID_INDEX, \
+  .is_ip4 = 0,                         \
+  .port = 0,                           \
+  .transport_proto = 0,                        \
+  .app_index = ENDPOINT_INVALID_INDEX, \
+  .opaque = ENDPOINT_INVALID_INDEX,    \
+  .hostname = 0,                               \
 }
 
 #define session_endpoint_to_transport(_sep) ((transport_endpoint_t *)_sep)