nuttx/net/udp/Kconfig
2023-02-20 09:06:46 +08:00

145 lines
4.3 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menu "UDP Networking"
config NET_UDP
bool "UDP Networking"
default n
select NET_READAHEAD if !NET_UDP_NO_STACK
depends on NET
---help---
Enable or disable UDP networking support.
config NET_UDP_NO_STACK
bool "Disable UDP/IP Stack"
default n
select NET_UDP
---help---
Build without UDP/IP stack even if UDP networking support enabled.
if NET_UDP && !NET_UDP_NO_STACK
config NET_BROADCAST
bool "UDP broadcast Rx support"
default n
---help---
Incoming UDP broadcast support
config NET_UDP_CHECKSUMS
bool "UDP checksums"
default y if NET_IPv6
default n if !NET_IPv6
---help---
Enable/disable UDP checksum support. UDP checksum support is
REQUIRED for IPv6.
config NET_UDP_PREALLOC_CONNS
int "Preallocated UDP sockets"
default 8
---help---
Number of UDP connections (all tasks).
This number of connections will be pre-allocated during system boot.
If dynamic connections allocation is enabled, more connections may
be allocated at a later time, as the system needs them. Else this
will be the maximum number of connections available to the system
at all times.
Set to 0 to disable (and rely only on dynamic allocations).
config NET_UDP_ALLOC_CONNS
int "Dynamic UDP connections allocation"
default 0
---help---
Dynamic memory allocations for UDP.
When set to 0 all dynamic allocations are disabled.
When set to 1 a new connection will be allocated every time,
and it will be free'd when no longer needed.
Setting this to 2 or more will allocate the connections in
batches (with batch size equal to this config). When a
connection is no longer needed, it will be returned to the
free connections pool, and it will never be deallocated!
config NET_UDP_MAX_CONNS
int "Maximum number of UDP connections"
default 0
depends on NET_UDP_ALLOC_CONNS > 0
---help---
If dynamic connections allocation is selected (NET_UDP_ALLOC_CONNS > 0)
this will limit the number of connections that can be allocated.
This is useful in case the system is under very heavy load (or
under attack), ensuring that the heap will not be exhausted.
config NET_UDP_NPOLLWAITERS
int "Number of UDP poll waiters"
default 1
config NET_UDP_WRITE_BUFFERS
bool "Enable UDP/IP write buffering"
default n
select NET_WRITE_BUFFERS
---help---
Write buffers allows buffering of ongoing UDP/IP packets, providing
for higher performance, streamed output.
You might want to disable UDP/IP write buffering on a highly memory
memory constrained system where there are no performance issues.
if NET_UDP_WRITE_BUFFERS
config NET_UDP_NWRBCHAINS
int "Number of pre-allocated I/O buffer chain heads"
default 8
---help---
These tiny nodes are used as "containers" to support queuing of
UDP write buffers. This setting will limit the number of UDP 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
UDP connections.
config NET_UDP_WRBUFFER_DEBUG
bool "Force write buffer debug"
default n
depends on DEBUG_FEATURES
select IOB_DEBUG
---help---
This option will force debug output from UDP write buffer logic,
even without network debug output. This is not normally something
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.
config NET_UDP_WRBUFFER_DUMP
bool "Force write buffer dump"
default n
depends on DEBUG_NET || NET_UDP_WRBUFFER_DEBUG
select IOB_DEBUG
---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.
endif # NET_UDP_WRITE_BUFFERS
config NET_UDP_NOTIFIER
bool "Support UDP read-ahead notifications"
default n
depends on SCHED_WORKQUEUE
select WQUEUE_NOTIFIER
---help---
Enable building of UDP read-ahead notifier logic that will execute a
worker function on the low priority work queue when read-ahead data
is available. This is a general purpose notifier, but was
developed specifically to support poll() logic where the poll must
wait for read-ahead data to become available.
endif # NET_UDP && !NET_UDP_NO_STACK
endmenu # UDP Networking