aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2007-02-27 13:09:49 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:23:23 -0400
commit3cfe3baaf07c9e40a75f9a70662de56df1c246a8 (patch)
tree989b2aff491b5df3aa0215f611a8c7f1360c67e9 /include
parentc5e7af0df5d7234afd8596560d9f570cfc6c18bf (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.h1
-rw-r--r--include/net/tcp.h3
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
444enum { 445enum {
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;
220extern int sysctl_tcp_adv_win_scale; 220extern int sysctl_tcp_adv_win_scale;
221extern int sysctl_tcp_tw_reuse; 221extern int sysctl_tcp_tw_reuse;
222extern int sysctl_tcp_frto; 222extern int sysctl_tcp_frto;
223extern int sysctl_tcp_frto_response;
223extern int sysctl_tcp_low_latency; 224extern int sysctl_tcp_low_latency;
224extern int sysctl_tcp_dma_copybreak; 225extern int sysctl_tcp_dma_copybreak;
225extern int sysctl_tcp_nometrics_save; 226extern 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
741extern void tcp_enter_cwr(struct sock *sk); 742extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
742extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst); 743extern __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