|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
16 #ifndef included_vnet_geneve_packet_h
17 #define included_vnet_geneve_packet_h
31 #define GENEVE_MAX_OPT_LENGTH 128
52 #define LINUX_OPT_CLASS 0x0100
53 #define OVS_OPT_CLASS 0x0101
54 #define OVN_OPT_CLASS 0x0102
55 #define INT_OPT_CLASS 0x0103
56 #define VMWARE_OPT_CLASS 0x0104
95 #define GENEVE_BASE_HEADER_LENGTH 8 // GENEVE BASE HEADER in bytes
96 #define GENEVE_MAX_TOTAL_HDR_LENGTH 260
98 #define GENEVE_VERSION 0
99 #define GENEVE_ETH_PROTOCOL 0x6558
119 #define GENEVE_VERSION_SHIFT 30
120 #define GENEVE_OPTLEN_SHIFT 24
121 #define GENEVE_O_BIT_SHIFT 23
122 #define GENEVE_C_BIT_SHIFT 22
123 #define GENEVE_6_RESERVED_SHIFT 16
124 #define GENEVE_VNI_SHIFT 8
126 #define GENEVE_VERSION_MASK 0xC0000000
127 #define GENEVE_OPTLEN_MASK 0x3F000000
128 #define GENEVE_O_BIT_MASK 0x00800000
129 #define GENEVE_C_BIT_MASK 0x00400000
130 #define GENEVE_6_RESERVED_MASK 0x003F0000
131 #define GENEVE_PROTOCOL_MASK 0x0000FFFF
132 #define GENEVE_VNI_MASK 0xFFFFFF00
228 h->first_word = clib_net_to_host_u32 (
h->first_word);
234 h->first_word = clib_host_to_net_u32 (
h->first_word);
static void vnet_set_geneve_protocol(geneve_header_t *h, u16 protocol)
#define GENEVE_PROTOCOL_MASK
#define GENEVE_C_BIT_MASK
static u8 vnet_get_geneve_version(geneve_header_t *h)
static u32 vnet_get_geneve_vni_network_order(geneve_header_t *h)
static void vnet_set_geneve_critical_bit(geneve_header_t *h, u8 critical_opts)
static void vnet_set_geneve_vni(geneve_header_t *h, u32 vni)
#define GENEVE_C_BIT_SHIFT
static void vnet_geneve_hdr_1word_hton(geneve_header_t *h)
static u16 vnet_get_geneve_protocol(geneve_header_t *h)
#define GENEVE_O_BIT_SHIFT
static u8 vnet_get_geneve_critical_bit(geneve_header_t *h)
static void vnet_set_geneve_oamframe_bit(geneve_header_t *h, u8 oam)
vl_api_ip_proto_t protocol
#define GENEVE_VERSION_MASK
static u8 vnet_get_geneve_oamframe_bit(geneve_header_t *h)
static void vnet_set_geneve_options_len(geneve_header_t *h, u8 len)
#define GENEVE_OPTLEN_MASK
static u32 vnet_get_geneve_vni(geneve_header_t *h)
#define GENEVE_O_BIT_MASK
static void vnet_geneve_hdr_1word_ntoh(geneve_header_t *h)
static u8 vnet_get_geneve_options_len(geneve_header_t *h)
static void vnet_set_geneve_version(geneve_header_t *h, u8 version)
#define GENEVE_OPTLEN_SHIFT
#define GENEVE_VERSION_SHIFT