summaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp/tcp.c
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2018-11-05 11:06:53 -0800
committerMarco Varlese <marco.varlese@suse.de>2018-11-06 08:10:22 +0000
commit9ece3c03133309dda1f7f7f292bd071fa1ccb0f1 (patch)
treed976d958c8ccba43506194c31ce65bd388902666 /src/vnet/tcp/tcp.c
parent87ee947d0b053b33571c5e33617b138236bada59 (diff)
tcp: dequeue acked only once per burst
Avoid dequeuing acked bytes more than once per burst for a connection. Although the fifos do not use locks, size decrements are atomic, so they rely on locked instructions. Change-Id: Id65f4ea40b2c10057461402dfd0393034e6472d5 Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/tcp/tcp.c')
-rw-r--r--src/vnet/tcp/tcp.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c
index f8e74a88fcf..a466e3c935c 100644
--- a/src/vnet/tcp/tcp.c
+++ b/src/vnet/tcp/tcp.c
@@ -1322,12 +1322,14 @@ tcp_main_enable (vlib_main_t * vm)
for (thread = 0; thread < num_threads; thread++)
{
- vec_validate (tm->wrk_ctx[thread].pending_fast_rxt, 0);
- vec_validate (tm->wrk_ctx[thread].ongoing_fast_rxt, 0);
- vec_validate (tm->wrk_ctx[thread].postponed_fast_rxt, 0);
+ vec_validate (tm->wrk_ctx[thread].pending_fast_rxt, 255);
+ vec_validate (tm->wrk_ctx[thread].ongoing_fast_rxt, 255);
+ vec_validate (tm->wrk_ctx[thread].postponed_fast_rxt, 255);
+ vec_validate (tm->wrk_ctx[thread].pending_deq_acked, 255);
vec_reset_length (tm->wrk_ctx[thread].pending_fast_rxt);
vec_reset_length (tm->wrk_ctx[thread].ongoing_fast_rxt);
vec_reset_length (tm->wrk_ctx[thread].postponed_fast_rxt);
+ vec_reset_length (tm->wrk_ctx[thread].pending_deq_acked);
tm->wrk_ctx[thread].vm = vlib_mains[thread];
/*