FD.io VPP  v19.08.2-294-g37e99c22d
Vector Packet Processing
session_types.h File Reference
+ Include dependency graph for session_types.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  session_
 
struct  session_rpc_args_t
 
struct  session_dgram_pre_hdr_
 
struct  session_dgram_header_
 

Macros

#define SESSION_INVALID_INDEX   ((u32)~0)
 
#define SESSION_INVALID_HANDLE   ((u64)~0)
 
#define SESSION_CTRL_MSG_MAX_SIZE   84
 
#define foreach_session_endpoint_fields
 
#define SESSION_IP46_ZERO
 
#define TRANSPORT_ENDPOINT_NULL
 
#define SESSION_ENDPOINT_NULL
 
#define SESSION_ENDPOINT_CFG_NULL
 
#define session_endpoint_to_transport(_sep)   ((transport_endpoint_t *)_sep)
 
#define session_endpoint_to_transport_cfg(_sep)   ((transport_endpoint_cfg_t *)_sep)
 
#define foreach_session_state
 
#define foreach_session_ctrl_evt
 
#define FIFO_EVENT_APP_RX   SESSION_IO_EVT_RX
 
#define FIFO_EVENT_APP_TX   SESSION_IO_EVT_TX
 
#define FIFO_EVENT_DISCONNECT   SESSION_CTRL_EVT_CLOSE
 
#define FIFO_EVENT_BUILTIN_RX   SESSION_IO_EVT_BUILTIN_RX
 
#define FIFO_EVENT_BUILTIN_TX   SESSION_IO_EVT_BUILTIN_TX
 
#define SESSION_MSG_NULL   { }
 
#define SESSION_CONN_ID_LEN   37
 
#define SESSION_CONN_HDR_LEN   45
 

Typedefs

typedef struct _session_endpoint session_endpoint_t
 
typedef struct _session_endpoint_cfg session_endpoint_cfg_t
 
typedef u8 session_type_t
 
typedef u64 session_handle_t
 
typedef enum session_flags_ session_flags_t
 
typedef struct session_ session_t
 
typedef struct session_dgram_pre_hdr_ session_dgram_pre_hdr_t
 
typedef struct session_dgram_header_ session_dgram_hdr_t
 

Enumerations

enum  session_cleanup_ntf_t { SESSION_CLEANUP_TRANSPORT, SESSION_CLEANUP_SESSION }
 
enum  session_state_t { SESSION_N_STATES }
 
enum  session_flags_ { SESSION_F_RX_EVT = 1, SESSION_F_PROXY = (1 << 1), SESSION_F_CUSTOM_TX = (1 << 2) }
 
enum  session_evt_type_t {
  SESSION_IO_EVT_RX, SESSION_IO_EVT_TX, SESSION_IO_EVT_TX_FLUSH, SESSION_IO_EVT_BUILTIN_RX,
  SESSION_IO_EVT_BUILTIN_TX, SESSION_CTRL_EVT_RPC, SESSION_CTRL_EVT_CLOSE, SESSION_CTRL_EVT_RESET,
  SESSION_CTRL_EVT_BOUND, SESSION_CTRL_EVT_UNLISTEN_REPLY, SESSION_CTRL_EVT_ACCEPTED, SESSION_CTRL_EVT_ACCEPTED_REPLY,
  SESSION_CTRL_EVT_CONNECTED, SESSION_CTRL_EVT_DISCONNECTED, SESSION_CTRL_EVT_DISCONNECTED_REPLY, SESSION_CTRL_EVT_RESET_REPLY,
  SESSION_CTRL_EVT_REQ_WORKER_UPDATE, SESSION_CTRL_EVT_WORKER_UPDATE, SESSION_CTRL_EVT_WORKER_UPDATE_REPLY, SESSION_CTRL_EVT_DISCONNECT,
  SESSION_CTRL_EVT_CONNECT, SESSION_CTRL_EVT_CONNECT_URI, SESSION_CTRL_EVT_LISTEN, SESSION_CTRL_EVT_LISTEN_URI,
  SESSION_CTRL_EVT_UNLISTEN, SESSION_CTRL_EVT_APP_DETACH
}
 
enum  session_mq_rings_e { SESSION_MQ_IO_EVT_RING, SESSION_MQ_CTRL_EVT_RING, SESSION_MQ_N_RINGS }
 

Functions

static u8 session_endpoint_fib_proto (session_endpoint_t *sep)
 
