|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
16 #ifndef __MFIB_ENTRY_SRC_H__
17 #define __MFIB_ENTRY_SRC_H__
49 #define MFIB_ENTRY_SRC_ATTRIBUTES { \
50 [MFIB_ENTRY_SRC_ATTRIBUTE_STALE] = "stale", \
53 #define FOR_EACH_MFIB_SRC_ATTRIBUTE(_item) \
54 for (_item = MFIB_ENTRY_SRC_ATTRIBUTE_FIRST; \
55 _item <= MFIB_ENTRY_SRC_ATTRIBUTE_LAST; \
70 "FIB entry flags field size too big");
u8 * format_mfib_entry_src_flags(u8 *s, va_list *args)
enum mfib_entry_src_flag_t_ mfib_entry_src_flags_t
fib_node_index_t mfpe_path
@ MFIB_ENTRY_SRC_FLAG_NONE
struct mfib_path_ext_t_ mfib_path_ext_t
MFIB extensions to each path.
mfib_entry_src_activiate_t mev_activate
mfib_entry_flags_t mfes_route_flags
Route flags.
mfib_itf_flags_t mfpe_flags
enum mfib_entry_flags_t_ mfib_entry_flags_t
fib_node_index_t mfes_pl
The path-list of forwarding interfaces.
mfib_src_res_t(* mfib_entry_src_cover_change_t)(mfib_entry_t *, mfib_entry_src_t *)
A function provided by each source to be invoked when the cover changes.
struct mfib_entry_src_t_ mfib_entry_src_t
The source of an MFIB entry.
mfib_src_res_t mfib_entry_src_cover_update(mfib_entry_t *mfib_entry, mfib_entry_src_t *bsrc)
@ MFIB_ENTRY_SRC_ATTRIBUTE_FIRST
Marker.
The source of an MFIB entry.
mfib_entry_src_flags_t mfes_flags
Source flags.
fib_node_index_t mfes_cover
mfib_entry_src_cover_change_t mev_cover_change
enum mfib_source_t_ mfib_source_t
Possible [control plane] sources of MFIB entries.
u32 fib_rpf_id_t
An RPF-ID is numerical value that is used RPF validate.
mfib_path_ext_t * mfes_exts
Hash table of path extensions.
mfib_entry_src_t * mfib_entry_get_best_src(const mfib_entry_t *mfib_entry)
STATIC_ASSERT(sizeof(mfib_entry_src_flags_t)<=2, "FIB entry flags field size too big")
u32 fib_node_index_t
A typedef of a node index.
u32 mfes_ref_count
The reference count on the entry.
mfib_itf_t * mfes_itfs
The hash table of all interfaces.
enum mfib_itf_flags_t_ mfib_itf_flags_t
enum mfib_entry_src_attribute_t_ mfib_entry_src_attribute_t
Flags for the source data.
enum mfib_src_res_t_ mfib_src_res_t
signals from the sources to the caller
void mfib_entry_src_rr_module_init(void)
void mfib_entry_src_activate(mfib_entry_t *mfib_entry, mfib_entry_src_t *bsrc)
mfib_src_res_t(* mfib_entry_src_cover_update_t)(mfib_entry_t *, mfib_entry_src_t *)
A function provided by each source to be invoked when the cover is updated.
mfib_src_res_t mfib_entry_src_cover_change(mfib_entry_t *mfib_entry, mfib_entry_src_t *bsrc)
mfib_source_t mfes_src
Which source this is.
mfib_entry_src_deactiviate_t mev_deactivate
@ MFIB_ENTRY_SRC_FLAG_STALE
@ MFIB_ENTRY_SRC_ATTRIBUTE_STALE
the source has been added to the entry
MFIB extensions to each path.
mfib_entry_src_cover_update_t mev_cover_update
void mfib_entry_src_deactivate(mfib_entry_t *mfib_entry, mfib_entry_src_t *bsrc)
Virtual function table provided by each_source.
An interface associated with a particular MFIB entry.
void mfib_entry_src_module_init(void)
void mfib_entry_src_register(mfib_source_t, const mfib_entry_src_vft *)
fib_rpf_id_t mfes_rpf_id
RPF-ID.
@ MFIB_ENTRY_SRC_ATTRIBUTE_LAST
Marker.
mfib_entry_src_attribute_t_
Flags for the source data.
mfib_src_res_t_
signals from the sources to the caller
void(* mfib_entry_src_deactiviate_t)(mfib_entry_t *, mfib_entry_src_t *)
A function provided by each source to be invoked when it is deactivated.
void(* mfib_entry_src_activiate_t)(mfib_entry_t *, mfib_entry_src_t *)
A function provided by each source to be invoked when it is activated.
struct mfib_entry_src_vft_t_ mfib_entry_src_vft
Virtual function table provided by each_source.