Messages in this thread | | | From | Joseph Gasparakis <> | Subject | [PATCH v3 net-next 0/4] tunneling: Add support for hardware-offloaded encapsulation | Date | Thu, 6 Dec 2012 17:56:55 -0800 |
| |
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 approach.
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 mechanism
Now it is possible to create a vxlan interface like this: #ip link add vxlan0 type vxlan id 40 ttl 10 group 239.1.1.1 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.
| |