Thread (4 messages) 4 messages, 3 authors, 2015-02-01

Re: [PATCH net-next] tcp: use SACK RTTs for CC

From: Yuchung Cheng <hidden>
Date: 2015-01-30 17:22:26

On Thu, Jan 29, 2015 at 11:08 AM, Kenneth Klette Jonassen
[off-list ref] wrote:
Current behavior only passes RTTs from sequentially acked data to CC.

If sender gets a combined ACK for segment 1 and SACK for segment 3, then the
computed RTT for CC is the time between sending segment 1 and receiving SACK
for segment 3.
since segment 3 is sent after segment 1, sack_rtt_us <= ca_seq_rtt so
taking a min is not necessary?
quoted hunk ↗ jump to hunk
Pass the minimum computed RTT from any acked data to CC, i.e. time between
sending segment 3 and receiving SACK for segment 3.

Signed-off-by: Kenneth Klette Jonassen <redacted>
---
 net/ipv4/tcp_input.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 71fb37c..ed11931 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3183,8 +3183,10 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets,

                tp->fackets_out -= min(pkts_acked, tp->fackets_out);

-               if (ca_ops->pkts_acked)
-                       ca_ops->pkts_acked(sk, pkts_acked, ca_seq_rtt_us);
+               if (ca_ops->pkts_acked) {
+                       long rtt_us = min_t(ulong, ca_seq_rtt_us, sack_rtt_us);
+                       ca_ops->pkts_acked(sk, pkts_acked, rtt_us);
+               }

        } else if (skb && rtt_update && sack_rtt_us >= 0 &&
                   sack_rtt_us > skb_mstamp_us_delta(&now, &skb->skb_mstamp)) {
--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help