blob: 80f469887691859cb227b49907f2b4f99ab96c93 [file] [log] [blame]
Arnaldo Carvalho de Melo7c657872005-08-09 20:14:34 -07001menu "DCCP CCIDs Configuration (EXPERIMENTAL)"
2 depends on IP_DCCP && EXPERIMENTAL
3
Andrea Bittau2a91aa32006-03-20 17:41:47 -08004config IP_DCCP_CCID2
Arnaldo Carvalho de Melo057fc672006-03-20 19:24:22 -08005 tristate "CCID2 (TCP-Like) (EXPERIMENTAL)"
Andrea Bittau2a91aa32006-03-20 17:41:47 -08006 depends on IP_DCCP
Arnaldo Carvalho de Melo057fc672006-03-20 19:24:22 -08007 def_tristate IP_DCCP
Andrea Bittau2a91aa32006-03-20 17:41:47 -08008 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 Renker0e64e942006-10-24 16:17:51 -070025 CCID 2 is further described in RFC 4341,
26 http://www.ietf.org/rfc/rfc4341.txt
Andrea Bittau2a91aa32006-03-20 17:41:47 -080027
Gerrit Renker0e64e942006-10-24 16:17:51 -070028 This text was extracted from RFC 4340 (sec. 10.1),
29 http://www.ietf.org/rfc/rfc4340.txt
Andrea Bittau2a91aa32006-03-20 17:41:47 -080030
Gerrit Renker84116712006-11-20 18:26:03 -020031 To compile this CCID as a module, choose M here: the module will be
32 called dccp_ccid2.
33
Andrea Bittau2a91aa32006-03-20 17:41:47 -080034 If in doubt, say M.
35
Andrea Bittau8d424f62006-09-19 13:12:44 -070036config IP_DCCP_CCID2_DEBUG
Gerrit Renker84116712006-11-20 18:26:03 -020037 bool "CCID2 debugging messages"
Andrea Bittau8d424f62006-09-19 13:12:44 -070038 depends on IP_DCCP_CCID2
39 ---help---
Gerrit Renker84116712006-11-20 18:26:03 -020040 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 Bittau8d424f62006-09-19 13:12:44 -070045
46 If in doubt, say N.
47
Arnaldo Carvalho de Melo7c657872005-08-09 20:14:34 -070048config IP_DCCP_CCID3
Arnaldo Carvalho de Melo057fc672006-03-20 19:24:22 -080049 tristate "CCID3 (TCP-Friendly) (EXPERIMENTAL)"
Arnaldo Carvalho de Melo7c657872005-08-09 20:14:34 -070050 depends on IP_DCCP
Arnaldo Carvalho de Melo057fc672006-03-20 19:24:22 -080051 def_tristate IP_DCCP
Arnaldo Carvalho de Melo7c657872005-08-09 20:14:34 -070052 ---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 Renker0e64e942006-10-24 16:17:51 -070063 CCID 3 is further described in RFC 4342,
64 http://www.ietf.org/rfc/rfc4342.txt
Andrea Bittau2a91aa32006-03-20 17:41:47 -080065
66 The TFRC congestion control algorithms were initially described in
67 RFC 3448.
68
Gerrit Renker0e64e942006-10-24 16:17:51 -070069 This text was extracted from RFC 4340 (sec. 10.2),
70 http://www.ietf.org/rfc/rfc4340.txt
Arnaldo Carvalho de Melo7c657872005-08-09 20:14:34 -070071
Gerrit Renker84116712006-11-20 18:26:03 -020072 To compile this CCID as a module, choose M here: the module will be
73 called dccp_ccid3.
74
Arnaldo Carvalho de Melo7c657872005-08-09 20:14:34 -070075 If in doubt, say M.
76
Arnaldo Carvalho de Melo5cea0dd2005-08-27 23:50:46 -030077config IP_DCCP_TFRC_LIB
78 depends on IP_DCCP_CCID3
79 def_tristate IP_DCCP_CCID3
80
Gerrit Renker56724aa2006-11-20 18:28:09 -020081config 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 Renker8a508ac2006-12-03 14:50:23 -020092
93config 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 Melo7c657872005-08-09 20:14:34 -0700125endmenu