1 #ifndef __LINUX_ERSPAN_H 2 #define __LINUX_ERSPAN_H 3 4 /* 5 * GRE header for ERSPAN encapsulation (8 octets [34:41]) -- 8 bytes 6 * 0 1 2 3 7 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 8 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 9 * |0|0|0|1|0|00000|000000000|00000| Protocol Type for ERSPAN | 10 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 11 * | Sequence Number (increments per packet per session) | 12 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 13 * 14 * Note that in the above GRE header [RFC1701] out of the C, R, K, S, 15 * s, Recur, Flags, Version fields only S (bit 03) is set to 1. The 16 * other fields are set to zero, so only a sequence number follows. 17 * 18 * ERSPAN Type II header (8 octets [42:49]) 19 * 0 1 2 3 20 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 21 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 22 * | Ver | VLAN | COS | En|T| Session ID | 23 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 24 * | Reserved | Index | 25 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 26 * 27 * GRE proto ERSPAN type II = 0x88BE, type III = 0x22EB 28 */ 29 30 #define ERSPAN_VERSION 0x1 31 32 #define VER_MASK 0xf000 33 #define VLAN_MASK 0x0fff 34 #define COS_MASK 0xe000 35 #define EN_MASK 0x1800 36 #define T_MASK 0x0400 37 #define ID_MASK 0x03ff 38 #define INDEX_MASK 0xfffff 39 40 enum erspan_encap_type { 41 ERSPAN_ENCAP_NOVLAN = 0x0, /* originally without VLAN tag */ 42 ERSPAN_ENCAP_ISL = 0x1, /* originally ISL encapsulated */ 43 ERSPAN_ENCAP_8021Q = 0x2, /* originally 802.1Q encapsulated */ 44 ERSPAN_ENCAP_INFRAME = 0x3, /* VLAN tag perserved in frame */ 45 }; 46 47 struct erspan_metadata { 48 __be32 index; /* type II */ 49 }; 50 51 struct erspanhdr { 52 __be16 ver_vlan; 53 #define VER_OFFSET 12 54 __be16 session_id; 55 #define COS_OFFSET 13 56 #define EN_OFFSET 11 57 #define T_OFFSET 10 58 struct erspan_metadata md; 59 }; 60 61 #endif 62