VPP-1506: dump local punts and registered punt sockets
[vpp.git] / src / vnet / tcp / tcp_newreno.c
index c825e95..e36416c 100644 (file)
@@ -36,8 +36,8 @@ newreno_rcv_ack (tcp_connection_t * tc)
     }
   else
     {
-      /* Round up to 1 if needed */
-      tc->cwnd += clib_max ((tc->snd_mss * tc->snd_mss) / tc->cwnd, 1);
+      /* tc->cwnd += clib_max ((tc->snd_mss * tc->snd_mss) / tc->cwnd, 1); */
+      tcp_cwnd_accumulate (tc, tc->cwnd, tc->bytes_acked);
     }
 }
 
@@ -63,8 +63,8 @@ newreno_rcv_cong_ack (tcp_connection_t * tc, tcp_cc_ack_t ack_type)
           * window deflation" attempts to ensure that, when fast recovery
           * eventually ends, approximately ssthresh amount of data will be
           * outstanding in the network.*/
-         tc->cwnd = (tc->cwnd > tc->bytes_acked) ?
-           tc->cwnd - tc->bytes_acked : 0;
+         tc->cwnd = (tc->cwnd > tc->bytes_acked + tc->snd_mss) ?
+           tc->cwnd - tc->bytes_acked : tc->snd_mss;
          if (tc->bytes_acked > tc->snd_mss)
            tc->cwnd += tc->snd_mss;
        }
@@ -79,6 +79,7 @@ newreno_conn_init (tcp_connection_t * tc)
 }
 
 const static tcp_cc_algorithm_t tcp_newreno = {
+  .name = "newreno",
   .congestion = newreno_congestion,
   .recovered = newreno_recovered,
   .rcv_ack = newreno_rcv_ack,