In the case where a non-MPLS packet is received and an MPLS stack is added it may well be the case that the original skb is GSO but the NIC used for transmit does not support GSO of MPLS packets.
The aim of this short series is to provide GSO in software for MPLS packets whose skbs are GSO. Change since v4: Update first patch of the series to use 16 bits for all *_headers rather than just inner_*_headers Simon Horman (2): net: Use 16bits for *_headers fields of struct skbuff MPLS: Add limited GSO support include/linux/netdev_features.h | 4 +- include/linux/netdevice.h | 2 + include/linux/skbuff.h | 123 ++++------------------------------------ net/Kconfig | 1 + net/Makefile | 1 + net/core/dev.c | 4 ++ net/core/ethtool.c | 1 + net/ipv4/af_inet.c | 1 + net/ipv4/tcp.c | 1 + net/ipv4/udp.c | 2 +- net/ipv6/ip6_offload.c | 1 + net/ipv6/udp_offload.c | 3 +- net/mpls/Kconfig | 9 +++ net/mpls/Makefile | 4 ++ net/mpls/mpls_gso.c | 108 +++++++++++++++++++++++++++++++++++ 15 files changed, 149 insertions(+), 116 deletions(-) create mode 100644 net/mpls/Kconfig create mode 100644 net/mpls/Makefile create mode 100644 net/mpls/mpls_gso.c -- 1.8.2.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev