FD.io VPP  v17.01.1-3-gc6833f8
Vector Packet Processing
lisp_gpe.h File Reference

LISP-GPE definitions. More...

+ Include dependency graph for lisp_gpe.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  tunnel_lookup
 
struct  lisp_gpe_main
 LISP-GPE global state. More...
 
struct  vnet_lisp_gpe_enable_disable_args_t
 
struct  vnet_lisp_gpe_add_del_fwd_entry_args_t
 

Macros

#define foreach_lisp_gpe_ip_input_next
 
#define lisp_gpe_error(n, s)   LISP_GPE_ERROR_##n,
 
#define foreach_lgpe_ip4_lookup_next
 
#define foreach_lgpe_ip6_lookup_next
 

Typedefs

typedef struct tunnel_lookup tunnel_lookup_t
 
typedef struct lisp_gpe_main lisp_gpe_main_t
 LISP-GPE global state. More...
 
typedef enum lgpe_ip4_lookup_next lgpe_ip4_lookup_next_t
 
typedef enum lgpe_ip6_lookup_next lgpe_ip6_lookup_next_t
 

Enumerations

enum  lisp_gpe_input_next_t { LISP_GPE_INPUT_N_NEXT }
 Enum of possible next nodes post LISP-GPE decap. More...
 
enum  lisp_gpe_error_t { lisp_gpe_error, lisp_gpe_error }
 
enum  negative_fwd_actions_e { NO_ACTION, FORWARD_NATIVE, SEND_MAP_REQUEST, DROP }
 
enum  lgpe_ip4_lookup_next { LGPE_IP4_LOOKUP_N_NEXT }
 
enum  lgpe_ip6_lookup_next { LGPE_IP6_LOOKUP_N_NEXT }
 

Functions

typedef CLIB_PACKED (struct{ip4_header_t ip4;udp_header_t udp;lisp_gpe_header_t lisp;}) ip4_udp_lisp_gpe_header_t
 IP4-UDP-LISP encap header. More...
 
typedef CLIB_PACKED (struct{ip6_header_t ip6;udp_header_t udp;lisp_gpe_header_t lisp;}) ip6_udp_lisp_gpe_header_t
 IP6-UDP-LISP encap header. More...
 
static lisp_gpe_main_tvnet_lisp_gpe_get_main ()
 
u8format_lisp_gpe_header_with_length (u8 *s, va_list *args)
 
u8 vnet_lisp_gpe_enable_disable_status (void)
 Read LISP-GPE status. More...
 
u32 lisp_gpe_l3_iface_find_or_create (lisp_gpe_main_t *lgm, u32 overlay_table_id, u32 vni)
 
