FD.io VPP  v19.04.4-rc0-5-ge88582fac
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_LISTENER_PREFIX   0x5FFFFFFF
 
#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 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_state_t {
  SESSION_STATE_CREATED, SESSION_STATE_LISTENING, SESSION_STATE_CONNECTING, SESSION_STATE_ACCEPTING,
  SESSION_STATE_READY, SESSION_STATE_OPENED, SESSION_STATE_TRANSPORT_CLOSING, SESSION_STATE_CLOSING,
  SESSION_STATE_CLOSED_WAITING, SESSION_STATE_TRANSPORT_CLOSED, SESSION_STATE_CLOSED, SESSION_STATE_N_STATES
}
 
enum  session_flags_ { SESSION_F_RX_EVT = 1, SESSION_F_PROXY = (1 << 1) }
 
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_BOUND,
  SESSION_CTRL_EVT_UNLISTEN_REPLY, SESSION_CTRL_EVT_ACCEPTED, SESSION_CTRL_EVT_ACCEPTED_REPLY, SESSION_CTRL_EVT_CONNECTED,
  SESSION_CTRL_EVT_CONNECTED_REPLY, SESSION_CTRL_EVT_DISCONNECTED, SESSION_CTRL_EVT_DISCONNECTED_REPLY, SESSION_CTRL_EVT_RESET,
  SESSION_CTRL_EVT_RESET_REPLY, SESSION_CTRL_EVT_REQ_WORKER_UPDATE, SESSION_CTRL_EVT_WORKER_UPDATE, SESSION_CTRL_EVT_WORKER_UPDATE_REPLY
}
 
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_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 292 of file session_types.h.

◆ FIFO_EVENT_APP_TX

#define FIFO_EVENT_APP_TX   SESSION_IO_EVT_TX

Definition at line 293 of file session_types.h.

◆ FIFO_EVENT_BUILTIN_RX

#define FIFO_EVENT_BUILTIN_RX   SESSION_IO_EVT_BUILTIN_RX

Definition at line 295 of file session_types.h.

◆ FIFO_EVENT_BUILTIN_TX

#define FIFO_EVENT_BUILTIN_TX   SESSION_IO_EVT_BUILTIN_TX

Definition at line 296 of file session_types.h.

◆ FIFO_EVENT_DISCONNECT

#define FIFO_EVENT_DISCONNECT   SESSION_CTRL_EVT_CLOSE

Definition at line 294 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 24 of file session_types.h.

◆ SESSION_CONN_HDR_LEN

#define SESSION_CONN_HDR_LEN   45

Definition at line 347 of file session_types.h.

◆ SESSION_CONN_ID_LEN

#define SESSION_CONN_ID_LEN   37

Definition at line 346 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, \
}
#define ENDPOINT_INVALID_INDEX
#define SESSION_IP46_ZERO
Definition: session_types.h:47
#define TRANSPORT_ENDPOINT_NULL
Definition: session_types.h:54

Definition at line 72 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:47
#define TRANSPORT_ENDPOINT_NULL
Definition: session_types.h:54

Definition at line 62 of file session_types.h.

◆ session_endpoint_to_transport

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

Definition at line 86 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 87 of file session_types.h.

◆ SESSION_IP46_ZERO

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

Definition at line 47 of file session_types.h.

◆ SESSION_LISTENER_PREFIX

#define SESSION_LISTENER_PREFIX   0x5FFFFFFF

Definition at line 22 of file session_types.h.

◆ SESSION_MSG_NULL

#define SESSION_MSG_NULL   { }

Definition at line 327 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:47

Definition at line 54 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 110 of file session_types.h.

◆ session_t

typedef struct session_ session_t

◆ session_type_t

typedef u8 session_type_t

Definition at line 109 of file session_types.h.

Enumeration Type Documentation

◆ 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_BOUND 
SESSION_CTRL_EVT_UNLISTEN_REPLY 
SESSION_CTRL_EVT_ACCEPTED 
SESSION_CTRL_EVT_ACCEPTED_REPLY 
SESSION_CTRL_EVT_CONNECTED 
SESSION_CTRL_EVT_CONNECTED_REPLY 
SESSION_CTRL_EVT_DISCONNECTED 
SESSION_CTRL_EVT_DISCONNECTED_REPLY 
SESSION_CTRL_EVT_RESET 
SESSION_CTRL_EVT_RESET_REPLY 
SESSION_CTRL_EVT_REQ_WORKER_UPDATE 
SESSION_CTRL_EVT_WORKER_UPDATE 
SESSION_CTRL_EVT_WORKER_UPDATE_REPLY 

Definition at line 267 of file session_types.h.

◆ session_flags_

Enumerator
SESSION_F_RX_EVT 
SESSION_F_PROXY 

Definition at line 131 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 298 of file session_types.h.

◆ session_state_t

Enumerator
SESSION_STATE_CREATED 
SESSION_STATE_LISTENING 
SESSION_STATE_CONNECTING 
SESSION_STATE_ACCEPTING 
SESSION_STATE_READY 
SESSION_STATE_OPENED 
SESSION_STATE_TRANSPORT_CLOSING 
SESSION_STATE_CLOSING 
SESSION_STATE_CLOSED_WAITING 
SESSION_STATE_TRANSPORT_CLOSED 
SESSION_STATE_CLOSED 
SESSION_STATE_N_STATES 

Definition at line 115 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 91 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 97 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 104 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 207 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 201 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 242 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 214 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 248 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 260 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 254 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 220 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 228 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 236 of file session_types.h.

+ Here is the call graph for this function:
+ Here is the caller 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 183 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 195 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 189 of file session_types.h.

◆ STATIC_ASSERT()

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