2014-06-19 01:45:55 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
2015-06-28 22:08:57 +08:00
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
2014-06-19 01:45:55 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
menu "TCP/IP Networking"
|
|
|
|
|
|
|
|
config NET_TCP
|
|
|
|
bool "TCP/IP Networking"
|
|
|
|
default n
|
2020-01-11 11:56:03 +08:00
|
|
|
select NET_READAHEAD if !NET_TCP_NO_STACK
|
2014-06-19 01:45:55 +08:00
|
|
|
---help---
|
2017-03-31 22:58:14 +08:00
|
|
|
Enable or disable TCP networking support.
|
2014-06-19 01:45:55 +08:00
|
|
|
|
2017-03-31 22:58:14 +08:00
|
|
|
config NET_TCP_NO_STACK
|
|
|
|
bool "Disable TCP/IP Stack"
|
|
|
|
default n
|
|
|
|
select NET_TCP
|
|
|
|
---help---
|
|
|
|
Build without TCP/IP stack even if TCP networking support enabled.
|
|
|
|
|
|
|
|
if NET_TCP && !NET_TCP_NO_STACK
|
2014-06-19 01:45:55 +08:00
|
|
|
|
2019-12-09 03:13:51 +08:00
|
|
|
config NET_TCP_DELAYED_ACK
|
|
|
|
bool "TCP/IP Delayed ACK"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
RFC 1122: A host that is receiving a stream of TCP data segments
|
|
|
|
can increase efficiency in both the Internet and the hosts
|
|
|
|
by sending fewer than one ACK (acknowledgment) segment per data
|
|
|
|
segment received; this is known as a "delayed ACK".
|
|
|
|
|
|
|
|
TCP should implement a delayed ACK, but an ACK should not be
|
|
|
|
excessively delayed; in particular, the delay MUST be less than
|
|
|
|
0.5 seconds, and in a stream of full-sized segments there should
|
|
|
|
be an ACK for at least every second segments.
|
|
|
|
|
2018-03-13 00:59:46 +08:00
|
|
|
config NET_TCP_KEEPALIVE
|
|
|
|
bool "TCP/IP Keep-alive support"
|
|
|
|
default n
|
|
|
|
select NET_TCPPROTO_OPTIONS
|
|
|
|
---help---
|
|
|
|
Enable support for the SO_KEEPALIVE socket option
|
|
|
|
|
2014-06-19 01:45:55 +08:00
|
|
|
config NET_TCPURGDATA
|
|
|
|
bool "Urgent data"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Determines if support for TCP urgent data notification should be
|
|
|
|
compiled in. Urgent data (out-of-band data) is a rarely used TCP feature
|
|
|
|
that is very seldom would be required.
|
|
|
|
|
|
|
|
config NET_TCP_CONNS
|
|
|
|
int "Number of TCP/IP connections"
|
|
|
|
default 8
|
|
|
|
---help---
|
|
|
|
Maximum number of TCP/IP connections (all tasks)
|
|
|
|
|
2019-12-31 23:26:14 +08:00
|
|
|
config NET_TCP_NPOLLWAITERS
|
|
|
|
int "Number of TCP poll waiters"
|
|
|
|
default 1
|
|
|
|
|
2019-08-27 01:03:27 +08:00
|
|
|
config NET_TCP_RTO
|
|
|
|
int "RTO of TCP/IP connections"
|
|
|
|
default 3
|
|
|
|
---help---
|
|
|
|
RTO of TCP/IP connections (all tasks)
|
|
|
|
|
|
|
|
config NET_TCP_WAIT_TIMEOUT
|
|
|
|
int "TIME_WAIT Length of TCP/IP connections"
|
|
|
|
default 120
|
|
|
|
---help---
|
2019-11-24 23:19:54 +08:00
|
|
|
TIME_WAIT Length of TCP/IP connections (all tasks). In units
|
|
|
|
of seconds.
|
2019-08-27 01:03:27 +08:00
|
|
|
|
2014-06-19 01:45:55 +08:00
|
|
|
config NET_MAX_LISTENPORTS
|
|
|
|
int "Number of listening ports"
|
|
|
|
default 20
|
|
|
|
---help---
|
|
|
|
Maximum number of listening TCP/IP ports (all tasks). Default: 20
|
|
|
|
|
2019-12-31 23:26:14 +08:00
|
|
|
config NET_TCP_NOTIFIER
|
2018-09-10 07:32:10 +08:00
|
|
|
bool "Support TCP notifications"
|
|
|
|
default n
|
2019-01-28 01:02:56 +08:00
|
|
|
depends on SCHED_WORKQUEUE
|
2018-09-11 21:22:23 +08:00
|
|
|
select WQUEUE_NOTIFIER
|
2018-09-10 07:32:10 +08:00
|
|
|
---help---
|
|
|
|
Enable building of TCP notifier logic that will execute a worker
|
2018-09-11 21:22:23 +08:00
|
|
|
function on the low priority work queue when read-ahead data
|
2018-09-10 07:32:10 +08:00
|
|
|
is available or when a TCP connection is lost. This is is a general
|
|
|
|
purpose notifier, but was developed specifically to support poll()
|
|
|
|
logic where the poll must wait for these events.
|
|
|
|
|
2014-06-19 01:45:55 +08:00
|
|
|
config NET_TCP_WRITE_BUFFERS
|
|
|
|
bool "Enable TCP/IP write buffering"
|
|
|
|
default n
|
2018-01-23 08:32:02 +08:00
|
|
|
select NET_WRITE_BUFFERS
|
2014-06-19 01:45:55 +08:00
|
|
|
---help---
|
|
|
|
Write buffers allows buffering of ongoing TCP/IP packets, providing
|
|
|
|
for higher performance, streamed output.
|
|
|
|
|
|
|
|
You might want to disable TCP/IP write buffering on a highly memory
|
|
|
|
memory constrained system where there are no performance issues.
|
|
|
|
|
|
|
|
if NET_TCP_WRITE_BUFFERS
|
|
|
|
|
2014-06-23 01:27:57 +08:00
|
|
|
config NET_TCP_NWRBCHAINS
|
|
|
|
int "Number of pre-allocated I/O buffer chain heads"
|
2014-06-19 01:45:55 +08:00
|
|
|
default 8
|
|
|
|
---help---
|
2018-01-23 08:32:02 +08:00
|
|
|
These tiny nodes are used as "containers" to support queuing of
|
2014-06-23 01:27:57 +08:00
|
|
|
TCP write buffers. This setting will limit the number of TCP write
|
|
|
|
operations that can be "in-flight" at any give time. So a good
|
|
|
|
choice for this value would be the same as the maximum number of
|
|
|
|
TCP connections.
|
2014-06-19 01:45:55 +08:00
|
|
|
|
|
|
|
config NET_TCP_WRBUFFER_DEBUG
|
|
|
|
bool "Force write buffer debug"
|
|
|
|
default n
|
2016-06-12 04:14:08 +08:00
|
|
|
depends on DEBUG_FEATURES
|
2014-06-25 01:53:19 +08:00
|
|
|
select IOB_DEBUG
|
2014-06-19 01:45:55 +08:00
|
|
|
---help---
|
|
|
|
This option will force debug output from TCP write buffer logic,
|
2014-06-23 06:25:26 +08:00
|
|
|
even without network debug output. This is not normally something
|
2014-06-19 01:45:55 +08:00
|
|
|
that would want to do but is convenient if you are debugging the
|
|
|
|
write buffer logic and do not want to get overloaded with other
|
|
|
|
network-related debug output.
|
|
|
|
|
2014-06-23 08:53:18 +08:00
|
|
|
config NET_TCP_WRBUFFER_DUMP
|
|
|
|
bool "Force write buffer dump"
|
|
|
|
default n
|
|
|
|
depends on DEBUG_NET || NET_TCP_WRBUFFER_DEBUG
|
2014-06-25 01:53:19 +08:00
|
|
|
select IOB_DEBUG
|
2014-06-23 08:53:18 +08:00
|
|
|
---help---
|
|
|
|
Dump the contents of the write buffers. You do not want to do this
|
|
|
|
unless you really want to analyze the write buffer transfers in
|
|
|
|
detail.
|
|
|
|
|
2014-06-19 01:45:55 +08:00
|
|
|
endif # NET_TCP_WRITE_BUFFERS
|
|
|
|
|
|
|
|
config NET_TCPBACKLOG
|
|
|
|
bool "TCP/IP backlog support"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Incoming connections pend in a backlog until accept() is called.
|
|
|
|
The size of the backlog is selected when listen() is called.
|
|
|
|
|
2018-11-10 01:20:33 +08:00
|
|
|
if NET_TCPBACKLOG
|
|
|
|
|
|
|
|
config NET_TCPBACKLOG_CONNS
|
|
|
|
int "TCP backlog conns threshold"
|
|
|
|
default 8
|
|
|
|
---help---
|
|
|
|
Maximum number of TCP backlog connections (all tasks).
|
|
|
|
|
|
|
|
endif # NET_TCPBACKLOG
|
|
|
|
|
2014-06-19 01:45:55 +08:00
|
|
|
config NET_TCP_SPLIT
|
|
|
|
bool "Enable packet splitting"
|
|
|
|
default n
|
|
|
|
depends on !NET_TCP_WRITE_BUFFERS
|
|
|
|
---help---
|
|
|
|
send() will not return until the transfer has been ACKed by the
|
|
|
|
recipient. But under RFC 1122, the host need not ACK each packet
|
|
|
|
immediately; the host may wait for 500 MS before ACKing. This
|
|
|
|
combination can cause very slow performance with small transfers are
|
|
|
|
made to an RFC 1122 client. However, the RFC 1122 must ACK at least
|
|
|
|
every second (odd) packet.
|
|
|
|
|
|
|
|
This option enables logic to trick the RFC 1122 host be exploiting
|
|
|
|
this last RFC 1122 requirement: If an odd number of packets were to
|
|
|
|
be sent, then send() will split the last even packet to guarantee
|
|
|
|
that an even number of packets will be sent and the RFC 1122 host
|
|
|
|
will ACK the final packet immediately.
|
|
|
|
|
|
|
|
if NET_TCP_SPLIT
|
|
|
|
|
|
|
|
config NET_TCP_SPLIT_SIZE
|
|
|
|
int "Split size threshold"
|
|
|
|
default 40
|
|
|
|
---help---
|
|
|
|
Packets of this size or smaller than this will not be split.
|
|
|
|
|
|
|
|
endif # NET_TCP_SPLIT
|
|
|
|
|
|
|
|
config NET_SENDFILE
|
|
|
|
bool "Optimized network sendfile()"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Support larger, higher performance sendfile() for transferring
|
|
|
|
files out a TCP connection.
|
|
|
|
|
2017-03-31 22:58:14 +08:00
|
|
|
endif # NET_TCP && !NET_TCP_NO_STACK
|
2014-06-19 01:45:55 +08:00
|
|
|
endmenu # TCP/IP Networking
|