static u8 session_endpoint_is_local (session_endpoint_t *sep)
 
static u8 session_endpoint_is_zero (session_endpoint_t *sep)
 
static session_type_t session_type_from_proto_and_ip (transport_proto_t proto, u8 is_ip4)
 
static transport_proto_t session_type_transport_proto (session_type_t st)
 
static u8 session_type_is_ip4 (session_type_t st)
 
static transport_proto_t session_get_transport_proto (session_t *s)
 
static fib_protocol_t session_get_fib_proto (session_t *s)
 
static u8 session_has_transport (session_t *s)
 
static transport_service_type_t session_transport_service_type (session_t *s)
 
static transport_tx_fn_type_t session_transport_tx_fn_type (session_t *s)
 
static u8 session_tx_is_dgram (session_t *s)
 
static session_handle_t session_handle (session_t *s)
 
static u32 session_index_from_handle (session_handle_t handle)
 
static u32 session_thread_from_handle (session_handle_t handle)
 
static void session_parse_handle (session_handle_t handle, u32 *index, u32 *thread_index)
 
static session_handle_t session_make_handle (u32 session_index, u32 thread_index)
 
 STATIC_ASSERT (sizeof(session_dgram_hdr_t)==(SESSION_CONN_ID_LEN+8), "session conn id wrong length")
 

Macro Definition Documentation

◆ FIFO_EVENT_APP_RX

#define FIFO_EVENT_APP_RX   SESSION_IO_EVT_RX

Definition at line 342 of file session_types.h.

◆ FIFO_EVENT_APP_TX

#define FIFO_EVENT_APP_TX   SESSION_IO_EVT_TX

Definition at line 343 of file session_types.h.

◆ FIFO_EVENT_BUILTIN_RX

#define FIFO_EVENT_BUILTIN_RX   SESSION_IO_EVT_BUILTIN_RX

Definition at line 345 of file session_types.h.

◆ FIFO_EVENT_BUILTIN_TX

#define FIFO_EVENT_BUILTIN_TX   SESSION_IO_EVT_BUILTIN_TX

Definition at line 346 of file session_types.h.

◆ FIFO_EVENT_DISCONNECT

#define FIFO_EVENT_DISCONNECT   SESSION_CTRL_EVT_CLOSE

Definition at line 344 of file session_types.h.

◆ foreach_session_ctrl_evt

#define foreach_session_ctrl_evt
Value:
_(LISTEN, listen) \
_(LISTEN_URI, listen_uri) \
_(BOUND, bound) \
_(UNLISTEN, unlisten) \
_(UNLISTEN_REPLY, unlisten_reply) \
_(ACCEPTED, accepted) \
_(ACCEPTED_REPLY, accepted_reply) \
_(CONNECT, connect) \
_(CONNECT_URI, connect_uri) \
_(CONNECTED, connected) \
_(DISCONNECT, disconnect) \
_(DISCONNECTED, disconnected) \
_(DISCONNECTED_REPLY, disconnected_reply) \
_(RESET_REPLY, reset_reply) \
_(REQ_WORKER_UPDATE, req_worker_update) \
_(WORKER_UPDATE, worker_update) \
_(WORKER_UPDATE_REPLY, worker_update_reply) \
_(APP_DETACH, app_detach) \

Definition at line 320 of file session_types.h.

◆ foreach_session_endpoint_fields

#define foreach_session_endpoint_fields
Value:
foreach_transport_endpoint_cfg_fields \
_(u8, transport_proto) \
unsigned char u8
Definition: types.h:56

Definition at line 26 of file session_types.h.

◆ foreach_session_state

#define foreach_session_state
Value:
_(CREATED, "created") \
_(LISTENING, "listening") \
_(CONNECTING, "connecting") \
_(ACCEPTING, "accepting") \
_(READY, "ready") \
_(OPENED, "opened") \
_(TRANSPORT_CLOSING, "transport-closing") \
_(CLOSING, "closing") \
_(APP_CLOSED, "app-closed") \
_(TRANSPORT_CLOSED, "transport-closed") \
_(CLOSED, "closed") \
_(TRANSPORT_DELETED, "transport-deleted") \

Definition at line 125 of file session_types.h.

◆ SESSION_CONN_HDR_LEN

#define SESSION_CONN_HDR_LEN   45

Definition at line 398 of file session_types.h.

◆ SESSION_CONN_ID_LEN

#define SESSION_CONN_ID_LEN   37

