diff options
-rw-r--r-- | net/ipv4/tcp_westwood.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/net/ipv4/tcp_westwood.c b/net/ipv4/tcp_westwood.c index 62a96b71b0dd..12a2cd976e3a 100644 --- a/net/ipv4/tcp_westwood.c +++ b/net/ipv4/tcp_westwood.c | |||
@@ -1,7 +1,24 @@ | |||
1 | /* | 1 | /* |
2 | * TCP Westwood+ | 2 | * TCP Westwood+: end-to-end bandwidth estimation for TCP |
3 | * | 3 | * |
4 | * Angelo Dell'Aera: TCP Westwood+ support | 4 | * Angelo Dell'Aera: author of the first version of TCP Westwood+ in Linux 2.4 |
5 | * | ||
6 | * Support at http://c3lab.poliba.it/index.php/Westwood | ||
7 | * Main references in literature: | ||
8 | * | ||
9 | * - Mascolo S, Casetti, M. Gerla et al. | ||
10 | * "TCP Westwood: bandwidth estimation for TCP" Proc. ACM Mobicom 2001 | ||
11 | * | ||
12 | * - A. Grieco, s. Mascolo | ||
13 | * "Performance evaluation of New Reno, Vegas, Westwood+ TCP" ACM Computer | ||
14 | * Comm. Review, 2004 | ||
15 | * | ||
16 | * - A. Dell'Aera, L. Grieco, S. Mascolo. | ||
17 | * "Linux 2.4 Implementation of Westwood+ TCP with Rate-Halving : | ||
18 | * A Performance Evaluation Over the Internet" (ICC 2004), Paris, June 2004 | ||
19 | * | ||
20 | * Westwood+ employs end-to-end bandwidth measurement to set cwnd and | ||
21 | * ssthresh after packet loss. The probing phase is as the original Reno. | ||
5 | */ | 22 | */ |
6 | 23 | ||
7 | #include <linux/config.h> | 24 | #include <linux/config.h> |
@@ -93,7 +110,7 @@ static void westwood_update_window(struct sock *sk) | |||
93 | struct westwood *w = inet_csk_ca(sk); | 110 | struct westwood *w = inet_csk_ca(sk); |
94 | s32 delta = tcp_time_stamp - w->rtt_win_sx; | 111 | s32 delta = tcp_time_stamp - w->rtt_win_sx; |
95 | 112 | ||
96 | /* Initialise w->snd_una with the first acked sequence number in order | 113 | /* Initialize w->snd_una with the first acked sequence number in order |
97 | * to fix mismatch between tp->snd_una and w->snd_una for the first | 114 | * to fix mismatch between tp->snd_una and w->snd_una for the first |
98 | * bandwidth sample | 115 | * bandwidth sample |
99 | */ | 116 | */ |
@@ -191,7 +208,7 @@ static void tcp_westwood_event(struct sock *sk, enum tcp_ca_event event) | |||
191 | { | 208 | { |
192 | struct tcp_sock *tp = tcp_sk(sk); | 209 | struct tcp_sock *tp = tcp_sk(sk); |
193 | struct westwood *w = inet_csk_ca(sk); | 210 | struct westwood *w = inet_csk_ca(sk); |
194 | 211 | ||
195 | switch(event) { | 212 | switch(event) { |
196 | case CA_EVENT_FAST_ACK: | 213 | case CA_EVENT_FAST_ACK: |
197 | westwood_fast_bw(sk); | 214 | westwood_fast_bw(sk); |