|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
105 elt->fnle_owner.fnp_type =
type;
201 next->fnle_prev =
elt->fnle_prev;
302 *ptr =
next->fnle_owner;
344 *ptr =
elt->fnle_owner;
373 sibling =
elt->fnle_next;
u32 fnle_prev
The previous element in the list.
static fib_node_list_elt_t * fib_node_list_elt_pool
Pools of list elements and heads.
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
u32 fib_node_list_t
A list of FIB nodes.
#define FIB_NODE_INDEX_INVALID
static fib_node_list_elt_t * fib_node_list_elt_create(fib_node_list_head_t *head, int id, fib_node_type_t type, fib_node_index_t index)
struct fib_node_list_head_t_ fib_node_list_head_t
A list of FIB nodes.
static fib_node_list_head_t * fib_node_list_head_pool
static void fib_node_list_insert_after(fib_node_list_head_t *head, fib_node_list_elt_t *prev, fib_node_list_elt_t *elt)
#define pool_put(P, E)
Free an object E in pool P.
void fib_node_list_memory_show(void)
u32 fib_node_list_push_back(fib_node_list_t list, int owner_id, fib_node_type_t type, fib_node_index_t index)
enum fib_node_type_t_ fib_node_type_t
The types of nodes in a FIB graph.
static fib_node_list_elt_t * fib_node_list_elt_get(index_t fi)
u32 fnlh_n_elts
Number of elements in the list.
static fib_node_list_head_t * fib_node_list_head_get(fib_node_list_t fi)
int fib_node_list_get_front(fib_node_list_t list, fib_node_ptr_t *ptr)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
static index_t fib_node_list_head_get_index(fib_node_list_head_t *head)
u32 fib_node_index_t
A typedef of a node index.
u32 fnlh_head
The head element.
void fib_show_memory_usage(const char *name, u32 in_use_elts, u32 allocd_elts, size_t size_elt)
Show the memory usage for a type.
walk_rc_t(* fib_node_list_walk_cb_t)(fib_node_ptr_t *owner, void *args)
Callback function invoked during a list walk.
fib_node_ptr_t fnle_owner
The owner of this element.
#define pool_get(P, E)
Allocate an object E from a pool P (unspecified alignment).
static index_t fib_node_list_elt_get_index(fib_node_list_elt_t *elt)
struct fib_node_list_elt_t_ fib_node_list_elt_t
a hetrogeneous w.r.t.
int fib_node_list_advance(u32 sibling)
Advance the sibling one step (toward the tail) in the list.
A representation of one pointer to another node.
fib_node_index_t fnp_index
node's index
#define pool_len(p)
Number of elements in pool vector.
void fib_node_list_elt_remove(u32 sibling)
void fib_node_list_remove(fib_node_list_t list, u32 sibling)
u32 fib_node_list_get_size(fib_node_list_t list)
void fib_node_list_walk(fib_node_list_t list, fib_node_list_walk_cb_t fn, void *args)
Walk the list of node.
static uword pool_elts(void *v)
Number of active elements in a pool.
u32 fib_node_list_push_front(fib_node_list_t list, int owner_id, fib_node_type_t type, fib_node_index_t index)
Insert an element at the from of the list.
fib_node_list_t fib_node_list_create(void)
Create a new node list.
fib_node_list_t fnle_list
The index of the list this element is in.
static void fib_node_list_extract(fib_node_list_head_t *head, fib_node_list_elt_t *elt)
void fib_node_list_destroy(fib_node_list_t *list)
u32 fnle_next
The next element in the list.
static void fib_node_list_head_init(fib_node_list_head_t *head)
int fib_node_list_elt_get_next(u32 sibling, fib_node_ptr_t *ptr)
vl_api_fib_path_type_t type