|
@@ -530,6 +530,16 @@ void __tcp_push_pending_frames(struct sock *sk, struct tcp_sock *tp,
|
|
|
tcp_cwnd_validate(sk, tp);
|
|
|
}
|
|
|
|
|
|
+void __tcp_data_snd_check(struct sock *sk, struct sk_buff *skb)
|
|
|
+{
|
|
|
+ struct tcp_sock *tp = tcp_sk(sk);
|
|
|
+
|
|
|
+ if (after(TCP_SKB_CB(skb)->end_seq, tp->snd_una + tp->snd_wnd) ||
|
|
|
+ tcp_packets_in_flight(tp) >= tp->snd_cwnd ||
|
|
|
+ tcp_write_xmit(sk, tp->nonagle))
|
|
|
+ tcp_check_probe_timer(sk, tp);
|
|
|
+}
|
|
|
+
|
|
|
int tcp_may_send_now(struct sock *sk, struct tcp_sock *tp)
|
|
|
{
|
|
|
struct sk_buff *skb = sk->sk_send_head;
|