Merge branch 'bugfix/support_tcp_window_scale' into 'master'

esp_wifi/tcpip: support TCP window scale

See merge request idf/esp-idf!5102
This commit is contained in:
Jiang Jiang Jian 2019-06-05 20:08:18 +08:00
commit 3d2b11347d
4 changed files with 35 additions and 4 deletions

View File

@ -61,7 +61,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 LWIP_TCPIP_RECVMBOX_SIZE config LWIP_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.
@ -341,7 +342,8 @@ menu "LWIP"
config LWIP_TCP_RECVMBOX_SIZE config LWIP_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: LWIP_TCP_WND_DEFAULT/TCP_MSS + 2, e.g. if but more memory. The recommended value is: LWIP_TCP_WND_DEFAULT/TCP_MSS + 2, e.g. if
@ -401,6 +403,21 @@ menu "LWIP"
endchoice endchoice
config LWIP_WND_SCALE
bool "Support TCP window scale"
depends on SPIRAM_TRY_ALLOCATE_WIFI_LWIP
default n
help
Enable this feature to support TCP window scaling.
config LWIP_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_LWIP_TCP_RCV_SCALE
#endif
/* /*
---------------------------------- ----------------------------------
---------- Pbuf options ---------- ---------- Pbuf options ----------