Chapter II. Network (NIC/TOE)
doing this, rather than processing every small packet, the receiver CPU works on fewer packet
headers but with same amount of data. This helps reduce the receive host CPU load and improve
throughput in a 40/10Gb network environment where CPU can be the bottleneck.
LRO and GRO are different names to refer to the same receiver packets aggregating feature.
LRO and GRO actually differ in their implementation of the feature in the Linux kernel. The feature
was first added into the Linux kernel in version 2.6.24 and named Large Receive Offload (LRO).
However, LRO only works for TCP and IPv4. As from kernel 2.6.29, a new protocol-independent
implementation removing the limitation is added to Linux, and it is named Generic Receive Offload
(GRO). The old LRO code is still available in the kernel sources but whenever both GRO and
LRO are presented GRO is always the preferred one to use.
Please note that if your Linux system has IP forwarding enabled, i.e. acting as a bridge or router,
the LRO needs to be disabled. This is due to a known kernel issue.
Chelsio's card supports both hardware assisted GRO/LRO and Linux-based GRO/LRO.
is the kernel module that enables the hardware assisted GRO/LRO. If it is not already in the
kernel module list, use the following command to insert it:
[root@host~]# lsmod | grep t4_tom
[root@host~]# modprobe t4_tom
[root@host~]# lsmod | grep t4_tom
t4_tom 88378 0 [permanent]
toecore 21618 1 t4_tom
cxgb4 225342 1 t4_tom
Then Terminator's hardware GRO/LRO implementation is enabled.
If you would like to use the Linux GRO/LRO for any reason, first the
to be removed from kernel module list. Please note you might need to reboot your system.
After removing the
t4_tom
GRO/LRO settings, for example:
[root@host~]# ethtool -k eth6
Offload parameters for eth6:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
Chelsio Unified Wire for Linux
module, you can use
t4_tom
ethtool
to check the status of current
t4_tom
kernel module needs
66
Need help?
Do you have a question about the Terminator Series and is the answer not in the manual?
Questions and answers