linux/net/dccp/ccids/Kconfig
<<
>>
Prefs
   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