These patches add a new module to support encap/decap of Network Service Header (NSH) as defined in:
https://tools.ietf.org/html/draft-ietf-sfc-nsh-01 Both NSH Type 1 and Type 2 metadata are supported with a simple registration hook to allow listeners to register to see packets with Type 1 or a specific class of Type 2 metadata. NSH could be added to packets sent over a variety of link types, eg. VxLAN, GRE, ethernet. Also included is an extension to VxLAN to handle the Generic Protocol Extension (GPE) as defined in: https://tools.ietf.org/html/draft-ietf-nvo3-vxlan-gpe-01 This allows multi-protocol encapsulation over the VxLAN so IPv4, IPv6, MPLS and NSH encapsulated packets can be sent and received in addition to ethernet frames. Non-ethernet frames are sent to the default destination, which requires that the remote option is specified when creating the VxLAN device. I've tested this by using a netfilter module to encap some app-specific metadata in NSH type 2 and send it over the VxLAN and a listener module to receive the corresponding decap'd metadata. I'm also submitting a corresponding patch for iproute2 to add the gpe option to the "ip link add type vxlan" command. v2 - fix copyright notices and tidy up use of types Brian Russell (2): nsh: encapsulation module vxlan: support GPE/NSH drivers/net/vxlan.c | 139 ++++++++++++++-- include/net/nsh.h | 161 +++++++++++++++++++ include/net/vxlan.h | 40 ++++- include/uapi/linux/if_ether.h | 1 + include/uapi/linux/if_link.h | 1 + net/ipv4/Kconfig | 10 ++ net/ipv4/Makefile | 1 + net/ipv4/nsh.c | 365 ++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 704 insertions(+), 14 deletions(-) create mode 100644 include/net/nsh.h create mode 100644 net/ipv4/nsh.c -- 2.1.4