|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
144 src->u.rr.fesr_sibling =
265 old_path_list =
src->fes_pl;
294 return (
format(s,
" cover:%d",
src->u.rr.fesr_cover));
fib_entry_flag_t fib_entry_get_flags_i(const fib_entry_t *fib_entry)
static int fib_entry_src_rr_activate(fib_entry_src_t *src, const fib_entry_t *fib_entry)
@ FIB_PATH_LIST_FLAG_DROP
Result from a cover update/change.
@ FIB_NODE_BW_REASON_FLAG_NONE
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
@ FIB_ENTRY_FLAG_ATTACHED
Information related to the source of a FIB entry.
#define FIB_NODE_INDEX_INVALID
static u8 * fib_entry_src_rr_format(fib_entry_src_t *src, u8 *s)
void fib_entry_src_rr_resolve_via_connected(fib_entry_src_t *src, const fib_entry_t *fib_entry, const fib_entry_t *cover)
fib_node_index_t fe_parent
the path-list for which this entry is a child.
@ FIB_PATH_LIST_FLAG_NONE
void fib_entry_src_rr_register(void)
@ FIB_NODE_BW_REASON_FLAG_EVALUATE
void fib_path_list_unlock(fib_node_index_t path_list_index)
Virtual function table each FIB entry source will register.
u32 fe_fib_index
The index of the FIB table this entry is in.
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
u32 fib_node_index_t
A typedef of a node index.
fib_node_index_t fib_entry_get_index(const fib_entry_t *fib_entry)
static void fib_entry_src_rr_init(fib_entry_src_t *src)
Source initialisation Function.
u32 fib_entry_get_resolving_interface(fib_node_index_t entry_index)
dpo_proto_t fib_proto_to_dpo(fib_protocol_t fib_proto)
ip46_address_t fp_addr
The address type is not deriveable from the fp_addr member.
void fib_entry_src_rr_use_covers_pl(fib_entry_src_t *src, const fib_entry_t *fib_entry, const fib_entry_t *cover)
#define vec_free(V)
Free vector's memory (no header).
#define FIB_ENTRY_FLAGS_RR_INHERITED
fib_node_index_t fib_path_list_create_special(dpo_proto_t nh_proto, fib_path_list_flags_t flags, const dpo_id_t *dpo)
const static fib_entry_src_vft_t rr_src_vft
fib_entry_t * fib_entry_get(fib_node_index_t index)
description fragment has unexpected format
fib_entry_src_cover_res_t fib_entry_src_rr_cover_update(fib_entry_src_t *src, const fib_entry_t *fib_entry)
fib_entry_src_cover_res_t fib_entry_src_rr_cover_change(fib_entry_src_t *src, const fib_entry_t *fib_entry)
A representation of a path as described by a route producer.
fib_entry_flag_t fib_entry_get_flags(fib_node_index_t fib_entry_index)
static void fib_entry_src_rr_deactivate(fib_entry_src_t *src, const fib_entry_t *fib_entry)
Source Deactivate.
fib_protocol_t fp_proto
protocol type
void fib_entry_cover_untrack(fib_entry_t *cover, u32 tracked_index)
fib_node_bw_reason_flag_t bw_reason
u32 fib_entry_cover_track(fib_entry_t *cover, fib_node_index_t covered)
void fib_path_list_lock(fib_node_index_t path_list_index)
const dpo_id_t * drop_dpo_get(dpo_proto_t proto)
@ FIB_SOURCE_BH_RR
If your adding a new source from a plugin these are probably not the behaviour you're lokking for.
fib_entry_src_init_t fesv_init
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.
void fib_entry_src_behaviour_register(fib_source_behaviour_t bh, const fib_entry_src_vft_t *vft)
fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
int fib_path_list_recursive_loop_detect(fib_node_index_t path_list_index, fib_node_index_t **entry_indicies)