FD.io VPP  v20.05.1-5-g09f167997
Vector Packet Processing
bfd_udp.h File Reference

BFD UDP transport layer declarations. More...

+ Include dependency graph for bfd_udp.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  bfd_udp_session_t
 UDP transport specific data embedded in bfd_session's union. More...
 
struct  bfd_udp_echo_input_trace_t
 bfd udp echo packet trace capture More...
 

Functions

typedef CLIB_PACKED (struct { union { u32 sw_if_index;u32 fib_index;};ip46_address_t local_addr;ip46_address_t peer_addr;}) bfd_udp_key_t
 identifier of BFD session based on UDP transport only More...
 
int bfd_add_udp4_transport (vlib_main_t *vm, u32 bi, const struct bfd_session_s *bs, int is_echo)
 add the necessary transport layer by prepending it to existing data More...
 
int bfd_add_udp6_transport (vlib_main_t *vm, u32 bi, const struct bfd_session_s *bs, int is_echo)
 add the necessary transport layer by prepending it to existing data More...
 
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...
 
int bfd_udp_is_echo_available (bfd_transport_e transport)
 check if the bfd udp layer is echo-capable at this time More...
 
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...
 

Detailed Description

BFD UDP transport layer declarations.

Definition in file bfd_udp.h.

Function Documentation

◆ bfd_add_udp4_transport()

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

add the necessary transport layer by prepending it to existing data

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

◆ bfd_add_udp6_transport()

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

add the necessary transport layer by prepending it to existing data

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

◆ 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_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_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:

◆ CLIB_PACKED()

typedef CLIB_PACKED ( struct { union { u32 sw_if_index;u32 fib_index;};ip46_address_t local_addr;ip46_address_t peer_addr;}  )

identifier of BFD session based on UDP transport only