aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/networking/dccp.txt3
-rw-r--r--include/linux/dccp.h4
-rw-r--r--net/dccp/dccp.h1
-rw-r--r--net/dccp/feat.c2
-rw-r--r--net/dccp/minisocks.c1
-rw-r--r--net/dccp/options.c4
-rw-r--r--net/dccp/sysctl.c7
7 files changed, 4 insertions, 18 deletions
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt
index a203d132dbef..1403745ab406 100644
--- a/Documentation/networking/dccp.txt
+++ b/Documentation/networking/dccp.txt
@@ -133,9 +133,6 @@ retries2
133 importance for retransmitted acknowledgments and feature negotiation, 133 importance for retransmitted acknowledgments and feature negotiation,
134 data packets are never retransmitted. Analogue of tcp_retries2. 134 data packets are never retransmitted. Analogue of tcp_retries2.
135 135
136send_ndp = 1
137 Whether or not to send NDP count options (sec. 7.7.2).
138
139send_ackvec = 1 136send_ackvec = 1
140 Whether or not to send Ack Vector options (sec. 11.5). 137 Whether or not to send Ack Vector options (sec. 11.5).
141 138
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 46daea312d92..60e94438eadd 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -371,14 +371,12 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb)
371 * 371 *
372 * @dccpms_sequence_window - Sequence Window Feature (section 7.5.2) 372 * @dccpms_sequence_window - Sequence Window Feature (section 7.5.2)
373 * @dccpms_send_ack_vector - Send Ack Vector Feature (section 11.5) 373 * @dccpms_send_ack_vector - Send Ack Vector Feature (section 11.5)
374 * @dccpms_send_ndp_count - Send NDP Count Feature (7.7.2)
375 * @dccpms_pending - List of features being negotiated 374 * @dccpms_pending - List of features being negotiated
376 * @dccpms_conf - 375 * @dccpms_conf -
377 */ 376 */
378struct dccp_minisock { 377struct dccp_minisock {
379 __u64 dccpms_sequence_window; 378 __u64 dccpms_sequence_window;
380 __u8 dccpms_send_ack_vector; 379 __u8 dccpms_send_ack_vector;
381 __u8 dccpms_send_ndp_count;
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};
@@ -490,6 +488,7 @@ struct dccp_ackvec;
490 * @dccps_r_ack_ratio - feature-remote Ack Ratio 488 * @dccps_r_ack_ratio - feature-remote Ack Ratio
491 * @dccps_pcslen - sender partial checksum coverage (via sockopt) 489 * @dccps_pcslen - sender partial checksum coverage (via sockopt)
492 * @dccps_pcrlen - receiver partial checksum coverage (via sockopt) 490 * @dccps_pcrlen - receiver partial checksum coverage (via sockopt)
491 * @dccps_send_ndp_count - local Send NDP Count feature (7.7.2)
493 * @dccps_ndp_count - number of Non Data Packets since last data packet 492 * @dccps_ndp_count - number of Non Data Packets since last data packet
494 * @dccps_mss_cache - current value of MSS (path MTU minus header sizes) 493 * @dccps_mss_cache - current value of MSS (path MTU minus header sizes)
495 * @dccps_rate_last - timestamp for rate-limiting DCCP-Sync (RFC 4340, 7.5.4) 494 * @dccps_rate_last - timestamp for rate-limiting DCCP-Sync (RFC 4340, 7.5.4)
@@ -529,6 +528,7 @@ struct dccp_sock {
529 __u16 dccps_r_ack_ratio; 528 __u16 dccps_r_ack_ratio;
530 __u8 dccps_pcslen:4; 529 __u8 dccps_pcslen:4;
531 __u8 dccps_pcrlen:4; 530 __u8 dccps_pcrlen:4;
531 __u8 dccps_send_ndp_count:1;
532 __u64 dccps_ndp_count:48; 532 __u64 dccps_ndp_count:48;
533 unsigned long dccps_rate_last; 533 unsigned long dccps_rate_last;
534 struct dccp_minisock dccps_minisock; 534 struct dccp_minisock dccps_minisock;
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h
index 94f6785f81ec..e0759d098b9a 100644
--- a/net/dccp/dccp.h
+++ b/net/dccp/dccp.h
@@ -99,7 +99,6 @@ extern 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_send_ack_vector; 101extern int sysctl_dccp_feat_send_ack_vector;
102extern int sysctl_dccp_feat_send_ndp_count;
103extern int sysctl_dccp_tx_qlen; 102extern int sysctl_dccp_tx_qlen;
104extern int sysctl_dccp_sync_ratelimit; 103extern int sysctl_dccp_sync_ratelimit;
105 104
diff --git a/net/dccp/feat.c b/net/dccp/feat.c
index a0d5891a37bf..30f9fb76b921 100644
--- a/net/dccp/feat.c
+++ b/net/dccp/feat.c
@@ -85,7 +85,7 @@ static int dccp_hdlr_ackvec(struct sock *sk, u64 enable, bool rx)
85static int dccp_hdlr_ndp(struct sock *sk, u64 enable, bool rx) 85static int dccp_hdlr_ndp(struct sock *sk, u64 enable, bool rx)
86{ 86{
87 if (!rx) 87 if (!rx)
88 dccp_msk(sk)->dccpms_send_ndp_count = (enable > 0); 88 dccp_sk(sk)->dccps_send_ndp_count = (enable > 0);
89 return 0; 89 return 0;
90} 90}
91 91
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c
index 210c346899ba..02b14812464a 100644
--- a/net/dccp/minisocks.c
+++ b/net/dccp/minisocks.c
@@ -46,7 +46,6 @@ void dccp_minisock_init(struct dccp_minisock *dmsk)
46{ 46{
47 dmsk->dccpms_sequence_window = sysctl_dccp_feat_sequence_window; 47 dmsk->dccpms_sequence_window = sysctl_dccp_feat_sequence_window;
48 dmsk->dccpms_send_ack_vector = sysctl_dccp_feat_send_ack_vector; 48 dmsk->dccpms_send_ack_vector = sysctl_dccp_feat_send_ack_vector;
49 dmsk->dccpms_send_ndp_count = sysctl_dccp_feat_send_ndp_count;
50} 49}
51 50
52void dccp_time_wait(struct sock *sk, int state, int timeo) 51void dccp_time_wait(struct sock *sk, int state, int timeo)
diff --git a/net/dccp/options.c b/net/dccp/options.c
index debb1008c7ad..e9d674874b4e 100644
--- a/net/dccp/options.c
+++ b/net/dccp/options.c
@@ -27,7 +27,6 @@ int 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_send_ack_vector = DCCPF_INITIAL_SEND_ACK_VECTOR; 29int sysctl_dccp_feat_send_ack_vector = DCCPF_INITIAL_SEND_ACK_VECTOR;
30int sysctl_dccp_feat_send_ndp_count = DCCPF_INITIAL_SEND_NDP_COUNT;
31 30
32u64 dccp_decode_value_var(const u8 *bf, const u8 len) 31u64 dccp_decode_value_var(const u8 *bf, const u8 len)
33{ 32{
@@ -531,8 +530,7 @@ int dccp_insert_options(struct sock *sk, struct sk_buff *skb)
531 530
532 DCCP_SKB_CB(skb)->dccpd_opt_len = 0; 531 DCCP_SKB_CB(skb)->dccpd_opt_len = 0;
533 532
534 if (dmsk->dccpms_send_ndp_count && 533 if (dp->dccps_send_ndp_count && dccp_insert_option_ndp(sk, skb))
535 dccp_insert_option_ndp(sk, skb))
536 return -1; 534 return -1;
537 535
538 if (DCCP_SKB_CB(skb)->dccpd_type != DCCP_PKT_DATA) { 536 if (DCCP_SKB_CB(skb)->dccpd_type != DCCP_PKT_DATA) {
diff --git a/net/dccp/sysctl.c b/net/dccp/sysctl.c
index f6e54f433e29..587c12f915c1 100644
--- a/net/dccp/sysctl.c
+++ b/net/dccp/sysctl.c
@@ -48,13 +48,6 @@ static struct ctl_table dccp_default_table[] = {
48 .proc_handler = proc_dointvec, 48 .proc_handler = proc_dointvec,
49 }, 49 },
50 { 50 {
51 .procname = "send_ndp",
52 .data = &sysctl_dccp_feat_send_ndp_count,
53 .maxlen = sizeof(sysctl_dccp_feat_send_ndp_count),
54 .mode = 0644,
55 .proc_handler = proc_dointvec,
56 },
57 {
58 .procname = "request_retries", 51 .procname = "request_retries",
59 .data = &sysctl_dccp_request_retries, 52 .data = &sysctl_dccp_request_retries,
60 .maxlen = sizeof(sysctl_dccp_request_retries), 53 .maxlen = sizeof(sysctl_dccp_request_retries),