Linux Foundation Wiki

project collaboration site

User Tools

Site Tools



TCP Segmentation Offload is supported in Linux by the network device layer. A driver that wants to offer TSO needs to set the NETIF_F_TSO bit in the network device structure. In order for a device to support TSO, it needs to also support Net:TCP checksum offloading and Net:Scatter Gather.

The driver will then receive super-sized skb's. These are indicated to the driver by skb_shinfo(skb)→gso_size being non-zero. The gso_size is the size the hardware should fragment the TCP data. TSO may change how and when TCP decides to send data.

If the driver has setup hooks in ETHTOOL_OPS() than TSO can be disabled with:

 ethtool -K ethX tso off

and enabled with:

 ethtool -K ethX tso on
networking/tso.txt · Last modified: 2016/07/19 01:22 (external edit)