Kconfig 4.6 KB

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