summaryrefslogtreecommitdiffstats
path: root/src/vnet/session
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2018-11-02 12:52:10 -0700
committerMarco Varlese <marco.varlese@suse.de>2018-11-05 08:20:51 +0000
commit36ee9f1ca37daf277c2cd8d33bf16eabc15773e5 (patch)
tree14c53a845447cb77efeaea2a7dad79a3f2e6ca92 /src/vnet/session
parent40cca7585d969499e92b98c32956bbe3f2050e4e (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.c2
-rw-r--r--src/vnet/session/session_node.c4
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))