session: alloc one frame per output node dispatch
[vpp.git] / src / vnet / session / session.c
index dfc967b..66cad2a 100644 (file)
@@ -1103,6 +1103,28 @@ stream_session_cleanup (stream_session_t * s)
                                                    s->thread_index);
 }
 
+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_tx_fn_type_t
+session_transport_tx_fn_type (stream_session_t * s)
+{
+  transport_proto_t tp;
+  tp = session_get_transport_proto (s);
+  return transport_protocol_tx_fn_type (tp);
+}
+
+u8
+session_tx_is_dgram (stream_session_t * s)
+{
+  return (session_transport_tx_fn_type (s) == TRANSPORT_TX_DGRAM);
+}
+
 /**
  * Allocate event queues in the shared-memory segment
  *
@@ -1272,6 +1294,7 @@ session_manager_main_enable (vlib_main_t * vm)
   vec_validate (smm->free_event_vector, num_threads - 1);
   vec_validate (smm->vpp_event_queues, num_threads - 1);
   vec_validate (smm->peekers_rw_locks, num_threads - 1);
+  vec_validate_aligned (smm->ctx, num_threads - 1, CLIB_CACHE_LINE_BYTES);
 
   for (i = 0; i < TRANSPORT_N_PROTO; i++)
     {
@@ -1293,7 +1316,7 @@ session_manager_main_enable (vlib_main_t * vm)
        clib_rwlock_init (&smm->peekers_rw_locks[i]);
     }
 
-#if SESSION_DBG
+#if SESSION_DEBUG
   vec_validate (smm->last_event_poll_by_thread, num_threads - 1);
 #endif