session: use teps in accept/connect notifications
[vpp.git] / src / vnet / session / session.h
index a3b84a6..4e63d42 100644 (file)
@@ -338,7 +338,8 @@ void session_send_rpc_evt_to_thread (u32 thread_index, void *fp,
 void session_send_rpc_evt_to_thread_force (u32 thread_index, void *fp,
                                           void *rpc_args);
 transport_connection_t *session_get_transport (session_t * s);
-
+void session_get_endpoint (session_t * s, transport_endpoint_t * tep,
+                          u8 is_lcl);
 
 u8 *format_session (u8 * s, va_list * args);
 uword unformat_session (unformat_input_t * input, va_list * args);
@@ -378,14 +379,21 @@ always_inline u32
 transport_max_rx_enqueue (transport_connection_t * tc)
 {
   session_t *s = session_get (tc->s_index, tc->thread_index);
-  return svm_fifo_max_enqueue (s->rx_fifo);
+  return svm_fifo_max_enqueue_prod (s->rx_fifo);
 }
 
 always_inline u32
 transport_max_tx_dequeue (transport_connection_t * tc)
 {
   session_t *s = session_get (tc->s_index, tc->thread_index);
-  return svm_fifo_max_dequeue (s->tx_fifo);
+  return svm_fifo_max_dequeue_cons (s->tx_fifo);
+}
+
+always_inline u32
+transport_max_rx_dequeue (transport_connection_t * tc)
+{
+  session_t *s = session_get (tc->s_index, tc->thread_index);
+  return svm_fifo_max_dequeue (s->rx_fifo);
 }
 
 always_inline u32
@@ -437,7 +445,8 @@ transport_add_tx_event (transport_connection_t * tc)
 always_inline u64
 listen_session_get_handle (session_t * s)
 {
-  ASSERT (s->session_state == SESSION_STATE_LISTENING);
+  ASSERT (s->session_state == SESSION_STATE_LISTENING ||
+         session_get_transport_proto (s) == TRANSPORT_PROTO_QUIC);
   return session_handle (s);
 }