#include <svm/svm_fifo.h>
#include <vnet/session/transport_types.h>
-#define SESSION_LISTENER_PREFIX 0x5FFFFFFF
-
#define foreach_session_endpoint_fields \
foreach_transport_endpoint_cfg_fields \
_(u8, transport_proto) \
u32 ns_index;
u8 original_tp;
u8 *hostname;
+ u64 transport_opts;
} session_endpoint_cfg_t;
#define SESSION_IP46_ZERO \
SESSION_STATE_N_STATES,
} session_state_t;
+typedef enum session_flags_
+{
+ SESSION_F_RX_EVT = 1,
+ SESSION_F_PROXY = (1 << 1),
+} session_flags_t;
+
typedef struct session_
{
/** Pointers to rx/tx buffers. Once allocated, these do not move */
/** Index of the thread that allocated the session */
u8 thread_index;
- /** Tracks last enqueue epoch to avoid generating multiple enqueue events */
- u64 enqueue_epoch;
+ /** Session flags. See @ref session_flags_t */
+ u32 flags;
/** Index of the transport connection associated to the session */
u32 connection_index;
union
{
/** Parent listener session index if the result of an accept */
- u32 listener_index;
+ session_handle_t listener_handle;
/** App listener index in app's listener pool if a listener */
u32 al_index;