@ -743,29 +743,6 @@ __u32 tcp_init_cwnd(const struct tcp_sock *tp, const struct dst_entry *dst)
return min_t ( __u32 , cwnd , tp - > snd_cwnd_clamp ) ;
}
/* Set slow start threshold and cwnd not falling to slow start */
void tcp_enter_cwr ( struct sock * sk , const int set_ssthresh )
{
struct tcp_sock * tp = tcp_sk ( sk ) ;
const struct inet_connection_sock * icsk = inet_csk ( sk ) ;
tp - > prior_ssthresh = 0 ;
tp - > bytes_acked = 0 ;
if ( icsk - > icsk_ca_state < TCP_CA_CWR ) {
tp - > undo_marker = 0 ;
if ( set_ssthresh )
tp - > snd_ssthresh = icsk - > icsk_ca_ops - > ssthresh ( sk ) ;
tp - > snd_cwnd = min ( tp - > snd_cwnd ,
tcp_packets_in_flight ( tp ) + 1U ) ;
tp - > snd_cwnd_cnt = 0 ;
tp - > high_seq = tp - > snd_nxt ;
tp - > snd_cwnd_stamp = tcp_time_stamp ;
TCP_ECN_queue_cwr ( tp ) ;
tcp_set_ca_state ( sk , TCP_CA_CWR ) ;
}
}
/*
* Packet counting of FACK is based on in - order assumptions , therefore TCP
* disables it when reordering is detected
@ -2741,6 +2718,29 @@ static inline void tcp_complete_cwr(struct sock *sk)
tcp_ca_event ( sk , CA_EVENT_COMPLETE_CWR ) ;
}
/* Set slow start threshold and cwnd not falling to slow start */
void tcp_enter_cwr ( struct sock * sk , const int set_ssthresh )
{
struct tcp_sock * tp = tcp_sk ( sk ) ;
const struct inet_connection_sock * icsk = inet_csk ( sk ) ;
tp - > prior_ssthresh = 0 ;
tp - > bytes_acked = 0 ;
if ( icsk - > icsk_ca_state < TCP_CA_CWR ) {
tp - > undo_marker = 0 ;
if ( set_ssthresh )
tp - > snd_ssthresh = icsk - > icsk_ca_ops - > ssthresh ( sk ) ;
tp - > snd_cwnd = min ( tp - > snd_cwnd ,
tcp_packets_in_flight ( tp ) + 1U ) ;
tp - > snd_cwnd_cnt = 0 ;
tp - > high_seq = tp - > snd_nxt ;
tp - > snd_cwnd_stamp = tcp_time_stamp ;
TCP_ECN_queue_cwr ( tp ) ;
tcp_set_ca_state ( sk , TCP_CA_CWR ) ;
}
}
static void tcp_try_keep_open ( struct sock * sk )
{
struct tcp_sock * tp = tcp_sk ( sk ) ;