Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
Re: Turn SoftLRO default on in bnxt/ice/ixl(4)
To:
Jan Klemkow <jan@openbsd.org>
Cc:
tech@openbsd.org
Date:
Mon, 27 Oct 2025 20:14:30 +0100

Download raw body.

Thread
On Mon, Oct 27, 2025 at 04:13:19PM +0100, Jan Klemkow wrote:
> Hi,
> 
> this diff turns SoftLRO default on in bnxt(4), ice(4) and ixl(4).
> Successfully tested on our hardware and on various ixl(4) Firmware
> Versions.  We should enabled this now, to get more feedback.
> 
> ok?

I am runinng all my tests with LRO turned on.  In my lab it works
since April 2025.  Time to hit real world traffic.

OK bluhm@

> diff --git a/sys/dev/pci/if_bnxt.c b/sys/dev/pci/if_bnxt.c
> index cfa5c59544f..64354b39327 100644
> --- a/sys/dev/pci/if_bnxt.c
> +++ b/sys/dev/pci/if_bnxt.c
> @@ -650,7 +650,8 @@ bnxt_attach(struct device *parent, struct device *self, void *aux)
>  #if NVLAN > 0
>  	ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
>  #endif
> -	ifp->if_capabilities |= IFCAP_LRO;	
> +	ifp->if_capabilities |= IFCAP_LRO;
> +	ifp->if_xflags |= IFXF_LRO;
>  
>  	ifq_init_maxlen(&ifp->if_snd, 1024);	/* ? */
>  
> diff --git a/sys/dev/pci/if_ice.c b/sys/dev/pci/if_ice.c
> index 6131a83a9aa..cd5e0ec4f99 100644
> --- a/sys/dev/pci/if_ice.c
> +++ b/sys/dev/pci/if_ice.c
> @@ -30668,10 +30668,7 @@ ice_attach_hook(struct device *self)
>  	    IFCAP_CSUM_TCPv6 | IFCAP_CSUM_UDPv6 |
>  	    IFCAP_TSOv4 | IFCAP_TSOv6;
>  	ifp->if_capabilities |= IFCAP_LRO;
> -#if notyet
> -	/* for now tcplro at ice(4) is default off */
>  	ifp->if_xflags |= IFXF_LRO;
> -#endif
>  
>  	if_attach(ifp);
>  	ether_ifattach(ifp);
> diff --git a/sys/dev/pci/if_ixl.c b/sys/dev/pci/if_ixl.c
> index 267594a67fa..74283a61884 100644
> --- a/sys/dev/pci/if_ixl.c
> +++ b/sys/dev/pci/if_ixl.c
> @@ -1931,10 +1931,7 @@ ixl_attach(struct device *parent, struct device *self, void *aux)
>  	ifp->if_capabilities |= IFCAP_TSOv4 | IFCAP_TSOv6;
>  
>  	ifp->if_capabilities |= IFCAP_LRO;
> -#if notyet
> -	/* for now tcplro at ixl(4) is default off */
>  	ifp->if_xflags |= IFXF_LRO;
> -#endif
>  
>  	ifmedia_init(&sc->sc_media, 0, ixl_media_change, ixl_media_status);
>