FD.io VPP  v19.08-23-g4b943d6
Vector Packet Processing
bfd_udp.c File Reference

BFD UDP transport layer implementation. More...

+ Include dependency graph for bfd_udp.c:

Go to the source code of this file.

Data Structures

struct  bfd_udp_main_t
 
struct  bfd_rpc_update_t
 

Macros

#define foreach_bfd_udp_error(F)
 
#define F(sym, string)   static char BFD_UDP_ERR_##sym##_STR[] = string;
 
#define F(sym, string)   BFD_UDP_ERR_##sym##_STR,
 
#define F(sym, str)   BFD_UDP_ERROR_##sym,
 
#define foreach_bfd_udp_echo_error(F)
 
#define F(sym, string)   static char BFD_UDP_ECHO_ERR_##sym##_STR[] = string;
 
#define F(sym, string)   BFD_UDP_ECHO_ERR_##sym##_STR,
 
#define F(sym, str)   BFD_UDP_ECHO_ERROR_##sym,
 

Enumerations

enum  bfd_udp_input_next_t {
  BFD_UDP_INPUT_NEXT_NORMAL, BFD_UDP_INPUT_NEXT_REPLY_ARP, BFD_UDP_INPUT_NEXT_REPLY_REWRITE, BFD_UDP_INPUT_NEXT_REPLY_MIDCHAIN,
  BFD_UDP_INPUT_N_NEXT
}
 
enum  bfd_udp_error_t { foreach_bfd_udp_error }
 
enum  bfd_udp_echo_input_next_t { BFD_UDP_ECHO_INPUT_NEXT_NORMAL, BFD_UDP_ECHO_INPUT_NEXT_REPLY_ARP, BFD_UDP_ECHO_INPUT_NEXT_REPLY_REWRITE, BFD_UDP_ECHO_INPUT_N_NEXT }
 
enum  bfd_udp_echo_error_t { foreach_bfd_udp_echo_error }
 

Functions

vnet_api_error_t bfd_udp_set_echo_source (u32 sw_if_index)
 set echo-source interface More...
 
vnet_api_error_t bfd_udp_del_echo_source (u32 sw_if_index)
 
int bfd_udp_is_echo_available (bfd_transport_e transport)
 check if the bfd udp layer is echo-capable at this time More...
 
static u16 bfd_udp_bs_idx_to_sport (u32 bs_idx)
 
int bfd_udp_get_echo_src_ip4 (ip4_address_t *addr)
 
int bfd_udp_get_echo_src_ip6 (ip6_address_t *addr)
 
void bfd_udp_get_echo_source (int *is_set, u32 *sw_if_index, int *have_usable_ip4, ip4_address_t *ip4, int *have_usable_ip6, ip6_address_t *ip6)
 get echo source information - used by CLI More...
 
int bfd_add_udp4_transport (vlib_main_t *vm, u32 bi, const bfd_session_t *bs, int is_echo)
 
int bfd_add_udp6_transport (vlib_main_t *vm, u32 bi, const bfd_session_t *bs, int is_echo)
 
static void bfd_create_frame_to_next_node (vlib_main_t *vm, u32 bi, u32 next_node)
 
int bfd_udp_calc_next_node (const struct bfd_session_s *bs, u32 *next_node)
 
int bfd_transport_udp4 (vlib_main_t *vm, u32 bi, const struct bfd_session_s *bs)
 transport packet over udpv4 More...
 
int bfd_transport_udp6 (vlib_main_t *vm, u32 bi, const struct bfd_session_s *bs)
 transport packet over udpv6 More...
 
static bfd_session_tbfd_lookup_session (bfd_udp_main_t *bum, const bfd_udp_key_t *key)
 
static void bfd_udp_key_init (bfd_udp_key_t *key, u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr)
 
static vnet_api_error_t bfd_udp_add_session_internal (vlib_main_t *vm, bfd_udp_main_t *bum, u32 sw_if_index, u32 desired_min_tx_usec, u32 required_min_rx_usec, u8 detect_mult, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, bfd_session_t **bs_out)
 
static vnet_api_error_t bfd_udp_validate_api_input (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr)
 
static vnet_api_error_t bfd_udp_find_session_by_api_input (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, bfd_session_t **bs_out)
 
static vnet_api_error_t bfd_api_verify_common (u32 sw_if_index, u32 desired_min_tx_usec, u32 required_min_rx_usec, u8 detect_mult, const ip46_address_t *local_addr, const ip46_address_t *peer_addr)
 
