v4 GRE: Add TCP segmentation offload for GRE
authorPravin B Shelar <pshelar@nicira.com>
Thu, 14 Feb 2013 14:02:41 +0000 (14:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Feb 2013 20:17:11 +0000 (15:17 -0500)
commit68c331631143f5f039baac99a650e0b9e1ea02b6
treec69d73c5599aab5e92a8c99bc5343c9fc9ffbbd8
parent05e8ef4ab2d8087d360e814d14da20b9f7fb2283
v4 GRE: Add TCP segmentation offload for GRE

Following patch adds GRE protocol offload handler so that
skb_gso_segment() can segment GRE packets.
SKB GSO CB is added to keep track of total header length so that
skb_segment can push entire header. e.g. in case of GRE, skb_segment
need to push inner and outer headers to every segment.
New NETIF_F_GRE_GSO feature is added for devices which support HW
GRE TSO offload. Currently none of devices support it therefore GRE GSO
always fall backs to software GSO.

[ Compute pkt_len before ip_local_out() invocation. -DaveM ]

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
12 files changed:
include/linux/netdev_features.h
include/linux/skbuff.h
net/core/dev.c
net/core/ethtool.c
net/core/skbuff.c
net/ipv4/af_inet.c
net/ipv4/gre.c
net/ipv4/ip_gre.c
net/ipv4/tcp.c
net/ipv4/udp.c
net/ipv6/ip6_offload.c
net/ipv6/udp_offload.c