FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
wireguard_timer.c File Reference
+ Include dependency graph for wireguard_timer.c:

Go to the source code of this file.

Data Structures

struct  wg_timers_args
 

Functions

static u32 get_random_u32_max (u32 max)
 
static void stop_timer (wg_peer_t *peer, u32 timer_id)
 
static void start_timer (wg_peer_t *peer, u32 timer_id, u32 interval_ticks)
 
static void * start_timer_thread_fn (void *arg)
 
static void start_timer_from_mt (u32 peer_idx, u32 timer_id, u32 interval_ticks)
 
static u32 timer_ticks_left (vlib_main_t *vm, f64 init_time_sec, u32 interval_ticks)
 
static void wg_expired_retransmit_handshake (vlib_main_t *vm, wg_peer_t *peer)
 
static void wg_expired_send_keepalive (vlib_main_t *vm, wg_peer_t *peer)
 
static void wg_expired_send_persistent_keepalive (vlib_main_t *vm, wg_peer_t *peer)
 
static void wg_expired_new_handshake (vlib_main_t *vm, wg_peer_t *peer)
 
static void wg_expired_zero_key_material (vlib_main_t *vm, wg_peer_t *peer)
 
void wg_timers_any_authenticated_packet_traversal (wg_peer_t *peer)
 
void wg_timers_any_authenticated_packet_sent (wg_peer_t *peer)
 
void wg_timers_handshake_initiated (wg_peer_t *peer)
 
void wg_timers_session_derived (wg_peer_t *peer)
 
void wg_timers_data_sent (wg_peer_t *peer)
 
void wg_timers_data_received (wg_peer_t *peer)
 
void wg_timers_handshake_complete (wg_peer_t *peer)
 
void wg_timers_any_authenticated_packet_received (wg_peer_t *peer)
 
static void expired_timer_callback (u32 *expired_timers)
 
void wg_timer_wheel_init ()
 
static uword wg_timer_mngr_fn (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
void wg_timers_stop (wg_peer_t *peer)
 
void wg_feature_init (wg_main_t *wmp)
 

Variables

static vlib_node_registration_t wg_timer_mngr_node
 (constructor) VLIB_REGISTER_NODE (wg_timer_mngr_node) More...
 

Function Documentation

◆ expired_timer_callback()

static void expired_timer_callback ( u32 expired_timers)
static

Definition at line 281 of file wireguard_timer.c.

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

◆ get_random_u32_max()

static u32 get_random_u32_max ( u32  max)
static

Definition at line 22 of file wireguard_timer.c.

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

◆ start_timer()

static void start_timer ( wg_peer_t peer,
u32  timer_id,
u32  interval_ticks 
)
static

Definition at line 40 of file wireguard_timer.c.

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

◆ start_timer_from_mt()

static void start_timer_from_mt ( u32  peer_idx,
u32  timer_id,
u32  interval_ticks 
)
static

Definition at line 70 of file wireguard_timer.c.

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

◆ start_timer_thread_fn()

static void* start_timer_thread_fn ( void *  arg)
static

Definition at line 61 of file wireguard_timer.c.

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

◆ stop_timer()

static void stop_timer ( wg_peer_t peer,
u32  timer_id 
)
static

Definition at line 30 of file wireguard_timer.c.

+ Here is the caller graph for this function:

◆ timer_ticks_left()

static u32 timer_ticks_left ( vlib_main_t vm,
f64  init_time_sec,
u32  interval_ticks 
)
inlinestatic

Definition at line 85 of file wireguard_timer.c.

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

◆ wg_expired_new_handshake()

static void wg_expired_new_handshake ( vlib_main_t vm,
wg_peer_t peer 
)
static

Definition at line 170 of file wireguard_timer.c.

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

◆ wg_expired_retransmit_handshake()

static void wg_expired_retransmit_handshake ( vlib_main_t vm,
wg_peer_t peer 
)
static

Definition at line 95 of file wireguard_timer.c.

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

◆ wg_expired_send_keepalive()

static void wg_expired_send_keepalive ( vlib_main_t vm,
wg_peer_t peer 
)
static

Definition at line 126 of file wireguard_timer.c.

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

◆ wg_expired_send_persistent_keepalive()

static void wg_expired_send_persistent_keepalive ( vlib_main_t vm,
wg_peer_t peer 
)
static

Definition at line 149 of file wireguard_timer.c.

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

◆ wg_expired_zero_key_material()

static void wg_expired_zero_key_material ( vlib_main_t vm,
wg_peer_t peer 
)
static

Definition at line 184 of file wireguard_timer.c.

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

◆ wg_feature_init()

void wg_feature_init ( wg_main_t wmp)

Definition at line 407 of file wireguard_timer.c.

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

◆ wg_timer_mngr_fn()

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

Definition at line 345 of file wireguard_timer.c.

+ Here is the call graph for this function:

◆ wg_timer_wheel_init()

void wg_timer_wheel_init ( )

Definition at line 335 of file wireguard_timer.c.

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

◆ wg_timers_any_authenticated_packet_received()

void wg_timers_any_authenticated_packet_received ( wg_peer_t peer)

Definition at line 273 of file wireguard_timer.c.

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

◆ wg_timers_any_authenticated_packet_sent()

void wg_timers_any_authenticated_packet_sent ( wg_peer_t peer)

Definition at line 212 of file wireguard_timer.c.

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

◆ wg_timers_any_authenticated_packet_traversal()

void wg_timers_any_authenticated_packet_traversal ( wg_peer_t peer)

Definition at line 201 of file wireguard_timer.c.

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

◆ wg_timers_data_received()

void wg_timers_data_received ( wg_peer_t peer)

Definition at line 251 of file wireguard_timer.c.

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

◆ wg_timers_data_sent()

void wg_timers_data_sent ( wg_peer_t peer)

Definition at line 239 of file wireguard_timer.c.

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

◆ wg_timers_handshake_complete()

void wg_timers_handshake_complete ( wg_peer_t peer)

Definition at line 266 of file wireguard_timer.c.

+ Here is the caller graph for this function:

◆ wg_timers_handshake_initiated()

void wg_timers_handshake_initiated ( wg_peer_t peer)

Definition at line 218 of file wireguard_timer.c.

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

◆ wg_timers_session_derived()

void wg_timers_session_derived ( wg_peer_t peer)

Definition at line 229 of file wireguard_timer.c.

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

◆ wg_timers_stop()

void wg_timers_stop ( wg_peer_t peer)

Definition at line 384 of file wireguard_timer.c.

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

Variable Documentation

◆ wg_timer_mngr_node

static vlib_node_registration_t wg_timer_mngr_node
static
Initial value:
= {
.function = wg_timer_mngr_fn,
.name =
"wg-timer-manager",
}

(constructor) VLIB_REGISTER_NODE (wg_timer_mngr_node)

Definition at line 278 of file wireguard_timer.c.

wg_timer_mngr_fn
static uword wg_timer_mngr_fn(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: wireguard_timer.c:345
VLIB_NODE_TYPE_PROCESS
@ VLIB_NODE_TYPE_PROCESS
Definition: node.h:84