16 #ifndef included_vnet_lisp_gpe_h 17 #define included_vnet_lisp_gpe_h 36 }) ip4_udp_lisp_gpe_header_t;
44 }) ip6_udp_lisp_gpe_header_t;
99 ip_address_t
src, dst;
120 #define foreach_lisp_gpe_ip_input_next \ 121 _(DROP, "error-drop") \ 122 _(IP4_INPUT, "ip4-input") \ 123 _(IP6_INPUT, "ip6-input") \ 124 _(L2_INPUT, "l2-input") 128 #define _(s,n) LISP_GPE_INPUT_NEXT_##s, 136 #define lisp_gpe_error(n,s) LISP_GPE_ERROR_##n, 138 #undef lisp_gpe_error 149 BVT (clib_bihash) ip6_lookup_table;
153 u8 *prefix_lengths_in_search_order;
155 i32 dst_address_length_refcounts[129];
206 BVT (clib_bihash) l2_fib;
306 ip_prefix_t * src_prefix,
u32 table_id,
310 ip_prefix_t * src_prefix,
u32 table_id);
312 #define foreach_lgpe_ip4_lookup_next \ 313 _(DROP, "error-drop") \ 314 _(LISP_CP_LOOKUP, "lisp-cp-lookup") 318 #define _(sym,str) LGPE_IP4_LOOKUP_NEXT_##sym, 324 #define foreach_lgpe_ip6_lookup_next \ 325 _(DROP, "error-drop") \ 326 _(LISP_CP_LOOKUP, "lisp-cp-lookup") 330 #define _(sym,str) LGPE_IP6_LOOKUP_NEXT_##sym, 338 #define L2_FIB_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) 339 #define L2_FIB_DEFAULT_HASH_MEMORY_SIZE (32<<20)
#define foreach_lisp_gpe_ip_input_next
u32 * free_tunnel_hw_if_indices
lisp_gpe_main_t lisp_gpe_main
u32 ip4_lookup_next_lgpe_ip4_lookup
lisp_gpe_tunnel_t * tunnels
struct lisp_gpe_sub_tunnel lisp_gpe_sub_tunnel_t
clib_error_t * vnet_lisp_gpe_enable_disable(vnet_lisp_gpe_enable_disable_args_t *a)
struct _vlib_node_registration vlib_node_registration_t
uword * lgpe_ip6_lookup_next_index_by_table_id
uword * vni_by_sw_if_index
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()
int ip_sd_fib_add_del_route(lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id, ip_adjacency_t *add_adj, u8 is_add)
u32 ip_sd_fib_get_route(lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id)
typedef CLIB_PACKED(struct{ip4_header_t ip4;udp_header_t udp;lisp_gpe_header_t lisp;}) ip4_udp_lisp_gpe_header_t
int vlib_main(vlib_main_t *vm, unformat_input_t *input)
struct tunnel_lookup tunnel_lookup_t
ip6_src_fib_t * ip6_src_fibs
ip4_src_fib_t * ip4_src_fibs
int vnet_lisp_gpe_add_del_iface(vnet_lisp_gpe_add_del_iface_args_t *a, u32 *hw_if_indexp)
mhash_t lisp_gpe_tunnel_by_key
vlib_node_registration_t lisp_gpe_ip6_input_node
(constructor) VLIB_REGISTER_NODE (lisp_gpe_ip6_input_node)
vlib_node_registration_t lgpe_ip4_lookup_node
(constructor) VLIB_REGISTER_NODE (lgpe_ip4_lookup_node)
u32 ip6_lookup_next_lgpe_ip6_lookup
struct nomalized_sub_tunnel normalized_sub_tunnel_weights_t
u8 * format_lisp_gpe_header_with_length(u8 *s, va_list *args)
uword * sw_if_index_by_vni
struct ip6_src_fib ip6_src_fib_t
u32 sub_tunnels_lbv_count
enum lgpe_ip6_lookup_next lgpe_ip6_lookup_next_t
#define foreach_lgpe_ip4_lookup_next
struct _gid_address_t gid_address_t
uword * non_empty_dst_address_length_bitmap
enum lgpe_ip4_lookup_next lgpe_ip4_lookup_next_t
locator_pair_t * locator_pairs
uword * hw_if_index_by_dp_table
u32 lisp_l2_fib_lookup(lisp_gpe_main_t *lgm, u16 bd_index, u8 src_mac[8], u8 dst_mac[8])
#define foreach_lgpe_ip6_lookup_next
normalized_sub_tunnel_weights_t * norm_sub_tunnel_weights
tunnel_lookup_t l3_ifaces
int vnet_lisp_gpe_add_del_fwd_entry(vnet_lisp_gpe_add_del_fwd_entry_args_t *a, u32 *hw_if_indexp)
u8 * format_vnet_lisp_gpe_status(u8 *s, va_list *args)
locator_pair_t * locator_pairs
u8 vnet_lisp_gpe_enable_disable_status(void)
vlib_node_registration_t lgpe_ip6_lookup_node
(constructor) VLIB_REGISTER_NODE (lgpe_ip6_lookup_node)
u32 lookup_table_nbuckets
uword * lgpe_ip4_lookup_next_index_by_table_id
lisp_gpe_sub_tunnel_t * sub_tunnels