From mboxrd@z Thu Jan 1 00:00:00 1970 From: William Tu Subject: [PATCHv6 net-next 0/3] net: erspan: add support for openvswitch Date: Thu, 25 Jan 2018 13:20:08 -0800 Message-ID: <1516915211-5869-1-git-send-email-u9012063@gmail.com> Cc: pshelar@ovn.org To: netdev@vger.kernel.org Return-path: Received: from mail-pf0-f196.google.com ([209.85.192.196]:34765 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751204AbeAYVUW (ORCPT ); Thu, 25 Jan 2018 16:20:22 -0500 Received: by mail-pf0-f196.google.com with SMTP id e76so6735642pfk.1 for ; Thu, 25 Jan 2018 13:20:22 -0800 (PST) Sender: netdev-owner@vger.kernel.org List-ID: 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. -- 2.7.4