tcp: cc algos handle cwnd on congestion signal
Type: refactor Change-Id: I15b10a22d0d0b83075a0eef5ef8c09cf76989866 Signed-off-by: Florin Coras <fcoras@cisco.com>
This commit is contained in:
@@ -103,6 +103,10 @@ cubic_congestion (tcp_connection_t * tc)
|
||||
|
||||
cd->w_max = w_max;
|
||||
tc->ssthresh = clib_max (tc->cwnd * beta_cubic, 2 * tc->snd_mss);
|
||||
|
||||
tc->cwnd = tc->ssthresh;
|
||||
if (!tcp_opts_sack_permitted (&tc->rcv_opts))
|
||||
tc->cwnd += 3 * tc->snd_mss;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -1367,20 +1367,9 @@ tcp_cc_handle_event (tcp_connection_t * tc, tcp_rate_sample_t * rs,
|
||||
}
|
||||
|
||||
tcp_cc_init_congestion (tc);
|
||||
tcp_cc_rcv_cong_ack (tc, TCP_CC_DUPACK, rs);
|
||||
|
||||
if (tcp_opts_sack_permitted (&tc->rcv_opts))
|
||||
{
|
||||
tc->cwnd = tc->ssthresh;
|
||||
scoreboard_init_high_rxt (&tc->sack_sb, tc->snd_una);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Post retransmit update cwnd to ssthresh and account for the
|
||||
* three segments that have left the network and should've been
|
||||
* buffered at the receiver XXX */
|
||||
tc->cwnd = tc->ssthresh + 3 * tc->snd_mss;
|
||||
}
|
||||
scoreboard_init_high_rxt (&tc->sack_sb, tc->snd_una);
|
||||
|
||||
/* Constrain rate until we get a partial ack */
|
||||
pacer_wnd = clib_max (0.1 * tc->cwnd, 2 * tc->snd_mss);
|
||||
|
@@ -19,6 +19,12 @@ static void
|
||||
newreno_congestion (tcp_connection_t * tc)
|
||||
{
|
||||
tc->ssthresh = clib_max (tcp_flight_size (tc) / 2, 2 * tc->snd_mss);
|
||||
tc->cwnd = tc->ssthresh;
|
||||
/* Post retransmit update cwnd to ssthresh and account for the
|
||||
* three segments that have left the network and should've been
|
||||
* buffered at the receiver XXX */
|
||||
if (!tcp_opts_sack_permitted (&tc->rcv_opts))
|
||||
tc->cwnd += 3 * tc->snd_mss;
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user