71 ASSERT(cover != fib_entry);
73 src->
adj.fesa_sibling =
94 if (cover_itf == adj_itf)
148 return (
format(s,
"cover:%d", src->
adj.fesa_cover));
#define VNET_SW_INTERFACE_FLAG_UNNUMBERED
fib_entry_src_init_t fesv_init
fib_node_bw_reason_flag_t bw_reason
fib_entry_flag_t fib_entry_get_flags_i(const fib_entry_t *fib_entry)
A representation of a path as described by a route producer.
void fib_entry_cover_untrack(fib_entry_t *cover, u32 tracked_index)
vnet_main_t * vnet_get_main(void)
Virtual function table each FIB entry source will register.
u32 fib_path_list_get_resolving_interface(fib_node_index_t path_list_index)
Information related to the source of a FIB entry.
static fib_entry_src_cover_res_t fib_entry_src_adj_cover_change(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Result from a cover update/change.
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
u32 fe_fib_index
The index of the FIB table this entry is in.
static int fib_entry_src_adj_activate(fib_entry_src_t *src, const fib_entry_t *fib_entry)
void fib_attached_export_covered_added(fib_entry_t *cover, fib_node_index_t covered)
u32 fib_entry_cover_track(fib_entry_t *cover, fib_node_index_t covered)
fib_node_index_t fib_entry_get_index(const fib_entry_t *fib_entry)
static void fib_entry_src_adj_remove(fib_entry_src_t *src)
static fib_entry_src_cover_res_t fib_entry_src_adj_cover_update(fib_entry_src_t *src, const fib_entry_t *fib_entry)
fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
static void fib_entry_src_adj_installed(fib_entry_src_t *src, const fib_entry_t *fib_entry)
void fib_entry_src_adj_register(void)
u32 fib_entry_get_resolving_interface(fib_node_index_t entry_index)
static void fib_entry_src_adj_deactivate(fib_entry_src_t *src, const fib_entry_t *fib_entry)
struct fib_entry_src_t_::@88::@91 adj
static void fib_entry_src_adj_init(fib_entry_src_t *src)
Source initialisation Function.
void fib_attached_export_covered_removed(fib_entry_t *cover, fib_node_index_t covered)
fib_entry_t * fib_entry_get(fib_node_index_t index)
static u8 * fib_entry_src_adj_format(fib_entry_src_t *src, u8 *s)
u32 unnumbered_sw_if_index
void fib_entry_src_register(fib_source_t source, const fib_entry_src_vft_t *vft)
static void fib_entry_src_adj_path_swap(fib_entry_src_t *src, const fib_entry_t *entry, fib_path_list_flags_t pl_flags, const fib_route_path_t *paths)
fib_node_index_t fes_pl
The path-list created by the source.
#define FIB_NODE_INDEX_INVALID
enum fib_path_list_flags_t_ fib_path_list_flags_t
const fib_prefix_t fe_prefix
The prefix of the route.
fib_node_index_t fib_table_get_less_specific(u32 fib_index, const fib_prefix_t *prefix)
Get the less specific (covering) prefix.