Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 1 | menu "DCCP CCIDs Configuration (EXPERIMENTAL)" |
| 2 | depends on IP_DCCP && EXPERIMENTAL |
| 3 | |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 4 | config IP_DCCP_CCID2 |
Arnaldo Carvalho de Melo | 057fc67 | 2006-03-20 19:24:22 -0800 | [diff] [blame] | 5 | tristate "CCID2 (TCP-Like) (EXPERIMENTAL)" |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 6 | depends on IP_DCCP |
Arnaldo Carvalho de Melo | 057fc67 | 2006-03-20 19:24:22 -0800 | [diff] [blame] | 7 | def_tristate IP_DCCP |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 8 | select IP_DCCP_ACKVEC |
| 9 | ---help--- |
| 10 | CCID 2, TCP-like Congestion Control, denotes Additive Increase, |
| 11 | Multiplicative Decrease (AIMD) congestion control with behavior |
| 12 | modelled directly on TCP, including congestion window, slow start, |
| 13 | timeouts, and so forth [RFC 2581]. CCID 2 achieves maximum |
| 14 | bandwidth over the long term, consistent with the use of end-to-end |
| 15 | congestion control, but halves its congestion window in response to |
| 16 | each congestion event. This leads to the abrupt rate changes |
| 17 | typical of TCP. Applications should use CCID 2 if they prefer |
| 18 | maximum bandwidth utilization to steadiness of rate. This is often |
| 19 | the case for applications that are not playing their data directly |
| 20 | to the user. For example, a hypothetical application that |
| 21 | transferred files over DCCP, using application-level retransmissions |
| 22 | for lost packets, would prefer CCID 2 to CCID 3. On-line games may |
| 23 | also prefer CCID 2. |
| 24 | |
Gerrit Renker | 0e64e94 | 2006-10-24 16:17:51 -0700 | [diff] [blame] | 25 | CCID 2 is further described in RFC 4341, |
| 26 | http://www.ietf.org/rfc/rfc4341.txt |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 27 | |
Gerrit Renker | 0e64e94 | 2006-10-24 16:17:51 -0700 | [diff] [blame] | 28 | This text was extracted from RFC 4340 (sec. 10.1), |
| 29 | http://www.ietf.org/rfc/rfc4340.txt |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 30 | |
Gerrit Renker | 8411671 | 2006-11-20 18:26:03 -0200 | [diff] [blame] | 31 | To compile this CCID as a module, choose M here: the module will be |
| 32 | called dccp_ccid2. |
| 33 | |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 34 | If in doubt, say M. |
| 35 | |
Andrea Bittau | 8d424f6 | 2006-09-19 13:12:44 -0700 | [diff] [blame] | 36 | config IP_DCCP_CCID2_DEBUG |
Gerrit Renker | 8411671 | 2006-11-20 18:26:03 -0200 | [diff] [blame] | 37 | bool "CCID2 debugging messages" |
Andrea Bittau | 8d424f6 | 2006-09-19 13:12:44 -0700 | [diff] [blame] | 38 | depends on IP_DCCP_CCID2 |
| 39 | ---help--- |
Gerrit Renker | 8411671 | 2006-11-20 18:26:03 -0200 | [diff] [blame] | 40 | Enable CCID2-specific debugging messages. |
| 41 | |
| 42 | When compiling CCID2 as a module, this debugging output can |
| 43 | additionally be toggled by setting the ccid2_debug module |
| 44 | parameter to 0 or 1. |
Andrea Bittau | 8d424f6 | 2006-09-19 13:12:44 -0700 | [diff] [blame] | 45 | |
| 46 | If in doubt, say N. |
| 47 | |
Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 48 | config IP_DCCP_CCID3 |
Arnaldo Carvalho de Melo | 057fc67 | 2006-03-20 19:24:22 -0800 | [diff] [blame] | 49 | tristate "CCID3 (TCP-Friendly) (EXPERIMENTAL)" |
Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 50 | depends on IP_DCCP |
Arnaldo Carvalho de Melo | 057fc67 | 2006-03-20 19:24:22 -0800 | [diff] [blame] | 51 | def_tristate IP_DCCP |
Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 52 | ---help--- |
| 53 | CCID 3 denotes TCP-Friendly Rate Control (TFRC), an equation-based |
| 54 | rate-controlled congestion control mechanism. TFRC is designed to |
| 55 | be reasonably fair when competing for bandwidth with TCP-like flows, |
| 56 | where a flow is "reasonably fair" if its sending rate is generally |
| 57 | within a factor of two of the sending rate of a TCP flow under the |
| 58 | same conditions. However, TFRC has a much lower variation of |
| 59 | throughput over time compared with TCP, which makes CCID 3 more |
| 60 | suitable than CCID 2 for applications such streaming media where a |
| 61 | relatively smooth sending rate is of importance. |
| 62 | |
Gerrit Renker | 0e64e94 | 2006-10-24 16:17:51 -0700 | [diff] [blame] | 63 | CCID 3 is further described in RFC 4342, |
| 64 | http://www.ietf.org/rfc/rfc4342.txt |
Andrea Bittau | 2a91aa3 | 2006-03-20 17:41:47 -0800 | [diff] [blame] | 65 | |
| 66 | The TFRC congestion control algorithms were initially described in |
| 67 | RFC 3448. |
| 68 | |
Gerrit Renker | 0e64e94 | 2006-10-24 16:17:51 -0700 | [diff] [blame] | 69 | This text was extracted from RFC 4340 (sec. 10.2), |
| 70 | http://www.ietf.org/rfc/rfc4340.txt |
Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 71 | |
Gerrit Renker | 8411671 | 2006-11-20 18:26:03 -0200 | [diff] [blame] | 72 | To compile this CCID as a module, choose M here: the module will be |
| 73 | called dccp_ccid3. |
| 74 | |
Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 75 | If in doubt, say M. |
| 76 | |
Arnaldo Carvalho de Melo | 5cea0dd | 2005-08-27 23:50:46 -0300 | [diff] [blame] | 77 | config IP_DCCP_TFRC_LIB |
| 78 | depends on IP_DCCP_CCID3 |
| 79 | def_tristate IP_DCCP_CCID3 |
| 80 | |
Gerrit Renker | 56724aa | 2006-11-20 18:28:09 -0200 | [diff] [blame] | 81 | config IP_DCCP_CCID3_DEBUG |
| 82 | bool "CCID3 debugging messages" |
| 83 | depends on IP_DCCP_CCID3 |
| 84 | ---help--- |
| 85 | Enable CCID3-specific debugging messages. |
| 86 | |
| 87 | When compiling CCID3 as a module, this debugging output can |
| 88 | additionally be toggled by setting the ccid3_debug module |
| 89 | parameter to 0 or 1. |
| 90 | |
| 91 | If in doubt, say N. |
Gerrit Renker | 8a508ac | 2006-12-03 14:50:23 -0200 | [diff] [blame] | 92 | |
| 93 | config IP_DCCP_CCID3_RTO |
| 94 | int "Use higher bound for nofeedback timer" |
| 95 | default 100 |
| 96 | depends on IP_DCCP_CCID3 && EXPERIMENTAL |
| 97 | ---help--- |
| 98 | Use higher lower bound for nofeedback timer expiration. |
| 99 | |
| 100 | The TFRC nofeedback timer normally expires after the maximum of 4 |
| 101 | RTTs and twice the current send interval (RFC 3448, 4.3). On LANs |
| 102 | with a small RTT this can mean a high processing load and reduced |
| 103 | performance, since then the nofeedback timer is triggered very |
| 104 | frequently. |
| 105 | |
| 106 | This option enables to set a higher lower bound for the nofeedback |
| 107 | value. Values in units of milliseconds can be set here. |
| 108 | |
| 109 | A value of 0 disables this feature by enforcing the value specified |
| 110 | in RFC 3448. The following values have been suggested as bounds for |
| 111 | experimental use: |
| 112 | * 16-20ms to match the typical multimedia inter-frame interval |
| 113 | * 100ms as a reasonable compromise [default] |
| 114 | * 1000ms corresponds to the lower TCP RTO bound (RFC 2988, 2.4) |
| 115 | |
| 116 | The default of 100ms is a compromise between a large value for |
| 117 | efficient DCCP implementations, and a small value to avoid disrupting |
| 118 | the network in times of congestion. |
| 119 | |
| 120 | The purpose of the nofeedback timer is to slow DCCP down when there |
| 121 | is serious network congestion: experimenting with larger values should |
| 122 | therefore not be performed on WANs. |
| 123 | |
| 124 | |
Arnaldo Carvalho de Melo | 7c65787 | 2005-08-09 20:14:34 -0700 | [diff] [blame] | 125 | endmenu |