a->sep_ext.parent_handle = mp->parent_handle;
a->sep_ext.ckpair_index = mp->ckpair_index;
a->sep_ext.crypto_engine = mp->crypto_engine;
+ a->sep_ext.flags = mp->flags;
if (mp->hostname_len)
{
vec_validate (a->sep_ext.hostname, mp->hostname_len - 1);
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
session_queue_trace_t *t = va_arg (*args, session_queue_trace_t *);
- s = format (s, "SESSION_QUEUE: session index %d, server thread index %d",
+ s = format (s, "session index %d thread index %d",
t->session_index, t->server_thread_index);
return s;
}
for (i = 0; i < clib_min (n_trace, n_segs); i++)
{
- b = vlib_get_buffer (vm, to_next[i - n_segs]);
+ b = vlib_get_buffer (vm, to_next[i]);
vlib_trace_buffer (vm, node, next_index, b, 1 /* follow_chain */ );
t = vlib_add_trace (vm, node, b, sizeof (*t));
t->session_index = s->session_index;
case SESSION_IO_EVT_TX:
s = session_event_get_session (e, thread_index);
if (PREDICT_FALSE (!s))
- {
- clib_warning ("session %u was freed!", e->session_index);
- break;
- }
+ break;
CLIB_PREFETCH (s->tx_fifo, 2 * CLIB_CACHE_LINE_BYTES, LOAD);
wrk->ctx.s = s;
/* Spray packets in per session type frames, since they go to
session_main_t *sm = &session_main;
if (!sm->wrk[0].vpp_event_queue)
return 0;
+ node = vlib_node_get_runtime (vm, session_queue_node.index);
return session_queue_node_fn (vm, node, frame);
}