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