FD.io VPP  v21.06-3-gbb25fbf28
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  vnet_gpe_native_fwd_rpath_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, u8 with_default_route)
 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)
 
int vnet_gpe_add_del_native_fwd_rpath (vnet_gpe_native_fwd_rpath_args_t *a)
 
u32 vnet_lisp_gpe_add_nsh_iface (lisp_gpe_main_t *lgm)
 Add LISP-GPE NSH interface. More...
 
void vnet_lisp_gpe_del_nsh_iface (lisp_gpe_main_t *lgm)
 Del LISP-GPE NSH interface. 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

◆ foreach_lgpe_ip4_lookup_next

#define foreach_lgpe_ip4_lookup_next
Value:
_(DROP, "error-drop") \
_(LISP_CP_LOOKUP, "lisp-cp-lookup")

Definition at line 294 of file lisp_gpe.h.

◆ foreach_lgpe_ip6_lookup_next

#define foreach_lgpe_ip6_lookup_next
Value:
_(DROP, "error-drop") \
_(LISP_CP_LOOKUP, "lisp-cp-lookup")

Definition at line 306 of file lisp_gpe.h.

◆ foreach_lisp_gpe_ip_input_next

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

Definition at line 56 of file lisp_gpe.h.

◆ lisp_gpe_error

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

Definition at line 76 of file lisp_gpe.h.

◆ LISP_GPE_INPUT_NEXT_NSH_INPUT

#define LISP_GPE_INPUT_NEXT_NSH_INPUT   4

Definition at line 72 of file lisp_gpe.h.

Typedef Documentation

◆ gpe_encap_mode_t

◆ lgpe_ip4_lookup_next_t

◆ lgpe_ip6_lookup_next_t

◆ lisp_gpe_main_t

LISP-GPE global state.

◆ tunnel_lookup_t

Enumeration Type Documentation

◆ gpe_encap_mode_e

Enumerator
GPE_ENCAP_LISP 
GPE_ENCAP_VXLAN 
GPE_ENCAP_COUNT 

Definition at line 111 of file lisp_gpe.h.

◆ lgpe_ip4_lookup_next

Enumerator
LGPE_IP4_LOOKUP_N_NEXT 

Definition at line 298 of file lisp_gpe.h.

◆ lgpe_ip6_lookup_next

Enumerator
LGPE_IP6_LOOKUP_N_NEXT 

Definition at line 310 of file lisp_gpe.h.

◆ lisp_gpe_error_t

Enumerator
LISP_GPE_N_ERROR 

Definition at line 74 of file lisp_gpe.h.

◆ lisp_gpe_input_next_t

Enum of possible next nodes post LISP-GPE decap.

Enumerator
LISP_GPE_INPUT_N_NEXT 

Definition at line 63 of file lisp_gpe.h.

◆ negative_fwd_actions_e

Enumerator
NO_ACTION 
FORWARD_NATIVE 
SEND_MAP_REQUEST 
DROP 

Definition at line 219 of file lisp_gpe.h.

Function Documentation

◆ CLIB_PACKED() [1/2]

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

IP4-UDP-LISP encap header.

◆ CLIB_PACKED() [2/2]

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

IP6-UDP-LISP encap header.

◆ format_lisp_gpe_header_with_length()

u8* format_lisp_gpe_header_with_length ( u8 s,
va_list *  args 
)

Definition at line 171 of file interface.c.

+ Here is the caller graph for this function:

◆ format_vnet_lisp_gpe_status()

u8* format_vnet_lisp_gpe_status ( u8 s,
va_list *  args 
)

Format LISP-GPE status.

Definition at line 592 of file lisp_gpe.c.

+ Here is the caller graph for this function:

◆ lisp_gpe_add_l2_iface()

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 657 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lisp_gpe_add_l3_iface()

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

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 578 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lisp_gpe_del_l2_iface()

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 720 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lisp_gpe_del_l3_iface()

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

Definition at line 620 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lisp_gpe_l3_iface_find_or_create()

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

◆ vnet_gpe_add_del_native_fwd_rpath()

int vnet_gpe_add_del_native_fwd_rpath ( vnet_gpe_native_fwd_rpath_args_t a)

Definition at line 458 of file lisp_gpe.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_gpe_get_encap_mode()

gpe_encap_mode_t vnet_gpe_get_encap_mode ( void  )

Definition at line 631 of file lisp_gpe.c.

+ Here is the caller graph for this function:

◆ vnet_gpe_set_encap_mode()

int vnet_gpe_set_encap_mode ( gpe_encap_mode_t  mode)

Set GPE encapsulation mode.

Definition at line 224 of file lisp_gpe.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_flush_stats()

int vnet_lisp_flush_stats ( void  )

Definition at line 1286 of file lisp_gpe_fwd_entry.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_get_stats()

lisp_api_stats_t* vnet_lisp_get_stats ( void  )

Definition at line 4543 of file control.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_add_nsh_iface()

u32 vnet_lisp_gpe_add_nsh_iface ( lisp_gpe_main_t lgm)

Add LISP-GPE NSH interface.

Creates LISP-GPE interface, sets it in L3 mode.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters to create interface.
Returns
sw_if_index.

Definition at line 754 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_del_nsh_iface()

void vnet_lisp_gpe_del_nsh_iface ( lisp_gpe_main_t lgm)

Del LISP-GPE NSH interface.

Definition at line 794 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_enable_disable()

clib_error_t* vnet_lisp_gpe_enable_disable ( vnet_lisp_gpe_enable_disable_args_t a)

Enable/disable LISP-GPE.

Definition at line 193 of file lisp_gpe.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_enable_disable_status()

u8 vnet_lisp_gpe_enable_disable_status ( void  )

Read LISP-GPE status.

Read LISP-GPE status.

Definition at line 184 of file lisp_gpe.c.

+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_fwd_entries_get_by_vni()

lisp_api_gpe_fwd_entry_t* vnet_lisp_gpe_fwd_entries_get_by_vni ( u32  vni)

Definition at line 1535 of file lisp_gpe_fwd_entry.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_get_main()

static lisp_gpe_main_t* vnet_lisp_gpe_get_main ( )
inlinestatic

Definition at line 184 of file lisp_gpe.h.

+ Here is the caller graph for this function:

◆ vnet_lisp_stats_enable_disable()

vnet_api_error_t vnet_lisp_stats_enable_disable ( u8  enable)

Definition at line 4842 of file control.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_lisp_stats_enable_disable_state()

u8 vnet_lisp_stats_enable_disable_state ( void  )

Definition at line 4858 of file control.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ lisp_gpe_hw_class

vnet_hw_interface_class_t lisp_gpe_hw_class

◆ lisp_gpe_ip4_input_node

vlib_node_registration_t lisp_gpe_ip4_input_node

(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip4_input_node)

Definition at line 460 of file decap.c.

◆ lisp_gpe_ip6_input_node

vlib_node_registration_t lisp_gpe_ip6_input_node

(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip6_input_node)

Definition at line 482 of file decap.c.

◆ lisp_gpe_main

LISP-GPE global state.

Definition at line 30 of file lisp_gpe.c.

DROP
@ DROP
Definition: lisp_gpe.h:224