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 */
53