From patchwork Thu Jan 25 21:20:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Tu X-Patchwork-Id: 866032 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="nU7uB8/I"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zSFLv5jcpz9s7F for ; Fri, 26 Jan 2018 08:20:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751488AbeAYVUi (ORCPT ); Thu, 25 Jan 2018 16:20:38 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:41227 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751204AbeAYVUY (ORCPT ); Thu, 25 Jan 2018 16:20:24 -0500 Received: by mail-pf0-f193.google.com with SMTP id c6so6724395pfi.8 for ; Thu, 25 Jan 2018 13:20:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=p+PFItKW1l1G67beipRyvO4SvjbYFHScq00DNQvgGs0=; b=nU7uB8/Iw5fKd9EYO8/TFXs5v6dYMN7O9wp8dpB2ClGFuTnJzpa7c59jxQJ+ctE0k4 xowSZeA8LGil9fuGk/w4hWu1p4VvbvZvUZPKyhbfkXyUcYNdyyuHcYzJ44CAFeI/i+6p EZOiK2xobv3aSB+paW0bbNmZuP5PA745SPqI+JyvL5g+3cgflLrXiXxseLQ5bl1xNZfN oFZLySZ7G1enyYG6JbvXrt0tSwhOG4jwVqy4L7WI1rrvXviSnCWs8grCI0nE2abYS+FC 8/XzG0rsPsRrFebPB6IJLTEV7i2A5T+AYjsS4K8MYZsrlZkApIAPGzbQ/K/B3GrUHyhC P4AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=p+PFItKW1l1G67beipRyvO4SvjbYFHScq00DNQvgGs0=; b=hRZrwpzcSjh/JOepxEzYvqBHlciSw0uYjem2SiNrDBAbkgB2pZZMdcL3ydLQ+Y/79w KSh79UMRGLeCgy9GwGPq7zc+I1pfEddPbK/5f3g8Kr4iB6uXpu5q++oJlo40v+KhUrjM 4/Bfoiz0C8ItEkgcMrasP4Azgb0+NkP/r1Z/hCJ2t3nKu9P082ghXhEotOFeFXaj41f6 Ot6pbJ4+2VL8pr8i3wOZzN1GX7mLGJgQ53Vm4pKhyscZ8Mp5PVdsSXVb+pIbRXTxsvjG DgK0Tub4Vkp4tAQEpe5YvhjLDo9y+C0BPkOzS1fVTVb0zpnofWddc/yQ8OyZs7C+kZLB TXzw== X-Gm-Message-State: AKwxytddfDplwmxelCTVeJd/Qpu2AIWQus8cCHjNhq+xbHpJpgdxHzcW jiwk0TkLWAbcP82ZJgQdXmEISefI X-Google-Smtp-Source: AH8x224CectHwW/PmYsm/ge56QMQnBF/iEWb2s3dcrcBry19X+Qz+OQdEAwT/RBVO/7jEz4lkybkdg== X-Received: by 10.98.223.196 with SMTP id d65mr17460697pfl.176.1516915224048; Thu, 25 Jan 2018 13:20:24 -0800 (PST) Received: from sc9-mailhost2.vmware.com ([24.5.191.4]) by smtp.gmail.com with ESMTPSA id t8sm5881980pgr.21.2018.01.25.13.20.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 25 Jan 2018 13:20:23 -0800 (PST) From: William Tu To: netdev@vger.kernel.org Cc: pshelar@ovn.org Subject: [PATCHv6 net-next 2/3] net: erspan: create erspan metadata uapi header Date: Thu, 25 Jan 2018 13:20:10 -0800 Message-Id: <1516915211-5869-3-git-send-email-u9012063@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1516915211-5869-1-git-send-email-u9012063@gmail.com> References: <1516915211-5869-1-git-send-email-u9012063@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The patch adds a new uapi header file, erspan.h, and moves the 'struct erspan_metadata' from internal erspan.h to it. Signed-off-by: William Tu Acked-by: Pravin B Shelar --- include/net/erspan.h | 32 ++-------------------------- include/uapi/linux/erspan.h | 52 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 30 deletions(-) create mode 100644 include/uapi/linux/erspan.h diff --git a/include/net/erspan.h b/include/net/erspan.h index 6d30fe898286..5daa4866412b 100644 --- a/include/net/erspan.h +++ b/include/net/erspan.h @@ -46,6 +46,8 @@ * GRE proto ERSPAN type II = 0x88BE, type III = 0x22EB */ +#include + #define ERSPAN_VERSION 0x1 /* ERSPAN type II */ #define VER_MASK 0xf000 #define VLAN_MASK 0x0fff @@ -68,29 +70,6 @@ #define HWID_OFFSET 4 #define DIR_OFFSET 3 -/* ERSPAN version 2 metadata header */ -struct erspan_md2 { - __be32 timestamp; - __be16 sgt; /* security group tag */ -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u8 hwid_upper:2, - ft:5, - p:1; - __u8 o:1, - gra:2, - dir:1, - hwid:4; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u8 p:1, - ft:5, - hwid_upper:2; - __u8 hwid:4, - dir:1, - gra:2, - o:1; -#endif -}; - enum erspan_encap_type { ERSPAN_ENCAP_NOVLAN = 0x0, /* originally without VLAN tag */ ERSPAN_ENCAP_ISL = 0x1, /* originally ISL encapsulated */ @@ -100,13 +79,6 @@ enum erspan_encap_type { #define ERSPAN_V1_MDSIZE 4 #define ERSPAN_V2_MDSIZE 8 -struct erspan_metadata { - union { - __be32 index; /* Version 1 (type II)*/ - struct erspan_md2 md2; /* Version 2 (type III) */ - } u; - int version; -}; struct erspan_base_hdr { #if defined(__LITTLE_ENDIAN_BITFIELD) diff --git a/include/uapi/linux/erspan.h b/include/uapi/linux/erspan.h new file mode 100644 index 000000000000..841573019ae1 --- /dev/null +++ b/include/uapi/linux/erspan.h @@ -0,0 +1,52 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * ERSPAN Tunnel Metadata + * + * Copyright (c) 2018 VMware + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * Userspace API for metadata mode ERSPAN tunnel + */ +#ifndef _UAPI_ERSPAN_H +#define _UAPI_ERSPAN_H + +#include /* For __beXX in userspace */ +#include + +/* ERSPAN version 2 metadata header */ +struct erspan_md2 { + __be32 timestamp; + __be16 sgt; /* security group tag */ +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 hwid_upper:2, + ft:5, + p:1; + __u8 o:1, + gra:2, + dir:1, + hwid:4; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 p:1, + ft:5, + hwid_upper:2; + __u8 hwid:4, + dir:1, + gra:2, + o:1; +#else +#error "Please fix " +#endif +}; + +struct erspan_metadata { + int version; + union { + __be32 index; /* Version 1 (type II)*/ + struct erspan_md2 md2; /* Version 2 (type III) */ + } u; +}; + +#endif /* _UAPI_ERSPAN_H */