FD.io VPP  v21.01.1
Vector Packet Processing
geneve_packet.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  geneve_options_t
 
struct  geneve_header_t
 

Macros

#define GENEVE_MAX_OPT_LENGTH   128
 
#define LINUX_OPT_CLASS   0x0100
 
#define OVS_OPT_CLASS   0x0101
 
#define OVN_OPT_CLASS   0x0102
 
#define INT_OPT_CLASS   0x0103
 
#define VMWARE_OPT_CLASS   0x0104
 
#define GENEVE_BASE_HEADER_LENGTH   8
 
#define GENEVE_MAX_TOTAL_HDR_LENGTH   260
 
#define GENEVE_VERSION   0
 
#define GENEVE_ETH_PROTOCOL   0x6558
 
#define GENEVE_VERSION_SHIFT   30
 
#define GENEVE_OPTLEN_SHIFT   24
 
#define GENEVE_O_BIT_SHIFT   23
 
#define GENEVE_C_BIT_SHIFT   22
 
#define GENEVE_6_RESERVED_SHIFT   16
 
#define GENEVE_VNI_SHIFT   8
 
#define GENEVE_VERSION_MASK   0xC0000000
 
#define GENEVE_OPTLEN_MASK   0x3F000000
 
#define GENEVE_O_BIT_MASK   0x00800000
 
#define GENEVE_C_BIT_MASK   0x00400000
 
#define GENEVE_6_RESERVED_MASK   0x003F0000
 
#define GENEVE_PROTOCOL_MASK   0x0000FFFF
 
#define GENEVE_VNI_MASK   0xFFFFFF00
 

Functions

static u32 vnet_get_geneve_vni (geneve_header_t *h)
 
static u32 vnet_get_geneve_vni_network_order (geneve_header_t *h)
 
static void vnet_set_geneve_vni (geneve_header_t *h, u32 vni)
 
static u8 vnet_get_geneve_version (geneve_header_t *h)
 
static void vnet_set_geneve_version (geneve_header_t *h, u8 version)
 
static u8 vnet_get_geneve_options_len (geneve_header_t *h)
 
static void vnet_set_geneve_options_len (geneve_header_t *h, u8 len)
 
static u8 vnet_get_geneve_oamframe_bit (geneve_header_t *h)
 
static void vnet_set_geneve_oamframe_bit (geneve_header_t *h, u8 oam)
 
static u8 vnet_get_geneve_critical_bit (geneve_header_t *h)
 
static void vnet_set_geneve_critical_bit (geneve_header_t *h, u8 critical_opts)
 
static u16 vnet_get_geneve_protocol (geneve_header_t *h)
 
static void vnet_set_geneve_protocol (geneve_header_t *h, u16 protocol)
 
static void vnet_geneve_hdr_1word_ntoh (geneve_header_t *h)
 
static void vnet_geneve_hdr_1word_hton (geneve_header_t *h)
 

Macro Definition Documentation

◆ GENEVE_6_RESERVED_MASK

#define GENEVE_6_RESERVED_MASK   0x003F0000

Definition at line 130 of file geneve_packet.h.

◆ GENEVE_6_RESERVED_SHIFT

#define GENEVE_6_RESERVED_SHIFT   16

Definition at line 123 of file geneve_packet.h.

◆ GENEVE_BASE_HEADER_LENGTH

#define GENEVE_BASE_HEADER_LENGTH   8

Definition at line 95 of file geneve_packet.h.

◆ GENEVE_C_BIT_MASK

#define GENEVE_C_BIT_MASK   0x00400000

Definition at line 129 of file geneve_packet.h.

◆ GENEVE_C_BIT_SHIFT

#define GENEVE_C_BIT_SHIFT   22

Definition at line 122 of file geneve_packet.h.

◆ GENEVE_ETH_PROTOCOL

#define GENEVE_ETH_PROTOCOL   0x6558

Definition at line 99 of file geneve_packet.h.

◆ GENEVE_MAX_OPT_LENGTH

#define GENEVE_MAX_OPT_LENGTH   128

Definition at line 31 of file geneve_packet.h.

◆ GENEVE_MAX_TOTAL_HDR_LENGTH

#define GENEVE_MAX_TOTAL_HDR_LENGTH   260

Definition at line 96 of file geneve_packet.h.

◆ GENEVE_O_BIT_MASK

#define GENEVE_O_BIT_MASK   0x00800000

Definition at line 128 of file geneve_packet.h.

◆ GENEVE_O_BIT_SHIFT

#define GENEVE_O_BIT_SHIFT   23

Definition at line 121 of file geneve_packet.h.

