30 case BFD_STATE_admin_down:
59 const bfd_udp_key_t *key;
64 if (BFD_HOP_TYPE_SINGLE != session->
hop_type)
89 case BFD_LISTEN_EVENT_CREATE:
124 case BFD_LISTEN_EVENT_UPDATE:
141 case BFD_LISTEN_EVENT_DELETE:
void adj_lock(adj_index_t adj_index)
Take a reference counting lock on the adjacency.
adj_bfd_state_t ad_bfd_state
BFD session state.
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
static ip_adjacency_t * adj_get(adj_index_t adj_index)
Get a pointer to an adjacency object from its index.
u32 ad_bfd_index
BFD session index.
#define VLIB_INIT_FUNCTION(x)
void fib_walk_sync(fib_node_type_t parent_type, fib_node_index_t parent_index, fib_node_back_walk_ctx_t *ctx)
Back walk all the children of a FIB node.
void adj_unlock(adj_index_t adj_index)
Release a reference counting lock on the adjacency.
A Delagate is a means to implement the Delagation design pattern; the extension of an object's functi...
#define vlib_call_init_function(vm, x)
static adj_bfd_state_t adj_bfd_bfd_state_to_fib(bfd_state_e bstate)
bfd_udp_key_t key
key identifying this session
#define ADJ_INDEX_INVALID
Invalid ADJ index - used when no adj is known likewise blazoned capitals INVALID speak volumes where ...
enum adj_bfd_state_t_ adj_bfd_state_t
Distillation of the BFD session states into a go/no-go for using the associated tracked adjacency...
static void adj_bfd_update_walk(adj_index_t ai)
adj_delegate_t * adj_delegate_find_or_add(ip_adjacency_t *adj, adj_delegate_type_t adt)
#define ip46_address_is_ip4(ip46)
void adj_delegate_remove(ip_adjacency_t *adj, adj_delegate_type_t type)
static clib_error_t * adj_bfd_main_init(vlib_main_t *vm)
u32 adj_index_t
An index for adjacencies.
Context passed between object during a back walk.
adj_delegate_t * adj_delegate_get(const ip_adjacency_t *adj, adj_delegate_type_t type)
bfd_hop_type_e hop_type
BFD hop type.
bfd_state_e local_state
session state
void bfd_register_listener(bfd_notify_fn_t fn)
Register a callback function to receive session notifications.
u32 bs_idx
index in bfd_main.sessions pool
adj_index_t adj_nbr_add_or_lock(fib_protocol_t nh_proto, vnet_link_t link_type, const ip46_address_t *nh_addr, u32 sw_if_index)
Neighbour Adjacency sub-type.
vnet_link_t fib_proto_to_link(fib_protocol_t proto)
Convert from a protocol to a link type.
void adj_bfd_notify(bfd_listen_event_e event, const bfd_session_t *session)
Callback function registered with BFD module to receive notifications of the CRUD of BFD sessions wou...
static clib_error_t * bfd_main_init(vlib_main_t *vm)