diff options
| -rw-r--r-- | net/dccp/Kconfig | 6 | ||||
| -rw-r--r-- | net/dccp/ackvec.c | 12 | ||||
| -rw-r--r-- | net/dccp/ackvec.h | 3 | ||||
| -rw-r--r-- | net/dccp/ccids/Kconfig | 17 | ||||
| -rw-r--r-- | net/dccp/ccids/ccid2.c | 2 | ||||
| -rw-r--r-- | net/dccp/ccids/ccid3.c | 3 | ||||
| -rw-r--r-- | net/dccp/dccp.h | 2 | ||||
| -rw-r--r-- | net/dccp/input.c | 4 | ||||
| -rw-r--r-- | net/dccp/ipv4.c | 4 | ||||
| -rw-r--r-- | net/dccp/ipv6.c | 2 | ||||
| -rw-r--r-- | net/dccp/options.c | 2 |
11 files changed, 27 insertions, 30 deletions
diff --git a/net/dccp/Kconfig b/net/dccp/Kconfig index e2a095d0fd80..ef8919cca74b 100644 --- a/net/dccp/Kconfig +++ b/net/dccp/Kconfig | |||
| @@ -4,15 +4,15 @@ menu "DCCP Configuration (EXPERIMENTAL)" | |||
| 4 | config IP_DCCP | 4 | config IP_DCCP |
| 5 | tristate "The DCCP Protocol (EXPERIMENTAL)" | 5 | tristate "The DCCP Protocol (EXPERIMENTAL)" |
| 6 | ---help--- | 6 | ---help--- |
| 7 | Datagram Congestion Control Protocol | 7 | Datagram Congestion Control Protocol (RFC 4340) |
| 8 | 8 | ||
| 9 | From draft-ietf-dccp-spec-11 <http://www.icir.org/kohler/dcp/draft-ietf-dccp-spec-11.txt>. | 9 | From http://www.ietf.org/rfc/rfc4340.txt: |
| 10 | 10 | ||
| 11 | The Datagram Congestion Control Protocol (DCCP) is a transport | 11 | The Datagram Congestion Control Protocol (DCCP) is a transport |
| 12 | protocol that implements bidirectional, unicast connections of | 12 | protocol that implements bidirectional, unicast connections of |
| 13 | congestion-controlled, unreliable datagrams. It should be suitable | 13 | congestion-controlled, unreliable datagrams. It should be suitable |
| 14 | for use by applications such as streaming media, Internet telephony, | 14 | for use by applications such as streaming media, Internet telephony, |
| 15 | and on-line games | 15 | and on-line games. |
| 16 | 16 | ||
| 17 | To compile this protocol support as a module, choose M here: the | 17 | To compile this protocol support as a module, choose M here: the |
| 18 | module will be called dccp. | 18 | module will be called dccp. |
diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c index 4d176d33983f..f8208874ac7d 100644 --- a/net/dccp/ackvec.c +++ b/net/dccp/ackvec.c | |||
| @@ -113,7 +113,7 @@ int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb) | |||
| 113 | 113 | ||
| 114 | memcpy(to, from, len); | 114 | memcpy(to, from, len); |
| 115 | /* | 115 | /* |
| 116 | * From draft-ietf-dccp-spec-11.txt: | 116 | * From RFC 4340, A.2: |
| 117 | * | 117 | * |
| 118 | * For each acknowledgement it sends, the HC-Receiver will add an | 118 | * For each acknowledgement it sends, the HC-Receiver will add an |
| 119 | * acknowledgement record. ack_seqno will equal the HC-Receiver | 119 | * acknowledgement record. ack_seqno will equal the HC-Receiver |
| @@ -224,7 +224,7 @@ static inline int dccp_ackvec_set_buf_head_state(struct dccp_ackvec *av, | |||
| 224 | } | 224 | } |
| 225 | 225 | ||
| 226 | /* | 226 | /* |
| 227 | * Implements the draft-ietf-dccp-spec-11.txt Appendix A | 227 | * Implements the RFC 4340, Appendix A |
| 228 | */ | 228 | */ |
| 229 | int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk, | 229 | int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk, |
| 230 | const u64 ackno, const u8 state) | 230 | const u64 ackno, const u8 state) |
| @@ -237,7 +237,7 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk, | |||
| 237 | * We may well decide to do buffer compression, etc, but for now lets | 237 | * We may well decide to do buffer compression, etc, but for now lets |
| 238 | * just drop. | 238 | * just drop. |
| 239 | * | 239 | * |
| 240 | * From Appendix A: | 240 | * From Appendix A.1.1 (`New Packets'): |
| 241 | * | 241 | * |
| 242 | * Of course, the circular buffer may overflow, either when the | 242 | * Of course, the circular buffer may overflow, either when the |
| 243 | * HC-Sender is sending data at a very high rate, when the | 243 | * HC-Sender is sending data at a very high rate, when the |
| @@ -274,9 +274,9 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk, | |||
| 274 | /* | 274 | /* |
| 275 | * A.1.2. Old Packets | 275 | * A.1.2. Old Packets |
| 276 | * | 276 | * |
| 277 | * When a packet with Sequence Number S arrives, and | 277 | * When a packet with Sequence Number S <= buf_ackno |
| 278 | * S <= buf_ackno, the HC-Receiver will scan the table | 278 | * arrives, the HC-Receiver will scan the table for |
| 279 | * for the byte corresponding to S. (Indexing structures | 279 | * the byte corresponding to S. (Indexing structures |
| 280 | * could reduce the complexity of this scan.) | 280 | * could reduce the complexity of this scan.) |
| 281 | */ | 281 | */ |
| 282 | u64 delta = dccp_delta_seqno(ackno, av->dccpav_buf_ackno); | 282 | u64 delta = dccp_delta_seqno(ackno, av->dccpav_buf_ackno); |
diff --git a/net/dccp/ackvec.h b/net/dccp/ackvec.h index 2424effac7f6..cf8f20ce23a9 100644 --- a/net/dccp/ackvec.h +++ b/net/dccp/ackvec.h | |||
| @@ -28,8 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | /** struct dccp_ackvec - ack vector | 29 | /** struct dccp_ackvec - ack vector |
| 30 | * | 30 | * |
| 31 | * This data structure is the one defined in the DCCP draft | 31 | * This data structure is the one defined in RFC 4340, Appendix A. |
| 32 | * Appendix A. | ||
| 33 | * | 32 | * |
| 34 | * @dccpav_buf_head - circular buffer head | 33 | * @dccpav_buf_head - circular buffer head |
| 35 | * @dccpav_buf_tail - circular buffer tail | 34 | * @dccpav_buf_tail - circular buffer tail |
diff --git a/net/dccp/ccids/Kconfig b/net/dccp/ccids/Kconfig index 32752f750447..8533dabfb9f8 100644 --- a/net/dccp/ccids/Kconfig +++ b/net/dccp/ccids/Kconfig | |||
| @@ -22,11 +22,11 @@ config IP_DCCP_CCID2 | |||
| 22 | for lost packets, would prefer CCID 2 to CCID 3. On-line games may | 22 | for lost packets, would prefer CCID 2 to CCID 3. On-line games may |
| 23 | also prefer CCID 2. | 23 | also prefer CCID 2. |
| 24 | 24 | ||
| 25 | CCID 2 is further described in: | 25 | CCID 2 is further described in RFC 4341, |
| 26 | http://www.icir.org/kohler/dccp/draft-ietf-dccp-ccid2-10.txt | 26 | http://www.ietf.org/rfc/rfc4341.txt |
| 27 | 27 | ||
| 28 | This text was extracted from: | 28 | This text was extracted from RFC 4340 (sec. 10.1), |
| 29 | http://www.icir.org/kohler/dccp/draft-ietf-dccp-spec-13.txt | 29 | http://www.ietf.org/rfc/rfc4340.txt |
| 30 | 30 | ||
| 31 | If in doubt, say M. | 31 | If in doubt, say M. |
| 32 | 32 | ||
| @@ -53,15 +53,14 @@ config IP_DCCP_CCID3 | |||
| 53 | suitable than CCID 2 for applications such streaming media where a | 53 | suitable than CCID 2 for applications such streaming media where a |
| 54 | relatively smooth sending rate is of importance. | 54 | relatively smooth sending rate is of importance. |
| 55 | 55 | ||
| 56 | CCID 3 is further described in: | 56 | CCID 3 is further described in RFC 4342, |
| 57 | 57 | http://www.ietf.org/rfc/rfc4342.txt | |
| 58 | http://www.icir.org/kohler/dccp/draft-ietf-dccp-ccid3-11.txt. | ||
| 59 | 58 | ||
| 60 | The TFRC congestion control algorithms were initially described in | 59 | The TFRC congestion control algorithms were initially described in |
| 61 | RFC 3448. | 60 | RFC 3448. |
| 62 | 61 | ||
| 63 | This text was extracted from: | 62 | This text was extracted from RFC 4340 (sec. 10.2), |
| 64 | http://www.icir.org/kohler/dccp/draft-ietf-dccp-spec-13.txt | 63 | http://www.ietf.org/rfc/rfc4340.txt |
| 65 | 64 | ||
| 66 | If in doubt, say M. | 65 | If in doubt, say M. |
| 67 | 66 | ||
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index 2efb505aeb35..2fbb84bf4e26 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c | |||
| @@ -23,7 +23,7 @@ | |||
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | /* | 25 | /* |
| 26 | * This implementation should follow: draft-ietf-dccp-ccid2-10.txt | 26 | * This implementation should follow RFC 4341 |
| 27 | * | 27 | * |
| 28 | * BUGS: | 28 | * BUGS: |
| 29 | * - sequence number wrapping | 29 | * - sequence number wrapping |
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c index 67d2dc0e7c67..cec23ad286de 100644 --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c | |||
| @@ -379,8 +379,7 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, int more, int len) | |||
| 379 | packet->dccphtx_seqno = dp->dccps_gss; | 379 | packet->dccphtx_seqno = dp->dccps_gss; |
| 380 | /* | 380 | /* |
| 381 | * Check if win_count have changed | 381 | * Check if win_count have changed |
| 382 | * Algorithm in "8.1. Window Counter Valuer" in | 382 | * Algorithm in "8.1. Window Counter Value" in RFC 4342. |
| 383 | * draft-ietf-dccp-ccid3-11.txt | ||
| 384 | */ | 383 | */ |
| 385 | quarter_rtt = timeval_delta(&now, &hctx->ccid3hctx_t_last_win_count); | 384 | quarter_rtt = timeval_delta(&now, &hctx->ccid3hctx_t_last_win_count); |
| 386 | if (likely(hctx->ccid3hctx_rtt > 8)) | 385 | if (likely(hctx->ccid3hctx_rtt > 8)) |
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h index 0a21be437ed3..272e8584564e 100644 --- a/net/dccp/dccp.h +++ b/net/dccp/dccp.h | |||
| @@ -50,7 +50,7 @@ extern void dccp_time_wait(struct sock *sk, int state, int timeo); | |||
| 50 | #define DCCP_TIMEWAIT_LEN (60 * HZ) /* how long to wait to destroy TIME-WAIT | 50 | #define DCCP_TIMEWAIT_LEN (60 * HZ) /* how long to wait to destroy TIME-WAIT |
| 51 | * state, about 60 seconds */ | 51 | * state, about 60 seconds */ |
| 52 | 52 | ||
| 53 | /* draft-ietf-dccp-spec-11.txt initial RTO value */ | 53 | /* RFC 1122, 4.2.3.1 initial RTO value */ |
| 54 | #define DCCP_TIMEOUT_INIT ((unsigned)(3 * HZ)) | 54 | #define DCCP_TIMEOUT_INIT ((unsigned)(3 * HZ)) |
| 55 | 55 | ||
| 56 | /* Maximal interval between probes for local resources. */ | 56 | /* Maximal interval between probes for local resources. */ |
diff --git a/net/dccp/input.c b/net/dccp/input.c index 7f9dc6ac58c9..1d24881ac0ab 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c | |||
| @@ -216,11 +216,11 @@ send_sync: | |||
| 216 | dccp_send_sync(sk, DCCP_SKB_CB(skb)->dccpd_seq, | 216 | dccp_send_sync(sk, DCCP_SKB_CB(skb)->dccpd_seq, |
| 217 | DCCP_PKT_SYNCACK); | 217 | DCCP_PKT_SYNCACK); |
| 218 | /* | 218 | /* |
| 219 | * From the draft: | 219 | * From RFC 4340, sec. 5.7 |
| 220 | * | 220 | * |
| 221 | * As with DCCP-Ack packets, DCCP-Sync and DCCP-SyncAck packets | 221 | * As with DCCP-Ack packets, DCCP-Sync and DCCP-SyncAck packets |
| 222 | * MAY have non-zero-length application data areas, whose | 222 | * MAY have non-zero-length application data areas, whose |
| 223 | * contents * receivers MUST ignore. | 223 | * contents receivers MUST ignore. |
| 224 | */ | 224 | */ |
| 225 | goto discard; | 225 | goto discard; |
| 226 | } | 226 | } |
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index aaaf4d09516b..e08e7688a263 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
| @@ -183,7 +183,7 @@ static inline void dccp_do_pmtu_discovery(struct sock *sk, | |||
| 183 | dccp_sync_mss(sk, mtu); | 183 | dccp_sync_mss(sk, mtu); |
| 184 | 184 | ||
| 185 | /* | 185 | /* |
| 186 | * From: draft-ietf-dccp-spec-11.txt | 186 | * From RFC 4340, sec. 14.1: |
| 187 | * | 187 | * |
| 188 | * DCCP-Sync packets are the best choice for upward | 188 | * DCCP-Sync packets are the best choice for upward |
| 189 | * probing, since DCCP-Sync probes do not risk application | 189 | * probing, since DCCP-Sync probes do not risk application |
| @@ -733,7 +733,7 @@ static void dccp_v4_ctl_send_reset(struct sk_buff *rxskb) | |||
| 733 | dccp_hdr_reset(skb)->dccph_reset_code = | 733 | dccp_hdr_reset(skb)->dccph_reset_code = |
| 734 | DCCP_SKB_CB(rxskb)->dccpd_reset_code; | 734 | DCCP_SKB_CB(rxskb)->dccpd_reset_code; |
| 735 | 735 | ||
| 736 | /* See "8.3.1. Abnormal Termination" in draft-ietf-dccp-spec-11 */ | 736 | /* See "8.3.1. Abnormal Termination" in RFC 4340 */ |
| 737 | seqno = 0; | 737 | seqno = 0; |
| 738 | if (DCCP_SKB_CB(rxskb)->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ) | 738 | if (DCCP_SKB_CB(rxskb)->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ) |
| 739 | dccp_set_seqno(&seqno, DCCP_SKB_CB(rxskb)->dccpd_ack_seq + 1); | 739 | dccp_set_seqno(&seqno, DCCP_SKB_CB(rxskb)->dccpd_ack_seq + 1); |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index c8bf89bfb088..eb0ff7ab05ed 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
| @@ -550,7 +550,7 @@ static void dccp_v6_ctl_send_reset(struct sk_buff *rxskb) | |||
| 550 | dccp_hdr_reset(skb)->dccph_reset_code = | 550 | dccp_hdr_reset(skb)->dccph_reset_code = |
| 551 | DCCP_SKB_CB(rxskb)->dccpd_reset_code; | 551 | DCCP_SKB_CB(rxskb)->dccpd_reset_code; |
| 552 | 552 | ||
| 553 | /* See "8.3.1. Abnormal Termination" in draft-ietf-dccp-spec-11 */ | 553 | /* See "8.3.1. Abnormal Termination" in RFC 4340 */ |
| 554 | seqno = 0; | 554 | seqno = 0; |
| 555 | if (DCCP_SKB_CB(rxskb)->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ) | 555 | if (DCCP_SKB_CB(rxskb)->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ) |
| 556 | dccp_set_seqno(&seqno, DCCP_SKB_CB(rxskb)->dccpd_ack_seq + 1); | 556 | dccp_set_seqno(&seqno, DCCP_SKB_CB(rxskb)->dccpd_ack_seq + 1); |
diff --git a/net/dccp/options.c b/net/dccp/options.c index 07a34696ac97..fb0db1f7cd7b 100644 --- a/net/dccp/options.c +++ b/net/dccp/options.c | |||
| @@ -215,7 +215,7 @@ int dccp_parse_options(struct sock *sk, struct sk_buff *skb) | |||
| 215 | elapsed_time); | 215 | elapsed_time); |
| 216 | break; | 216 | break; |
| 217 | /* | 217 | /* |
| 218 | * From draft-ietf-dccp-spec-11.txt: | 218 | * From RFC 4340, sec. 10.3: |
| 219 | * | 219 | * |
| 220 | * Option numbers 128 through 191 are for | 220 | * Option numbers 128 through 191 are for |
| 221 | * options sent from the HC-Sender to the | 221 | * options sent from the HC-Sender to the |
