mirror of
https://github.com/esphome/esphome.git
synced 2026-02-25 12:55:30 -07:00
The Beken/RTL SDKs ship lwIP defaults tuned for a general-purpose WiFi SoC: TCP_SND_BUF=10*MSS (14.6KB), MEM_SIZE=32KB, 12 TCP + 22 UDP sockets. These waste significant RAM on memory-constrained chips. ESPAsyncWebServer allocates malloc(tcp_sndbuf()) per response chunk, and at 14.6KB this causes OOM on BK7231N. This tunes lwIP to match ESP32/ESP8266 ranges: - TCP_SND_BUF/TCP_WND: 4*MSS (was 10*MSS) - MEM_SIZE: 12KB BK72XX / 16KB RTL,LN (was 32KB) - Socket counts: dynamic from component registrations - All derived pool sizes adjusted accordingly Also splits socket consumer tracking into TCP/UDP, adds get_socket_counts() API, and updates ESP32 to use it. Closes https://github.com/esphome/esphome/issues/14095