◆ GENEVE_OPTLEN_MASK

#define GENEVE_OPTLEN_MASK   0x3F000000

Definition at line 127 of file geneve_packet.h.

◆ GENEVE_OPTLEN_SHIFT

#define GENEVE_OPTLEN_SHIFT   24

Definition at line 120 of file geneve_packet.h.

◆ GENEVE_PROTOCOL_MASK

#define GENEVE_PROTOCOL_MASK   0x0000FFFF

Definition at line 131 of file geneve_packet.h.

◆ GENEVE_VERSION

#define GENEVE_VERSION   0

Definition at line 98 of file geneve_packet.h.

◆ GENEVE_VERSION_MASK

#define GENEVE_VERSION_MASK   0xC0000000

Definition at line 126 of file geneve_packet.h.

◆ GENEVE_VERSION_SHIFT

#define GENEVE_VERSION_SHIFT   30

Definition at line 119 of file geneve_packet.h.

◆ GENEVE_VNI_MASK

#define GENEVE_VNI_MASK   0xFFFFFF00

Definition at line 132 of file geneve_packet.h.

◆ GENEVE_VNI_SHIFT

#define GENEVE_VNI_SHIFT   8

Definition at line 124 of file geneve_packet.h.

◆ INT_OPT_CLASS

#define INT_OPT_CLASS   0x0103

Definition at line 55 of file geneve_packet.h.

◆ LINUX_OPT_CLASS

#define LINUX_OPT_CLASS   0x0100

Definition at line 52 of file geneve_packet.h.

◆ OVN_OPT_CLASS

#define OVN_OPT_CLASS   0x0102

Definition at line 54 of file geneve_packet.h.

◆ OVS_OPT_CLASS

#define OVS_OPT_CLASS   0x0101

Definition at line 53 of file geneve_packet.h.

◆ VMWARE_OPT_CLASS

#define VMWARE_OPT_CLASS   0x0104

Definition at line 56 of file geneve_packet.h.

Function Documentation

◆ vnet_geneve_hdr_1word_hton()

static void vnet_geneve_hdr_1word_hton ( geneve_header_t h)
inlinestatic

Definition at line 231 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_geneve_hdr_1word_ntoh()

static void vnet_geneve_hdr_1word_ntoh ( geneve_header_t h)
inlinestatic

Definition at line 225 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_get_geneve_critical_bit()

static u8 vnet_get_geneve_critical_bit ( geneve_header_t h)
inlinestatic

Definition at line 198 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_get_geneve_oamframe_bit()

static u8 vnet_get_geneve_oamframe_bit ( geneve_header_t h)
inlinestatic

Definition at line 185 of file geneve_packet.h.

◆ vnet_get_geneve_options_len()

static u8 vnet_get_geneve_options_len ( geneve_header_t h)
inlinestatic

Definition at line 172 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_get_geneve_protocol()

static u16 vnet_get_geneve_protocol ( geneve_header_t h)
inlinestatic

Definition at line 212 of file geneve_packet.h.

◆ vnet_get_geneve_version()

static u8 vnet_get_geneve_version ( geneve_header_t h)
inlinestatic

Definition at line 159 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_get_geneve_vni()

static u32 vnet_get_geneve_vni ( geneve_header_t h)
inlinestatic

Definition at line 138 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_get_geneve_vni_network_order()

static u32 vnet_get_geneve_vni_network_order ( geneve_header_t h)
inlinestatic

Definition at line 145 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_set_geneve_critical_bit()

static void vnet_set_geneve_critical_bit ( geneve_header_t h,
u8  critical_opts 
)
inlinestatic

Definition at line 204 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_set_geneve_oamframe_bit()

static void vnet_set_geneve_oamframe_bit ( geneve_header_t h,
u8  oam 
)
inlinestatic

Definition at line 191 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_set_geneve_options_len()

static void vnet_set_geneve_options_len ( geneve_header_t h,
u8  len 
)
inlinestatic

Definition at line 178 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_set_geneve_protocol()

static void vnet_set_geneve_protocol ( geneve_header_t h,
u16  protocol 
)
inlinestatic

Definition at line 218 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_set_geneve_version()

static void vnet_set_geneve_version ( geneve_header_t h,
u8  version 
)
inlinestatic

Definition at line 165 of file geneve_packet.h.

+ Here is the caller graph for this function:

◆ vnet_set_geneve_vni()

static void vnet_set_geneve_vni ( geneve_header_t h,
u32  vni 
)
inlinestatic

Definition at line 151 of file geneve_packet.h.

+ Here is the caller graph for this function: