FD.io VPP  v17.04-9-g99c0734
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_N_NEXT }
 
enum  bfd_udp_error_t { foreach_bfd_udp_error }
 
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 (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 (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_cb (const bfd_rpc_update_t *a)
 
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_sw_interface_up_down (vnet_main_t *vnm, u32 sw_if_index, u32 flags)
 
 VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION (bfd_sw_interface_up_down)
 
static clib_error_tbfd_hw_interface_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
 VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION (bfd_hw_interface_up_down)
 
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 835 of file bfd_udp.c.

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

Definition at line 835 of file bfd_udp.c.

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

Definition at line 835 of file bfd_udp.c.

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

Definition at line 835 of file bfd_udp.c.

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

Definition at line 835 of file bfd_udp.c.

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

Definition at line 835 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:835

Definition at line 819 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:835

Definition at line 796 of file bfd_udp.c.

Enumeration Type Documentation

Enumerator
foreach_bfd_udp_echo_error 

Definition at line 833 of file bfd_udp.c.

Enumerator
foreach_bfd_udp_error 

Definition at line 810 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_N_NEXT 

Definition at line 787 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 242 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 297 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 618 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 364 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 1372 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_hw_interface_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 1456 of file bfd_udp.c.

+ Here is the call 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 434 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 913 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_cb ( const bfd_rpc_update_t a)
static

Definition at line 907 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_sw_interface_up_down ( vnet_main_t vnm,
u32  sw_if_index,
u32  flags 
)
static

Definition at line 1443 of file bfd_udp.c.

+ Here is the call 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 410 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 422 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 842 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 1241 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 926 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 866 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 999 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 1272 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 1068 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 1031 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 653 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 ( 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 458 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 750 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 772 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 147 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 374 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 86 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 716 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 ( bfd_session_t bs)
static

Definition at line 643 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 1365 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 1413 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 1304 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 588 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 224 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 161 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 195 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 1471 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 1147 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 94 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 445 of file bfd_udp.c.

+ 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 695 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 733 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 72 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_validate_api_input ( u32  sw_if_index,
const ip46_address_t *  local_addr,
const ip46_address_t *  peer_addr 
)
static

Definition at line 518 of file bfd_udp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION ( bfd_hw_interface_up_down  )

+ Here is the caller graph for this function:

VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION ( bfd_sw_interface_up_down  )

+ 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:1241
static char * bfd_udp_error_strings[]
Definition: bfd_udp.c:804
u8 * bfd_input_format_trace(u8 *s, va_list *args)
Definition: bfd_main.c:425
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (bfd_udp4_input_node)

Definition at line 64 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:804
static uword bfd_udp6_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1272
u8 * bfd_input_format_trace(u8 *s, va_list *args)
Definition: bfd_main.c:425
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (bfd_udp6_input_node)

Definition at line 65 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_INPUT_N_NEXT,
.next_nodes =
{
[BFD_UDP_INPUT_NEXT_NORMAL] = "error-drop",
},
}
static char * bfd_udp_error_strings[]
Definition: bfd_udp.c:804
u8 * bfd_echo_input_format_trace(u8 *s, va_list *args)
Definition: bfd_udp.c:1372
unsigned int u32
Definition: types.h:88
static uword bfd_udp_echo4_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1365

(constructor) VLIB_REGISTER_NODE (bfd_udp_echo4_input_node)

Definition at line 66 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_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_echo_error_strings[]
Definition: bfd_udp.c:827
static uword bfd_udp_echo6_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1413
u8 * bfd_echo_input_format_trace(u8 *s, va_list *args)
Definition: bfd_udp.c:1372
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (bfd_udp_echo6_input_node)

Definition at line 67 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:819
#define F(sym, string)
Definition: bfd_udp.c:835

Definition at line 827 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:796
#define F(sym, string)
Definition: bfd_udp.c:835

Definition at line 804 of file bfd_udp.c.

bfd_udp_main_t bfd_udp_main

Definition at line 69 of file bfd_udp.c.