20 #ifndef included_vnet_lisp_gpe_h 21 #define included_vnet_lisp_gpe_h 44 }) ip4_udp_lisp_gpe_header_t;
53 }) ip6_udp_lisp_gpe_header_t;
56 #define foreach_lisp_gpe_ip_input_next \ 57 _(DROP, "error-drop") \ 58 _(IP4_INPUT, "ip4-input") \ 59 _(IP6_INPUT, "ip6-input") \ 60 _(L2_INPUT, "l2-input") 65 #define _(s,n) LISP_GPE_INPUT_NEXT_##s, 72 #define LISP_GPE_INPUT_NEXT_NSH_INPUT 4 76 #define lisp_gpe_error(n,s) LISP_GPE_ERROR_##n, 119 typedef struct lisp_gpe_main
145 BVT (clib_bihash) l2_fib;
155 BVT (clib_bihash) nsh_fib;
201 u32 overlay_table_id,
u32 vni);
208 u8 with_default_route);
294 #define foreach_lgpe_ip4_lookup_next \ 295 _(DROP, "error-drop") \ 296 _(LISP_CP_LOOKUP, "lisp-cp-lookup") 300 #define _(sym,str) LGPE_IP4_LOOKUP_NEXT_##sym, 306 #define foreach_lgpe_ip6_lookup_next \ 307 _(DROP, "error-drop") \ 308 _(LISP_CP_LOOKUP, "lisp-cp-lookup") 312 #define _(sym,str) LGPE_IP6_LOOKUP_NEXT_##sym,
#define foreach_lisp_gpe_ip_input_next
u32 * free_tunnel_hw_if_indices
Free vlib hw_if_indices.
lisp_gpe_main_t lisp_gpe_main
LISP-GPE global state.
int vnet_gpe_set_encap_mode(gpe_encap_mode_t mode)
Set GPE encapsulation mode.
gpe_encap_mode_t vnet_gpe_get_encap_mode(void)
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.
A representation of a path as described by a route producer.
u32 bd_id
bridge domain id
u8 vnet_lisp_stats_enable_disable_state(void)
vnet_api_error_t vnet_lisp_stats_enable_disable(u8 enable)
u32 encap_fib_index
FIB index to lookup remote locator at encap.
clib_error_t * vnet_lisp_gpe_enable_disable(vnet_lisp_gpe_enable_disable_args_t *a)
Enable/disable LISP-GPE.
Combined counter to hold both packets and byte differences.
void vnet_lisp_gpe_del_nsh_iface(lisp_gpe_main_t *lgm)
Del LISP-GPE NSH interface.
vnet_hw_interface_class_t lisp_gpe_hw_class
uword * vni_by_sw_if_index
void lisp_gpe_del_l2_iface(lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
Add/del LISP-GPE interface.
vlib_main_t * vlib_main
convenience
vlib_node_registration_t lisp_gpe_ip4_input_node
(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip4_input_node)
static lisp_gpe_main_t * vnet_lisp_gpe_get_main()
const dpo_id_t * nsh_cp_lkup
lisp_api_stats_t * vnet_lisp_get_stats(void)
vlib_combined_counter_main_t counters
int vnet_lisp_flush_stats(void)
uword * lisp_gpe_fwd_entries
DB of all forwarding entries.
enum gpe_encap_mode_e gpe_encap_mode_t
struct tunnel_lookup tunnel_lookup_t
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
u32 table_id
table (vrf) id
vlib_node_registration_t lisp_gpe_ip6_input_node
(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip6_input_node)
lisp_api_gpe_fwd_entry_t * vnet_lisp_gpe_fwd_entries_get_by_vni(u32 vni)
vl_api_tunnel_mode_t mode
LISP-GPE packet header structure.
u8 * format_lisp_gpe_header_with_length(u8 *s, va_list *args)
u8 is_negative
type of mapping
uword * sw_if_index_by_vni
lookup decap tunnel termination sw_if_index by vni and vice versa
u32 vni
VNI/tenant id in HOST byte order.
u32 fwd_entry_index
forwarding entry index of
void lisp_gpe_del_l3_iface(lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
lisp_gpe_input_next_t
Enum of possible next nodes post LISP-GPE decap.
u32 decap_fib_index
FIB index to lookup inner IP at decap.
tunnel_lookup_t l2_ifaces
enum lgpe_ip6_lookup_next lgpe_ip6_lookup_next_t
#define foreach_lgpe_ip4_lookup_next
struct _gid_address_t gid_address_t
u8 * placeholder_stats_pool
enum lgpe_ip4_lookup_next lgpe_ip4_lookup_next_t
struct lisp_gpe_main lisp_gpe_main_t
LISP-GPE global state.
gpe_encap_mode_t encap_mode
uword * hw_if_index_by_dp_table
Lookup lisp-gpe interfaces by dp table (eg.
#define foreach_lgpe_ip6_lookup_next
gid_address_t rmt_eid
remote eid
u32 lisp_gpe_l3_iface_find_or_create(lisp_gpe_main_t *lgm, u32 overlay_table_id, u32 vni)
struct _vlib_node_registration vlib_node_registration_t
negative_fwd_actions_e action
action for negative mappings
struct lisp_gpe_fwd_entry_t_ * lisp_fwd_entry_pool
A Pool of all LISP forwarding entries.
u32 vnet_lisp_gpe_add_nsh_iface(lisp_gpe_main_t *lgm)
Add LISP-GPE NSH interface.
u32 lisp_gpe_add_l2_iface(lisp_gpe_main_t *lgm, u32 vni, u32 bd_id)
Add/del LISP-GPE L2 interface.
struct _vnet_hw_interface_class vnet_hw_interface_class_t
tunnel_lookup_t l3_ifaces
dpo_id_t l2_lb_cp_lkup
Load-balance for a miss in the table.
u8 * format_vnet_lisp_gpe_status(u8 *s, va_list *args)
Format LISP-GPE status.
u32 dp_table
generic access
locator_pair_t * locator_pairs
vector of locator pairs
int vnet_gpe_add_del_native_fwd_rpath(vnet_gpe_native_fwd_rpath_args_t *a)
A collection of combined counters.
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.
u8 vnet_lisp_gpe_enable_disable_status(void)
Read LISP-GPE status.
uword * lisp_stats_index_by_key
gid_address_t lcl_eid
local eid
tunnel_lookup_t nsh_ifaces