xref: /openbmc/linux/net/dccp/ccids/Kconfig (revision b8bb76713ec50df2f11efee386e16f93d51e1076)
1menu "DCCP CCIDs Configuration (EXPERIMENTAL)"
2	depends on EXPERIMENTAL
3
4config IP_DCCP_CCID2_DEBUG
5	bool "CCID-2 debugging messages"
6	---help---
7	  Enable CCID-2 specific debugging messages.
8
9	  The debugging output can additionally be toggled by setting the
10	  ccid2_debug parameter to 0 or 1.
11
12	  If in doubt, say N.
13
14config IP_DCCP_CCID3
15	bool "CCID-3 (TCP-Friendly) (EXPERIMENTAL)"
16	def_bool y if (IP_DCCP = y || IP_DCCP = m)
17	---help---
18	  CCID-3 denotes TCP-Friendly Rate Control (TFRC), an equation-based
19	  rate-controlled congestion control mechanism.  TFRC is designed to
20	  be reasonably fair when competing for bandwidth with TCP-like flows,
21	  where a flow is "reasonably fair" if its sending rate is generally
22	  within a factor of two of the sending rate of a TCP flow under the
23	  same conditions.  However, TFRC has a much lower variation of
24	  throughput over time compared with TCP, which makes CCID-3 more
25	  suitable than CCID-2 for applications such streaming media where a
26	  relatively smooth sending rate is of importance.
27
28	  CCID-3 is further described in RFC 4342,
29	  http://www.ietf.org/rfc/rfc4342.txt
30
31	  The TFRC congestion control algorithms were initially described in
32	  RFC 5348.
33
34	  This text was extracted from RFC 4340 (sec. 10.2),
35	  http://www.ietf.org/rfc/rfc4340.txt
36
37	  If in doubt, say N.
38
39config IP_DCCP_CCID3_DEBUG
40	bool "CCID-3 debugging messages"
41	depends on IP_DCCP_CCID3
42	---help---
43	  Enable CCID-3 specific debugging messages.
44
45	  The debugging output can additionally be toggled by setting the
46	  ccid3_debug parameter to 0 or 1.
47
48	  If in doubt, say N.
49
50config IP_DCCP_CCID3_RTO
51	  int "Use higher bound for nofeedback timer"
52	  default 100
53	  depends on IP_DCCP_CCID3 && EXPERIMENTAL
54	  ---help---
55	    Use higher lower bound for nofeedback timer expiration.
56
57	    The TFRC nofeedback timer normally expires after the maximum of 4
58	    RTTs and twice the current send interval (RFC 3448, 4.3). On LANs
59	    with a small RTT this can mean a high processing load and reduced
60	    performance, since then the nofeedback timer is triggered very
61	    frequently.
62
63	    This option enables to set a higher lower bound for the nofeedback
64	    value. Values in units of milliseconds can be set here.
65
66	    A value of 0 disables this feature by enforcing the value specified
67	    in RFC 3448. The following values have been suggested as bounds for
68	    experimental use:
69	    	* 16-20ms to match the typical multimedia inter-frame interval
70	    	* 100ms as a reasonable compromise [default]
71	    	* 1000ms corresponds to the lower TCP RTO bound (RFC 2988, 2.4)
72
73	    The default of 100ms is a compromise between a large value for
74	    efficient DCCP implementations, and a small value to avoid disrupting
75	    the network in times of congestion.
76
77	    The purpose of the nofeedback timer is to slow DCCP down when there
78	    is serious network congestion: experimenting with larger values should
79	    therefore not be performed on WANs.
80
81config IP_DCCP_TFRC_LIB
82	def_bool y if IP_DCCP_CCID3
83
84config IP_DCCP_TFRC_DEBUG
85	def_bool y if IP_DCCP_CCID3_DEBUG
86endmenu
87