config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM
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
help
Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated
config TCPIP_RECVMBOX_SIZE
int "TCPIP task receive mail box size"
default 32
- range 6 64
+ range 6 64 if !LWIP_WND_SCALE
+ range 6 1024 if LWIP_WND_SCALE
help
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.
config TCP_RECVMBOX_SIZE
int "Default TCP receive mail box size"
default 6
- range 6 64
+ range 6 64 if !LWIP_WND_SCALE
+ range 6 1024 if LWIP_WND_SCALE
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
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
menu "UDP"
#error "One of CONFIG_TCP_OVERSIZE_xxx options should be set by sdkconfig"
#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 ----------