[ovs-git] [openvswitch/ovs] 29cf9c: userspace: Add TCP Segmentation Offload support

Flavio Leitner noreply at github.com
Fri Jan 17 23:01:57 UTC 2020

  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 29cf9c1b3b9c4574df4f579c74c4e6d9ebb6d279
  Author: Flavio Leitner <fbl at sysclose.org>
  Date:   2020-01-17 (Fri, 17 Jan 2020)

  Changed paths:
    M Documentation/automake.mk
    M Documentation/topics/index.rst
    A Documentation/topics/userspace-tso.rst
    M NEWS
    M lib/automake.mk
    M lib/conntrack.c
    M lib/dp-packet.h
    M lib/ipf.c
    M lib/netdev-dpdk.c
    M lib/netdev-linux-private.h
    M lib/netdev-linux.c
    M lib/netdev-provider.h
    M lib/netdev.c
    A lib/userspace-tso.c
    A lib/userspace-tso.h
    M vswitchd/bridge.c
    M vswitchd/vswitch.xml

  Log Message:
  userspace: Add TCP Segmentation Offload support

Abbreviated as TSO, TCP Segmentation Offload is a feature which enables
the network stack to delegate the TCP segmentation to the NIC reducing
the per packet CPU overhead.

A guest using vhostuser interface with TSO enabled can send TCP packets
much bigger than the MTU, which saves CPU cycles normally used to break
the packets down to MTU size and to calculate checksums.

It also saves CPU cycles used to parse multiple packets/headers during
the packet processing inside virtual switch.

If the destination of the packet is another guest in the same host, then
the same big packet can be sent through a vhostuser interface skipping
the segmentation completely. However, if the destination is not local,
the NIC hardware is instructed to do the TCP segmentation and checksum

It is recommended to check if NIC hardware supports TSO before enabling
the feature, which is off by default. For additional information please
check the tso.rst document.

Signed-off-by: Flavio Leitner <fbl at sysclose.org>
Tested-by: Ciara Loftus <ciara.loftus.intel.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>

More information about the git mailing list