diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2007-02-27 13:09:49 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:23:23 -0400 |
commit | 3cfe3baaf07c9e40a75f9a70662de56df1c246a8 (patch) | |
tree | 989b2aff491b5df3aa0215f611a8c7f1360c67e9 /include | |
parent | c5e7af0df5d7234afd8596560d9f570cfc6c18bf (diff) |
[TCP]: Add two new spurious RTO responses to FRTO
New sysctl tcp_frto_response is added to select amongst these
responses:
- Rate halving based; reuses CA_CWR state (default)
- Very conservative; used to be the only one available (=1)
- Undo cwr; undoes ssthresh and cwnd reductions (=2)
The response with rate halving requires a new parameter to
tcp_enter_cwr because FRTO has already reduced ssthresh and
doing a second reduction there has to be prevented. In addition,
to keep things nice on 80 cols screen, a local variable was
added.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/sysctl.h | 1 | ||||
-rw-r--r-- | include/net/tcp.h | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 98e0fd241a25..c9ccb550206f 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
@@ -439,6 +439,7 @@ enum | |||
439 | NET_TCP_AVAIL_CONG_CONTROL=122, | 439 | NET_TCP_AVAIL_CONG_CONTROL=122, |
440 | NET_TCP_ALLOWED_CONG_CONTROL=123, | 440 | NET_TCP_ALLOWED_CONG_CONTROL=123, |
441 | NET_TCP_MAX_SSTHRESH=124, | 441 | NET_TCP_MAX_SSTHRESH=124, |
442 | NET_TCP_FRTO_RESPONSE=125, | ||
442 | }; | 443 | }; |
443 | 444 | ||
444 | enum { | 445 | enum { |
diff --git a/include/net/tcp.h b/include/net/tcp.h index 6d09f5085f6a..f0c9e3400a09 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -220,6 +220,7 @@ extern int sysctl_tcp_app_win; | |||
220 | extern int sysctl_tcp_adv_win_scale; | 220 | extern int sysctl_tcp_adv_win_scale; |
221 | extern int sysctl_tcp_tw_reuse; | 221 | extern int sysctl_tcp_tw_reuse; |
222 | extern int sysctl_tcp_frto; | 222 | extern int sysctl_tcp_frto; |
223 | extern int sysctl_tcp_frto_response; | ||
223 | extern int sysctl_tcp_low_latency; | 224 | extern int sysctl_tcp_low_latency; |
224 | extern int sysctl_tcp_dma_copybreak; | 225 | extern int sysctl_tcp_dma_copybreak; |
225 | extern int sysctl_tcp_nometrics_save; | 226 | extern int sysctl_tcp_nometrics_save; |
@@ -738,7 +739,7 @@ static inline void tcp_sync_left_out(struct tcp_sock *tp) | |||
738 | tp->left_out = tp->sacked_out + tp->lost_out; | 739 | tp->left_out = tp->sacked_out + tp->lost_out; |
739 | } | 740 | } |
740 | 741 | ||
741 | extern void tcp_enter_cwr(struct sock *sk); | 742 | extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh); |
742 | extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst); | 743 | extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst); |
743 | 744 | ||
744 | /* Slow start with delack produces 3 packets of burst, so that | 745 | /* Slow start with delack produces 3 packets of burst, so that |