1menu "DCCP CCIDs Configuration (EXPERIMENTAL)"
2	depends on IP_DCCP && EXPERIMENTAL
3
4config IP_DCCP_CCID2
5	tristate "CCID2 (TCP-Like) (EXPERIMENTAL)"
6	depends on IP_DCCP
7	def_tristate IP_DCCP
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
25	  CCID 2 is further described in RFC 4341,
26	  http://www.ietf.org/rfc/rfc4341.txt
27
28	  This text was extracted from RFC 4340 (sec. 10.1),
29	  http://www.ietf.org/rfc/rfc4340.txt
30
31	  To compile this CCID as a module, choose M here: the module will be
32	  called dccp_ccid2.
33
34	  If in doubt, say M.
35
36config IP_DCCP_CCID2_DEBUG
37	  bool "CCID2 debugging messages"
38	  depends on IP_DCCP_CCID2
39	  ---help---
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.
45
46	    If in doubt, say N.
47
48config IP_DCCP_CCID3
49	tristate "CCID3 (TCP-Friendly) (EXPERIMENTAL)"
50	depends on IP_DCCP
51	def_tristate IP_DCCP
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
63	  CCID 3 is further described in RFC 4342,
64	  http://www.ietf.org/rfc/rfc4342.txt
65
66	  The TFRC congestion control algorithms were initially described in
67	  RFC 3448.
68
69	  This text was extracted from RFC 4340 (sec. 10.2),
70	  http://www.ietf.org/rfc/rfc4340.txt
71	  
72	  To compile this CCID as a module, choose M here: the module will be
73	  called dccp_ccid3.
74
75	  If in doubt, say M.
76
77config IP_DCCP_TFRC_LIB
78	depends on IP_DCCP_CCID3
79	def_tristate IP_DCCP_CCID3
80
81config 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.
92
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
125endmenu
126