134 else if (new_cover != covered)
static int mfib_entry_cover_update_one(mfib_entry_t *cover, fib_node_index_t covered, void *args)
void mfib_entry_delegate_remove(mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t type)
static fib_node_index_t mfib_entry_get_index(const mfib_entry_t *mfe)
void fib_node_list_walk(fib_node_list_t list, fib_node_list_walk_cb_t fn, void *args)
Walk the list of node.
void mfib_entry_cover_changed(fib_node_index_t mfib_entry_index)
static int mfib_entry_cover_change_one(mfib_entry_t *cover, fib_node_index_t covered, void *args)
fib_node_index_t fnp_index
node's index
void fib_node_list_remove(fib_node_list_t list, u32 sibling)
int(* mfib_entry_covered_walk_t)(mfib_entry_t *cover, fib_node_index_t covered, void *ctx)
callback function used when walking the covered entries
u32 mfib_entry_cover_track(mfib_entry_t *cover, fib_node_index_t covered)
A representation of one pointer to another node.
void mfib_entry_cover_walk(mfib_entry_t *cover, mfib_entry_covered_walk_t walk, void *args)
struct mfib_enty_cover_walk_ctx_t_ mfib_enty_cover_walk_ctx_t
Internal struct to hold user supplied paraneters for the cover walk.
int mfib_prefix_is_cover(const mfib_prefix_t *p1, const mfib_prefix_t *p2)
Compare two prefixes for covering relationship.
void mfib_entry_cover_change_notify(fib_node_index_t cover_index, fib_node_index_t covered)
u32 fib_node_list_push_front(fib_node_list_t list, int owner_id, fib_node_type_t type, fib_node_index_t index)
Insert an element at the from of the list.
mfib_entry_covered_walk_t walk
Internal struct to hold user supplied paraneters for the cover walk.
fib_node_list_t mfd_list
For the cover tracking.
static mfib_entry_t * mfib_entry_get(fib_node_index_t index)
static int mfib_entry_cover_walk_node_ptr(fib_node_ptr_t *depend, void *args)
#define MFIB_ENTRY_DBG(_e, _fmt, _args...)
void mfib_entry_cover_untrack(mfib_entry_t *cover, u32 tracked_index)
A Delagate is a means to implmenet the Delagation design pattern; the extension of an objects functio...
u32 fib_node_index_t
A typedef of a node index.
mfib_entry_delegate_t * mfib_entry_delegate_get(const mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t type)
Aggregrate type for a prefix.
mfib_entry_delegate_t * mfib_entry_delegate_find_or_add(mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t fdt)
#define uword_to_pointer(u, type)
u32 fib_node_list_get_size(fib_node_list_t list)
fib_node_list_t fib_node_list_create(void)
Create a new node list.
void mfib_entry_cover_updated(fib_node_index_t mfib_entry_index)
void fib_node_list_destroy(fib_node_list_t *list)
static uword pointer_to_uword(const void *p)
#define FIB_NODE_INDEX_INVALID
Dependency list of covered entries.
const mfib_prefix_t * mfib_entry_get_prefix(fib_node_index_t mfib_entry_index)
void mfib_entry_cover_update_notify(mfib_entry_t *mfib_entry)