[ovs-git] [openvswitch/ovs] ddcf96: system-tests: Disable offloads in userspace tests.

GitHub noreply at github.com
Wed Apr 27 07:02:56 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: ddcf96d2dcc1e5257077a5839621a1c09d2088d5
      https://github.com/openvswitch/ovs/commit/ddcf96d2dcc1e5257077a5839621a1c09d2088d5
  Author: Daniele Di Proietto <diproiettod at vmware.com>
  Date:   2016-04-26 (Tue, 26 Apr 2016)

  Changed paths:
    M tests/system-common-macros.at
    M tests/system-kmod-macros.at
    M tests/system-userspace-macros.at

  Log Message:
  -----------
  system-tests: Disable offloads in userspace tests.

The system userspace testsuite uses the userspace datapath with
netdev-linux devices, connected to veth pairs with the AF_PACKET socket:
        (veth pair)     (AF_PACKET)
TCP stack -> p0 ---> ovs-p0  -------------> netdev-linux (userspace OVS)

Unfortunately this configuration has some problems with offloads: a
packet generated by the TCP stack maybe sent to p0 without being
checksummed or segmented. The AF_PACKET socket, by default, ignores the
offloads and just transmits the data of the packets to userspace, but:

1. The packet may need GSO, so the data will be too big to be received
   by the userspace datapath
2. The packet might have incomplete checksums, so it will likely be
   discarded by the receiver.

Problem 1 causes TCP connections to see a congestion window smaller than
the MTU, which hurts performance but doesn't prevent communication.

Problem 2 was hidden in the testsuite by a Linux kernel bug, fixed by
commit ce8c839b74e3("veth: don’t modify ip_summed; doing so treats
packets with bad checksums as good").  In the kernels that include the
fix, the userspace datapath is able to process pings, but not tcp or udp
data.

Unfortunately I couldn't find a way to ask the AF_PACKET to perform
offloads in kernel.  A possible fix would be to use the PACKET_VNET_HDR
sockopt and perform the offloads in userspace.

Until a proper fix is worked out for netdev-linux, this commit disables
offloads on the non-OVS side of the veth pair, as a workaround.

Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
Acked-by: Joe Stringer <joe at ovn.org>
Acked-by: Flavio Leitner <fbl at sysclose.org>


  Commit: e0b9270136465f1c5379c274ca41081980bcd076
      https://github.com/openvswitch/ovs/commit/e0b9270136465f1c5379c274ca41081980bcd076
  Author: Daniele Di Proietto <diproiettod at vmware.com>
  Date:   2016-04-26 (Tue, 26 Apr 2016)

  Changed paths:
    M tests/system-traffic.at

  Log Message:
  -----------
  system-tests: Add tcp simple test.

Useful to test the datapath ability to forward tcp packets without the
complexity of connection tracking.

Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
Acked-by: Joe Stringer <joe at ovn.org>
Acked-by: Flavio Leitner <fbl at sysclose.org>


  Commit: 4ec3d7c7578e827a543cc0989a6cd4c1a10ee291
      https://github.com/openvswitch/ovs/commit/4ec3d7c7578e827a543cc0989a6cd4c1a10ee291
  Author: Daniele Di Proietto <diproiettod at vmware.com>
  Date:   2016-04-26 (Tue, 26 Apr 2016)

  Changed paths:
    M lib/cfm.c
    M lib/hmap.h
    M lib/id-pool.c
    M lib/learning-switch.c
    M lib/netdev-linux.c
    M lib/odp-util.c
    M ofproto/bond.c
    M ofproto/in-band.c
    M ofproto/ofproto-dpif-ipfix.c
    M ofproto/ofproto-dpif-xlate.c
    M ofproto/ofproto.c
    M ofproto/pinsched.c
    M ovn/controller/encaps.c
    M ovn/controller/lport.c
    M ovn/controller/ofctrl.c
    M ovn/controller/physical.c
    M ovn/controller/pinctrl.c
    M ovn/lib/expr.c
    M ovn/northd/ovn-northd.c
    M ovsdb/monitor.c
    M ovsdb/row.c
    M tests/library.at
    M tests/test-hmap.c

  Log Message:
  -----------
  hmap: Add HMAP_FOR_EACH_POP.

Makes popping each member of the hmap a bit easier.

Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
Acked-by: Ben Pfaff <blp at ovn.org>


  Commit: d291a10c50434707405d8cd1437ec62e10c43bb5
      https://github.com/openvswitch/ovs/commit/d291a10c50434707405d8cd1437ec62e10c43bb5
  Author: Daniele Di Proietto <diproiettod at vmware.com>
  Date:   2016-04-27 (Wed, 27 Apr 2016)

  Changed paths:
    M datapath-windows/ovsext/Conntrack-tcp.c

  Log Message:
  -----------
  datapath-windows: Fix bug in OvsTcpGetWscale().

The userspace conntrack had a bug in tcp_wscale_get(), where the length
of an option would be read from the third octet of the option TLV
instead of the second.  This could cause an incorrect wscale value to
be returned, and it would at least impact performance.

Also use 'int' instead of 'unsigned' for 'len', since the value can be
negative.

CC: Sairam Venugopal <vsairam at vmware.com>
Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
Acked-by: Sairam Venugopal <vsairam at vmware.com>


Compare: https://github.com/openvswitch/ovs/compare/31bb0c7a3260...d291a10c5043


More information about the git mailing list