|
@@ -0,0 +1,52 @@
|
|
|
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
|
+/*
|
|
|
+ * ERSPAN Tunnel Metadata
|
|
|
+ *
|
|
|
+ * Copyright (c) 2018 VMware
|
|
|
+ *
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License version 2
|
|
|
+ * as published by the Free Software Foundation.
|
|
|
+ *
|
|
|
+ * Userspace API for metadata mode ERSPAN tunnel
|
|
|
+ */
|
|
|
+#ifndef _UAPI_ERSPAN_H
|
|
|
+#define _UAPI_ERSPAN_H
|
|
|
+
|
|
|
+#include <linux/types.h> /* For __beXX in userspace */
|
|
|
+#include <asm/byteorder.h>
|
|
|
+
|
|
|
+/* ERSPAN version 2 metadata header */
|
|
|
+struct erspan_md2 {
|
|
|
+ __be32 timestamp;
|
|
|
+ __be16 sgt; /* security group tag */
|
|
|
+#if defined(__LITTLE_ENDIAN_BITFIELD)
|
|
|
+ __u8 hwid_upper:2,
|
|
|
+ ft:5,
|
|
|
+ p:1;
|
|
|
+ __u8 o:1,
|
|
|
+ gra:2,
|
|
|
+ dir:1,
|
|
|
+ hwid:4;
|
|
|
+#elif defined(__BIG_ENDIAN_BITFIELD)
|
|
|
+ __u8 p:1,
|
|
|
+ ft:5,
|
|
|
+ hwid_upper:2;
|
|
|
+ __u8 hwid:4,
|
|
|
+ dir:1,
|
|
|
+ gra:2,
|
|
|
+ o:1;
|
|
|
+#else
|
|
|
+#error "Please fix <asm/byteorder.h>"
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
+struct erspan_metadata {
|
|
|
+ int version;
|
|
|
+ union {
|
|
|
+ __be32 index; /* Version 1 (type II)*/
|
|
|
+ struct erspan_md2 md2; /* Version 2 (type III) */
|
|
|
+ } u;
|
|
|
+};
|
|
|
+
|
|
|
+#endif /* _UAPI_ERSPAN_H */
|