X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession.c;h=0956b2f9d73f71b4d3a343a66e74e27b017fae7c;hb=77d98382824ca211fb55fcf842931930ccfb3baa;hp=a709302c8a78f00d237ce9ca1bcd953cc7b300b2;hpb=d50ff7fba167035b10def282b5ec166fa7899948;p=vpp.git diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index a709302c8a7..0956b2f9d73 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -624,6 +624,11 @@ session_enqueue_notify_inline (session_t * s) SESSION_EVT (SESSION_EVT_ENQ, s, svm_fifo_max_dequeue_prod (s->rx_fifo)); s->flags &= ~SESSION_F_RX_EVT; + + /* Application didn't confirm accept yet */ + if (PREDICT_FALSE (s->session_state == SESSION_STATE_ACCEPTING)) + return 0; + if (PREDICT_FALSE (app_worker_lock_and_send_event (app_wrk, s, SESSION_IO_EVT_RX))) return -1; @@ -1671,7 +1676,7 @@ session_manager_main_enable (vlib_main_t * vm) wrk->new_head = clib_llist_make_head (wrk->event_elts, evt_list); wrk->old_head = clib_llist_make_head (wrk->event_elts, evt_list); wrk->vm = vlib_mains[i]; - wrk->last_vlib_time = vlib_time_now (vlib_mains[i]); + wrk->last_vlib_time = vlib_time_now (vm); wrk->last_vlib_us_time = wrk->last_vlib_time * CLIB_US_TIME_FREQ; vec_validate (wrk->session_to_enqueue, smm->last_transport_proto_type);