FD.io VPP  v20.05.1-5-g09f167997
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 (vlib_main_t *vm, 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 (vlib_main_t *vm, 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

◆ F [1/6]

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

Definition at line 967 of file bfd_udp.c.

◆ F [2/6]

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

Definition at line 967 of file bfd_udp.c.

◆ F [3/6]

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

Definition at line 967 of file bfd_udp.c.

◆ F [4/6]

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

Definition at line 967 of file bfd_udp.c.

◆ F [5/6]

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

Definition at line 967 of file bfd_udp.c.

◆ F [6/6]

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

Definition at line 967 of file bfd_udp.c.

◆ foreach_bfd_udp_echo_error

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:967

Definition at line 951 of file bfd_udp.c.

◆ foreach_bfd_udp_error

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:967

Definition at line 920 of file bfd_udp.c.

Enumeration Type Documentation

◆ bfd_udp_echo_error_t

Enumerator
foreach_bfd_udp_echo_error 

Definition at line 965 of file bfd_udp.c.

◆ bfd_udp_echo_input_next_t

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 942 of file bfd_udp.c.

◆ bfd_udp_error_t

Enumerator
foreach_bfd_udp_error 

Definition at line 934 of file bfd_udp.c.

◆ bfd_udp_input_next_t

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 910 of file bfd_udp.c.

Function Documentation

◆ bfd_add_udp4_transport()

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

Definition at line 253 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_add_udp6_transport()

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

Definition at line 308 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_api_verify_common()

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 687 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_create_frame_to_next_node()

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

Definition at line 375 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_echo_input_format_trace()

u8* bfd_echo_input_format_trace ( u8 s,
va_list *  args 
)

Definition at line 1504 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_lookup_session()

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

Definition at line 462 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_rpc_update_session()

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

Definition at line 1039 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_transport_udp4()

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 438 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_transport_udp6()

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 450 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp4_find_headers()

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

Definition at line 974 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp4_input()

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

Definition at line 1368 of file bfd_udp.c.

+ Here is the call graph for this function:

◆ bfd_udp4_scan()

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 1048 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp4_verify_transport()

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 998 of file bfd_udp.c.

+ Here is the caller graph for this function:

◆ bfd_udp6_find_headers()

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

Definition at line 1121 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp6_input()

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

Definition at line 1400 of file bfd_udp.c.

+ Here is the call graph for this function:

◆ bfd_udp6_scan()

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 1190 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp6_verify_transport()

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 1153 of file bfd_udp.c.

+ Here is the caller graph for this function:

◆ bfd_udp_add_session()

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 742 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_add_session_internal()

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 486 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_auth_activate()

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 858 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_auth_deactivate()

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 889 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_bs_idx_to_sport()

static u16 bfd_udp_bs_idx_to_sport ( u32  bs_idx)
static

Definition at line 158 of file bfd_udp.c.

+ Here is the caller graph for this function:

◆ bfd_udp_calc_next_node()

int bfd_udp_calc_next_node ( const struct bfd_session_s bs,
u32 next_node 
)

Definition at line 385 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_del_echo_source()

vnet_api_error_t bfd_udp_del_echo_source ( u32  sw_if_index)

Definition at line 97 of file bfd_udp.c.

◆ bfd_udp_del_session()

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 816 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_del_session_internal()

static void bfd_udp_del_session_internal ( vlib_main_t vm,
bfd_session_t bs 
)
static

Definition at line 713 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_echo4_input()

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

Definition at line 1497 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_echo6_input()

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

Definition at line 1545 of file bfd_udp.c.

+ Here is the call graph for this function:

◆ bfd_udp_echo_input()

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 1433 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_find_session_by_api_input()

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 656 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_get_echo_source()

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 235 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_get_echo_src_ip4()

int bfd_udp_get_echo_src_ip4 ( ip4_address_t addr)

Definition at line 172 of file bfd_udp.c.

+ Here is the caller graph for this function:

◆ bfd_udp_get_echo_src_ip6()

int bfd_udp_get_echo_src_ip6 ( ip6_address_t *  addr)

Definition at line 206 of file bfd_udp.c.

+ Here is the caller graph for this function:

◆ bfd_udp_init()

static clib_error_t* bfd_udp_init ( vlib_main_t vm)
static

Definition at line 1614 of file bfd_udp.c.

+ Here is the call graph for this function:

◆ bfd_udp_input()

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 1269 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_is_echo_available()

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 105 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_key_init()

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 473 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_mod_session()

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 789 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_session_set_flags()

vnet_api_error_t bfd_udp_session_set_flags ( vlib_main_t vm,
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 837 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_set_echo_source()

vnet_api_error_t bfd_udp_set_echo_source ( u32  sw_if_index)

set echo-source interface

Definition at line 83 of file bfd_udp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bfd_udp_sw_if_add_del()

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 1575 of file bfd_udp.c.

+ Here is the call graph for this function:

◆ bfd_udp_validate_api_input()

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 564 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()

VNET_SW_INTERFACE_ADD_DEL_FUNCTION ( bfd_udp_sw_if_add_del  )
+ Here is the caller graph for this function:

Variable Documentation

◆ bfd_udp4_input_node

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:1368
static char * bfd_udp_error_strings[]
Definition: bfd_udp.c:928
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:495

(constructor) VLIB_REGISTER_NODE (bfd_udp4_input_node)

Definition at line 75 of file bfd_udp.c.

◆ bfd_udp6_input_node

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:928
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:1400
u8 * bfd_input_format_trace(u8 *s, va_list *args)
Definition: bfd_main.c:495

(constructor) VLIB_REGISTER_NODE (bfd_udp6_input_node)

Definition at line 76 of file bfd_udp.c.

◆ bfd_udp_echo4_input_node

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:928
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:1504
static uword bfd_udp_echo4_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1497

(constructor) VLIB_REGISTER_NODE (bfd_udp_echo4_input_node)

Definition at line 77 of file bfd_udp.c.

◆ bfd_udp_echo6_input_node

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:959
static uword bfd_udp_echo6_input(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: bfd_udp.c:1545
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:1504

(constructor) VLIB_REGISTER_NODE (bfd_udp_echo6_input_node)

Definition at line 78 of file bfd_udp.c.

◆ bfd_udp_echo_error_strings

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

Definition at line 959 of file bfd_udp.c.

◆ bfd_udp_error_strings

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

Definition at line 928 of file bfd_udp.c.

◆ bfd_udp_main

bfd_udp_main_t bfd_udp_main

Definition at line 80 of file bfd_udp.c.