lwt: fix rx checksum setting for lwt devices tunneling over ipv6
authorPaolo Abeni <pabeni@redhat.com>
Wed, 17 Feb 2016 18:30:01 +0000 (19:30 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Feb 2016 20:39:30 +0000 (15:39 -0500)
the commit 35e2d1152b22 ("tunnels: Allow IPv6 UDP checksums to be
correctly controlled.") changed the default xmit checksum setting
for lwt vxlan/geneve ipv6 tunnels, so that now the checksum is not
set into external UDP header.
This commit changes the rx checksum setting for both lwt vxlan/geneve
devices created by openvswitch accordingly, so that lwt over ipv6
tunnel pairs are again able to communicate with default values.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Acked-by: Jiri Benc <jbenc@redhat.com>
Acked-by: Jesse Gross <jesse@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/geneve.c
net/openvswitch/vport-vxlan.c

index 4a9cc038c4b09cbb3d2eb210279d7bc11ad1ea29..0bf7edd99573d336f179031d358f0684cf454cc7 100644 (file)
@@ -1470,7 +1470,8 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
                return dev;
 
        err = geneve_configure(net, dev, &geneve_remote_unspec,
-                              0, 0, 0, htons(dst_port), true, 0);
+                              0, 0, 0, htons(dst_port), true,
+                              GENEVE_F_UDP_ZERO_CSUM6_RX);
        if (err)
                goto err;
 
index de9cb19efb6a3e2774624c29b2fe5c977ef92fe4..5eb7694348b5b82a3e80dc6262912eef441ec88e 100644 (file)
@@ -90,7 +90,7 @@ static struct vport *vxlan_tnl_create(const struct vport_parms *parms)
        int err;
        struct vxlan_config conf = {
                .no_share = true,
-               .flags = VXLAN_F_COLLECT_METADATA,
+               .flags = VXLAN_F_COLLECT_METADATA | VXLAN_F_UDP_ZERO_CSUM6_RX,
                /* Don't restrict the packets that can be sent by MTU */
                .mtu = IP_MAX_MTU,
        };