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