|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
51 ASSERT(
src->u.interface.fesi_sibling == ~0);
136 src->u.interface.fesi_cover =
144 src->u.interface.fesi_sibling =
174 src->u.interface.fesi_sibling = ~0;
204 if (
src->u.interface.fesi_cover !=
236 return (
format(s,
" cover:%d",
src->u.interface.fesi_cover));
Result from a cover update/change.
@ FIB_NODE_BW_REASON_FLAG_NONE
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
static void fib_entry_src_interface_deactivate(fib_entry_src_t *src, const fib_entry_t *fib_entry)
@ IP_LOOKUP_NEXT_GLEAN
This packet matches an "interface route" and packets need to be passed to ARP to find rewrite string ...
Information related to the source of a FIB entry.
#define FIB_NODE_INDEX_INVALID
static void fib_entry_src_interface_remove(fib_entry_src_t *src)
void fib_entry_cover_walk(fib_entry_t *cover, fib_entry_covered_walk_t walk, void *args)
@ FIB_SOURCE_BH_INTERFACE
cover tracking w/ glean management
enum fib_path_list_flags_t_ fib_path_list_flags_t
static int fib_entry_src_interface_update_glean(fib_entry_t *cover, const fib_entry_t *local)
Virtual function table each FIB entry source will register.
fib_entry_src_t * fib_entry_src_find(const fib_entry_t *fib_entry, fib_source_t source)
enum fib_entry_flag_t_ fib_entry_flag_t
u32 fe_fib_index
The index of the FIB table this entry is in.
adj_index_t fib_path_list_get_adj(fib_node_index_t path_list_index, fib_forward_chain_type_t type)
@ FIB_SOURCE_INTERFACE
Route added as a result of interface configuration.
ip_lookup_next_t lookup_next_index
Next hop after ip4-lookup.
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)
const static fib_entry_src_vft_t interface_src_vft
static void fib_entry_src_interface_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_forward_chain_type_t fib_entry_get_default_chain_type(const fib_entry_t *fib_entry)
static walk_rc_t fib_entry_src_interface_update_glean_walk(fib_entry_t *cover, fib_node_index_t covered, void *ctx)
ip46_address_t fp_addr
The address type is not deriveable from the fp_addr member.
void fib_attached_export_covered_added(fib_entry_t *cover, fib_node_index_t covered)
static void fib_entry_src_interface_init(fib_entry_src_t *src)
Source initialisation Function.
struct ip_adjacency_t_::@144::@147 glean
IP_LOOKUP_NEXT_GLEAN.
union ip_adjacency_t_::@144 sub_type
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)
fib_entry_t * fib_entry_get(fib_node_index_t index)
static void fib_entry_src_interface_installed(fib_entry_src_t *src, const fib_entry_t *fib_entry)
description fragment has unexpected format
static void fib_entry_src_interface_add(fib_entry_src_t *src, const fib_entry_t *entry, fib_entry_flag_t flags, dpo_proto_t proto, const dpo_id_t *dpo)
A representation of a path as described by a route producer.
int fib_prefix_is_cover(const fib_prefix_t *p1, const fib_prefix_t *p2)
Compare two prefixes for covering relationship.
void fib_entry_cover_untrack(fib_entry_t *cover, u32 tracked_index)
u32 fib_entry_cover_track(fib_entry_t *cover, fib_node_index_t covered)
u32 adj_index_t
An index for adjacencies.
fib_entry_src_init_t fesv_init
const fib_prefix_t fe_prefix
The prefix of the route.
void fib_entry_src_interface_register(void)
static u8 * fib_entry_src_interface_format(fib_entry_src_t *src, u8 *s)
fib_node_index_t fib_table_get_less_specific(u32 fib_index, const fib_prefix_t *prefix)
Get the less specific (covering) prefix.
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
void fib_entry_src_behaviour_register(fib_source_behaviour_t bh, const fib_entry_src_vft_t *vft)
static int fib_entry_src_interface_activate(fib_entry_src_t *src, const fib_entry_t *fib_entry)
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
enum walk_rc_t_ walk_rc_t
Walk return code.
fib_path_list_flags_t fib_entry_src_flags_2_path_list_flags(fib_entry_flag_t eflags)
static ip_adjacency_t * adj_get(adj_index_t adj_index)
Get a pointer to an adjacency object from its index.
static fib_entry_src_cover_res_t fib_entry_src_interface_cover_change(fib_entry_src_t *src, const fib_entry_t *fib_entry)
vl_api_wireguard_peer_flags_t flags