FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
ip6_mfib.h File Reference
+ Include dependency graph for ip6_mfib.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

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. More...
 
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)
 
void ip6_mfib_table_entry_remove (ip6_mfib_t *fib, const ip6_address_t *grp, const ip6_address_t *src, 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_destroy (ip6_mfib_t *fib)
 
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. More...
 
static ip6_mfib_tip6_mfib_get (u32 index)
 Get the FIB at the given index. More...
 
u32 ip6_mfib_table_find_or_create_and_lock (u32 table_id, mfib_source_t src)
 Get or create an IPv4 fib. More...
 
u32 ip6_mfib_table_create_and_lock (mfib_source_t src)
 
static u32 ip6_mfib_index_from_table_id (u32 table_id)
 
u32 ip6_mfib_table_get_index_for_sw_if_index (u32 sw_if_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. More...
 
void ip6_mfib_table_walk (ip6_mfib_t *mfib, mfib_table_walk_fn_t fn, void *ctx)
 Walk the IP6 mfib table. More...
 
u8format_ip6_mfib_table_memory (u8 *s, va_list *args)
 format (display) ipv6 MFIB mempry usage More...
 

Function Documentation

u8* format_ip6_mfib_table_memory ( u8 s,
va_list *  args 
)

format (display) ipv6 MFIB mempry usage

Definition at line 476 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ip6_mfib_t* ip6_mfib_get ( u32  index)
inlinestatic

Get the FIB at the given index.

Definition at line 65 of file ip6_mfib.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip6_mfib_index_from_table_id ( u32  table_id)
inlinestatic

Definition at line 88 of file ip6_mfib.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

Definition at line 260 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_mfib_table_create_and_lock ( mfib_source_t  src)

+ Here is the caller graph for this function:

void ip6_mfib_table_destroy ( ip6_mfib_t fib)

Definition at line 218 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 
)

Definition at line 429 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_mfib_table_entry_remove ( ip6_mfib_t fib,
const ip6_address_t grp,
const ip6_address_t src,
u32  len 
)

Definition at line 452 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_mfib_table_find_or_create_and_lock ( u32  table_id,
mfib_source_t  src 
)

Get or create an IPv4 fib.

Get or create an IPv4 fib with the provided table ID.

Parameters
table_idWhen set to ~0, an arbitrary and unused fib ID is picked and can be retrieved with ret->table_id. Otherwise, the fib ID to be used to retrieve or create the desired fib.
Returns
A pointer to the retrieved or created fib.

Definition at line 301 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_mfib_table_get_index_for_sw_if_index ( u32  sw_if_index)

Definition at line 315 of file ip6_mfib.c.

+ Here is the caller graph for this function:

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.

FIXME

This IPv4 FIB is used by the protocol independent FIB. So directly using this APIs in client code is not encouraged. However, this IPv4 FIB can be used if all the client wants is an IPv4 prefix data-base

Definition at line 386 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

Definition at line 411 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 
)

Definition at line 359 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_mfib_table_walk ( ip6_mfib_t mfib,
mfib_table_walk_fn_t  fn,
void *  ctx 
)

Walk the IP6 mfib table.

Parameters
mfibthe table to walk
fnThe function to invoke on each entry visited
ctxA context passed in the visit function

Definition at line 560 of file ip6_mfib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: