25 #ifndef __IP4_MFIB_H__ 26 #define __IP4_MFIB_H__
u8 * format_ip4_mfib_table_memory(u8 *s, va_list *args)
format (display) the memory usage for IP4 mfibs
static ip4_mfib_t * ip4_mfib_get(u32 index)
Get the FIB at the given index.
enum mfib_source_t_ mfib_source_t
Possible [control plane] sources of MFIB entries.
void ip4_mfib_table_entry_insert(ip4_mfib_t *fib, const ip4_address_t *grp, const ip4_address_t *src, u32 len, fib_node_index_t fib_entry_index)
u32 ip4_mfib_table_get_index_for_sw_if_index(u32 sw_if_index)
void ip4_mfib_table_walk(ip4_mfib_t *mfib, mfib_table_walk_fn_t fn, void *ctx)
Walk the IP4 mfib table.
struct mfib_table_t_ * mfibs
Vector of MFIBs.
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
fib_node_index_t ip4_mfib_table_lookup_exact_match(const ip4_mfib_t *fib, const ip4_address_t *grp, const ip4_address_t *src, u32 len)
u32 fib_node_index_t
A typedef of a node index.
fib_node_index_t ip4_mfib_table_lookup(const ip4_mfib_t *fib, const ip4_address_t *src, const ip4_address_t *grp, u32 len)
The IPv4 Multicast-FIB.
u32 ip4_mfib_table_find_or_create_and_lock(u32 table_id, mfib_source_t src)
Get or create an IPv4 fib.
u32 ip4_mfib_table_create_and_lock(mfib_source_t src)
void ip4_mfib_table_entry_remove(ip4_mfib_t *fib, const ip4_address_t *grp, const ip4_address_t *src, u32 len)
void ip4_mfib_table_destroy(ip4_mfib_t *fib)
int(* mfib_table_walk_fn_t)(fib_node_index_t fei, void *ctx)
Call back function when walking entries in a FIB table.
ip4_main_t ip4_main
Global ip4 main structure.
uword * mfib_index_by_table_id
Hash table mapping table id to multicast fib index.
static u32 ip4_mfib_index_from_table_id(u32 table_id)
fib_node_index_t ip4_mfib_table_get_less_specific(const ip4_mfib_t *mfib, const ip4_address_t *src, const ip4_address_t *grp, u32 len)