fib_entry_src_init_t fesv_init
A representation of a path as described by a route producer.
Virtual function table each FIB entry source will register.
Information related to the source of a FIB entry.
An MPLS extension that maintains the path's outgoing labels,.
static void fib_entry_src_api_deinit(fib_entry_src_t *src)
Source deinitialisation Function.
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
mpls_label_t * frp_label_stack
The outgoing MPLS label Stack.
static void fib_entry_src_api_path_add(fib_entry_src_t *src, const fib_entry_t *entry, fib_path_list_flags_t pl_flags, const fib_route_path_t *rpaths)
A high priority source a plugin can use.
static void fib_entry_src_api_add(fib_entry_src_t *src, const fib_entry_t *entry, fib_entry_flag_t flags, fib_protocol_t proto, const dpo_id_t *dpo)
static void fib_entry_src_api_remove(fib_entry_src_t *src)
fib_node_index_t fib_path_list_copy_and_path_add(fib_node_index_t orig_path_list_index, fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
void fib_path_ext_list_flush(fib_path_ext_list_t *list)
fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
fib_node_index_t fib_path_list_copy_and_path_remove(fib_node_index_t orig_path_list_index, fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
fib_path_list_flags_t fib_entry_src_flags_2_path_list_flags(fib_entry_flag_t eflags)
void fib_path_ext_list_remove(fib_path_ext_list_t *list, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)
fib_path_ext_t * fib_path_ext_list_push_back(fib_path_ext_list_t *list, fib_node_index_t path_list_index, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)
enum fib_entry_flag_t_ fib_entry_flag_t
void fib_entry_src_register(fib_source_t source, const fib_entry_src_vft_t *vft)
From the control plane API.
fib_node_index_t fes_pl
The path-list created by the source.
#define FIB_NODE_INDEX_INVALID
static void fib_entry_src_api_path_swap(fib_entry_src_t *src, const fib_entry_t *entry, fib_path_list_flags_t pl_flags, const fib_route_path_t *rpaths)
void fib_path_ext_list_resolve(fib_path_ext_list_t *list, fib_node_index_t path_list_index)
void fib_entry_src_api_register(void)
static void fib_entry_src_api_init(fib_entry_src_t *src)
Source initialisation Function.
#define vec_foreach(var, vec)
Vector iterator.
fib_path_ext_list_t fes_path_exts
A vector of path extensions.
enum fib_path_list_flags_t_ fib_path_list_flags_t
static void fib_entry_src_api_path_remove(fib_entry_src_t *src, fib_path_list_flags_t pl_flags, const fib_route_path_t *rpaths)
fib_node_index_t fib_path_list_create_special(fib_protocol_t nh_proto, fib_path_list_flags_t flags, const dpo_id_t *dpo)
fib_path_ext_t * fib_path_ext_list_insert(fib_path_ext_list_t *list, fib_node_index_t path_list_index, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)