FD.io VPP  v17.04-9-g99c0734
Vector Packet Processing
bfd_main.h File Reference

BFD global declarations. More...

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

Go to the source code of this file.

Data Structures

struct  bfd_auth_key_t
 
struct  bfd_session_s
 
struct  bfd_main_t
 
struct  bfd_input_trace_t
 bfd packet trace capture More...
 

Macros

#define foreach_bfd_mode(F)
 
#define F(x)   BFD_MODE_##x,
 
#define foreach_bfd_poll_state(F)
 
#define F(x)   BFD_POLL_##x,
 
#define foreach_bfd_error(F)
 Packet counters. More...
 
#define F(sym, str)   BFD_ERROR_##sym,
 
#define USEC_PER_MS   1000LL
 
#define USEC_PER_SECOND   (1000 * USEC_PER_MS)
 
#define BFD_DEFAULT_DESIRED_MIN_TX_USEC   USEC_PER_SECOND
 default, slow transmission interval for BFD packets, per spec at least 1s More...
 
#define BFD_REQUIRED_MIN_RX_USEC_WHILE_ECHO   USEC_PER_SECOND
 minimum required min rx set locally when echo function is used, per spec should be set to at least 1s More...
 

Typedefs

typedef struct bfd_session_s bfd_session_t
 

Enumerations

enum  bfd_mode_e { foreach_bfd_mode =(F) }
 
enum  bfd_poll_state_e { foreach_bfd_poll_state =(F) }
 
enum  bfd_error_t { foreach_bfd_error }
 
enum  { BFD_EVENT_RESCHEDULE = 1, BFD_EVENT_NEW_SESSION, BFD_EVENT_CONFIG_CHANGED }
 

Functions

typedef CLIB_PACKED (struct{u32 discriminator;u64 expire_time_clocks;u64 checksum;}) bfd_echo_pkt_t
 echo packet structure More...
 
u8bfd_input_format_trace (u8 *s, va_list *args)
 
bfd_session_tbfd_get_session (bfd_main_t *bm, bfd_transport_e t)
 
void bfd_put_session (bfd_main_t *bm, bfd_session_t *bs)
 
bfd_session_tbfd_find_session_by_idx (bfd_main_t *bm, uword bs_idx)
 
bfd_session_tbfd_find_session_by_disc (bfd_main_t *bm, u32 disc)
 
void bfd_session_start (bfd_main_t *bm, bfd_session_t *bs)
 
void bfd_consume_pkt (bfd_main_t *bm, const bfd_pkt_t *bfd, u32 bs_idx)
 
int bfd_consume_echo_pkt (bfd_main_t *bm, vlib_buffer_t *b)
 
int bfd_verify_pkt_common (const bfd_pkt_t *pkt)
 verify bfd packet - common checks More...
 
int bfd_verify_pkt_auth (const bfd_pkt_t *pkt, u16 pkt_size, bfd_session_t *bs)
 verify bfd packet - authentication More...
 
void bfd_event (bfd_main_t *bm, bfd_session_t *bs)
 
void bfd_init_final_control_frame (vlib_main_t *vm, vlib_buffer_t *b, bfd_main_t *bm, bfd_session_t *bs, int is_local)
 
u8format_bfd_session (u8 *s, va_list *args)
 
u8format_bfd_auth_key (u8 *s, va_list *args)
 
void bfd_session_set_flags (bfd_session_t *bs, u8 admin_up_down)
 
unsigned bfd_auth_type_supported (bfd_auth_type_e auth_type)
 
vnet_api_error_t bfd_auth_activate (bfd_session_t *bs, u32 conf_key_id, u8 bfd_key_id, u8 is_delayed)
 
vnet_api_error_t bfd_auth_deactivate (bfd_session_t *bs, u8 is_delayed)
 
vnet_api_error_t bfd_session_set_params (bfd_main_t *bm, bfd_session_t *bs, u32 desired_min_tx_usec, u32 required_min_rx_usec, u8 detect_mult)
 
u32 bfd_clocks_to_usec (const bfd_main_t *bm, u64 clocks)
 
const char * bfd_poll_state_string (bfd_poll_state_e state)
 

Variables

bfd_main_t bfd_main
 
enum { ... }  bfd_process_event_e
 

Detailed Description

BFD global declarations.

Definition in file bfd_main.h.

Macro Definition Documentation

#define BFD_DEFAULT_DESIRED_MIN_TX_USEC   USEC_PER_SECOND

default, slow transmission interval for BFD packets, per spec at least 1s

Definition at line 340 of file bfd_main.h.

#define BFD_REQUIRED_MIN_RX_USEC_WHILE_ECHO   USEC_PER_SECOND

minimum required min rx set locally when echo function is used, per spec should be set to at least 1s

Definition at line 346 of file bfd_main.h.

#define F (   x)    BFD_MODE_##x,

Definition at line 274 of file bfd_main.h.

#define F (   x)    BFD_POLL_##x,

Definition at line 274 of file bfd_main.h.

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

Definition at line 274 of file bfd_main.h.

#define foreach_bfd_error (   F)
Value:
F (NONE, "good bfd packets (processed)") \
F (BAD, "invalid bfd packets") \
F (DISABLED, "bfd packets received on disabled interfaces")
#define F(x)
Definition: bfd_main.h:274

