diff options
author | Florin Coras <fcoras@cisco.com> | 2018-11-02 12:52:10 -0700 |
---|---|---|
committer | Marco Varlese <marco.varlese@suse.de> | 2018-11-05 08:20:51 +0000 |
commit | 36ee9f1ca37daf277c2cd8d33bf16eabc15773e5 (patch) | |
tree | 14c53a845447cb77efeaea2a7dad79a3f2e6ca92 /src/vnet/session | |
parent | 40cca7585d969499e92b98c32956bbe3f2050e4e (diff) |
tcp: send unsent data in fast recovery
Allows sending of unsent data in fast recovery and consolidates logic in
tcp, instead of splitting it between tcp fast retransmit and tcp output
path called by the session layer.
Change-Id: I9b12cdf2aa2ac50b9f25e46856fed037163501fe
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/session.c | 2 | ||||
-rw-r--r-- | src/vnet/session/session_node.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index f6894868a3a..b944f5a2104 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -1081,7 +1081,7 @@ stream_session_disconnect (stream_session_t * s) * held, just append a new event to pending disconnects vector. */ if (vlib_thread_is_main_w_barrier () || thread_index == s->thread_index) { - wrk = session_manager_get_worker (thread_index); + wrk = session_manager_get_worker (s->thread_index); vec_add2 (wrk->pending_disconnects, evt, 1); clib_memset (evt, 0, sizeof (*evt)); evt->session_handle = session_handle (s); diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 5ed681d03c7..edc518ee872 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -789,7 +789,7 @@ session_queue_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, /* Make sure postponed events are handled first */ fifo_events = wrk->free_event_vector; vec_append (fifo_events, wrk->postponed_event_vector); - _vec_len (wrk->pending_disconnects) = 0; + _vec_len (wrk->postponed_event_vector) = 0; /* Try to dequeue what is available. Don't wait for lock. * XXX: we may need priorities here */ @@ -810,8 +810,8 @@ session_queue_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, vec_append (fifo_events, wrk->pending_event_vector); vec_append (fifo_events, wrk->pending_disconnects); - _vec_len (wrk->postponed_event_vector) = 0; _vec_len (wrk->pending_event_vector) = 0; + _vec_len (wrk->pending_disconnects) = 0; n_events = vec_len (fifo_events); if (PREDICT_FALSE (!n_events)) |