FD.io VPP  v17.04-9-g99c0734
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_stats_key_t
 
struct  lisp_api_stats_t
 
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
 
struct  lisp_api_gpe_fwd_entry_t
 

Macros

#define foreach_lisp_gpe_ip_input_next
 
#define LISP_GPE_INPUT_NEXT_NSH_INPUT   4
 
#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 enum gpe_encap_mode_e gpe_encap_mode_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_N_ERROR }
 
enum  gpe_encap_mode_e { GPE_ENCAP_LISP, GPE_ENCAP_VXLAN, GPE_ENCAP_COUNT }
 
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...
 
lisp_api_gpe_fwd_entry_tvnet_lisp_gpe_fwd_entries_get_by_vni (u32 vni)
 
gpe_encap_mode_t vnet_gpe_get_encap_mode (void)
 
int vnet_gpe_set_encap_mode (gpe_encap_mode_t mode)
 Set GPE encapsulation mode. More...
 
u8 vnet_lisp_stats_enable_disable_state (void)
 
vnet_api_error_t vnet_lisp_stats_enable_disable (u8 enable)
 
lisp_api_stats_tvnet_lisp_get_stats (void)
 
int vnet_lisp_flush_stats (void)
 

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:218

Definition at line 278 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:218

Definition at line 290 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:218

Definition at line 55 of file lisp_gpe.h.

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

Definition at line 75 of file lisp_gpe.h.

#define LISP_GPE_INPUT_NEXT_NSH_INPUT   4

Definition at line 71 of file lisp_gpe.h.

Typedef Documentation

LISP-GPE global state.

Enumeration Type Documentation

Enumerator
GPE_ENCAP_LISP 
GPE_ENCAP_VXLAN 
GPE_ENCAP_COUNT 

Definition at line 110 of file lisp_gpe.h.

Enumerator
LGPE_IP4_LOOKUP_N_NEXT 

Definition at line 282 of file lisp_gpe.h.

Enumerator
LGPE_IP6_LOOKUP_N_NEXT 

Definition at line 294 of file lisp_gpe.h.

Enumerator
LISP_GPE_N_ERROR 

Definition at line 73 of file lisp_gpe.h.

Enum of possible next nodes post LISP-GPE decap.

Enumerator
LISP_GPE_INPUT_N_NEXT 

Definition at line 62 of file lisp_gpe.h.

Enumerator
NO_ACTION 
FORWARD_NATIVE 
SEND_MAP_REQUEST 
DROP 

Definition at line 213 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 392 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 648 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 571 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 705 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 611 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:

gpe_encap_mode_t vnet_gpe_get_encap_mode ( void  )

Definition at line 436 of file lisp_gpe.c.

+ Here is the caller graph for this function:

int vnet_gpe_set_encap_mode ( gpe_encap_mode_t  mode)

Set GPE encapsulation mode.

Definition at line 214 of file lisp_gpe.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_flush_stats ( void  )

Definition at line 1211 of file lisp_gpe_fwd_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

lisp_api_stats_t* vnet_lisp_get_stats ( void  )

Definition at line 3645 of file control.c.

+ Here is the call graph for this function:

+ 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 190 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 181 of file lisp_gpe.c.

+ Here is the caller graph for this function:

lisp_api_gpe_fwd_entry_t* vnet_lisp_gpe_fwd_entries_get_by_vni ( u32  vni)

Definition at line 1432 of file lisp_gpe_fwd_entry.c.

+ Here is the caller graph for this function:

static lisp_gpe_main_t* vnet_lisp_gpe_get_main ( )
inlinestatic

Definition at line 179 of file lisp_gpe.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t vnet_lisp_stats_enable_disable ( u8  enable)

Definition at line 3862 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 vnet_lisp_stats_enable_disable_state ( void  )

Definition at line 3878 of file control.c.

+ 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 461 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 483 of file decap.c.

LISP-GPE global state.

Definition at line 176 of file lisp_gpe.h.