static void bfd_udp_del_session_internal (vlib_main_t *vm, bfd_session_t *bs)
 
vnet_api_error_t bfd_udp_add_session (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u32 desired_min_tx_usec, u32 required_min_rx_usec, u8 detect_mult, u8 is_authenticated, u32 conf_key_id, u8 bfd_key_id)
 create a new bfd session More...
 
vnet_api_error_t bfd_udp_mod_session (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u32 desired_min_tx_usec, u32 required_min_rx_usec, u8 detect_mult)
 modify existing session More...
 
vnet_api_error_t bfd_udp_del_session (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr)
 delete existing session More...
 
vnet_api_error_t bfd_udp_session_set_flags (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u8 admin_up_down)
 set session admin down/up More...
 
vnet_api_error_t bfd_udp_auth_activate (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u32 conf_key_id, u8 key_id, u8 is_delayed)
 activate authentication for existing session More...
 
vnet_api_error_t bfd_udp_auth_deactivate (u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u8 is_delayed)
 deactivate authentication for existing session More...
 
static void bfd_udp4_find_headers (vlib_buffer_t *b, ip4_header_t **ip4, udp_header_t **udp)
 
static bfd_udp_error_t bfd_udp4_verify_transport (const ip4_header_t *ip4, const udp_header_t *udp, const bfd_session_t *bs)
 
static void bfd_rpc_update_session (u32 bs_idx, const bfd_pkt_t *pkt)
 
static bfd_udp_error_t bfd_udp4_scan (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_buffer_t *b, bfd_session_t **bs_out)
 
static void bfd_udp6_find_headers (vlib_buffer_t *b, ip6_header_t **ip6, udp_header_t **udp)
 
static bfd_udp_error_t bfd_udp6_verify_transport (const ip6_header_t *ip6, const udp_header_t *udp, const bfd_session_t *bs)
 
static bfd_udp_error_t bfd_udp6_scan (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_buffer_t *b, bfd_session_t **bs_out)
 
static uword bfd_udp_input (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f, int is_ipv6)
 
static uword bfd_udp4_input (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static uword bfd_udp6_input (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static uword bfd_udp_echo_input (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f, int is_ipv6)
 
static uword bfd_udp_echo4_input (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
u8bfd_echo_input_format_trace (u8 *s, va_list *args)
 
static uword bfd_udp_echo6_input (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static clib_error_tbfd_udp_sw_if_add_del (vnet_main_t *vnm, u32 sw_if_index, u32 is_create)
 
 VNET_SW_INTERFACE_ADD_DEL_FUNCTION (bfd_udp_sw_if_add_del)
 
static clib_error_tbfd_udp_init (vlib_main_t *vm)
 

Variables

static vlib_node_registration_t bfd_udp4_input_node
 (constructor) VLIB_REGISTER_NODE (bfd_udp4_input_node) More...
 
static vlib_node_registration_t bfd_udp6_input_node
 (constructor) VLIB_REGISTER_NODE (bfd_udp6_input_node) More...
 
static vlib_node_registration_t bfd_udp_echo4_input_node
 (constructor) VLIB_REGISTER_NODE (bfd_udp_echo4_input_node) More...
 
static vlib_node_registration_t bfd_udp_echo6_input_node
 (constructor) VLIB_REGISTER_NODE (bfd_udp_echo6_input_node) More...
 
bfd_udp_main_t bfd_udp_main
 
static char * bfd_udp_error_strings []
 
static char * bfd_udp_echo_error_strings []
 

Detailed Description

BFD UDP transport layer implementation.

Definition in file bfd_udp.c.

Macro Definition Documentation

#define F (   sym,
  string 
)    static char BFD_UDP_ERR_##sym##_STR[] = string;

Definition at line 952 of file bfd_udp.c.

#define F (   sym,
  string 
)    BFD_UDP_ERR_##sym##_STR,

Definition at line 952 of file bfd_udp.c.

#define F (   sym,
  str 
)    BFD_UDP_ERROR_##sym,

Definition at line 952 of file bfd_udp.c.

#define F (   sym,
  string 
)    static char BFD_UDP_ECHO_ERR_##sym##_STR[] = string;

Definition at line 952 of file bfd_udp.c.

#define F (   sym,
  string 
)    BFD_UDP_ECHO_ERR_##sym##_STR,

