[PATCH] net: lwip: Fix PBUF_POOL_BUFSIZE when PROT_TCP_LWIP is disabled

Jerome Forissier jerome.forissier at arm.com
Mon Mar 9 09:15:03 CET 2026


Hi Jonas,

On 05/03/2026 23:36, Jonas Karlman wrote:
> The PBUF_POOL_BUFSIZE ends up being only 592 bytes, instead of 1514,
> when PROT_TCP_LWIP Kconfig option is disabled. This results in a full
> Ethernet frame requiring three PBUFs instead of just one.
> 
> This happens because the PBUF_POOL_BUFSIZE constants depends on the
> value of a TCP_MSS constant, something that defaults to 536 when
> PROT_TCP_LWIP=n.
> 
>   PBUF_POOL_BUFSIZE = LWIP_MEM_ALIGN_SIZE(TCP_MSS + 40 + PBUF_LINK_HLEN)
> 
> Ensure that a full Ethernet frame fits inside a single PBUF by moving
> the define of TCP_MSS outside the PROT_TCP_LWIP ifdef block.
> 
> Fixes: 1c41a7afaa15 ("net: lwip: build lwIP")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
>  lib/lwip/u-boot/lwipopts.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/lwip/u-boot/lwipopts.h b/lib/lwip/u-boot/lwipopts.h
> index e8a2c9d7a0a6..96aae3ad1f4f 100644
> --- a/lib/lwip/u-boot/lwipopts.h
> +++ b/lib/lwip/u-boot/lwipopts.h
> @@ -121,9 +121,9 @@
>  #define LWIP_UDP                        0
>  #endif
>  
> +#define TCP_MSS                         1460

LGTM, but I would appreciate a comment here, Something like:

/*
 * PBUF_POOL_BUFSIZE is derived from TCP_MSS even when
 * CONFIG_PROT_TCP_LWIP is not defined
 */

With that:
Acked-by: Jerome Forissier <jerome.forissier at arm.com>

>  #if defined(CONFIG_PROT_TCP_LWIP)
>  #define LWIP_TCP                        1
> -#define TCP_MSS                         1460
>  #define TCP_WND                         CONFIG_LWIP_TCP_WND
>  #define LWIP_WND_SCALE                  1
>  #define TCP_RCV_SCALE                   0x7




More information about the U-Boot mailing list