fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / net / dccp / ccids / Kconfig
index 7684d83..80f4698 100644 (file)
@@ -1,9 +1,54 @@
 menu "DCCP CCIDs Configuration (EXPERIMENTAL)"
        depends on IP_DCCP && EXPERIMENTAL
 
+config IP_DCCP_CCID2
+       tristate "CCID2 (TCP-Like) (EXPERIMENTAL)"
+       depends on IP_DCCP
+       def_tristate IP_DCCP
+       select IP_DCCP_ACKVEC
+       ---help---
+         CCID 2, TCP-like Congestion Control, denotes Additive Increase,
+         Multiplicative Decrease (AIMD) congestion control with behavior
+         modelled directly on TCP, including congestion window, slow start,
+         timeouts, and so forth [RFC 2581].  CCID 2 achieves maximum
+         bandwidth over the long term, consistent with the use of end-to-end
+         congestion control, but halves its congestion window in response to
+         each congestion event.  This leads to the abrupt rate changes
+         typical of TCP.  Applications should use CCID 2 if they prefer
+         maximum bandwidth utilization to steadiness of rate.  This is often
+         the case for applications that are not playing their data directly
+         to the user.  For example, a hypothetical application that
+         transferred files over DCCP, using application-level retransmissions
+         for lost packets, would prefer CCID 2 to CCID 3.  On-line games may
+         also prefer CCID 2.
+
+         CCID 2 is further described in RFC 4341,
+         http://www.ietf.org/rfc/rfc4341.txt
+
+         This text was extracted from RFC 4340 (sec. 10.1),
+         http://www.ietf.org/rfc/rfc4340.txt
+
+         To compile this CCID as a module, choose M here: the module will be
+         called dccp_ccid2.
+
+         If in doubt, say M.
+
+config IP_DCCP_CCID2_DEBUG
+         bool "CCID2 debugging messages"
+         depends on IP_DCCP_CCID2
+         ---help---
+           Enable CCID2-specific debugging messages.
+
+           When compiling CCID2 as a module, this debugging output can
+           additionally be toggled by setting the ccid2_debug module
+           parameter to 0 or 1.
+
+           If in doubt, say N.
+
 config IP_DCCP_CCID3
-       tristate "CCID3 (TFRC) (EXPERIMENTAL)"
+       tristate "CCID3 (TCP-Friendly) (EXPERIMENTAL)"
        depends on IP_DCCP
+       def_tristate IP_DCCP
        ---help---
          CCID 3 denotes TCP-Friendly Rate Control (TFRC), an equation-based
          rate-controlled congestion control mechanism.  TFRC is designed to
@@ -15,15 +60,66 @@ config IP_DCCP_CCID3
          suitable than CCID 2 for applications such streaming media where a
          relatively smooth sending rate is of importance.
 
-         CCID 3 is further described in [CCID 3 PROFILE]. The TFRC
-         congestion control algorithms were initially described in RFC 3448.
+         CCID 3 is further described in RFC 4342,
+         http://www.ietf.org/rfc/rfc4342.txt
+
+         The TFRC congestion control algorithms were initially described in
+         RFC 3448.
 
-         This text was extracted from draft-ietf-dccp-spec-11.txt.
+         This text was extracted from RFC 4340 (sec. 10.2),
+         http://www.ietf.org/rfc/rfc4340.txt
          
+         To compile this CCID as a module, choose M here: the module will be
+         called dccp_ccid3.
+
          If in doubt, say M.
 
 config IP_DCCP_TFRC_LIB
        depends on IP_DCCP_CCID3
        def_tristate IP_DCCP_CCID3
 
+config IP_DCCP_CCID3_DEBUG
+         bool "CCID3 debugging messages"
+         depends on IP_DCCP_CCID3
+         ---help---
+           Enable CCID3-specific debugging messages.
+
+           When compiling CCID3 as a module, this debugging output can
+           additionally be toggled by setting the ccid3_debug module
+           parameter to 0 or 1.
+
+           If in doubt, say N.
+
+config IP_DCCP_CCID3_RTO
+         int "Use higher bound for nofeedback timer"
+         default 100
+         depends on IP_DCCP_CCID3 && EXPERIMENTAL
+         ---help---
+           Use higher lower bound for nofeedback timer expiration.
+
+           The TFRC nofeedback timer normally expires after the maximum of 4
+           RTTs and twice the current send interval (RFC 3448, 4.3). On LANs
+           with a small RTT this can mean a high processing load and reduced
+           performance, since then the nofeedback timer is triggered very
+           frequently.
+
+           This option enables to set a higher lower bound for the nofeedback
+           value. Values in units of milliseconds can be set here.
+
+           A value of 0 disables this feature by enforcing the value specified
+           in RFC 3448. The following values have been suggested as bounds for
+           experimental use:
+               * 16-20ms to match the typical multimedia inter-frame interval
+               * 100ms as a reasonable compromise [default]
+               * 1000ms corresponds to the lower TCP RTO bound (RFC 2988, 2.4)
+
+           The default of 100ms is a compromise between a large value for
+           efficient DCCP implementations, and a small value to avoid disrupting
+           the network in times of congestion.
+
+           The purpose of the nofeedback timer is to slow DCCP down when there
+           is serious network congestion: experimenting with larger values should
+           therefore not be performed on WANs.
+
+
 endmenu