linux/include/uapi/linux/erspan.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 * ERSPAN Tunnel Metadata
   4 *
   5 * Copyright (c) 2018 VMware
   6 *
   7 * This program is free software; you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License version 2
   9 * as published by the Free Software Foundation.
  10 *
  11 * Userspace API for metadata mode ERSPAN tunnel
  12 */
  13#ifndef _UAPI_ERSPAN_H
  14#define _UAPI_ERSPAN_H
  15
  16#include <linux/types.h>        /* For __beXX in userspace */
  17#include <asm/byteorder.h>
  18
  19/* ERSPAN version 2 metadata header */
  20struct erspan_md2 {
  21        __be32 timestamp;
  22        __be16 sgt;     /* security group tag */
  23#if defined(__LITTLE_ENDIAN_BITFIELD)
  24        __u8    hwid_upper:2,
  25                ft:5,
  26                p:1;
  27        __u8    o:1,
  28                gra:2,
  29                dir:1,
  30                hwid:4;
  31#elif defined(__BIG_ENDIAN_BITFIELD)
  32        __u8    p:1,
  33                ft:5,
  34                hwid_upper:2;
  35        __u8    hwid:4,
  36                dir:1,
  37                gra:2,
  38                o:1;
  39#else
  40#error "Please fix <asm/byteorder.h>"
  41#endif
  42};
  43
  44struct erspan_metadata {
  45        int version;
  46        union {
  47                __be32 index;           /* Version 1 (type II)*/
  48                struct erspan_md2 md2;  /* Version 2 (type III) */
  49        } u;
  50};
  51
  52#endif /* _UAPI_ERSPAN_H */
  53