|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
25 #ifndef __IP6_MFIB_H__
26 #define __IP6_MFIB_H__
39 #define IP6_MFIB_DEFAULT_HASH_NUM_BUCKETS (64 * 1024)
40 #define IP6_MFIB_DEFAULT_HASH_MEMORY_SIZE (32<<20)
63 const ip6_address_t *
src,
64 const ip6_address_t *grp,
67 const ip6_address_t *
src,
68 const ip6_address_t *grp);
70 const ip6_address_t *grp,
71 const ip6_address_t *
src,
74 const ip6_address_t *
src,
75 const ip6_address_t *grp,
79 const ip6_address_t *grp,
80 const ip6_address_t *
src,
84 const ip6_address_t *grp,
85 const ip6_address_t *
src,
142 const ip6_address_t *
src,
143 const ip6_address_t *grp);
fib_node_index_t ip6_mfib_table_lookup2(const ip6_mfib_t *mfib, const ip6_address_t *src, const ip6_address_t *grp)
Data-plane lookup function.
vnet_interface_main_t * im
fib_node_index_t ip6_mfib_table_lookup_exact_match(const ip6_mfib_t *fib, const ip6_address_t *grp, const ip6_address_t *src, u32 len)
static ip6_mfib_t * ip6_mfib_get(u32 index)
Get the FIB at the given index.
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
void ip6_mfib_table_entry_remove(ip6_mfib_t *fib, const ip6_address_t *grp, const ip6_address_t *src, u32 len)
fib_node_index_t ip6_mfib_table_get_less_specific(const ip6_mfib_t *mfib, const ip6_address_t *src, const ip6_address_t *grp, u32 len)
fib_node_index_t ip6_mfib_table_lookup(const ip6_mfib_t *fib, const ip6_address_t *src, const ip6_address_t *grp, u32 len)
u16 * prefix_lengths_in_search_order
void ip6_mfib_interface_enable_disable(u32 sw_if_index, int is_enable)
Add/remove the interface from the accepting list of the special MFIB entries.
A representation of a single IP6 mfib table.
enum mfib_source_t_ mfib_source_t
Possible [control plane] sources of MFIB entries.
uword * non_empty_dst_address_length_bitmap
walk_rc_t(* mfib_table_walk_fn_t)(fib_node_index_t fei, void *ctx)
Call back function when walking entries in a FIB table.
u32 fib_node_index_t
A typedef of a node index.
static u32 ip6_mfib_index_from_table_id(u32 table_id)
struct mfib_table_t_ * mfibs
Vector of MFIBs.
clib_bihash_40_8_t ip6_mhash
void ip6_mfib_table_walk(ip6_mfib_t *mfib, mfib_table_walk_fn_t fn, void *ctx)
Walk the IP6 mfib table.
void ip6_mfib_table_entry_insert(ip6_mfib_t *fib, const ip6_address_t *grp, const ip6_address_t *src, u32 len, fib_node_index_t fib_entry_index)
u32 ip6_mfib_table_get_index_for_sw_if_index(u32 sw_if_index)
struct ip6_mfib_table_instance_t_ ip6_mfib_table_instance_t
A representation of a single IP6 mfib table.
fib_node_index_t ip6_mfib_table_fwd_lookup(const ip6_mfib_t *fib, const ip6_address_t *src, const ip6_address_t *grp)
i32 dst_address_length_refcounts[257]
u8 * format_ip6_mfib_table_memory(u8 *s, va_list *args)
format (display) ipv6 MFIB mempry usage
void ip6_mfib_table_destroy(ip6_mfib_t *fib)
ip6_mfib_table_instance_t ip6_mfib_table
the single MFIB table
u32 ip6_mfib_table_find_or_create_and_lock(u32 table_id, mfib_source_t src)
Get or create an IPv4 fib.
vl_api_interface_index_t sw_if_index
u32 ip6_mfib_table_create_and_lock(mfib_source_t src)