Proportional Rate Reduction for TCP.
[deliverable/linux.git] / net / ipv4 / tcp_output.c
index 0377c061f22fc3346423ab34aecf9d9a45fe9add..081dcd6fd0c45a73347ecdf8d2eb3b860d258cec 100644 (file)
@@ -1796,11 +1796,13 @@ static int tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle,
                tcp_event_new_data_sent(sk, skb);
 
                tcp_minshall_update(tp, mss_now, skb);
-               sent_pkts++;
+               sent_pkts += tcp_skb_pcount(skb);
 
                if (push_one)
                        break;
        }
+       if (inet_csk(sk)->icsk_ca_state == TCP_CA_Recovery)
+               tp->prr_out += sent_pkts;
 
        if (likely(sent_pkts)) {
                tcp_cwnd_validate(sk);
@@ -2294,6 +2296,9 @@ begin_fwd:
                        return;
                NET_INC_STATS_BH(sock_net(sk), mib_idx);
 
+               if (inet_csk(sk)->icsk_ca_state == TCP_CA_Recovery)
+                       tp->prr_out += tcp_skb_pcount(skb);
+
                if (skb == tcp_write_queue_head(sk))
                        inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
                                                  inet_csk(sk)->icsk_rto,
This page took 0.032815 seconds and 5 git commands to generate.