diff options
| author | Pranav Tilak <[email protected]> | 2026-03-10 18:28:25 +0530 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-03-13 10:52:02 -0600 |
| commit | 67586012490a4b2b4db6b79647aaf946f03eb767 (patch) | |
| tree | 2a6bb5918dc1275df53d9cc98db78e83a4426cae /lib | |
| parent | b3ee14ea6d233a507a7983ccb5f1328cc8d683c2 (diff) | |
net: lwip: scale buffer pool size with TFTP block size
TFTP transfers fail when tftpblocksize is set to 8192 or larger due to
insufficient buffer resources for IP fragment reassembly.
Calculate PBUF_POOL_SIZE and IP_REASS_MAX_PBUFS dynamically based on
CONFIG_TFTP_BLOCKSIZE using IP fragmentation boundaries (1480 usable
bytes per fragment at 1500 MTU). The pool size includes headroom for
TX, ARP, and protocol overhead, while ensuring PBUF_POOL_SIZE remains
greater than IP_REASS_MAX_PBUFS as required by lwIP.
Signed-off-by: Pranav Tilak <[email protected]>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/lwip/u-boot/lwipopts.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/lwip/u-boot/lwipopts.h b/lib/lwip/u-boot/lwipopts.h index 1550870fa86..8dae004f1a2 100644 --- a/lib/lwip/u-boot/lwipopts.h +++ b/lib/lwip/u-boot/lwipopts.h @@ -65,7 +65,21 @@ #define MEM_ALIGNMENT 8 #define MEMP_NUM_TCP_SEG 16 + +/* IP fragmentation parameters for TFTP reassembly */ +#define IP_FRAG_MTU_USABLE 1480 +#define PBUF_POOL_HEADROOM 6 +#define PBUF_POOL_RESERVE 4 +#define TFTP_BLOCKSIZE_THRESHOLD 4096 + +#if defined(CONFIG_TFTP_BLOCKSIZE) && (CONFIG_TFTP_BLOCKSIZE > TFTP_BLOCKSIZE_THRESHOLD) +#define PBUF_POOL_SIZE (((CONFIG_TFTP_BLOCKSIZE + (IP_FRAG_MTU_USABLE - 1)) / \ + IP_FRAG_MTU_USABLE) + PBUF_POOL_HEADROOM) +#define IP_REASS_MAX_PBUFS (PBUF_POOL_SIZE - PBUF_POOL_RESERVE) +#else #define PBUF_POOL_SIZE 8 +#define IP_REASS_MAX_PBUFS 4 +#endif #define LWIP_ARP 1 #define ARP_TABLE_SIZE 4 @@ -76,7 +90,7 @@ #define IP_REASSEMBLY 1 #define IP_FRAG 1 #define IP_REASS_MAXAGE 3 -#define IP_REASS_MAX_PBUFS 4 + #define IP_FRAG_USES_STATIC_BUF 0 #define IP_DEFAULT_TTL 255 |
