cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

erspan.h (1074B)


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