Definition at line 397 of file session_types.h.

◆ SESSION_CTRL_MSG_MAX_SIZE

#define SESSION_CTRL_MSG_MAX_SIZE   84

Definition at line 24 of file session_types.h.

◆ SESSION_ENDPOINT_CFG_NULL

#define SESSION_ENDPOINT_CFG_NULL
Value:
{ \
.sw_if_index = ENDPOINT_INVALID_INDEX, \
.fib_index = ENDPOINT_INVALID_INDEX, \
.is_ip4 = 0, \
.port = 0, \
.transport_proto = 0, \
.app_wrk_index = ENDPOINT_INVALID_INDEX, \
.hostname = 0, \
.parent_handle = SESSION_INVALID_HANDLE \
}
#define ENDPOINT_INVALID_INDEX
#define SESSION_INVALID_HANDLE
Definition: session_types.h:23
#define SESSION_IP46_ZERO
Definition: session_types.h:50
#define TRANSPORT_ENDPOINT_NULL
Definition: session_types.h:57

Definition at line 75 of file session_types.h.

◆ SESSION_ENDPOINT_NULL

#define SESSION_ENDPOINT_NULL
Value:
{ \
.sw_if_index = ENDPOINT_INVALID_INDEX, \
.fib_index = ENDPOINT_INVALID_INDEX, \
.is_ip4 = 0, \
.port = 0, \
.transport_proto = 0, \
}
#define ENDPOINT_INVALID_INDEX
#define SESSION_IP46_ZERO
Definition: session_types.h:50
#define TRANSPORT_ENDPOINT_NULL
Definition: session_types.h:57

Definition at line 65 of file session_types.h.

◆ session_endpoint_to_transport

#define session_endpoint_to_transport (   _sep)    ((transport_endpoint_t *)_sep)

Definition at line 90 of file session_types.h.

◆ session_endpoint_to_transport_cfg

#define session_endpoint_to_transport_cfg (   _sep)    ((transport_endpoint_cfg_t *)_sep)

Definition at line 91 of file session_types.h.

◆ SESSION_INVALID_HANDLE

#define SESSION_INVALID_HANDLE   ((u64)~0)

Definition at line 23 of file session_types.h.

◆ SESSION_INVALID_INDEX

#define SESSION_INVALID_INDEX   ((u32)~0)

Definition at line 22 of file session_types.h.

◆ SESSION_IP46_ZERO

#define SESSION_IP46_ZERO
Value:
{ \
.ip6 = { \
{ 0, 0, }, \
}, \
}

Definition at line 50 of file session_types.h.

◆ SESSION_MSG_NULL

#define SESSION_MSG_NULL   { }

Definition at line 378 of file session_types.h.

◆ TRANSPORT_ENDPOINT_NULL

#define TRANSPORT_ENDPOINT_NULL
Value:
{ \
.sw_if_index = ENDPOINT_INVALID_INDEX, \
.fib_index = ENDPOINT_INVALID_INDEX, \
.is_ip4 = 0, \
.port = 0, \
}
#define ENDPOINT_INVALID_INDEX
#define SESSION_IP46_ZERO
Definition: session_types.h:50

Definition at line 57 of file session_types.h.

Typedef Documentation

◆ session_dgram_hdr_t

◆ session_dgram_pre_hdr_t

◆ session_endpoint_cfg_t

typedef struct _session_endpoint_cfg session_endpoint_cfg_t

◆ session_endpoint_t

typedef struct _session_endpoint session_endpoint_t

◆ session_flags_t

◆ session_handle_t

Definition at line 114 of file session_types.h.

◆ session_t

typedef struct session_ session_t

◆ session_type_t

typedef u8 session_type_t

Definition at line 113 of file session_types.h.

Enumeration Type Documentation

◆ session_cleanup_ntf_t

Enumerator
SESSION_CLEANUP_TRANSPORT 
SESSION_CLEANUP_SESSION 

Definition at line 116 of file session_types.h.

◆ session_evt_type_t

