diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-07-26 02:49:34 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-31 05:27:57 -0400 |
commit | 30cfd0baf0a0c4329fff1ef4b622919297969ec8 (patch) | |
tree | 945a72f636ced1b443d894495704237e4cb7816d /net/ipv4/tcp_vegas.c | |
parent | 6a302358d87fedaf7bda12b8e909265ebf1ce674 (diff) |
[TCP]: congestion control API pass RTT in microseconds
This patch changes the API for the callback that is done after an ACK is
received. It solves a couple of issues:
* Some congestion controls want higher resolution value of RTT
(controlled by TCP_CONG_RTT_SAMPLE flag). These don't really want a ktime, but
all compute a RTT in microseconds.
* Other congestion control could use RTT at jiffies resolution.
To keep API consistent the units should be the same for both cases, just the
resolution should change.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_vegas.c')
-rw-r--r-- | net/ipv4/tcp_vegas.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c index 914e0307f7af..b49dedcda52d 100644 --- a/net/ipv4/tcp_vegas.c +++ b/net/ipv4/tcp_vegas.c | |||
@@ -112,16 +112,16 @@ EXPORT_SYMBOL_GPL(tcp_vegas_init); | |||
112 | * o min-filter RTT samples from a much longer window (forever for now) | 112 | * o min-filter RTT samples from a much longer window (forever for now) |
113 | * to find the propagation delay (baseRTT) | 113 | * to find the propagation delay (baseRTT) |
114 | */ | 114 | */ |
115 | void tcp_vegas_pkts_acked(struct sock *sk, u32 cnt, ktime_t last) | 115 | void tcp_vegas_pkts_acked(struct sock *sk, u32 cnt, s32 rtt_us) |
116 | { | 116 | { |
117 | struct vegas *vegas = inet_csk_ca(sk); | 117 | struct vegas *vegas = inet_csk_ca(sk); |
118 | u32 vrtt; | 118 | u32 vrtt; |
119 | 119 | ||
120 | if (ktime_equal(last, net_invalid_timestamp())) | 120 | if (rtt_us < 0) |
121 | return; | 121 | return; |
122 | 122 | ||
123 | /* Never allow zero rtt or baseRTT */ | 123 | /* Never allow zero rtt or baseRTT */ |
124 | vrtt = ktime_to_us(net_timedelta(last)) + 1; | 124 | vrtt = rtt_us + 1; |
125 | 125 | ||
126 | /* Filter to find propagation delay: */ | 126 | /* Filter to find propagation delay: */ |
127 | if (vrtt < vegas->baseRTT) | 127 | if (vrtt < vegas->baseRTT) |