erspan.h (1074B)
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 */