udp: pass udp_offload struct to UDP gro callbacks
authorTom Herbert <therbert@google.com>
Tue, 13 Jan 2015 01:00:37 +0000 (17:00 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 14 Jan 2015 20:20:04 +0000 (15:20 -0500)
This patch introduces udp_offload_callbacks which has the same
GRO functions (but not a GSO function) as offload_callbacks,
except there is an argument to a udp_offload struct passed to
gro_receive and gro_complete functions. This additional argument
can be used to retrieve the per port structure of the encapsulation
for use in gro processing (mostly by doing container_of on the
structure).

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c
include/linux/netdevice.h
net/ipv4/fou.c
net/ipv4/geneve.c
net/ipv4/udp_offload.c

index 985359d..5c56a3f 100644 (file)
@@ -539,7 +539,9 @@ static int vxlan_fdb_append(struct vxlan_fdb *f,
        return 1;
 }
 
-static struct sk_buff **vxlan_gro_receive(struct sk_buff **head, struct sk_buff *skb)
+static struct sk_buff **vxlan_gro_receive(struct sk_buff **head,
+                                         struct sk_buff *skb,
+                                         struct udp_offload *uoff)
 {
        struct sk_buff *p, **pp = NULL;
        struct vxlanhdr *vh, *vh2;
@@ -578,7 +580,8 @@ out:
        return pp;
 }
 
-static int vxlan_gro_complete(struct sk_buff *skb, int nhoff)
+static int vxlan_gro_complete(struct sk_buff *skb, int nhoff,
+                             struct udp_offload *uoff)
 {
        udp_tunnel_gro_complete(skb, nhoff);
 
Simple merge
diff --cc net/ipv4/fou.c
Simple merge
Simple merge
Simple merge