Definition at line 952 of file bfd_udp.c.

#define F (   sym,
  str 
)    BFD_UDP_ECHO_ERROR_##sym,

Definition at line 952 of file bfd_udp.c.

foreach_bfd_udp_echo_error (   F)
Value:
F (NONE, "good bfd echo packets (processed)") \
F (BAD, "invalid bfd echo packets")
#define F(sym, string)
Definition: bfd_udp.c:952

Definition at line 936 of file bfd_udp.c.

foreach_bfd_udp_error (   F)
Value:
F (NONE, "good bfd packets (processed)") \
F (BAD, "invalid bfd packets")
#define F(sym, string)
Definition: bfd_udp.c:952

Definition at line 905 of file bfd_udp.c.

Enumeration Type Documentation

Enumerator
foreach_bfd_udp_echo_error 

Definition at line 950 of file bfd_udp.c.

Enumerator
BFD_UDP_ECHO_INPUT_NEXT_NORMAL 
BFD_UDP_ECHO_INPUT_NEXT_REPLY_ARP 
BFD_UDP_ECHO_INPUT_NEXT_REPLY_REWRITE 
BFD_UDP_ECHO_INPUT_N_NEXT 

Definition at line 927 of file bfd_udp.c.

Enumerator
foreach_bfd_udp_error 

Definition at line 919 of file bfd_udp.c.

Enumerator
BFD_UDP_INPUT_NEXT_NORMAL 
BFD_UDP_INPUT_NEXT_REPLY_ARP 
BFD_UDP_INPUT_NEXT_REPLY_REWRITE 
BFD_UDP_INPUT_NEXT_REPLY_MIDCHAIN 
BFD_UDP_INPUT_N_NEXT 

Definition at line 895 of file bfd_udp.c.

Function Documentation

int bfd_add_udp4_transport ( vlib_main_t vm,
u32  bi,
const bfd_session_t bs,
int  is_echo 
)

Definition at line 252 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_add_udp6_transport ( vlib_main_t vm,
u32  bi,
const bfd_session_t bs,
int  is_echo 
)

Definition at line 307 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_api_error_t bfd_api_verify_common ( u32  sw_if_index,
u32  desired_min_tx_usec,
u32  required_min_rx_usec,
u8  detect_mult,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr 
)
static

Definition at line 672 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bfd_create_frame_to_next_node ( vlib_main_t vm,
u32  bi,
u32  next_node 
)
static

Definition at line 374 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* bfd_echo_input_format_trace ( u8 s,
va_list *  args 
)

Definition at line 1489 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bfd_session_t* bfd_lookup_session ( bfd_udp_main_t bum,
const bfd_udp_key_t *  key 
)
static

Definition at line 461 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bfd_rpc_update_session ( u32  bs_idx,
const bfd_pkt_t *  pkt 
)
static

Definition at line 1024 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_transport_udp4 ( vlib_main_t vm,
u32  bi,
const struct bfd_session_s bs 
)

transport packet over udpv4

Parameters
is_echo1 if this is echo packet, 0 if control frame
Returns
1 on success, 0 on failure

Definition at line 437 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_transport_udp6 ( vlib_main_t vm,
u32  bi,
const struct bfd_session_s bs 
)

transport packet over udpv6

Parameters
is_echo1 if this is echo packet, 0 if control frame
Returns
1 on success, 0 on failure

Definition at line 449 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bfd_udp4_find_headers ( vlib_buffer_t b,
ip4_header_t **  ip4,
udp_header_t **  udp 
)
static

Definition at line 959 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword bfd_udp4_input ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 1353 of file bfd_udp.c.

+ Here is the call graph for this function:

static bfd_udp_error_t bfd_udp4_scan ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_buffer_t b,
bfd_session_t **  bs_out 
)
static

Definition at line 1033 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bfd_udp_error_t bfd_udp4_verify_transport ( const ip4_header_t ip4,
const udp_header_t udp,
const bfd_session_t bs 
)
static

Definition at line 983 of file bfd_udp.c.

+ Here is the caller graph for this function:

static void bfd_udp6_find_headers ( vlib_buffer_t b,
ip6_header_t **  ip6,
udp_header_t **  udp 
)
static

Definition at line 1106 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword bfd_udp6_input ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 1385 of file bfd_udp.c.

+ Here is the call graph for this function:

