|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
void bier_fmask_link(index_t bfmi, bier_bp_t bp)
static const fib_node_vft_t bier_entry_vft
index_t dpoi_index
the index of objects of that type
#define DPO_INVALID
An initialiser for DPOs declared on the stack.
enum fib_node_back_walk_rc_t_ fib_node_back_walk_rc_t
Return code from a back walk function.
static fib_node_t * bier_entry_get_node(fib_node_index_t index)
dpo_type_t dpoi_type
the type
u8 * fib_path_list_format(fib_node_index_t path_list_index, u8 *s)
vlib_main_t vlib_node_runtime_t * node
A FIB graph nodes virtual function table.
#define FIB_NODE_INDEX_INVALID
const bier_table_id_t * bier_table_get_id(index_t bti)
fib_node_index_t be_sibling_index
sibling index on the path list
enum fib_path_list_walk_rc_t_ fib_path_list_walk_rc_t
return code to control pat-hlist walk
static fib_path_list_walk_rc_t bier_entry_link_walk(fib_node_index_t pl_index, fib_node_index_t path_index, void *arg)
#define pool_put(P, E)
Free an object E in pool P.
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static void bier_entry_table_ecmp_walk_add_fmask(index_t btei, void *arg)
void bier_fmask_unlink(index_t bfmi, bier_bp_t bp)
u32 bier_bp_t
A bit positon as assigned to egress PEs.
u32 fib_path_list_get_n_paths(fib_node_index_t path_list_index)
void bier_entry_path_update(index_t bei, const fib_route_path_t *rpaths)
void bier_entry_contribute_forwarding(index_t bei, dpo_id_t *dpo)
index_t be_bti
The index of the BIER table in which this entry resides.
clib_error_t * bier_entry_module_init(vlib_main_t *vm)
void fib_path_list_unlock(fib_node_index_t path_list_index)
#define STRUCT_OFFSET_OF(t, f)
index_t bier_entry_create(index_t bti, bier_bp_t bp)
int bier_entry_path_remove(index_t bei, const fib_route_path_t *rpaths)
index_t fib_path_get_resolving_index(fib_node_index_t path_index)
void bier_table_ecmp_set_fmask(index_t bti, bier_bp_t bp, index_t bfmi)
@ FIB_PATH_LIST_FLAG_SHARED
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
u32 fib_node_index_t
A typedef of a node index.
u8 * format_bier_entry(u8 *s, va_list *ap)
bier_entry_t * bier_entry_pool
static const dpo_id_t * load_balance_get_bucket_i(const load_balance_t *lb, u32 bucket)
#define pool_get(P, E)
Allocate an object E from a pool P (unspecified alignment).
enum bier_show_flags_t_ bier_show_flags_t
Flags to control show output.
u32 fib_path_list_child_add(fib_node_index_t path_list_index, fib_node_type_t child_type, fib_node_index_t child_index)
void fib_path_list_contribute_forwarding(fib_node_index_t path_list_index, fib_forward_chain_type_t fct, fib_path_list_fwd_flags_t flags, dpo_id_t *dpo)
void fib_node_register_type(fib_node_type_t type, const fib_node_vft_t *vft)
fib_node_register_type
@ FIB_NODE_BACK_WALK_CONTINUE
u8 * format_dpo_id(u8 *s, va_list *args)
Format a DPO_id_t oject.
@ FIB_PATH_LIST_WALK_CONTINUE
@ DPO_LOAD_BALANCE
load-balancing over a choice of [un]equal cost paths
static fib_path_list_walk_rc_t bier_entry_unlink_walk(fib_node_index_t pl_index, fib_node_index_t path_index, void *arg)
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)
static void bier_entry_last_lock_gone(fib_node_t *node)
description fragment has unexpected format
void fib_path_list_walk(fib_node_index_t path_list_index, fib_path_list_walk_fn_t func, void *ctx)
#define VLIB_INIT_FUNCTION(x)
A representation of a path as described by a route producer.
static load_balance_t * load_balance_get(index_t lbi)
bier_table_ecmp_id_t bti_ecmp
The SUB/ECMP-ID Constructed by FIB to achieve ECMP between BFR-NBRs.
@ FIB_FORW_CHAIN_TYPE_BIER
Contribute an object that is to be used to forward BIER packets.
void fib_path_list_child_remove(fib_node_index_t path_list_index, u32 si)
An node in the FIB graph.
void fib_path_list_lock(fib_node_index_t path_list_index)
fib_node_t be_node
linkage into the FIB graph
static bier_entry_t * bier_entry_get_from_node(fib_node_t *node)
clib_error_t *() vlib_init_function_t(struct vlib_main_t *vm)
@ FIB_PATH_LIST_FLAG_NO_URPF
void bier_table_ecmp_walk(index_t bti, bier_table_ecmp_walk_fn_t fn, void *ctx)
Context passed between object during a back walk.
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
void bier_entry_delete(index_t bei)
u16 lb_n_buckets_minus_1
number of buckets in the load-balance - 1.
static bier_entry_t * bier_entry_get(index_t bei)
static fib_node_back_walk_rc_t bier_entry_back_walk_notify(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
fib_node_index_t be_path_list
the FIB path-list this entry resolves through.
#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_copy_and_path_add(fib_node_index_t orig_path_list_index, fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
@ FIB_NODE_TYPE_BIER_ENTRY
fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags, const fib_route_path_t *rpaths)
void dpo_reset(dpo_id_t *dpo)
reset a DPO ID The DPO will be unlocked.
static index_t bier_entry_get_index(const bier_entry_t *be)
@ FIB_PATH_LIST_FWD_FLAG_COLLAPSE
void bier_entry_path_add(index_t bei, const fib_route_path_t *rpaths)
bier_bp_t be_bp
the bit position this entry represents.
vl_api_wireguard_peer_flags_t flags