Commit | Line | Data |
---|---|---|
d350a823 WT |
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 */ |