X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession.h;h=b24e22923f11dd201c5ba4504b165a6149d57317;hb=fd542f1085d3a06066168c2d38e7f328b5b26ee3;hp=c5779b4ffd13b4d3cbbdd60a0870420b06bba1b1;hpb=8e43d04ca4f4496aaefc4f5e2b6e1c0951624099;p=vpp.git diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index c5779b4ffd1..b24e22923f1 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -143,6 +143,7 @@ typedef struct session_tx_context_ u16 deq_per_first_buf; u16 deq_per_buf; u16 snd_mss; + u16 n_segs_per_evt; u8 n_bufs_per_seg; CLIB_CACHE_LINE_ALIGN_MARK (cacheline1); session_dgram_hdr_t hdr; @@ -253,6 +254,10 @@ struct _session_manager_main extern session_manager_main_t session_manager_main; extern vlib_node_registration_t session_queue_node; +extern vlib_node_registration_t session_queue_process_node; + +#define SESSION_Q_PROCESS_FLUSH_FRAMES 1 +#define SESSION_Q_PROCESS_STOP 2 /* * Session manager function @@ -389,13 +394,9 @@ session_has_transport (stream_session_t * s) return (session_get_transport_proto (s) != TRANSPORT_PROTO_NONE); } -always_inline transport_service_type_t -session_transport_service_type (stream_session_t * s) -{ - transport_proto_t tp; - tp = session_get_transport_proto (s); - return transport_protocol_service_type (tp); -} +transport_service_type_t session_transport_service_type (stream_session_t *); +transport_tx_fn_type_t session_transport_tx_fn_type (stream_session_t *); +u8 session_tx_is_dgram (stream_session_t * s); /** * Acquires a lock that blocks a session pool from expanding. @@ -597,6 +598,8 @@ int listen_session_get_local_session_endpoint (stream_session_t * listener, session_endpoint_t * sep); +void session_flush_frames_main_thread (vlib_main_t * vm); + always_inline u8 session_manager_is_enabled () {