At the core of this patch set is removing the assumption in Open vSwitch datapath that all packets have Ethernet header. Support for layer 3 GRE tunnels is also added by this patchset.
The implementation relies on the presence of pop_eth and push_eth actions in datapath flows to facilitate adding and removing Ethernet headers as appropriate. The construction of such flows is left up to user-space. This series is based on work by Lorand Jakab, Thomas Morin and others. This patch set is comprised of kernel patches against net-next. It depends on: "[PATCH net-next 0/3] gre: receive also TEB packets for lwtunnels" To aid review it and the above dependency is available at: tree: https://github.com/horms/openvswitch branch: me/l3-vpn tag: l3-vpn-v9 There is a companion patch set for the Open vSwitch user-space code which I will post separately to the d...@openvswitch.org mailing list as: "[PATCH v10 0/5] userspace: Support for layer 3 encapsulated packets" Lorand Jakab (1): openvswitch: add layer 3 flow/port support Simon Horman (6): net: add skb_vlan_deaccel helper openvswitch: set skb protocol when receiving on internal device openvswitch: add support to push and pop mpls for layer3 packets openvswitch: add layer 3 support to ovs_packet_cmd_execute() openvswitch: extend layer 3 support to cover non-IP packets openvswitch: use ipgre tunnel rather than gretap tunnel include/linux/skbuff.h | 1 + include/net/gre.h | 4 +- include/uapi/linux/openvswitch.h | 14 +++ net/core/skbuff.c | 50 +++++---- net/ipv4/ip_gre.c | 8 +- net/openvswitch/actions.c | 70 ++++++++++-- net/openvswitch/datapath.c | 13 +-- net/openvswitch/flow.c | 66 ++++++++---- net/openvswitch/flow.h | 4 +- net/openvswitch/flow_netlink.c | 200 +++++++++++++++++++++++++---------- net/openvswitch/vport-geneve.c | 2 +- net/openvswitch/vport-gre.c | 4 +- net/openvswitch/vport-internal_dev.c | 8 ++ net/openvswitch/vport-netdev.c | 31 +++++- net/openvswitch/vport-netdev.h | 3 + net/openvswitch/vport-vxlan.c | 2 +- 16 files changed, 350 insertions(+), 130 deletions(-) -- 2.7.0.rc3.207.g0ac5344