FD.io VPP  v18.11-rc0-18-g2a3fb1a
Vector Packet Processing
application_interface.h File Reference
+ Include dependency graph for application_interface.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  app_session_transport_
 
struct  app_session_t
 
struct  session_accepted_msg_
 
struct  session_accepted_reply_msg_
 
struct  session_connected_msg_
 
struct  session_disconnected_msg_
 
struct  session_disconnected_reply_msg_
 
struct  session_reset_msg_
 
struct  session_reset_reply_msg_
 
struct  app_session_event_
 

Macros

#define foreach_app_options_flags
 
#define foreach_app_session_field
 flag for dgram mode More...
 

Typedefs

typedef struct _vnet_app_attach_args_t vnet_app_attach_args_t
 
typedef struct _vnet_app_detach_args_t vnet_app_detach_args_t
 
typedef struct _vnet_bind_args_t vnet_bind_args_t
 
typedef struct _vnet_unbind_args_t vnet_unbind_args_t
 
typedef struct _vnet_connect_args vnet_connect_args_t
 
typedef struct _vnet_disconnect_args_t vnet_disconnect_args_t
 
typedef struct _vnet_application_add_tls_cert_args_t vnet_app_add_tls_cert_args_t
 
typedef struct _vnet_application_add_tls_key_args_t vnet_app_add_tls_key_args_t
 
typedef enum _app_options app_options_t
 
typedef enum _app_options_flags app_options_flags_t
 
typedef struct app_session_transport_ app_session_transport_t
 
typedef struct session_accepted_msg_ session_accepted_msg_t
 
typedef struct session_accepted_reply_msg_ session_accepted_reply_msg_t
 
typedef struct session_connected_msg_ session_connected_msg_t
 
typedef struct session_disconnected_msg_ session_disconnected_msg_t
 
typedef struct session_disconnected_reply_msg_ session_disconnected_reply_msg_t
 
typedef struct session_reset_msg_ session_reset_msg_t
 
typedef struct session_reset_reply_msg_ session_reset_reply_msg_t
 
typedef struct app_session_event_ app_session_evt_t
 

Enumerations

enum  app_attach_options_index_t {
  APP_OPTIONS_FLAGS, APP_OPTIONS_EVT_QUEUE_SIZE, APP_OPTIONS_SEGMENT_SIZE, APP_OPTIONS_ADD_SEGMENT_SIZE,
  APP_OPTIONS_PRIVATE_SEGMENT_COUNT, APP_OPTIONS_RX_FIFO_SIZE, APP_OPTIONS_TX_FIFO_SIZE, APP_OPTIONS_PREALLOC_FIFO_PAIRS,
  APP_OPTIONS_NAMESPACE, APP_OPTIONS_NAMESPACE_SECRET, APP_OPTIONS_PROXY_TRANSPORT, APP_OPTIONS_ACCEPT_COOKIE,
  APP_OPTIONS_TLS_ENGINE, APP_OPTIONS_N_OPTIONS
}
 

Functions

int vnet_bind_uri (vnet_bind_args_t *)
 
int vnet_unbind_uri (vnet_unbind_args_t *a)
 
clib_error_tvnet_connect_uri (vnet_connect_args_t *a)
 
clib_error_tvnet_application_attach (vnet_app_attach_args_t *a)
 Attach application to vpp. More...
 
clib_error_tvnet_bind (vnet_bind_args_t *a)
 
clib_error_tvnet_connect (vnet_connect_args_t *a)
 
clib_error_tvnet_unbind (vnet_unbind_args_t *a)
 
int vnet_application_detach (vnet_app_detach_args_t *a)
 Detach application from vpp. More...
 
int vnet_disconnect_session (vnet_disconnect_args_t *a)
 
clib_error_tvnet_app_add_tls_cert (vnet_app_add_tls_cert_args_t *a)
 
clib_error_tvnet_app_add_tls_key (vnet_app_add_tls_key_args_t *a)
 
 STATIC_ASSERT (sizeof(session_accepted_reply_msg_t)<=16,"accept reply")
 
static void app_alloc_ctrl_evt_to_vpp (svm_msg_q_t *mq, app_session_evt_t *app_evt, u8 evt_type)
 
