]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - include/uapi/linux/erspan.h
Merge tag 'drm-fixes-2021-01-29' of git://anongit.freedesktop.org/drm/drm
[mirror_ubuntu-hirsute-kernel.git] / 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 */