mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-06-02 02:10:19 +08:00
Merge branch 'feature/add_lwip_menuconfig' into 'feature/update_lwip'
feat(lwip): Modify lwipopts and add menunconfig See merge request sdk/ESP8266_RTOS_SDK!116
This commit is contained in:
482
components/lwip/Kconfig
Executable file
482
components/lwip/Kconfig
Executable file
@ -0,0 +1,482 @@
|
||||
menu "LWIP"
|
||||
|
||||
menuconfig LWIP_DEBUG
|
||||
bool "Enable lwip Debug"
|
||||
default n
|
||||
|
||||
config LWIP_ETHARP_DEBUG
|
||||
bool "Enable debugging in etharp.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_NETIF_DEBUG
|
||||
bool "Enable debugging in netif.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_PBUF_DEBUG
|
||||
bool "Enable debugging in pbuf.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_API_LIB_DEBUG
|
||||
bool "Enable debugging in api_lib.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_API_MSG_DEBUG
|
||||
bool "Enable debugging in api_msg.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_SOCKETS_DEBUG
|
||||
bool "Enable debugging in sockets.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_ICMP_DEBUG
|
||||
bool "Enable debugging in icmp.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_IGMP_DEBUG
|
||||
bool "Enable debugging in igmp.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_INET_DEBUG
|
||||
bool "Enable debugging in inet.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_ETHERNETIF_DEBUG
|
||||
bool "Enable debugging in ethernetif.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_IP_DEBUG
|
||||
bool "Enable debugging for IP"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_IP_REASS_DEBUG
|
||||
bool "Enable debugging in ip_frag.c for both frag & reass"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_RAW_DEBUG
|
||||
bool "Enable debugging in raw.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_MEM_DEBUG
|
||||
bool "Enable debugging in mem.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_MEMP_DEBUG
|
||||
bool "Enable debugging in memp.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_SYS_DEBUG
|
||||
bool "Enable debugging in sys.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TIMERS_DEBUG
|
||||
bool "Enable debugging in timers.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_DEBUG
|
||||
bool "Enable debugging for TCP"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_INPUT_DEBUG
|
||||
bool "Enable debugging in tcp_in.c for incoming debug"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_FR_DEBUG
|
||||
bool "Enable debugging in tcp_in.c for fast retransmit"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_RTO_DEBUG
|
||||
bool "Enable debugging in TCP for retransmit"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_CWND_DEBUG
|
||||
bool "Enable debugging for TCP congestion window"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_WND_DEBUG
|
||||
bool "Enable debugging in tcp_in.c for window updating"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_OUTPUT_DEBUG
|
||||
bool "Enable debugging in tcp_out.c output functions"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_RST_DEBUG
|
||||
bool "Enable debugging for TCP with the RST message"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCP_QLEN_DEBUG
|
||||
bool "Enable debugging for TCP queue lengths"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_UDP_DEBUG
|
||||
bool "Enable debugging in UDP"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_TCPIP_DEBUG
|
||||
bool "Enable debugging in tcpip.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_SLIP_DEBUG
|
||||
bool "Enable debugging in slipif.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_DHCP_DEBUG
|
||||
bool "Enable debugging in dhcp.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_DHCP_SERVER_DEBUG
|
||||
bool "Enable debugging in dhcpserver.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_AUTOIP_DEBUG
|
||||
bool "Enable debugging in autoip.c"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_DNS_DEBUG
|
||||
bool "Enable debugging for DNS"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_IP6_DEBUG
|
||||
bool "Enable debugging for IPv6"
|
||||
depends on LWIP_DEBUG
|
||||
default n
|
||||
|
||||
config LWIP_SO_REUSE
|
||||
bool "Enable SO_REUSEADDR option"
|
||||
default n
|
||||
help
|
||||
Enabling this option allows binding to a port which remains in
|
||||
TIME_WAIT.
|
||||
|
||||
config LWIP_SO_REUSE_RXTOALL
|
||||
bool "SO_REUSEADDR copies broadcast/multicast to all matches"
|
||||
depends on LWIP_SO_REUSE
|
||||
default n
|
||||
help
|
||||
Enabling this option means that any incoming broadcast or multicast
|
||||
packet will be copied to all of the local sockets that it matches
|
||||
(may be more than one if SO_REUSEADDR is set on the socket.)
|
||||
|
||||
This increases memory overhead as the packets need to be copied,
|
||||
however they are only copied per matching socket. You can safely
|
||||
disable it if you don't plan to receive broadcast or multicast
|
||||
traffic on more than one socket at a time.
|
||||
|
||||
config LWIP_SO_RCVBUF
|
||||
bool "Enable SO_RCVBUF option"
|
||||
default n
|
||||
help
|
||||
Enabling this option allows checking for available data on a netconn.
|
||||
|
||||
config LWIP_DHCP_MAX_NTP_SERVERS
|
||||
int "Maximum number of NTP servers"
|
||||
default 1
|
||||
range 1 16
|
||||
help
|
||||
Set maximum number of NTP servers used by LwIP SNTP module.
|
||||
First argument of sntp_setserver/sntp_setservername functions
|
||||
is limited to this value.
|
||||
|
||||
config LWIP_IP_FRAG
|
||||
bool "Enable fragment outgoing IP packets"
|
||||
default n
|
||||
help
|
||||
Enabling this option allows fragmenting outgoing IP packets if their size
|
||||
exceeds MTU.
|
||||
|
||||
config LWIP_IP_REASSEMBLY
|
||||
bool "Enable reassembly incoming fragmented IP packets"
|
||||
default n
|
||||
help
|
||||
Enabling this option allows reassemblying incoming fragmented IP packets.
|
||||
|
||||
config LWIP_STATS
|
||||
bool "Enable LWIP statistics"
|
||||
default n
|
||||
help
|
||||
Enabling this option allows LWIP statistics
|
||||
|
||||
config LWIP_DHCP_DOES_ARP_CHECK
|
||||
bool "DHCP: Perform ARP check on any offered address"
|
||||
default y
|
||||
help
|
||||
Enabling this option performs a check (via ARP request) if the offered IP address
|
||||
is not already in use by another host on the network.
|
||||
|
||||
menuconfig LWIP_AUTOIP
|
||||
bool "Enable IPV4 Link-Local Addressing (AUTOIP)"
|
||||
default n
|
||||
help
|
||||
Enabling this option allows the device to self-assign an address
|
||||
in the 169.256/16 range if none is assigned statically or via DHCP.
|
||||
|
||||
See RFC 3927.
|
||||
|
||||
config LWIP_DHCP_AUTOIP_COOP_TRIES
|
||||
int "DHCP Probes before self-assigning IPv4 LL address"
|
||||
range 1 100
|
||||
default 9
|
||||
depends on LWIP_AUTOIP
|
||||
help
|
||||
DHCP client will send this many probes before self-assigning a
|
||||
link local address.
|
||||
|
||||
From LWIP help: "This can be set as low as 1 to get an AutoIP
|
||||
address very quickly, but you should be prepared to handle a
|
||||
changing IP address when DHCP overrides AutoIP."
|
||||
|
||||
menuconfig LWIP_NETIF_LOOPBACK
|
||||
bool "Support per-interface loopback"
|
||||
default n
|
||||
help
|
||||
Enabling this option means that if a packet is sent with a destination
|
||||
address equal to the interface's own IP address, it will "loop back" and
|
||||
be received by this interface.
|
||||
|
||||
config LWIP_LOOPBACK_MAX_PBUFS
|
||||
int "Max queued loopback packets per interface"
|
||||
range 0 16
|
||||
default 0
|
||||
depends on LWIP_NETIF_LOOPBACK
|
||||
help
|
||||
Configure the maximum number of packets which can be queued for
|
||||
loopback on a given interface. Reducing this number may cause packets
|
||||
to be dropped, but will avoid filling memory with queued packet data.
|
||||
|
||||
menu "TCP"
|
||||
|
||||
config LWIP_MAX_ACTIVE_TCP
|
||||
int "Maximum active TCP Connections"
|
||||
range 1 1024
|
||||
default 5
|
||||
help
|
||||
The maximum number of simultaneously active TCP
|
||||
connections. The practical maximum limit is
|
||||
determined by available heap memory at runtime.
|
||||
|
||||
Changing this value by itself does not substantially
|
||||
change the memory usage of LWIP, except for preventing
|
||||
new TCP connections after the limit is reached.
|
||||
|
||||
config LWIP_MAX_LISTENING_TCP
|
||||
int "Maximum listening TCP Connections"
|
||||
range 1 1024
|
||||
default 8
|
||||
help
|
||||
The maximum number of simultaneously listening TCP
|
||||
connections. The practical maximum limit is
|
||||
determined by available heap memory at runtime.
|
||||
|
||||
Changing this value by itself does not substantially
|
||||
change the memory usage of LWIP, except for preventing
|
||||
new listening TCP connections after the limit is reached.
|
||||
|
||||
|
||||
config TCP_MAXRTX
|
||||
int "Maximum number of retransmissions of data segments"
|
||||
default 12
|
||||
range 3 12
|
||||
help
|
||||
Set maximum number of retransmissions of data segments.
|
||||
|
||||
config TCP_SYNMAXRTX
|
||||
int "Maximum number of retransmissions of SYN segments"
|
||||
default 6
|
||||
range 3 12
|
||||
help
|
||||
Set maximum number of retransmissions of SYN segments.
|
||||
|
||||
config TCP_MSS
|
||||
int "Maximum Segment Size (MSS)"
|
||||
default 1460
|
||||
range 536 1460
|
||||
help
|
||||
Set maximum segment size for TCP transmission.
|
||||
|
||||
Can be set lower to save RAM, the default value 1436 will give best throughput.
|
||||
|
||||
config TCP_SND_BUF_DEFAULT
|
||||
int "Default send buffer size"
|
||||
default 2920 # 2 * default MSS
|
||||
range 2920 65535
|
||||
help
|
||||
Set default send buffer size for new TCP sockets.
|
||||
|
||||
Per-socket send buffer size can be changed at runtime
|
||||
with lwip_setsockopt(s, TCP_SNDBUF, ...).
|
||||
|
||||
This value must be at least 2x the MSS size, and the default
|
||||
is 4x the default MSS size.
|
||||
|
||||
Setting a smaller default SNDBUF size can save some RAM, but
|
||||
will decrease performance.
|
||||
|
||||
config TCP_WND_DEFAULT
|
||||
int "Default receive window size"
|
||||
default 5840 # 4 * default MSS
|
||||
range 2920 65535
|
||||
help
|
||||
Set default TCP receive window size for new TCP sockets.
|
||||
|
||||
Per-socket receive window size can be changed at runtime
|
||||
with lwip_setsockopt(s, TCP_WINDOW, ...).
|
||||
|
||||
Setting a smaller default receive window size can save some RAM,
|
||||
but will significantly decrease performance.
|
||||
|
||||
config TCP_RECVMBOX_SIZE
|
||||
int "Default TCP receive mail box size"
|
||||
default 6
|
||||
range 6 64
|
||||
help
|
||||
Set TCP receive mail box size. Generally bigger value means higher throughput
|
||||
but more memory. The recommended value is: TCP_WND_DEFAULT/TCP_MSS + 2, e.g. if
|
||||
TCP_WND_DEFAULT=14360, TCP_MSS=1436, then the recommended receive mail box size is
|
||||
(14360/1436 + 2) = 12.
|
||||
|
||||
TCP receive mail box is a per socket mail box, when the application receives packets
|
||||
from TCP socket, LWIP core firstly posts the packets to TCP receive mail box and the
|
||||
application then fetches the packets from mail box. It means LWIP can caches maximum
|
||||
TCP_RECCVMBOX_SIZE packets for each TCP socket, so the maximum possible cached TCP packets
|
||||
for all TCP sockets is TCP_RECCVMBOX_SIZE multiples the maximum TCP socket number. In other
|
||||
words, the bigger TCP_RECVMBOX_SIZE means more memory.
|
||||
On the other hand, if the receiv mail box is too small, the mail box may be full. If the
|
||||
mail box is full, the LWIP drops the packets. So generally we need to make sure the TCP
|
||||
receive mail box is big enough to avoid packet drop between LWIP core and application.
|
||||
|
||||
config TCP_QUEUE_OOSEQ
|
||||
bool "Queue incoming out-of-order segments"
|
||||
default n
|
||||
help
|
||||
Queue incoming out-of-order segments for later use.
|
||||
|
||||
Disable this option to save some RAM during TCP sessions, at the expense
|
||||
of increased retransmissions if segments arrive out of order.
|
||||
|
||||
choice TCP_OVERSIZE
|
||||
prompt "Pre-allocate transmit PBUF size"
|
||||
default TCP_OVERSIZE_MSS
|
||||
help
|
||||
Allows enabling "oversize" allocation of TCP transmission pbufs ahead of time,
|
||||
which can reduce the length of pbuf chains used for transmission.
|
||||
|
||||
This will not make a difference to sockets where Nagle's algorithm
|
||||
is disabled.
|
||||
|
||||
Default value of MSS is fine for most applications, 25% MSS may save
|
||||
some RAM when only transmitting small amounts of data. Disabled will
|
||||
have worst performance and fragmentation characteristics, but uses
|
||||
least RAM overall.
|
||||
|
||||
config TCP_OVERSIZE_MSS
|
||||
bool "MSS"
|
||||
config TCP_OVERSIZE_QUARTER_MSS
|
||||
bool "25% MSS"
|
||||
config TCP_OVERSIZE_DISABLE
|
||||
bool "Disabled"
|
||||
|
||||
endchoice
|
||||
|
||||
endmenu # TCP
|
||||
|
||||
menu "UDP"
|
||||
|
||||
config LWIP_MAX_UDP_PCBS
|
||||
int "Maximum active UDP control blocks"
|
||||
range 1 1024
|
||||
default 4
|
||||
help
|
||||
The maximum number of active UDP "connections" (ie
|
||||
UDP sockets sending/receiving data).
|
||||
The practical maximum limit is determined by available
|
||||
heap memory at runtime.
|
||||
|
||||
config UDP_RECVMBOX_SIZE
|
||||
int "Default UDP receive mail box size"
|
||||
default 6
|
||||
range 6 64
|
||||
help
|
||||
Set UDP receive mail box size. The recommended value is 6.
|
||||
|
||||
UDP receive mail box is a per socket mail box, when the application receives packets
|
||||
from UDP socket, LWIP core firstly posts the packets to UDP receive mail box and the
|
||||
application then fetches the packets from mail box. It means LWIP can caches maximum
|
||||
UDP_RECCVMBOX_SIZE packets for each UDP socket, so the maximum possible cached UDP packets
|
||||
for all UDP sockets is UDP_RECCVMBOX_SIZE multiples the maximum UDP socket number. In other
|
||||
words, the bigger UDP_RECVMBOX_SIZE means more memory.
|
||||
On the other hand, if the receiv mail box is too small, the mail box may be full. If the
|
||||
mail box is full, the LWIP drops the packets. So generally we need to make sure the UDP
|
||||
receive mail box is big enough to avoid packet drop between LWIP core and application.
|
||||
|
||||
endmenu # UDP
|
||||
|
||||
config TCPIP_TASK_STACK_SIZE
|
||||
int "TCP/IP Task Stack Size"
|
||||
default 512
|
||||
# for high log levels, tcpip_adapter API calls can end up
|
||||
# a few calls deep and logging there can trigger a stack overflow
|
||||
range 2048 65536 if LOG_DEFAULT_LEVEL < 4
|
||||
range 2560 65536 if LOG_DEFAULT_LEVEL >= 4
|
||||
help
|
||||
Configure TCP/IP task stack size, used by LWIP to process multi-threaded TCP/IP operations.
|
||||
Setting this stack too small will result in stack overflow crashes.
|
||||
|
||||
menu "ICMP"
|
||||
|
||||
config LWIP_MULTICAST_PING
|
||||
bool "Respond to multicast pings"
|
||||
default n
|
||||
|
||||
config LWIP_BROADCAST_PING
|
||||
bool "Respond to broadcast pings"
|
||||
default n
|
||||
|
||||
endmenu # ICMP
|
||||
|
||||
menu "LWIP RAW API"
|
||||
|
||||
config LWIP_MAX_RAW_PCBS
|
||||
int "Maximum LWIP RAW PCBs"
|
||||
range 1 1024
|
||||
default 4
|
||||
help
|
||||
The maximum number of simultaneously active LWIP
|
||||
RAW protocol control blocks. The practical maximum
|
||||
limit is determined by available heap memory at runtime.
|
||||
|
||||
endmenu # LWIP RAW API
|
||||
|
||||
endmenu
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user