134 else if (new_cover != covered)
static int fib_entry_cover_change_one(fib_entry_t *cover, fib_node_index_t covered, void *args)
static int fib_entry_cover_update_one(fib_entry_t *cover, fib_node_index_t covered, void *args)
#define FIB_ENTRY_DBG(_e, _fmt, _args...)
Debug macro.
void fib_entry_cover_untrack(fib_entry_t *cover, u32 tracked_index)
int(* fib_entry_covered_walk_t)(fib_entry_t *cover, fib_node_index_t covered, void *ctx)
callback function used when walking the covered entries
void fib_entry_get_prefix(fib_node_index_t fib_entry_index, fib_prefix_t *pfx)
void fib_node_list_walk(fib_node_list_t list, fib_node_list_walk_cb_t fn, void *args)
Walk the list of node.
u32 fib_entry_cover_track(fib_entry_t *cover, fib_node_index_t covered)
fib_node_index_t fnp_index
node's index
void fib_node_list_remove(fib_node_list_t list, u32 sibling)
void fib_entry_delegate_remove(fib_entry_t *fib_entry, fib_entry_delegate_type_t type)
Aggregrate type for a prefix.
fib_node_index_t fib_entry_get_index(const fib_entry_t *fib_entry)
int fib_prefix_is_cover(const fib_prefix_t *p1, const fib_prefix_t *p2)
Compare two prefixes for covering relationship.
A representation of one pointer to another node.
struct fib_enty_cover_walk_ctx_t_ fib_enty_cover_walk_ctx_t
Internal struct to hold user supplied paraneters for the cover walk.
fib_entry_delegate_t * fib_entry_delegate_get(const fib_entry_t *fib_entry, fib_entry_delegate_type_t type)
fib_node_list_t fd_list
For the cover tracking.
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.
void fib_entry_cover_change_notify(fib_node_index_t cover_index, fib_node_index_t covered)
u32 fib_node_index_t
A typedef of a node index.
fib_entry_t * fib_entry_get(fib_node_index_t index)
#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.
fib_entry_covered_walk_t walk
void fib_node_list_destroy(fib_node_list_t *list)
static uword pointer_to_uword(const void *p)
void fib_entry_cover_changed(fib_node_index_t fib_entry_index)
void fib_entry_cover_walk(fib_entry_t *cover, fib_entry_covered_walk_t walk, void *args)
#define FIB_NODE_INDEX_INVALID
void fib_entry_cover_updated(fib_node_index_t fib_entry_index)
static int fib_entry_cover_walk_node_ptr(fib_node_ptr_t *depend, void *args)
Dependency list of covered entries.
void fib_entry_cover_update_notify(fib_entry_t *fib_entry)
A Delagate is a means to implmenet the Delagation design pattern; the extension of an objects functio...
fib_entry_delegate_t * fib_entry_delegate_find_or_add(fib_entry_t *fib_entry, fib_entry_delegate_type_t fdt)
Internal struct to hold user supplied paraneters for the cover walk.