mbox series

[PATCHv6,net-next,0/3] net: erspan: add support for openvswitch

Message ID 1516915211-5869-1-git-send-email-u9012063@gmail.com
Headers show
Series net: erspan: add support for openvswitch | expand

Message

William Tu Jan. 25, 2018, 9:20 p.m. UTC
The first patch refactors the erspan header definitions. 
Originally, the erspan fields are defined as a group into a __be16 field,
and use mask and offset to access each field.  This is more costly due to
calling ntohs/htons and error-prone.  The first patch changes it to use
bitfields.  The second patch creates erspan.h in UAPI and move the definition
'struct erspan_metadata' to it for later openvswitch to use.  The final patch
introduces the new OVS tunnel key attribute, OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS,
to program both v1 and v2 erspan tunnel for openvswitch.

William Tu (3):
  net: erspan: use bitfield instead of mask and offset
  net: erspan: create erspan metadata uapi header
  openvswitch: add erspan version I and II support

 include/net/erspan.h             | 123 +++++++++++++++++++++++++--------------
 include/uapi/linux/erspan.h      |  52 +++++++++++++++++
 include/uapi/linux/openvswitch.h |   1 +
 net/ipv4/ip_gre.c                |  38 +++++-------
 net/ipv6/ip6_gre.c               |  36 +++++-------
 net/openvswitch/flow_netlink.c   |  52 ++++++++++++++++-
 6 files changed, 209 insertions(+), 93 deletions(-)
 create mode 100644 include/uapi/linux/erspan.h
---
v5->v6
  move field 'version' to the begining of the struct for easy expansion later.
  remove redundant erspan validation function
  create erspan.h in uapi

v4->v5
  rather than passing individual members of erspan_metadata,
  just pass the whole binary structure between kernel and userspace,
  suggested by Pravin.

v3->v4
  change from be32 to u32 for OVS_ERSPAN_OPT_IDX, suggested by Jiri Benc.

v2->v3
  revert the "openvswitch: Add erspan tunnel support." commit ceaa001a170e.
  redesign the OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS as nested attribute

v1->v2
  Fix compatibility issue suggested by Pravin.

Comments

David Miller Jan. 26, 2018, 2:40 a.m. UTC | #1
From: William Tu <u9012063@gmail.com>
Date: Thu, 25 Jan 2018 13:20:08 -0800

> The first patch refactors the erspan header definitions. 
> Originally, the erspan fields are defined as a group into a __be16 field,
> and use mask and offset to access each field.  This is more costly due to
> calling ntohs/htons and error-prone.  The first patch changes it to use
> bitfields.  The second patch creates erspan.h in UAPI and move the definition
> 'struct erspan_metadata' to it for later openvswitch to use.  The final patch
> introduces the new OVS tunnel key attribute, OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS,
> to program both v1 and v2 erspan tunnel for openvswitch.

Series applied, thanks William.