X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession.h;h=19609da89e524bf172527dbb37bd211acade725f;hb=ab2f6dbf9f7b7164a9810f4c80c8abf8463e42ad;hp=99546cb13476a696b382094fb4a76d72ba23461f;hpb=54693d23307ce8944a4d97379efd3bd4dcf0485c;p=vpp.git diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index 99546cb1347..19609da89e5 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -24,7 +24,7 @@ #define HALF_OPEN_LOOKUP_INVALID_VALUE ((u64)~0) #define INVALID_INDEX ((u32)~0) -#define SESSION_PROXY_LISTENER_INDEX ((u32)~0 - 1) +#define SESSION_PROXY_LISTENER_INDEX ((u8)~0 - 1) #define SESSION_LOCAL_HANDLE_PREFIX 0x7FFFFFFF /* TODO decide how much since we have pre-data as well */ @@ -33,12 +33,13 @@ typedef enum { FIFO_EVENT_APP_RX, + SESSION_IO_EVT_CT_RX, FIFO_EVENT_APP_TX, + SESSION_IO_EVT_CT_TX, FIFO_EVENT_DISCONNECT, FIFO_EVENT_BUILTIN_RX, FIFO_EVENT_RPC, - SESSION_IO_EVT_CT_TX, - SESSION_IO_EVT_CT_RX, + SESSION_CTRL_EVT_BOUND, SESSION_CTRL_EVT_ACCEPTED, SESSION_CTRL_EVT_ACCEPTED_REPLY, SESSION_CTRL_EVT_CONNECTED, @@ -549,8 +550,8 @@ void stream_session_reset_notify (transport_connection_t * tc); int stream_session_accept (transport_connection_t * tc, u32 listener_index, u8 notify); int session_open (u32 app_index, session_endpoint_t * tep, u32 opaque); -int stream_session_listen (stream_session_t * s, session_endpoint_t * tep); -int stream_session_stop_listen (stream_session_t * s); +int session_listen (stream_session_t * s, session_endpoint_extended_t * sep); +int session_stop_listen (stream_session_t * s); void stream_session_disconnect (stream_session_t * s); void stream_session_disconnect_transport (stream_session_t * s); void stream_session_cleanup (stream_session_t * s); @@ -571,6 +572,15 @@ void session_register_transport (transport_proto_t transport_proto, const transport_proto_vft_t * vft, u8 is_ip4, u32 output_node); +always_inline void +transport_add_tx_event (transport_connection_t * tc) +{ + stream_session_t *s = session_get (tc->s_index, tc->thread_index); + if (svm_fifo_has_event (s->server_tx_fifo)) + return; + session_send_io_evt_to_thread (s->server_tx_fifo, FIFO_EVENT_APP_TX); +} + clib_error_t *vnet_session_enable_disable (vlib_main_t * vm, u8 is_en); always_inline svm_msg_q_t *