IBM Support

How to determine if Large Send Offload (LSO)/largesend and Large Receive Offload (LRO)/large_receive are enabled on the SEA

Question & Answer


Question

How can I determine if Large Send Offload (LSO)/largesend and Large Receive Offload (LRO)/large_receive attributes are enabled on the SEA?

Cause

Sometimes, IBM i clients may experience performance problems when LSO is enabled on the IBM i (which is the default), and it is disabled on the SEA.  Since it is on by default on the IBM i, IBM i Support recommends that it should be enabled on the VIOS as well.
This document describes how to determine what the current value is on the SEA and how to enable it, if need be. 
Note: The underlying physical adapter used by the SEA must have LSO enabled too.  If the physical adapter is an etherchannel, you must check the setting for the underlying ent# devices that make up that etherchannel.
The document includes how to determine/change Large Receive Offload (LRO)/large_receive on the SEA and the underlying physical adapter.

Answer

SEA attribute "largesend" enables TCP largesend offload (LSO) capability.
0 = disabled
1 = enabled

Login to the VIOS, as padmin.

To list all SEAs:
$ lsdev -type adapter|grep -i shared
image-20181116094208-1

To determine current value:
$ lsdev -dev <SEA_ent#> -attr largesend
image-20181116094330-4   In this example it is already enabled for the SEA.

To enable it:
$ chdev -dev <SEA_ent#> -attr largesend=1
 

The underlying physical adapter used by the SEA must also have LSO enabled (large_send=yes) for TCP largesend.

To determine the physical adapter used the by SEA, run:
$ lsdev -dev <SEA_ent#> -attr real_adapter
image-20181116094448-5

If the physical adapter is an etherchannel device, you must check the LSO setting for the underlying (ent#) devices that make up that etherchannel.

To determine the physical adapter type, run:
$ lsdev -type adapter|grep ent
image-20190430134537-1
If the physical adapter is an etherchannel, run the following command to determine the ent#s that make up that etherchannel. 
$ lsdev -dev <etherchannel_ent#> -attr
Then check large_send value for those ent devices.

To determine if large_send is enabled on the physical adapter, run:
$ lsdev -dev <ent#> -attr large_send         
image-20181116094626-7  In this case, it is already enabled on the physical adapter.

To enable large_send on the physical adapter:

$ chdev -dev ent# -attr large_send=yes -perm

Reboot VIOS for the change to take effect:
$ shutdown -restart
Large Receive Offload (LRO) on the SEA
To check current value:
$ lsdev -dev <SEA_ent#> -attr large_receive
image-20190927125707-1
To enable it:
$ chdev -dev <SEA_ent#> -attr large_receive=yes

image-20190927125824-2

Similar to largesend, large_receive must also be enabled on the physical adapter used by the SEA.

To determine current value:
$ lsdev -dev ent# -attr large_receive           ->where ent# is the real_adapter used by the SEA
To enable it:
$ chdev -dev ent# -attr large_receive=yes -perm
Reboot VIOS for change to take effect.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSPHKW","label":"PowerVM Virtual I\/O Server"},"Component":"","Platform":[{"code":"PF002","label":"AIX"}],"Version":"VIOS 2.2","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
20 October 2021

UID

ibm10740837