Enumerator
SESSION_IO_EVT_RX 
SESSION_IO_EVT_TX 
SESSION_IO_EVT_TX_FLUSH 
SESSION_IO_EVT_BUILTIN_RX 
SESSION_IO_EVT_BUILTIN_TX 
SESSION_CTRL_EVT_RPC 
SESSION_CTRL_EVT_CLOSE 
SESSION_CTRL_EVT_RESET 
SESSION_CTRL_EVT_BOUND 
SESSION_CTRL_EVT_UNLISTEN_REPLY 
SESSION_CTRL_EVT_ACCEPTED 
SESSION_CTRL_EVT_ACCEPTED_REPLY 
SESSION_CTRL_EVT_CONNECTED 
SESSION_CTRL_EVT_DISCONNECTED 
SESSION_CTRL_EVT_DISCONNECTED_REPLY 
SESSION_CTRL_EVT_RESET_REPLY 
SESSION_CTRL_EVT_REQ_WORKER_UPDATE 
SESSION_CTRL_EVT_WORKER_UPDATE 
SESSION_CTRL_EVT_WORKER_UPDATE_REPLY 
SESSION_CTRL_EVT_DISCONNECT 
SESSION_CTRL_EVT_CONNECT 
SESSION_CTRL_EVT_CONNECT_URI 
SESSION_CTRL_EVT_LISTEN 
SESSION_CTRL_EVT_LISTEN_URI 
SESSION_CTRL_EVT_UNLISTEN 
SESSION_CTRL_EVT_APP_DETACH 

Definition at line 290 of file session_types.h.

◆ session_flags_

Enumerator
SESSION_F_RX_EVT 
SESSION_F_PROXY 
SESSION_F_CUSTOM_TX 

Definition at line 147 of file session_types.h.

◆ session_mq_rings_e

Enumerator
SESSION_MQ_IO_EVT_RING 
SESSION_MQ_CTRL_EVT_RING 
SESSION_MQ_N_RINGS 

Definition at line 348 of file session_types.h.

◆ session_state_t

Enumerator
SESSION_N_STATES 

Definition at line 139 of file session_types.h.

Function Documentation

◆ session_endpoint_fib_proto()

static u8 session_endpoint_fib_proto ( session_endpoint_t sep)
inlinestatic

Definition at line 95 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_endpoint_is_local()

static u8 session_endpoint_is_local ( session_endpoint_t sep)
inlinestatic

Definition at line 101 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ session_endpoint_is_zero()

static u8 session_endpoint_is_zero ( session_endpoint_t sep)
inlinestatic

Definition at line 108 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ session_get_fib_proto()

static fib_protocol_t session_get_fib_proto ( session_t s)
inlinestatic

Definition at line 224 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_get_transport_proto()

static transport_proto_t session_get_transport_proto ( session_t s)
inlinestatic

Definition at line 218 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_handle()

static session_handle_t session_handle ( session_t s)
inlinestatic

Definition at line 259 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_has_transport()

static u8 session_has_transport ( session_t s)
inlinestatic

Definition at line 231 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ session_index_from_handle()

static u32 session_index_from_handle ( session_handle_t  handle)
inlinestatic

Definition at line 265 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_make_handle()

static session_handle_t session_make_handle ( u32  session_index,
u32  thread_index 
)
inlinestatic

Definition at line 285 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_parse_handle()

static void session_parse_handle ( session_handle_t  handle,
u32 index,
u32 thread_index 
)
inlinestatic

Definition at line 277 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ session_thread_from_handle()

static u32 session_thread_from_handle ( session_handle_t  handle)
inlinestatic

Definition at line 271 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_transport_service_type()

static transport_service_type_t session_transport_service_type ( session_t s)
inlinestatic

Definition at line 237 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ session_transport_tx_fn_type()

static transport_tx_fn_type_t session_transport_tx_fn_type ( session_t s)
inlinestatic

Definition at line 245 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ session_tx_is_dgram()

static u8 session_tx_is_dgram ( session_t s)
inlinestatic

Definition at line 253 of file session_types.h.

+ Here is the call graph for this function:

◆ session_type_from_proto_and_ip()

static session_type_t session_type_from_proto_and_ip ( transport_proto_t  proto,
u8  is_ip4 
)
inlinestatic

Definition at line 200 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_type_is_ip4()

static u8 session_type_is_ip4 ( session_type_t  st)
inlinestatic

Definition at line 212 of file session_types.h.

+ Here is the caller graph for this function:

◆ session_type_transport_proto()

static transport_proto_t session_type_transport_proto ( session_type_t  st)
inlinestatic

Definition at line 206 of file session_types.h.

+ Here is the caller graph for this function:

◆ STATIC_ASSERT()

STATIC_ASSERT ( sizeof(session_dgram_hdr_t = =(SESSION_CONN_ID_LEN+8),
"session conn id wrong length"   
)