Kconfig 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see the file kconfig-language.txt in the NuttX tools repository.
  4. #
  5. menu "TCP/IP Networking"
  6. config NET_TCP
  7. bool "TCP/IP Networking"
  8. default n
  9. ---help---
  10. Enable or disable TCP networking support.
  11. config NET_TCP_NO_STACK
  12. bool "Disable TCP/IP Stack"
  13. default n
  14. select NET_TCP
  15. ---help---
  16. Build without TCP/IP stack even if TCP networking support enabled.
  17. if NET_TCP && !NET_TCP_NO_STACK
  18. config NET_TCP_KEEPALIVE
  19. bool "TCP/IP Keep-alive support"
  20. default n
  21. select NET_TCPPROTO_OPTIONS
  22. ---help---
  23. Enable support for the SO_KEEPALIVE socket option
  24. config NET_TCPURGDATA
  25. bool "Urgent data"
  26. default n
  27. ---help---
  28. Determines if support for TCP urgent data notification should be
  29. compiled in. Urgent data (out-of-band data) is a rarely used TCP feature
  30. that is very seldom would be required.
  31. config NET_TCP_CONNS
  32. int "Number of TCP/IP connections"
  33. default 8
  34. ---help---
  35. Maximum number of TCP/IP connections (all tasks)
  36. config NET_TCP_RTO
  37. int "RTO of TCP/IP connections"
  38. default 3
  39. ---help---
  40. RTO of TCP/IP connections (all tasks)
  41. config NET_TCP_WAIT_TIMEOUT
  42. int "TIME_WAIT Length of TCP/IP connections"
  43. default 120
  44. ---help---
  45. TIME_WAIT Length of TCP/IP connections (all tasks). In units
  46. of seconds.
  47. config NET_MAX_LISTENPORTS
  48. int "Number of listening ports"
  49. default 20
  50. ---help---
  51. Maximum number of listening TCP/IP ports (all tasks). Default: 20
  52. config TCP_NOTIFIER
  53. bool "Support TCP notifications"
  54. default n
  55. depends on SCHED_WORKQUEUE
  56. select WQUEUE_NOTIFIER
  57. ---help---
  58. Enable building of TCP notifier logic that will execute a worker
  59. function on the low priority work queue when read-ahead data
  60. is available or when a TCP connection is lost. This is is a general
  61. purpose notifier, but was developed specifically to support poll()
  62. logic where the poll must wait for these events.
  63. config NET_TCP_READAHEAD
  64. bool "Enable TCP/IP read-ahead buffering"
  65. default y
  66. select NET_READAHEAD
  67. select MM_IOB
  68. ---help---
  69. Read-ahead buffers allows buffering of TCP/IP packets when there is no
  70. receive in place to catch the TCP packet. In that case, the packet
  71. will be retained in the NuttX read-ahead buffers.
  72. You might want to disable TCP/IP read-ahead buffering on a highly
  73. memory constrained system that does not have any TCP/IP packet rate
  74. issues. But, if disabled, there will probably be more packet
  75. retransmissions or even packet loss.
  76. Make sure that you check the setting in the I/O Buffering menu.
  77. These settings are critical to the reasonable operation of read-
  78. ahead buffering.
  79. config NET_TCP_WRITE_BUFFERS
  80. bool "Enable TCP/IP write buffering"
  81. default n
  82. select NET_WRITE_BUFFERS
  83. select MM_IOB
  84. ---help---
  85. Write buffers allows buffering of ongoing TCP/IP packets, providing
  86. for higher performance, streamed output.
  87. You might want to disable TCP/IP write buffering on a highly memory
  88. memory constrained system where there are no performance issues.
  89. if NET_TCP_WRITE_BUFFERS
  90. config NET_TCP_NWRBCHAINS
  91. int "Number of pre-allocated I/O buffer chain heads"
  92. default 8
  93. ---help---
  94. These tiny nodes are used as "containers" to support queuing of
  95. TCP write buffers. This setting will limit the number of TCP write
  96. operations that can be "in-flight" at any give time. So a good
  97. choice for this value would be the same as the maximum number of
  98. TCP connections.
  99. config NET_TCP_WRBUFFER_DEBUG
  100. bool "Force write buffer debug"
  101. default n
  102. depends on DEBUG_FEATURES
  103. select IOB_DEBUG
  104. ---help---
  105. This option will force debug output from TCP write buffer logic,
  106. even without network debug output. This is not normally something
  107. that would want to do but is convenient if you are debugging the
  108. write buffer logic and do not want to get overloaded with other
  109. network-related debug output.
  110. config NET_TCP_WRBUFFER_DUMP
  111. bool "Force write buffer dump"
  112. default n
  113. depends on DEBUG_NET || NET_TCP_WRBUFFER_DEBUG
  114. select IOB_DEBUG
  115. ---help---
  116. Dump the contents of the write buffers. You do not want to do this
  117. unless you really want to analyze the write buffer transfers in
  118. detail.
  119. endif # NET_TCP_WRITE_BUFFERS
  120. config NET_TCP_RECVDELAY
  121. int "TCP Rx delay"
  122. default 0
  123. ---help---
  124. If NET_TCP_READAHEAD_BUFFERS is undefined, then there will be no buffering
  125. of TCP/IP packets: Any TCP/IP packet received will be ACKed, but its contents
  126. will be dropped in the bit-bucket.
  127. One low-performance option is delay for a short period of time after a
  128. TCP/IP packet is received to see if another comes right behind it. Then
  129. the packet data from both can be combined. This option only makes since
  130. if performance is not an issue and you need to handle short bursts of
  131. small, back-to-back packets. The delay is in units of deciseconds.
  132. config NET_TCPBACKLOG
  133. bool "TCP/IP backlog support"
  134. default n
  135. ---help---
  136. Incoming connections pend in a backlog until accept() is called.
  137. The size of the backlog is selected when listen() is called.
  138. if NET_TCPBACKLOG
  139. config NET_TCPBACKLOG_CONNS
  140. int "TCP backlog conns threshold"
  141. default 8
  142. ---help---
  143. Maximum number of TCP backlog connections (all tasks).
  144. endif # NET_TCPBACKLOG
  145. config NET_TCP_SPLIT
  146. bool "Enable packet splitting"
  147. default n
  148. depends on !NET_TCP_WRITE_BUFFERS
  149. ---help---
  150. send() will not return until the transfer has been ACKed by the
  151. recipient. But under RFC 1122, the host need not ACK each packet
  152. immediately; the host may wait for 500 MS before ACKing. This
  153. combination can cause very slow performance with small transfers are
  154. made to an RFC 1122 client. However, the RFC 1122 must ACK at least
  155. every second (odd) packet.
  156. This option enables logic to trick the RFC 1122 host be exploiting
  157. this last RFC 1122 requirement: If an odd number of packets were to
  158. be sent, then send() will split the last even packet to guarantee
  159. that an even number of packets will be sent and the RFC 1122 host
  160. will ACK the final packet immediately.
  161. if NET_TCP_SPLIT
  162. config NET_TCP_SPLIT_SIZE
  163. int "Split size threshold"
  164. default 40
  165. ---help---
  166. Packets of this size or smaller than this will not be split.
  167. endif # NET_TCP_SPLIT
  168. config NET_SENDFILE
  169. bool "Optimized network sendfile()"
  170. default n
  171. ---help---
  172. Support larger, higher performance sendfile() for transferring
  173. files out a TCP connection.
  174. endif # NET_TCP && !NET_TCP_NO_STACK
  175. endmenu # TCP/IP Networking