25 #ifndef __IP6_MFIB_H__ 26 #define __IP6_MFIB_H__ 34 const ip6_address_t *
src,
35 const ip6_address_t *grp,
38 const ip6_address_t *
src,
39 const ip6_address_t *grp);
41 const ip6_address_t *grp,
42 const ip6_address_t *
src,
45 const ip6_address_t *
src,
46 const ip6_address_t *grp,
50 const ip6_address_t *grp,
51 const ip6_address_t *
src,
55 const ip6_address_t *grp,
56 const ip6_address_t *
src,
113 const ip6_address_t *
src,
114 const ip6_address_t *grp);
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)
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)
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_fwd_lookup(const ip6_mfib_t *fib, const ip6_address_t *src, const ip6_address_t *grp)
u32 ip6_mfib_table_create_and_lock(mfib_source_t src)
enum mfib_source_t_ mfib_source_t
Possible [control plane] sources of MFIB entries.
u8 * format_ip6_mfib_table_memory(u8 *s, va_list *args)
format (display) ipv6 MFIB mempry usage
vl_api_interface_index_t sw_if_index
void ip6_mfib_table_destroy(ip6_mfib_t *fib)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
uword * mfib_index_by_table_id
Hash table mapping table id to multicast fib index.
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.
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_interface_enable_disable(u32 sw_if_index, int is_enable)
Add/remove the interface from the accepting list of the special MFIB entries.
u32 fib_node_index_t
A typedef of a node index.
static u32 ip6_mfib_index_from_table_id(u32 table_id)
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.
struct mfib_table_t_ * mfibs
Vector of MFIBs.
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)
The IPv4 Multicast-FIB.
u32 ip6_mfib_table_get_index_for_sw_if_index(u32 sw_if_index)
static ip6_mfib_t * ip6_mfib_get(u32 index)
Get the FIB at the given index.
u32 ip6_mfib_table_find_or_create_and_lock(u32 table_id, mfib_source_t src)
Get or create an IPv4 fib.
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)