u32 adj_child_add(adj_index_t adj_index, fib_node_type_t type, fib_node_index_t child_index)
Add a child dependent to an adjacency.
enum fib_node_type_t_ fib_node_type_t
The types of nodes in a FIB graph.
Definitions for all things IP (v4|v6) unicast and multicast lookup related.
void adj_walk(u32 sw_if_index, adj_walk_cb_t cb, void *ctx)
Walk the Adjacencies on a given interface.
static ip_adjacency_t * adj_get(adj_index_t adj_index)
Get a pointer to an adjacency object from its index.
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
ip_adjacency_t * adj_pool
The global adjacnecy pool.
void adj_lock(adj_index_t adj_index)
An adjacency is a representation of an attached L3 peer.
const u8 * adj_get_rewrite(adj_index_t ai)
Return the link type of the adjacency.
u32 fib_node_index_t
A typedef of a node index.
adj_walk_rc_t(* adj_walk_cb_t)(adj_index_t ai, void *ctx)
Call back function when walking adjacencies.
u32 adj_index_t
An index for adjacencies.
void adj_feature_update(u32 sw_if_index, u8 arc_index, u8 is_enable)
Notify the adjacency subsystem that the features settings for an interface have changed.
enum vnet_link_t_ vnet_link_t
Link Type: A description of the protocol of packets on the link.
vnet_link_t adj_get_link_type(adj_index_t ai)
Return the link type of the adjacency.
vlib_combined_counter_main_t adjacency_counters
Adjacency packet counters.
void adj_child_remove(adj_index_t adj_index, u32 sibling_index)
Remove a child dependent.
u32 adj_get_sw_if_index(adj_index_t ai)
Return the sw interface index of the adjacency.
A collection of combined counters.
int adj_per_adj_counters
Global Config for enabling per-adjacency counters This is configurable because it comes with a non-ne...
void adj_unlock(adj_index_t adj_index)
Release a reference counting lock on the adjacency.
static int adj_are_counters_enabled(void)
Get the global configuration option for enabling per-adj counters.