udp: fill rmt info if session is connection less
[vpp.git] / src / vnet / session / session.h
index f874ac2..2d01eb6 100644 (file)
@@ -149,7 +149,7 @@ typedef struct session_worker_
   clib_llist_index_t pending_connects;
 
   /** Flag that is set if main thread signaled to handle connects */
-  u32 pending_connects_ntf;
+  u32 n_pending_connects;
 
   /** Main thread loops in poll mode without a connect */
   u32 no_connect_loops;
@@ -189,6 +189,9 @@ typedef struct session_main_
    * Trade memory for speed, for now */
   u32 *session_type_to_next;
 
+  /** Thread for cl and ho that rely on cl allocs */
+  u32 transport_cl_thread;
+
   transport_proto_t last_transport_proto_type;
 
   /*
@@ -238,6 +241,7 @@ typedef struct session_main_
   /** Preallocate session config parameter */
   u32 preallocated_sessions;
 
+  u16 msg_id_base;
 } session_main_t;
 
 extern session_main_t session_main;
@@ -254,32 +258,18 @@ typedef enum session_q_process_evt_
 #define TRANSPORT_PROTO_INVALID (session_main.last_transport_proto_type + 1)
 #define TRANSPORT_N_PROTOS (session_main.last_transport_proto_type + 1)
 
-static inline session_evt_elt_t *
-session_evt_elt_alloc (session_worker_t * wrk)
-{
-  session_evt_elt_t *elt;
-  pool_get (wrk->event_elts, elt);
-  return elt;
-}
-
-static inline void
-session_evt_elt_free (session_worker_t * wrk, session_evt_elt_t * elt)
-{
-  pool_put (wrk->event_elts, elt);
-}
-
 static inline void
 session_evt_add_old (session_worker_t * wrk, session_evt_elt_t * elt)
 {
   clib_llist_add_tail (wrk->event_elts, evt_list, elt,
-                      pool_elt_at_index (wrk->event_elts, wrk->old_head));
+                      clib_llist_elt (wrk->event_elts, wrk->old_head));
 }
 
 static inline void
 session_evt_add_head_old (session_worker_t * wrk, session_evt_elt_t * elt)
 {
   clib_llist_add (wrk->event_elts, evt_list, elt,
-                 pool_elt_at_index (wrk->event_elts, wrk->old_head));
+                 clib_llist_elt (wrk->event_elts, wrk->old_head));
 }
 
 
@@ -295,9 +285,9 @@ static inline session_evt_elt_t *
 session_evt_alloc_ctrl (session_worker_t * wrk)
 {
   session_evt_elt_t *elt;
-  elt = session_evt_elt_alloc (wrk);
+  clib_llist_get (wrk->event_elts, elt);
   clib_llist_add_tail (wrk->event_elts, evt_list, elt,
-                      pool_elt_at_index (wrk->event_elts, wrk->ctrl_head));
+                      clib_llist_elt (wrk->event_elts, wrk->ctrl_head));
   return elt;
 }
 
@@ -319,9 +309,9 @@ static inline session_evt_elt_t *
 session_evt_alloc_new (session_worker_t * wrk)
 {
   session_evt_elt_t *elt;
-  elt = session_evt_elt_alloc (wrk);
+  clib_llist_get (wrk->event_elts, elt);
   clib_llist_add_tail (wrk->event_elts, evt_list, elt,
-                      pool_elt_at_index (wrk->event_elts, wrk->new_head));
+                      clib_llist_elt (wrk->event_elts, wrk->new_head));
   return elt;
 }
 
@@ -329,9 +319,9 @@ static inline session_evt_elt_t *
 session_evt_alloc_old (session_worker_t * wrk)
 {
   session_evt_elt_t *elt;
-  elt = session_evt_elt_alloc (wrk);
+  clib_llist_get (wrk->event_elts, elt);
   clib_llist_add_tail (wrk->event_elts, evt_list, elt,
-                      pool_elt_at_index (wrk->event_elts, wrk->old_head));
+                      clib_llist_elt (wrk->event_elts, wrk->old_head));
   return elt;
 }
 
@@ -619,6 +609,12 @@ transport_add_tx_event (transport_connection_t * tc)
   session_send_io_evt_to_thread (s->tx_fifo, SESSION_IO_EVT_TX);
 }
 
+always_inline u32
+transport_cl_thread (void)
+{
+  return session_main.transport_cl_thread;
+}
+
 /*
  * Listen sessions
  */