FD.io VPP  v17.07-30-g839fa73
Vector Packet Processing
gre.h File Reference
+ Include dependency graph for gre.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gre_protocol_info_t
 A GRE payload protocol registration. More...
 
struct  gre_tunnel_t
 A representation of a GRE tunnel. More...
 
struct  gre_main_t
 GRE related global data. More...
 
struct  vnet_gre_add_del_tunnel_args_t
 

Macros

#define gre_error(n, s)   GRE_ERROR_##n,
 
#define GRE_TUNNEL_TYPE_NAMES
 
#define GRE_TUNNEL_N_TYPES   ((gre_tunnel_type_t)GRE_TUNNEL_TYPE_TEB+1)
 
#define GRE_OUTPUT_NEXT_LOOKUP   1
 

Typedefs

typedef enum gre_tunnel_tyoe_t_ gre_tunnel_type_t
 The GRE tunnel type. More...
 

Enumerations

enum  gre_error_t { GRE_N_ERROR }
 
enum  gre_tunnel_tyoe_t_ { GRE_TUNNEL_TYPE_L3, GRE_TUNNEL_TYPE_TEB }
 The GRE tunnel type. More...
 

Functions

typedef CLIB_PACKED (struct{ip4_header_t ip4;gre_header_t gre;}) ip4_and_gre_header_t
 IPv4 and GRE header. More...
 
typedef CLIB_PACKED (struct{ip6_header_t ip6;gre_header_t gre;}) ip6_and_gre_header_t
 IPv6 and GRE header. More...
 
static gre_protocol_info_tgre_get_protocol_info (gre_main_t *em, gre_protocol_t protocol)
 
void gre_register_input_type (vlib_main_t *vm, gre_protocol_t protocol, u32 node_index)
 
clib_error_tgre_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
void gre_tunnel_stack (adj_index_t ai)
 gre_tunnel_stack More...
 
void gre_update_adj (vnet_main_t *vnm, u32 sw_if_index, adj_index_t ai)
 
void gre_register_input_protocol (vlib_main_t *vm, gre_protocol_t protocol, u32 node_index)
 
int vnet_gre_add_del_tunnel (vnet_gre_add_del_tunnel_args_t *a, u32 *sw_if_indexp)
 

Variables

vnet_hw_interface_class_t gre_hw_interface_class
 
gre_main_t gre_main
 
format_function_t format_gre_protocol
 
format_function_t format_gre_header
 
format_function_t format_gre_header_with_length
 
vlib_node_registration_t gre4_input_node
 (constructor) VLIB_REGISTER_NODE (gre4_input_node) More...
 
vlib_node_registration_t gre6_input_node
 (constructor) VLIB_REGISTER_NODE (gre6_input_node) More...
 
vnet_device_class_t gre_device_class
 
vnet_device_class_t gre_device_teb_class
 
unformat_function_t unformat_gre_protocol_host_byte_order
 
unformat_function_t unformat_gre_protocol_net_byte_order
 
unformat_function_t unformat_gre_header
 
unformat_function_t unformat_pg_gre_header
 

Macro Definition Documentation

#define gre_error (   n,
 
)    GRE_ERROR_##n,

Definition at line 31 of file gre.h.

#define GRE_OUTPUT_NEXT_LOOKUP   1

Definition at line 239 of file gre.h.

#define GRE_TUNNEL_N_TYPES   ((gre_tunnel_type_t)GRE_TUNNEL_TYPE_TEB+1)

Definition at line 74 of file gre.h.

#define GRE_TUNNEL_TYPE_NAMES
Value:
{ \
[GRE_TUNNEL_TYPE_L3] = "L3", \
[GRE_TUNNEL_TYPE_TEB] = "TEB", \
}
L3 GRE (i.e.
Definition: gre.h:62
Transparent Ethernet Bridging - the tunnel is in L2 mode.
Definition: gre.h:66

Definition at line 69 of file gre.h.

Typedef Documentation

The GRE tunnel type.

Enumeration Type Documentation

Enumerator
GRE_N_ERROR 

Definition at line 30 of file gre.h.

The GRE tunnel type.

Enumerator
GRE_TUNNEL_TYPE_L3 

L3 GRE (i.e.

this tunnel is in L3 mode)

GRE_TUNNEL_TYPE_TEB 

Transparent Ethernet Bridging - the tunnel is in L2 mode.

Definition at line 57 of file gre.h.

Function Documentation

typedef CLIB_PACKED ( struct{ip4_header_t ip4;gre_header_t gre;}  )

IPv4 and GRE header.

typedef CLIB_PACKED ( struct{ip6_header_t ip6;gre_header_t gre;}  )

IPv6 and GRE header.

static gre_protocol_info_t* gre_get_protocol_info ( gre_main_t em,
gre_protocol_t  protocol 
)
inlinestatic

Definition at line 192 of file gre.h.

+ Here is the caller graph for this function:

clib_error_t* gre_interface_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)

Definition at line 504 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gre_register_input_protocol ( vlib_main_t vm,
gre_protocol_t  protocol,
u32  node_index 
)

Definition at line 618 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gre_register_input_type ( vlib_main_t vm,
gre_protocol_t  protocol,
u32  node_index 
)
void gre_tunnel_stack ( adj_index_t  ai)

gre_tunnel_stack

'stack' (resolve the recursion for) the tunnel's midchain adjacency

Definition at line 169 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gre_update_adj ( vnet_main_t vnm,
u32  sw_if_index,
adj_index_t  ai 
)

Definition at line 286 of file gre.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_gre_add_del_tunnel ( vnet_gre_add_del_tunnel_args_t a,
u32 sw_if_indexp 
)

Definition at line 494 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

format_function_t format_gre_header

Definition at line 216 of file gre.h.

format_function_t format_gre_header_with_length

Definition at line 217 of file gre.h.

format_function_t format_gre_protocol

Definition at line 215 of file gre.h.

vlib_node_registration_t gre4_input_node

(constructor) VLIB_REGISTER_NODE (gre4_input_node)

Definition at line 570 of file node.c.

vlib_node_registration_t gre6_input_node

(constructor) VLIB_REGISTER_NODE (gre6_input_node)

Definition at line 591 of file node.c.

vnet_device_class_t gre_device_class
vnet_device_class_t gre_device_teb_class
vnet_hw_interface_class_t gre_hw_interface_class
gre_main_t gre_main

Definition at line 198 of file gre.h.

unformat_function_t unformat_gre_header

Definition at line 230 of file gre.h.

unformat_function_t unformat_gre_protocol_host_byte_order

Definition at line 226 of file gre.h.

unformat_function_t unformat_gre_protocol_net_byte_order

Definition at line 227 of file gre.h.

unformat_function_t unformat_pg_gre_header

Definition at line 231 of file gre.h.