Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools, include: Grab a copy of linux/erspan.h

Bring the erspan uapi header file so BPF tunnel helpers can use it.

Fixes: 933a741e3b82 ("selftests/bpf: bpf tunnel test.")
Reported-by: Yonghong Song <yhs@fb.com>
Signed-off-by: William Tu <u9012063@gmail.com>
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>

authored by

William Tu and committed by
Daniel Borkmann
c0dd9678 081023a3

+52
+52
tools/include/uapi/linux/erspan.h
··· 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 */