1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #ifndef __LINUX_ERSPAN_H
- #define __LINUX_ERSPAN_H
- /*
- * GRE header for ERSPAN encapsulation (8 octets [34:41]) -- 8 bytes
- * 0 1 2 3
- * 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
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |0|0|0|1|0|00000|000000000|00000| Protocol Type for ERSPAN |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Sequence Number (increments per packet per session) |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- *
- * Note that in the above GRE header [RFC1701] out of the C, R, K, S,
- * s, Recur, Flags, Version fields only S (bit 03) is set to 1. The
- * other fields are set to zero, so only a sequence number follows.
- *
- * ERSPAN Type II header (8 octets [42:49])
- * 0 1 2 3
- * 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
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Ver | VLAN | COS | En|T| Session ID |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Reserved | Index |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- *
- * GRE proto ERSPAN type II = 0x88BE, type III = 0x22EB
- */
- #define ERSPAN_VERSION 0x1
- #define VER_MASK 0xf000
- #define VLAN_MASK 0x0fff
- #define COS_MASK 0xe000
- #define EN_MASK 0x1800
- #define T_MASK 0x0400
- #define ID_MASK 0x03ff
- #define INDEX_MASK 0xfffff
- enum erspan_encap_type {
- ERSPAN_ENCAP_NOVLAN = 0x0, /* originally without VLAN tag */
- ERSPAN_ENCAP_ISL = 0x1, /* originally ISL encapsulated */
- ERSPAN_ENCAP_8021Q = 0x2, /* originally 802.1Q encapsulated */
- ERSPAN_ENCAP_INFRAME = 0x3, /* VLAN tag perserved in frame */
- };
- struct erspan_metadata {
- __be32 index; /* type II */
- };
- struct erspanhdr {
- __be16 ver_vlan;
- #define VER_OFFSET 12
- __be16 session_id;
- #define COS_OFFSET 13
- #define EN_OFFSET 11
- #define T_OFFSET 10
- struct erspan_metadata md;
- };
- #endif
|