Packet counters.

Definition at line 267 of file bfd_main.h.

#define foreach_bfd_mode (   F)
Value:
F (asynchronous) \
F (demand)
#define F(x)
Definition: bfd_main.h:274

Definition at line 27 of file bfd_main.h.

#define foreach_bfd_poll_state (   F)
Value:
F (NOT_NEEDED) \
F (NEEDED) \
F (IN_PROGRESS) \
F (IN_PROGRESS_AND_QUEUED)
#define F(x)
Definition: bfd_main.h:274

Definition at line 56 of file bfd_main.h.

#define USEC_PER_MS   1000LL

Definition at line 336 of file bfd_main.h.

#define USEC_PER_SECOND   (1000 * USEC_PER_MS)

Definition at line 337 of file bfd_main.h.

Typedef Documentation

typedef struct bfd_session_s bfd_session_t

Enumeration Type Documentation

anonymous enum
Enumerator
BFD_EVENT_RESCHEDULE 
BFD_EVENT_NEW_SESSION 
BFD_EVENT_CONFIG_CHANGED 

Definition at line 287 of file bfd_main.h.

Enumerator
foreach_bfd_error 

Definition at line 272 of file bfd_main.h.

enum bfd_mode_e
Enumerator
foreach_bfd_mode 

Definition at line 31 of file bfd_main.h.

Enumerator
foreach_bfd_poll_state 

Definition at line 62 of file bfd_main.h.

Function Documentation

vnet_api_error_t bfd_auth_activate ( bfd_session_t bs,
u32  conf_key_id,
u8  bfd_key_id,
u8  is_delayed 
)

Definition at line 1792 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_auth_deactivate ( bfd_session_t bs,
u8  is_delayed 
)

Definition at line 1838 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

unsigned bfd_auth_type_supported ( bfd_auth_type_e  auth_type)

Definition at line 1781 of file bfd_main.c.

+ Here is the caller graph for this function:

u32 bfd_clocks_to_usec ( const bfd_main_t bm,
u64  clocks 
)

Definition at line 59 of file bfd_main.c.

+ Here is the caller graph for this function:

int bfd_consume_echo_pkt ( bfd_main_t bm,
vlib_buffer_t b 
)

Definition at line 1709 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bfd_consume_pkt ( bfd_main_t bm,
const bfd_pkt_t *  bfd,
u32  bs_idx 
)

Definition at line 1578 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bfd_event ( bfd_main_t bm,
bfd_session_t bs 
)

Definition at line 198 of file bfd_api.c.

+ Here is the caller graph for this function:

bfd_session_t* bfd_find_session_by_disc ( bfd_main_t bm,
u32  disc 
)

Definition at line 1206 of file bfd_main.c.

+ Here is the caller graph for this function:

bfd_session_t* bfd_find_session_by_idx ( bfd_main_t bm,
uword  bs_idx 
)

Definition at line 1196 of file bfd_main.c.

+ Here is the caller graph for this function:

bfd_session_t* bfd_get_session ( bfd_main_t bm,
bfd_transport_e  t 
)

Definition at line 1153 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bfd_init_final_control_frame ( vlib_main_t vm,
vlib_buffer_t b,
bfd_main_t bm,
bfd_session_t bs,
int  is_local 
)

Definition at line 880 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* bfd_input_format_trace ( u8 s,
va_list *  args 
)

Definition at line 425 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char* bfd_poll_state_string ( bfd_poll_state_e  state)

Definition at line 144 of file bfd_main.c.

+ Here is the caller graph for this function:

void bfd_put_session ( bfd_main_t bm,
bfd_session_t bs 
)

Definition at line 1181 of file bfd_main.c.

+ Here is the caller graph for this function:

void bfd_session_set_flags ( bfd_session_t bs,
u8  admin_up_down 
)

Definition at line 402 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vnet_api_error_t bfd_session_set_params ( bfd_main_t bm,
bfd_session_t bs,
u32  desired_min_tx_usec,
u32  required_min_rx_usec,
u8  detect_mult 
)

Definition at line 1876 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bfd_session_start ( bfd_main_t bm,
bfd_session_t bs 
)

Definition at line 391 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_verify_pkt_auth ( const bfd_pkt_t *  pkt,
u16  pkt_size,
bfd_session_t bs 
)

verify bfd packet - authentication

Parameters
pkt
Returns
1 if bfd packet is valid

Definition at line 1500 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bfd_verify_pkt_common ( const bfd_pkt_t *  pkt)

verify bfd packet - common checks

Parameters
pkt
Returns
1 if bfd packet is valid

Definition at line 1224 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

typedef CLIB_PACKED ( struct{u32 discriminator;u64 expire_time_clocks;u64 checksum;}  )

echo packet structure

u8* format_bfd_auth_key ( u8 s,
va_list *  args 
)

Definition at line 67 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_bfd_session ( u8 s,
va_list *  args 
)

Definition at line 1745 of file bfd_main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

bfd_main_t bfd_main

Definition at line 2027 of file bfd_main.c.

enum { ... } bfd_process_event_e