static bfd_udp_error_t bfd_udp6_scan ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_buffer_t b,
bfd_session_t **  bs_out 
)
static

Definition at line 1175 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bfd_udp_error_t bfd_udp6_verify_transport ( const ip6_header_t ip6,
const udp_header_t udp,
const bfd_session_t bs 
)
static

Definition at line 1138 of file bfd_udp.c.

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_add_session ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
u32  desired_min_tx_usec,
u32  required_min_rx_usec,
u8  detect_mult,
u8  is_authenticated,
u32  conf_key_id,
u8  bfd_key_id 
)

create a new bfd session

Definition at line 727 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_api_error_t bfd_udp_add_session_internal ( vlib_main_t vm,
bfd_udp_main_t bum,
u32  sw_if_index,
u32  desired_min_tx_usec,
u32  required_min_rx_usec,
u8  detect_mult,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
bfd_session_t **  bs_out 
)
static

Definition at line 485 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_auth_activate ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
u32  conf_key_id,
u8  key_id,
u8  is_delayed 
)

activate authentication for existing session

Definition at line 843 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_auth_deactivate ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
u8  is_delayed 
)

deactivate authentication for existing session

Definition at line 874 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u16 bfd_udp_bs_idx_to_sport ( u32  bs_idx)
static

Definition at line 157 of file bfd_udp.c.

+ Here is the caller graph for this function:

int bfd_udp_calc_next_node ( const struct bfd_session_s bs,
u32 next_node 
)

Definition at line 384 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_del_echo_source ( u32  sw_if_index)

Definition at line 96 of file bfd_udp.c.

vnet_api_error_t bfd_udp_del_session ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr 
)

delete existing session

Definition at line 801 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bfd_udp_del_session_internal ( vlib_main_t vm,
bfd_session_t bs 
)
static

Definition at line 698 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword bfd_udp_echo4_input ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 1482 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword bfd_udp_echo6_input ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 1530 of file bfd_udp.c.

+ Here is the call graph for this function:

static uword bfd_udp_echo_input ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f,
int  is_ipv6 
)
static

Definition at line 1418 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_api_error_t bfd_udp_find_session_by_api_input ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
bfd_session_t **  bs_out 
)
static

Definition at line 641 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bfd_udp_get_echo_source ( int *  is_set,
u32 sw_if_index,
int *  have_usable_ip4,
ip4_address_t ip4,
int *  have_usable_ip6,
ip6_address_t ip6 
)

get echo source information - used by CLI

Definition at line 234 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_udp_get_echo_src_ip4 ( ip4_address_t addr)

Definition at line 171 of file bfd_udp.c.

+ Here is the caller graph for this function:

int bfd_udp_get_echo_src_ip6 ( ip6_address_t addr)

Definition at line 205 of file bfd_udp.c.

+ Here is the caller graph for this function:

static clib_error_t* bfd_udp_init ( vlib_main_t vm)
static

Definition at line 1599 of file bfd_udp.c.

+ Here is the call graph for this function:

static uword bfd_udp_input ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f,
int  is_ipv6 
)
static

Definition at line 1254 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_udp_is_echo_available ( bfd_transport_e  transport)

check if the bfd udp layer is echo-capable at this time

Returns
1 if available, 0 otherwise

Definition at line 104 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bfd_udp_key_init ( bfd_udp_key_t *  key,
u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr 
)
static

Definition at line 472 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_mod_session ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
u32  desired_min_tx_usec,
u32  required_min_rx_usec,
u8  detect_mult 
)

modify existing session

Definition at line 774 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_session_set_flags ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr,
u8  admin_up_down 
)

set session admin down/up

Definition at line 822 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_udp_set_echo_source ( u32  sw_if_index)

set echo-source interface

Definition at line 82 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* bfd_udp_sw_if_add_del ( vnet_main_t vnm,
u32  sw_if_index,
u32  is_create 
)
static

Definition at line 1560 of file bfd_udp.c.

+ Here is the call graph for this function:

static vnet_api_error_t bfd_udp_validate_api_input ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr 
)
static

Definition at line 563 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_SW_INTERFACE_ADD_DEL_FUNCTION ( bfd_udp_sw_if_add_del  )

+ Here is the caller graph for this function:

Variable Documentation

