diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2008-11-17 01:55:08 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-17 01:55:08 -0500 |
commit | dd9c0e363cef32b7d6f23d4c87e8dfe4f91fd1c5 (patch) | |
tree | 2ae48a033a925169f0fd71bdc18a683a308f46c4 /net/dccp | |
parent | 29450559849da7066813601effb7666966869853 (diff) |
dccp: Deprecate Ack Ratio sysctl
This patch deprecates the Ack Ratio sysctl, since
* Ack Ratio is entirely ignored by CCID-3 and CCID-4,
* Ack Ratio currently doesn't work in CCID-2 (i.e. is always set to 1);
* even if it would work in CCID-2, there is no point for a user to change it:
- Ack Ratio is constrained by cwnd (RFC 4341, 6.1.2),
- if Ack Ratio > cwnd, the system resorts to spurious RTO timeouts
(since waiting for Acks which will never arrive in this window),
- cwnd is not a user-configurable value.
The only reasonable place for Ack Ratio is to print it for debugging. It is
planned to do this later on, as part of e.g. dccp_probe.
With this patch Ack Ratio is now under full control of feature negotiation:
* Ack Ratio is resolved as a dependency of the selected CCID;
* if the chosen CCID supports it (i.e. CCID == CCID-2), Ack Ratio is set to
the default of 2, following RFC 4340, 11.3 - "New connections start with Ack
Ratio 2 for both endpoints";
* what happens then is part of another patch set, since it concerns the
dynamic update of Ack Ratio while the connection is in full flight.
Thanks to Tomasz Grobelny for discussion leading up to this patch.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp')
-rw-r--r-- | net/dccp/dccp.h | 1 | ||||
-rw-r--r-- | net/dccp/minisocks.c | 1 | ||||
-rw-r--r-- | net/dccp/options.c | 1 | ||||
-rw-r--r-- | net/dccp/sysctl.c | 7 |
4 files changed, 0 insertions, 10 deletions
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h index e656dafb5d96..031ce350d3c1 100644 --- a/net/dccp/dccp.h +++ b/net/dccp/dccp.h | |||
@@ -98,7 +98,6 @@ extern int sysctl_dccp_retries2; | |||
98 | extern int sysctl_dccp_feat_sequence_window; | 98 | extern int sysctl_dccp_feat_sequence_window; |
99 | extern int sysctl_dccp_feat_rx_ccid; | 99 | extern int sysctl_dccp_feat_rx_ccid; |
100 | extern int sysctl_dccp_feat_tx_ccid; | 100 | extern int sysctl_dccp_feat_tx_ccid; |
101 | extern int sysctl_dccp_feat_ack_ratio; | ||
102 | extern int sysctl_dccp_feat_send_ack_vector; | 101 | extern int sysctl_dccp_feat_send_ack_vector; |
103 | extern int sysctl_dccp_feat_send_ndp_count; | 102 | extern int sysctl_dccp_feat_send_ndp_count; |
104 | extern int sysctl_dccp_tx_qlen; | 103 | extern int sysctl_dccp_tx_qlen; |
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c index afdacbb94d75..ed61bc58e41e 100644 --- a/net/dccp/minisocks.c +++ b/net/dccp/minisocks.c | |||
@@ -47,7 +47,6 @@ void dccp_minisock_init(struct dccp_minisock *dmsk) | |||
47 | dmsk->dccpms_sequence_window = sysctl_dccp_feat_sequence_window; | 47 | dmsk->dccpms_sequence_window = sysctl_dccp_feat_sequence_window; |
48 | dmsk->dccpms_rx_ccid = sysctl_dccp_feat_rx_ccid; | 48 | dmsk->dccpms_rx_ccid = sysctl_dccp_feat_rx_ccid; |
49 | dmsk->dccpms_tx_ccid = sysctl_dccp_feat_tx_ccid; | 49 | dmsk->dccpms_tx_ccid = sysctl_dccp_feat_tx_ccid; |
50 | dmsk->dccpms_ack_ratio = sysctl_dccp_feat_ack_ratio; | ||
51 | dmsk->dccpms_send_ack_vector = sysctl_dccp_feat_send_ack_vector; | 50 | dmsk->dccpms_send_ack_vector = sysctl_dccp_feat_send_ack_vector; |
52 | dmsk->dccpms_send_ndp_count = sysctl_dccp_feat_send_ndp_count; | 51 | dmsk->dccpms_send_ndp_count = sysctl_dccp_feat_send_ndp_count; |
53 | } | 52 | } |
diff --git a/net/dccp/options.c b/net/dccp/options.c index 67a171a1268c..515ad45013ad 100644 --- a/net/dccp/options.c +++ b/net/dccp/options.c | |||
@@ -26,7 +26,6 @@ | |||
26 | int sysctl_dccp_feat_sequence_window = DCCPF_INITIAL_SEQUENCE_WINDOW; | 26 | int sysctl_dccp_feat_sequence_window = DCCPF_INITIAL_SEQUENCE_WINDOW; |
27 | int sysctl_dccp_feat_rx_ccid = DCCPF_INITIAL_CCID; | 27 | int sysctl_dccp_feat_rx_ccid = DCCPF_INITIAL_CCID; |
28 | int sysctl_dccp_feat_tx_ccid = DCCPF_INITIAL_CCID; | 28 | int sysctl_dccp_feat_tx_ccid = DCCPF_INITIAL_CCID; |
29 | int sysctl_dccp_feat_ack_ratio = DCCPF_INITIAL_ACK_RATIO; | ||
30 | int sysctl_dccp_feat_send_ack_vector = DCCPF_INITIAL_SEND_ACK_VECTOR; | 29 | int sysctl_dccp_feat_send_ack_vector = DCCPF_INITIAL_SEND_ACK_VECTOR; |
31 | int sysctl_dccp_feat_send_ndp_count = DCCPF_INITIAL_SEND_NDP_COUNT; | 30 | int sysctl_dccp_feat_send_ndp_count = DCCPF_INITIAL_SEND_NDP_COUNT; |
32 | 31 | ||
diff --git a/net/dccp/sysctl.c b/net/dccp/sysctl.c index 21295993fdb8..f6e54f433e29 100644 --- a/net/dccp/sysctl.c +++ b/net/dccp/sysctl.c | |||
@@ -41,13 +41,6 @@ static struct ctl_table dccp_default_table[] = { | |||
41 | .proc_handler = proc_dointvec, | 41 | .proc_handler = proc_dointvec, |
42 | }, | 42 | }, |
43 | { | 43 | { |
44 | .procname = "ack_ratio", | ||
45 | .data = &sysctl_dccp_feat_ack_ratio, | ||
46 | .maxlen = sizeof(sysctl_dccp_feat_ack_ratio), | ||
47 | .mode = 0644, | ||
48 | .proc_handler = proc_dointvec, | ||
49 | }, | ||
50 | { | ||
51 | .procname = "send_ackvec", | 44 | .procname = "send_ackvec", |
52 | .data = &sysctl_dccp_feat_send_ack_vector, | 45 | .data = &sysctl_dccp_feat_send_ack_vector, |
53 | .maxlen = sizeof(sysctl_dccp_feat_send_ack_vector), | 46 | .maxlen = sizeof(sysctl_dccp_feat_send_ack_vector), |