tcp: count dupacks with no sacks 58/28358/2
authorFlorin Coras <fcoras@cisco.com>
Thu, 12 Mar 2020 15:50:57 +0000 (15:50 +0000)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Thu, 13 Aug 2020 10:39:40 +0000 (10:39 +0000)
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia2e29b4776c0f8df666da39a14c5ef2fa1693c21
(cherry picked from commit 7fd59cc79c9fb0cccd0cb5c0b4579d0f0a004f6b)

src/vnet/tcp/tcp_input.c
src/vnet/tcp/tcp_output.c

index 5596c7e..a177dbc 100755 (executable)
@@ -1991,7 +1991,8 @@ tcp_segment_rcv (tcp_worker_ctx_t * wrk, tcp_connection_t * tc,
           * retransmissions since we may not have any data to send */
          if (seq_leq (vnet_buffer (b)->tcp.seq_end, tc->rcv_nxt))
            {
-             tcp_program_ack (tc);
+             tcp_program_dupack (tc);
+             tc->errors.below_data_wnd++;
              error = TCP_ERROR_SEGMENT_OLD;
              goto done;
            }
index 05ed7c5..9eba05e 100644 (file)
@@ -2124,6 +2124,7 @@ tcp_send_acks (tcp_connection_t * tc, u32 max_burst_size)
   if (!vec_len (tc->snd_sacks))
     {
       tcp_send_ack (tc);
+      tc->dupacks_out += 1;
       tc->pending_dupacks = 0;
       return 1;
     }