]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/ipv6/ip6_offload.c
net: define gso types for IPx over IPv4 and IPv6
[mirror_ubuntu-artful-kernel.git] / net / ipv6 / ip6_offload.c
index f5eb184e109307b355949d02103f83c2d1a7d737..787e55f4796cf5a8772b18dd8338692fa82bee21 100644 (file)
@@ -69,24 +69,6 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb,
        bool encap, udpfrag;
        int nhoff;
 
-       if (unlikely(skb_shinfo(skb)->gso_type &
-                    ~(SKB_GSO_TCPV4 |
-                      SKB_GSO_UDP |
-                      SKB_GSO_DODGY |
-                      SKB_GSO_TCP_ECN |
-                      SKB_GSO_TCP_FIXEDID |
-                      SKB_GSO_TCPV6 |
-                      SKB_GSO_GRE |
-                      SKB_GSO_GRE_CSUM |
-                      SKB_GSO_IPIP |
-                      SKB_GSO_SIT |
-                      SKB_GSO_UDP_TUNNEL |
-                      SKB_GSO_UDP_TUNNEL_CSUM |
-                      SKB_GSO_TUNNEL_REMCSUM |
-                      SKB_GSO_PARTIAL |
-                      0)))
-               goto out;
-
        skb_reset_network_header(skb);
        nhoff = skb_network_header(skb) - skb_mac_header(skb);
        if (unlikely(!pskb_may_pull(skb, sizeof(*ipv6h))))
@@ -104,7 +86,7 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb,
        proto = ipv6_gso_pull_exthdrs(skb, ipv6h->nexthdr);
 
        if (skb->encapsulation &&
-           skb_shinfo(skb)->gso_type & (SKB_GSO_SIT|SKB_GSO_IPIP))
+           skb_shinfo(skb)->gso_type & (SKB_GSO_IPXIP4 | SKB_GSO_IPXIP6))
                udpfrag = proto == IPPROTO_UDP && encap;
        else
                udpfrag = proto == IPPROTO_UDP && !skb->encapsulation;
@@ -312,7 +294,7 @@ out_unlock:
 static int sit_gro_complete(struct sk_buff *skb, int nhoff)
 {
        skb->encapsulation = 1;
-       skb_shinfo(skb)->gso_type |= SKB_GSO_SIT;
+       skb_shinfo(skb)->gso_type |= SKB_GSO_IPXIP4;
        return ipv6_gro_complete(skb, nhoff);
 }