void lisp_gpe_del_l2_iface (lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
 Add/del LISP-GPE interface. More...
 
u32 lisp_gpe_add_l2_iface (lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
 Add/del LISP-GPE L2 interface. More...
 
void lisp_gpe_del_l3_iface (lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
 
u32 lisp_gpe_add_l3_iface (lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
 Add/del LISP-GPE L3 interface. More...
 
clib_error_tvnet_lisp_gpe_enable_disable (vnet_lisp_gpe_enable_disable_args_t *a)
 Enable/disable LISP-GPE. More...
 
u8format_vnet_lisp_gpe_status (u8 *s, va_list *args)
 Format LISP-GPE status. More...
 

Variables

lisp_gpe_main_t lisp_gpe_main
 LISP-GPE global state. More...
 
vlib_node_registration_t lisp_gpe_ip4_input_node
 (constructor) VLIB_REGISTER_NODE (lisp_gpe_ip4_input_node) More...
 
vlib_node_registration_t lisp_gpe_ip6_input_node
 (constructor) VLIB_REGISTER_NODE (lisp_gpe_ip6_input_node) More...
 
vnet_hw_interface_class_t lisp_gpe_hw_class
 

Detailed Description

LISP-GPE definitions.

Definition in file lisp_gpe.h.

Macro Definition Documentation

#define foreach_lgpe_ip4_lookup_next
Value:
_(DROP, "error-drop") \
_(LISP_CP_LOOKUP, "lisp-cp-lookup")
Definition: lisp_gpe.h:174

Definition at line 223 of file lisp_gpe.h.

#define foreach_lgpe_ip6_lookup_next
Value:
_(DROP, "error-drop") \
_(LISP_CP_LOOKUP, "lisp-cp-lookup")
Definition: lisp_gpe.h:174

Definition at line 235 of file lisp_gpe.h.

#define foreach_lisp_gpe_ip_input_next
Value:
_(DROP, "error-drop") \
_(IP4_INPUT, "ip4-input") \
_(IP6_INPUT, "ip6-input") \
_(L2_INPUT, "l2-input")
Definition: lisp_gpe.h:174

Definition at line 53 of file lisp_gpe.h.

#define lisp_gpe_error (   n,
 
)    LISP_GPE_ERROR_##n,

Definition at line 70 of file lisp_gpe.h.

Typedef Documentation

LISP-GPE global state.

Enumeration Type Documentation

Enumerator
LGPE_IP4_LOOKUP_N_NEXT 

Definition at line 227 of file lisp_gpe.h.

Enumerator
LGPE_IP6_LOOKUP_N_NEXT 

Definition at line 239 of file lisp_gpe.h.

Enumerator
lisp_gpe_error 
lisp_gpe_error 

Definition at line 68 of file lisp_gpe.h.

Enum of possible next nodes post LISP-GPE decap.

Enumerator
LISP_GPE_INPUT_N_NEXT 

Definition at line 60 of file lisp_gpe.h.

Enumerator
NO_ACTION 
FORWARD_NATIVE 
SEND_MAP_REQUEST 
DROP 

Definition at line 169 of file lisp_gpe.h.

Function Documentation

typedef CLIB_PACKED ( struct{ip4_header_t ip4;udp_header_t udp;lisp_gpe_header_t lisp;}  )

IP4-UDP-LISP encap header.

typedef CLIB_PACKED ( struct{ip6_header_t ip6;udp_header_t udp;lisp_gpe_header_t lisp;}  )

IP6-UDP-LISP encap header.

u8* format_lisp_gpe_header_with_length ( u8 s,
va_list *  args 
)

Definition at line 171 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_vnet_lisp_gpe_status ( u8 s,
va_list *  args 
)

Format LISP-GPE status.

Definition at line 282 of file lisp_gpe.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 lisp_gpe_add_l2_iface ( lisp_gpe_main_t lgm,
u32  vni,
u32  bd_id 
)

Add/del LISP-GPE L2 interface.

Creates LISP-GPE interface, sets it in L2 mode in the appropriate bridge domain, sets egress arcs and enables it.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters to create interface.
Returns
number of vectors in frame.

Definition at line 543 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 lisp_gpe_add_l3_iface ( lisp_gpe_main_t lgm,
u32  vni,
u32  table_id 
)

Add/del LISP-GPE L3 interface.

Creates LISP-GPE interface, sets ingress arcs from lisp_gpeX_lookup, installs default routes that attract all traffic with no more specific routes to lgpe-ipx-lookup, set egress arcs to ipx-lookup, sets the interface in the right vrf and enables it.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters to create interface.
Returns
number of vectors in frame.

Definition at line 466 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void lisp_gpe_del_l2_iface ( lisp_gpe_main_t lgm,
u32  vni,
u32  bd_id 
)

Add/del LISP-GPE interface.

Add/del LISP-GPE interface.

Creates LISP-GPE interface, sets it in L2 mode in the appropriate bridge domain, sets egress arcs and enables it.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters to create interface.
Returns
number of vectors in frame.

Definition at line 600 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void lisp_gpe_del_l3_iface ( lisp_gpe_main_t lgm,
u32  vni,
u32  bd_id 
)

Definition at line 506 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 lisp_gpe_l3_iface_find_or_create ( lisp_gpe_main_t lgm,
u32  overlay_table_id,
u32  vni 
)

+ Here is the caller graph for this function:

clib_error_t* vnet_lisp_gpe_enable_disable ( vnet_lisp_gpe_enable_disable_args_t a)

Enable/disable LISP-GPE.

Definition at line 183 of file lisp_gpe.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 vnet_lisp_gpe_enable_disable_status ( void  )

Read LISP-GPE status.

Read LISP-GPE status.

Definition at line 174 of file lisp_gpe.c.

+ Here is the caller graph for this function:

static lisp_gpe_main_t* vnet_lisp_gpe_get_main ( )
inlinestatic

Definition at line 135 of file lisp_gpe.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vnet_hw_interface_class_t lisp_gpe_hw_class
vlib_node_registration_t lisp_gpe_ip4_input_node

(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip4_input_node)

Definition at line 452 of file decap.c.

vlib_node_registration_t lisp_gpe_ip6_input_node

(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip6_input_node)

Definition at line 474 of file decap.c.

LISP-GPE global state.

Definition at line 132 of file lisp_gpe.h.