esp_wifi/lwip: support TCP window scale

Support enable/disable TCP Window scale feature via menuconfig
This commit is contained in:
liu zhifu 2019-05-30 09:41:05 +08:00
parent e681f449bc
commit 6d4adb46f3
4 changed files with 35 additions and 4 deletions

View file

@ -1006,7 +1006,8 @@ menu Wi-Fi
config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM
int "Max number of WiFi dynamic RX buffers" int "Max number of WiFi dynamic RX buffers"
range 0 128 range 0 128 if !LWIP_WND_SCALE
range 0 1024 if LWIP_WND_SCALE
default 32 default 32
help help
Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated

@ -1 +1 @@
Subproject commit eb27c814d5d178698bb45c6ad675c0dce9427fa1 Subproject commit b8b96f985aee155682a2907c6c0f3b693bb43785

View file

@ -148,7 +148,8 @@ menu "LWIP"
config TCPIP_RECVMBOX_SIZE config TCPIP_RECVMBOX_SIZE
int "TCPIP task receive mail box size" int "TCPIP task receive mail box size"
default 32 default 32
range 6 64 range 6 64 if !LWIP_WND_SCALE
range 6 1024 if LWIP_WND_SCALE
help help
Set TCPIP task receive mail box size. Generally bigger value means higher throughput Set TCPIP task receive mail box size. Generally bigger value means higher throughput
but more memory. The value should be bigger than UDP/TCP mail box size. but more memory. The value should be bigger than UDP/TCP mail box size.
@ -339,7 +340,8 @@ menu "LWIP"
config TCP_RECVMBOX_SIZE config TCP_RECVMBOX_SIZE
int "Default TCP receive mail box size" int "Default TCP receive mail box size"
default 6 default 6
range 6 64 range 6 64 if !LWIP_WND_SCALE
range 6 1024 if LWIP_WND_SCALE
help help
Set TCP receive mail box size. Generally bigger value means higher throughput 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 but more memory. The recommended value is: TCP_WND_DEFAULT/TCP_MSS + 2, e.g. if
@ -399,6 +401,21 @@ menu "LWIP"
endchoice endchoice
config LWIP_WND_SCALE
bool "Support TCP window scale"
depends on WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
default n
help
Enable this feature to support TCP window scaling.
config TCP_RCV_SCALE
int "Set TCP receiving window scaling factor"
depends on LWIP_WND_SCALE
range 0 14
default 0
help
Enable this feature to support TCP window scaling.
endmenu # TCP endmenu # TCP
menu "UDP" menu "UDP"

View file

@ -363,6 +363,19 @@
#error "One of CONFIG_TCP_OVERSIZE_xxx options should be set by sdkconfig" #error "One of CONFIG_TCP_OVERSIZE_xxx options should be set by sdkconfig"
#endif #endif
/**
* LWIP_WND_SCALE and TCP_RCV_SCALE:
* Set LWIP_WND_SCALE to 1 to enable window scaling.
* Set TCP_RCV_SCALE to the desired scaling factor (shift count in the
* range of [0..14]).
* When LWIP_WND_SCALE is enabled but TCP_RCV_SCALE is 0, we can use a large
* send window while having a small receive window only.
*/
#ifdef CONFIG_LWIP_WND_SCALE
#define LWIP_WND_SCALE 1
#define TCP_RCV_SCALE CONFIG_TCP_RCV_SCALE
#endif
/* /*
---------------------------------- ----------------------------------
---------- Pbuf options ---------- ---------- Pbuf options ----------