[PATCH v3 net-next 0/4] tunneling: Add support for hardware-offloaded encapsulation

From: Joseph Gasparakis
Date: Thu Dec 06 2012 - 20:48:41 EST

The series contains updates to add in the NIC Rx and Tx checksumming support
for encapsulated packets.

The sk_buff needs to somehow have information of the inner packet, and adding
three fields for the inner mac, network and transport headers was the prefered

Not adding these fields would mean that the drivers would need to parse the
sk_buff data in hot-path, having a negative impact in the performance.

Adding in sk_buff a pointer to the skbuff of the inner packet made sense, but
would be a complicated change as assumptions needed to be made with regards to
helper functions such as skb_clone() skb_copy(). Also code for the existing
encapsulation protocols (such as VXLAN and IP GRE) had to be reworked, so the
decision was to have the simple approach of adding these three fields.

v2 Makes sure that checksumming for IP GRE does not take place if the offload
flag is set in the skb's netdev features

v3 Fixes issues picked up by the community in v2 and is intended to provide
ability to demo vxlan Tx offloading with Intel's ixgbe. As part of this,
it provides an RFC patch for ixgbe to take advantage of the offloading

Now it is possible to create a vxlan interface like this:
#ip link add vxlan0 type vxlan id 40 ttl 10 group dev eth0

Then turn on/off the encapsulation offload mechanism by doing:
#ethtool -K eth0 tx-checksum-ip-generic on

In v3 ipgre work got paused (and therefore patches not included) and I will
come back to it when vxlan is accepted by the community.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/