static void app_send_ctrl_evt_to_vpp (svm_msg_q_t *mq, app_session_evt_t *app_evt)
 
static int app_send_io_evt_to_vpp (svm_msg_q_t *mq, svm_fifo_t *f, u8 evt_type, u8 noblock)
 Send fifo io event to vpp worker thread. More...
 
static int app_send_dgram_raw (svm_fifo_t *f, app_session_transport_t *at, svm_msg_q_t *vpp_evt_q, u8 *data, u32 len, u8 noblock)
 
static int app_send_dgram (app_session_t *s, u8 *data, u32 len, u8 noblock)
 
static int app_send_stream_raw (svm_fifo_t *f, svm_msg_q_t *vpp_evt_q, u8 *data, u32 len, u8 noblock)
 
static int app_send_stream (app_session_t *s, u8 *data, u32 len, u8 noblock)
 
static int app_send (app_session_t *s, u8 *data, u32 len, u8 noblock)
 
static int app_recv_dgram_raw (svm_fifo_t *f, u8 *buf, u32 len, app_session_transport_t *at, u8 clear_evt)
 
static int app_recv_dgram (app_session_t *s, u8 *buf, u32 len)
 
static int app_recv_stream_raw (svm_fifo_t *f, u8 *buf, u32 len, u8 clear_evt)
 
static int app_recv_stream (app_session_t *s, u8 *buf, u32 len)
 
static int app_recv (app_session_t *s, u8 *data, u32 len)
 

Variables

const char test_srv_crt_rsa []
 
const u32 test_srv_crt_rsa_len
 
const char test_srv_key_rsa []
 
const u32 test_srv_key_rsa_len
 

Macro Definition Documentation

foreach_app_options_flags
Value:
_(ACCEPT_REDIRECT, "Use FIFO with redirects") \
_(ADD_SEGMENT, "Add segment and signal app if needed") \
_(IS_BUILTIN, "Application is builtin") \
_(IS_PROXY, "Application is proxying") \
_(USE_GLOBAL_SCOPE, "App can use global session scope") \
_(USE_LOCAL_SCOPE, "App can use local session scope") \
_(USE_MQ_FOR_CTRL_MSGS, "Use message queue for ctr msgs") \

Definition at line 133 of file application_interface.h.

#define foreach_app_session_field
Value:
_(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 */ \
_(app_session_transport_t, transport) /**< transport info */ \
_(svm_msg_q_t, *vpp_evt_q) /**< vpp event queue */ \
_(u8, is_dgram)
unsigned char u8
Definition: types.h:56
struct _svm_fifo svm_fifo_t
unsigned int u32
Definition: types.h:88
u8 session_type_t

flag for dgram mode

Definition at line 184 of file application_interface.h.

Typedef Documentation

typedef enum _app_options_flags app_options_flags_t
typedef enum _app_options app_options_t
typedef struct _vnet_application_add_tls_cert_args_t vnet_app_add_tls_cert_args_t
typedef struct _vnet_application_add_tls_key_args_t vnet_app_add_tls_key_args_t
typedef struct _vnet_app_attach_args_t vnet_app_attach_args_t
typedef struct _vnet_app_detach_args_t vnet_app_detach_args_t
typedef struct _vnet_bind_args_t vnet_bind_args_t
typedef struct _vnet_connect_args vnet_connect_args_t
typedef struct _vnet_disconnect_args_t vnet_disconnect_args_t
typedef struct _vnet_unbind_args_t vnet_unbind_args_t

Enumeration Type Documentation

Enumerator
APP_OPTIONS_FLAGS 
APP_OPTIONS_EVT_QUEUE_SIZE 
APP_OPTIONS_SEGMENT_SIZE 
APP_OPTIONS_ADD_SEGMENT_SIZE 
APP_OPTIONS_PRIVATE_SEGMENT_COUNT 
APP_OPTIONS_RX_FIFO_SIZE 
APP_OPTIONS_TX_FIFO_SIZE 
APP_OPTIONS_PREALLOC_FIFO_PAIRS 
APP_OPTIONS_NAMESPACE 
APP_OPTIONS_NAMESPACE_SECRET 
APP_OPTIONS_PROXY_TRANSPORT 
APP_OPTIONS_ACCEPT_COOKIE 
APP_OPTIONS_TLS_ENGINE 
APP_OPTIONS_N_OPTIONS 

Definition at line 115 of file application_interface.h.

Function Documentation

static void app_alloc_ctrl_evt_to_vpp ( svm_msg_q_t mq,
app_session_evt_t app_evt,
u8  evt_type 
)
inlinestatic

Definition at line 280 of file application_interface.h.

+ Here is the call graph for this function:

static int app_recv ( app_session_t s,
u8 data,
u32  len 
)
inlinestatic

Definition at line 474 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_recv_dgram ( app_session_t s,
u8 buf,
u32  len 
)
inlinestatic

Definition at line 454 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_recv_dgram_raw ( svm_fifo_t f,
u8 buf,
u32  len,
app_session_transport_t at,
u8  clear_evt 
)
inlinestatic

Definition at line 426 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_recv_stream ( app_session_t s,
u8 buf,
u32  len 
)
inlinestatic

Definition at line 468 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_recv_stream_raw ( svm_fifo_t f,
u8 buf,
u32  len,
u8  clear_evt 
)
inlinestatic

Definition at line 460 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_send ( app_session_t s,
u8 data,
u32  len,
u8  noblock 
)
inlinestatic

Definition at line 418 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_send_ctrl_evt_to_vpp ( svm_msg_q_t mq,
app_session_evt_t app_evt 
)
inlinestatic

Definition at line 293 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_send_dgram ( app_session_t s,
u8 data,
u32  len,
u8  noblock 
)
inlinestatic

Definition at line 391 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_send_dgram_raw ( svm_fifo_t f,
app_session_transport_t at,
svm_msg_q_t vpp_evt_q,
u8 data,
u32  len,
u8  noblock 
)
inlinestatic

Definition at line 358 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_send_io_evt_to_vpp ( svm_msg_q_t mq,
svm_fifo_t f,
u8  evt_type,
u8  noblock 
)
inlinestatic

Send fifo io event to vpp worker thread.

Because there may be multiple writers to one of vpp's queues, this protects message allocation and enqueueing.

Parameters
mqvpp message queue
ffifo for which the event is sent
evt_typetype of event
noblockflag to indicate is request is blocking or not
Returns
0 if success, negative integer otherwise

Definition at line 311 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_send_stream ( app_session_t s,
u8 data,
u32  len,
u8  noblock 
)
inlinestatic

Definition at line 412 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_send_stream_raw ( svm_fifo_t f,
svm_msg_q_t vpp_evt_q,
u8 data,
u32  len,
u8  noblock 
)
inlinestatic

Definition at line 398 of file application_interface.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

STATIC_ASSERT ( sizeof(session_accepted_reply_msg_t)<=  16,
"accept reply"   
)
clib_error_t* vnet_app_add_tls_cert ( vnet_app_add_tls_cert_args_t a)

Definition at line 1368 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_app_add_tls_key ( vnet_app_add_tls_key_args_t a)

Definition at line 1380 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_application_attach ( vnet_app_attach_args_t a)

Attach application to vpp.

Allocates a vpp app, i.e., a structure that keeps back pointers to external app and a segment manager for shared memory fifo based communication with the external app.

Definition at line 447 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_application_detach ( vnet_app_detach_args_t a)

Detach application from vpp.

Definition at line 498 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_bind ( vnet_bind_args_t a)

Definition at line 597 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_bind_uri ( vnet_bind_args_t )

Definition at line 514 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_connect ( vnet_connect_args_t a)

Definition at line 615 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_connect_uri ( vnet_connect_args_t a)

Definition at line 550 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_disconnect_session ( vnet_disconnect_args_t a)

Definition at line 567 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_unbind ( vnet_unbind_args_t a)

Definition at line 606 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_unbind_uri ( vnet_unbind_args_t a)

Definition at line 527 of file application_interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

const char test_srv_crt_rsa[]

Definition at line 28 of file application_interface.c.

const u32 test_srv_crt_rsa_len

Definition at line 52 of file application_interface.c.

const char test_srv_key_rsa[]

Definition at line 54 of file application_interface.c.

const u32 test_srv_key_rsa_len

Definition at line 82 of file application_interface.c.