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