static vlib_node_registration_t bfd_udp4_input_node
static
Initial value:
= {
.function = bfd_udp4_input,
.name = "bfd-udp4-input",
.vector_size = sizeof (u32),
.n_errors = BFD_UDP_N_ERROR,
.error_strings = bfd_udp_error_strings,
.format_trace = bfd_input_format_trace,
.n_next_nodes = BFD_UDP_INPUT_N_NEXT,
.next_nodes =
{
[BFD_UDP_INPUT_NEXT_NORMAL] = "error-drop",
},
}
static uword bfd_udp4_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1353
static char * bfd_udp_error_strings[]
Definition: bfd_udp.c:913
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
u8 * bfd_input_format_trace(u8 *s, va_list *args)
Definition: bfd_main.c:476

(constructor) VLIB_REGISTER_NODE (bfd_udp4_input_node)

Definition at line 74 of file bfd_udp.c.

static vlib_node_registration_t bfd_udp6_input_node
static
Initial value:
= {
.function = bfd_udp6_input,
.name = "bfd-udp6-input",
.vector_size = sizeof (u32),
.n_errors = BFD_UDP_N_ERROR,
.error_strings = bfd_udp_error_strings,
.format_trace = bfd_input_format_trace,
.n_next_nodes = BFD_UDP_INPUT_N_NEXT,
.next_nodes =
{
[BFD_UDP_INPUT_NEXT_NORMAL] = "error-drop",
[BFD_UDP_INPUT_NEXT_REPLY_ARP] = "ip6-discover-neighbor",
},
}
static char * bfd_udp_error_strings[]
Definition: bfd_udp.c:913
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static uword bfd_udp6_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1385
u8 * bfd_input_format_trace(u8 *s, va_list *args)
Definition: bfd_main.c:476

(constructor) VLIB_REGISTER_NODE (bfd_udp6_input_node)

Definition at line 75 of file bfd_udp.c.

static vlib_node_registration_t bfd_udp_echo4_input_node
static
Initial value:
= {
.function = bfd_udp_echo4_input,
.name = "bfd-udp-echo4-input",
.vector_size = sizeof (u32),
.n_errors = BFD_UDP_ECHO_N_ERROR,
.error_strings = bfd_udp_error_strings,
.format_trace = bfd_echo_input_format_trace,
.n_next_nodes = BFD_UDP_ECHO_INPUT_N_NEXT,
.next_nodes =
{
},
}
static char * bfd_udp_error_strings[]
Definition: bfd_udp.c:913
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
u8 * bfd_echo_input_format_trace(u8 *s, va_list *args)
Definition: bfd_udp.c:1489
static uword bfd_udp_echo4_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1482

(constructor) VLIB_REGISTER_NODE (bfd_udp_echo4_input_node)

Definition at line 76 of file bfd_udp.c.

static vlib_node_registration_t bfd_udp_echo6_input_node
static
Initial value:
= {
.function = bfd_udp_echo6_input,
.name = "bfd-udp-echo6-input",
.vector_size = sizeof (u32),
.n_errors = BFD_UDP_ECHO_N_ERROR,
.error_strings = bfd_udp_echo_error_strings,
.format_trace = bfd_echo_input_format_trace,
.n_next_nodes = BFD_UDP_ECHO_INPUT_N_NEXT,
.next_nodes =
{
[BFD_UDP_ECHO_INPUT_NEXT_REPLY_ARP] = "ip6-discover-neighbor",
},
}
static char * bfd_udp_echo_error_strings[]
Definition: bfd_udp.c:944
static uword bfd_udp_echo6_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1530
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
u8 * bfd_echo_input_format_trace(u8 *s, va_list *args)
Definition: bfd_udp.c:1489

(constructor) VLIB_REGISTER_NODE (bfd_udp_echo6_input_node)

Definition at line 77 of file bfd_udp.c.

char* bfd_udp_echo_error_strings[]
static
Initial value:
= {
#define F(sym, string)
}
#define foreach_bfd_udp_echo_error(F)
Definition: bfd_udp.c:936
#define F(sym, string)
Definition: bfd_udp.c:952

Definition at line 944 of file bfd_udp.c.

char* bfd_udp_error_strings[]
static
Initial value:
= {
#define F(sym, string)
}
#define foreach_bfd_udp_error(F)
Definition: bfd_udp.c:905
#define F(sym, string)
Definition: bfd_udp.c:952

Definition at line 913 of file bfd_udp.c.

bfd_udp_main_t bfd_udp_main

Definition at line 79 of file bfd_udp.c.