FD.io VPP  v16.06
Vector Packet Processing
ip4_mtrie.c File Reference
+ Include dependency graph for ip4_mtrie.c:

Go to the source code of this file.

Data Structures

struct  ip4_fib_mtrie_set_unset_leaf_args_t
 

Functions

static void ply_init (ip4_fib_mtrie_ply_t *p, ip4_fib_mtrie_leaf_t init, uword prefix_len)
 
static ip4_fib_mtrie_leaf_t ply_create (ip4_fib_mtrie_t *m, ip4_fib_mtrie_leaf_t init_leaf, uword prefix_len)
 
always_inline ip4_fib_mtrie_ply_tget_next_ply_for_leaf (ip4_fib_mtrie_t *m, ip4_fib_mtrie_leaf_t l)
 
static void ply_free (ip4_fib_mtrie_t *m, ip4_fib_mtrie_ply_t *p)
 
void ip4_fib_free (ip4_fib_mtrie_t *m)
 
u32 ip4_mtrie_lookup_address (ip4_fib_mtrie_t *m, ip4_address_t dst)
 
static void set_ply_with_more_specific_leaf (ip4_fib_mtrie_t *m, ip4_fib_mtrie_ply_t *ply, ip4_fib_mtrie_leaf_t new_leaf, uword new_leaf_dst_address_bits)
 
static void set_leaf (ip4_fib_mtrie_t *m, ip4_fib_mtrie_set_unset_leaf_args_t *a, u32 old_ply_index, u32 dst_address_byte_index)
 
static uword unset_leaf (ip4_fib_mtrie_t *m, ip4_fib_mtrie_set_unset_leaf_args_t *a, ip4_fib_mtrie_ply_t *old_ply, u32 dst_address_byte_index)
 
void ip4_mtrie_init (ip4_fib_mtrie_t *m)
 
void ip4_fib_mtrie_add_del_route (ip4_fib_t *fib, ip4_address_t dst_address, u32 dst_address_length, u32 adj_index, u32 is_del)
 
always_inline uword maybe_remap_leaf (ip_lookup_main_t *lm, ip4_fib_mtrie_leaf_t *p)
 
static void maybe_remap_ply (ip_lookup_main_t *lm, ip4_fib_mtrie_ply_t *ply)
 
void ip4_mtrie_maybe_remap_adjacencies (ip_lookup_main_t *lm, ip4_fib_mtrie_t *m)
 
static uword mtrie_memory_usage (ip4_fib_mtrie_t *m, ip4_fib_mtrie_ply_t *p)
 
static u8format_ip4_fib_mtrie_leaf (u8 *s, va_list *va)
 
static u8format_ip4_fib_mtrie_ply (u8 *s, va_list *va)
 
u8format_ip4_fib_mtrie (u8 *s, va_list *va)
 

Function Documentation

u8* format_ip4_fib_mtrie ( u8 s,
va_list *  va 
)

Definition at line 550 of file ip4_mtrie.c.

+ Here is the call graph for this function:

static u8* format_ip4_fib_mtrie_leaf ( u8 s,
va_list *  va 
)
static

Definition at line 493 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* format_ip4_fib_mtrie_ply ( u8 s,
va_list *  va 
)
static

Definition at line 506 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

always_inline ip4_fib_mtrie_ply_t* get_next_ply_for_leaf ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_leaf_t  l 
)

Definition at line 102 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip4_fib_free ( ip4_fib_mtrie_t m)

Definition at line 130 of file ip4_mtrie.c.

+ Here is the call graph for this function:

void ip4_fib_mtrie_add_del_route ( ip4_fib_t fib,
ip4_address_t  dst_address,
u32  dst_address_length,
u32  adj_index,
u32  is_del 
)

Definition at line 363 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip4_mtrie_init ( ip4_fib_mtrie_t m)

Definition at line 353 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip4_mtrie_lookup_address ( ip4_fib_mtrie_t m,
ip4_address_t  dst 
)

Definition at line 136 of file ip4_mtrie.c.

+ Here is the call graph for this function:

void ip4_mtrie_maybe_remap_adjacencies ( ip_lookup_main_t lm,
ip4_fib_mtrie_t m 
)

Definition at line 463 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

always_inline uword maybe_remap_leaf ( ip_lookup_main_t lm,
ip4_fib_mtrie_leaf_t p 
)

Definition at line 428 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void maybe_remap_ply ( ip_lookup_main_t lm,
ip4_fib_mtrie_ply_t ply 
)
static

Definition at line 448 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword mtrie_memory_usage ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_ply_t p 
)
static

Definition at line 471 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ip4_fib_mtrie_leaf_t ply_create ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_leaf_t  init_leaf,
uword  prefix_len 
)
static

Definition at line 90 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ply_free ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_ply_t p 
)
static

Definition at line 111 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ply_init ( ip4_fib_mtrie_ply_t p,
ip4_fib_mtrie_leaf_t  init,
uword  prefix_len 
)
static

Definition at line 43 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void set_leaf ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_set_unset_leaf_args_t a,
u32  old_ply_index,
u32  dst_address_byte_index 
)
static

Definition at line 203 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void set_ply_with_more_specific_leaf ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_ply_t ply,
ip4_fib_mtrie_leaf_t  new_leaf,
uword  new_leaf_dst_address_bits 
)
static

Definition at line 169 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword unset_leaf ( ip4_fib_mtrie_t m,
ip4_fib_mtrie_set_unset_leaf_args_t a,
ip4_fib_mtrie_ply_t old_ply,
u32  dst_address_byte_index 
)
static

Definition at line 299 of file ip4_mtrie.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: