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>
Showing
- include/linux/netdev_features.h 2 additions, 1 deletioninclude/linux/netdev_features.h
- include/linux/skbuff.h 17 additions, 0 deletionsinclude/linux/skbuff.h
- net/core/dev.c 1 addition, 0 deletionsnet/core/dev.c
- net/core/ethtool.c 1 addition, 0 deletionsnet/core/ethtool.c
- net/core/skbuff.c 5 additions, 1 deletionnet/core/skbuff.c
- net/ipv4/af_inet.c 1 addition, 0 deletionsnet/ipv4/af_inet.c
- net/ipv4/gre.c 118 additions, 0 deletionsnet/ipv4/gre.c
- net/ipv4/ip_gre.c 75 additions, 7 deletionsnet/ipv4/ip_gre.c
- net/ipv4/tcp.c 1 addition, 0 deletionsnet/ipv4/tcp.c
- net/ipv4/udp.c 2 additions, 1 deletionnet/ipv4/udp.c
- net/ipv6/ip6_offload.c 1 addition, 0 deletionsnet/ipv6/ip6_offload.c
- net/ipv6/udp_offload.c 2 additions, 1 deletionnet/ipv6/udp_offload.c
Loading
Please register or sign in to comment