53 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
/* 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 */
 |