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