OSDN Git Service

bpf: allow disabling tunnel csum for ipv6
authorWilliam Tu <u9012063@gmail.com>
Fri, 1 Dec 2017 23:26:09 +0000 (15:26 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Dec 2017 16:04:19 +0000 (11:04 -0500)
Before the patch, BPF_F_ZERO_CSUM_TX can be used only for ipv4 tunnel.
With introduction of ip6gretap collect_md mode, the flag should be also
supported for ipv6.

Signed-off-by: William Tu <u9012063@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/filter.c

index 6a85e67..8ec5a50 100644 (file)
@@ -3026,10 +3026,11 @@ BPF_CALL_4(bpf_skb_set_tunnel_key, struct sk_buff *, skb,
                                  IPV6_FLOWLABEL_MASK;
        } else {
                info->key.u.ipv4.dst = cpu_to_be32(from->remote_ipv4);
-               if (flags & BPF_F_ZERO_CSUM_TX)
-                       info->key.tun_flags &= ~TUNNEL_CSUM;
        }
 
+       if (flags & BPF_F_ZERO_CSUM_TX)
+               info->key.tun_flags &= ~TUNNEL_CSUM;
+
        return 0;
 }