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 */ 20 struct 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 44 struct 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