aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2008-09-04 01:30:19 -0400
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2008-09-04 01:45:28 -0400
commit17c30b40ed79e9f3955e884632c8f01e577b204a (patch)
tree41b91885f808f0b1d48b8b87a303ea7891565a46
parent20f41eee82864e308a5499308a1722dc3181cc3a (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>
-rw-r--r--Documentation/networking/dccp.txt3
-rw-r--r--include/linux/dccp.h2
-rw-r--r--net/dccp/dccp.h1
-rw-r--r--net/dccp/minisocks.c1
-rw-r--r--net/dccp/options.c1
-rw-r--r--net/dccp/sysctl.c7
6 files changed, 0 insertions, 15 deletions
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt
index f0aeb20fa63b..43df4487379b 100644
--- a/Documentation/networking/dccp.txt
+++ b/Documentation/networking/dccp.txt
@@ -125,9 +125,6 @@ send_ndp = 1
125send_ackvec = 1 125send_ackvec = 1
126 Whether or not to send Ack Vector options (sec. 11.5). 126 Whether or not to send Ack Vector options (sec. 11.5).
127 127
128ack_ratio = 2
129 The default Ack Ratio (sec. 11.3) to use.
130
131tx_ccid = 2 128tx_ccid = 2
132 Default CCID for the sender-receiver half-connection. 129 Default CCID for the sender-receiver half-connection.
133 130
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 5a5a89935dbc..eda389ce04f4 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -368,7 +368,6 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb)
368 * @dccpms_ccid - Congestion Control Id (CCID) (section 10) 368 * @dccpms_ccid - Congestion Control Id (CCID) (section 10)
369 * @dccpms_send_ack_vector - Send Ack Vector Feature (section 11.5) 369 * @dccpms_send_ack_vector - Send Ack Vector Feature (section 11.5)
370 * @dccpms_send_ndp_count - Send NDP Count Feature (7.7.2) 370 * @dccpms_send_ndp_count - Send NDP Count Feature (7.7.2)
371 * @dccpms_ack_ratio - Ack Ratio Feature (section 11.3)
372 * @dccpms_pending - List of features being negotiated 371 * @dccpms_pending - List of features being negotiated
373 * @dccpms_conf - 372 * @dccpms_conf -
374 */ 373 */
@@ -378,7 +377,6 @@ struct dccp_minisock {
378 __u8 dccpms_tx_ccid; 377 __u8 dccpms_tx_ccid;
379 __u8 dccpms_send_ack_vector; 378 __u8 dccpms_send_ack_vector;
380 __u8 dccpms_send_ndp_count; 379 __u8 dccpms_send_ndp_count;
381 __u8 dccpms_ack_ratio;
382 struct list_head dccpms_pending; 380 struct list_head dccpms_pending;
383 struct list_head dccpms_conf; 381 struct list_head dccpms_conf;
384}; 382};
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;
98extern int sysctl_dccp_feat_sequence_window; 98extern int sysctl_dccp_feat_sequence_window;
99extern int sysctl_dccp_feat_rx_ccid; 99extern int sysctl_dccp_feat_rx_ccid;
100extern int sysctl_dccp_feat_tx_ccid; 100extern int sysctl_dccp_feat_tx_ccid;
101extern int sysctl_dccp_feat_ack_ratio;
102extern int sysctl_dccp_feat_send_ack_vector; 101extern int sysctl_dccp_feat_send_ack_vector;
103extern int sysctl_dccp_feat_send_ndp_count; 102extern int sysctl_dccp_feat_send_ndp_count;
104extern int sysctl_dccp_tx_qlen; 103extern int sysctl_dccp_tx_qlen;
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c
index e487133ae079..ee7f40f8ddfa 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 @@
26int sysctl_dccp_feat_sequence_window = DCCPF_INITIAL_SEQUENCE_WINDOW; 26int sysctl_dccp_feat_sequence_window = DCCPF_INITIAL_SEQUENCE_WINDOW;
27int sysctl_dccp_feat_rx_ccid = DCCPF_INITIAL_CCID; 27int sysctl_dccp_feat_rx_ccid = DCCPF_INITIAL_CCID;
28int sysctl_dccp_feat_tx_ccid = DCCPF_INITIAL_CCID; 28int sysctl_dccp_feat_tx_ccid = DCCPF_INITIAL_CCID;
29int sysctl_dccp_feat_ack_ratio = DCCPF_INITIAL_ACK_RATIO;
30int sysctl_dccp_feat_send_ack_vector = DCCPF_INITIAL_SEND_ACK_VECTOR; 29int sysctl_dccp_feat_send_ack_vector = DCCPF_INITIAL_SEND_ACK_VECTOR;
31int sysctl_dccp_feat_send_ndp_count = DCCPF_INITIAL_SEND_NDP_COUNT; 30int 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),