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

Go to the source code of this file.

Data Structures

struct  igmp_timer_t_
 Timer. More...
 

Macros

#define IGMP_N_TIMERS   (IGMP_TIMER_REPORT_INTERVAL+1)
 

Typedefs

typedef struct igmp_timer_t_ igmp_timer_t
 Timer. More...
 

Enumerations

enum  { IGMP_PROCESS_EVENT_UPDATE_TIMER = 1 }
 

Functions

u32 igmp_timer_type_get (igmp_timer_type_t t)
 
void igmp_timer_type_set (igmp_timer_type_t t, u32 v)
 
static int igmp_timer_compare (const void *_v1, const void *_v2)
 
u32 igmp_get_next_timer (void)
 igmp get next timer More...
 
void * igmp_timer_get_data (igmp_timer_id_t tid)
 
void igmp_timer_set_data (igmp_timer_id_t tid, void *data)
 
int igmp_timer_is_running (igmp_timer_id_t tid)
 
static uword igmp_timer_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 igmp timer process More...
 
igmp_timer_id_t igmp_timer_schedule (f64 when, u32 obj, igmp_timer_function_t fn, void *data)
 Schedule a timer to expire in 'when' seconds. More...
 
void igmp_timer_retire (igmp_timer_id_t *tid)
 
u8format_igmp_timer_id (u8 *s, va_list *args)
 

Variables

static igmp_timer_type_t igmp_default_timer_values []
 Default timer values as per RFC. More...
 
enum { ... }  igmp_process_event_t
 
static igmp_timer_ttimer_pool
 pool of timers More...
 
static u32pending_timers
 Vector of pending timers. More...
 
vlib_node_registration_t igmp_timer_process_node
 (constructor) VLIB_REGISTER_NODE (igmp_timer_process_node) More...
 

Macro Definition Documentation

◆ IGMP_N_TIMERS

#define IGMP_N_TIMERS   (IGMP_TIMER_REPORT_INTERVAL+1)

Definition at line 32 of file igmp_timer.c.

Typedef Documentation

◆ igmp_timer_t

typedef struct igmp_timer_t_ igmp_timer_t

Timer.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
IGMP_PROCESS_EVENT_UPDATE_TIMER 

Definition at line 52 of file igmp_timer.c.

Function Documentation

◆ format_igmp_timer_id()

u8* format_igmp_timer_id ( u8 s,
va_list *  args 
)

Definition at line 235 of file igmp_timer.c.

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

◆ igmp_get_next_timer()

u32 igmp_get_next_timer ( void  )

igmp get next timer

Get next timer.

Definition at line 102 of file igmp_timer.c.

+ Here is the caller graph for this function:

◆ igmp_timer_compare()

static int igmp_timer_compare ( const void *  _v1,
const void *  _v2 
)
static

Definition at line 83 of file igmp_timer.c.

+ Here is the caller graph for this function:

◆ igmp_timer_get_data()

void* igmp_timer_get_data ( igmp_timer_id_t  tid)

Definition at line 111 of file igmp_timer.c.

+ Here is the caller graph for this function:

◆ igmp_timer_is_running()

int igmp_timer_is_running ( igmp_timer_id_t  tid)

Definition at line 131 of file igmp_timer.c.

◆ igmp_timer_process()

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

igmp timer process

Parameters
vm- vlib main
rt- vlib runtime node
f- vlib frame

Handle igmp timers.

Definition at line 144 of file igmp_timer.c.

+ Here is the call graph for this function:

◆ igmp_timer_retire()

void igmp_timer_retire ( igmp_timer_id_t tid)

Definition at line 221 of file igmp_timer.c.

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

◆ igmp_timer_schedule()

igmp_timer_id_t igmp_timer_schedule ( f64  when,
u32  obj,
igmp_timer_function_t  fn,
void *  data 
)

Schedule a timer to expire in 'when' seconds.

Definition at line 195 of file igmp_timer.c.

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

◆ igmp_timer_set_data()

void igmp_timer_set_data ( igmp_timer_id_t  tid,
void *  data 
)

Definition at line 121 of file igmp_timer.c.

+ Here is the caller graph for this function:

◆ igmp_timer_type_get()

u32 igmp_timer_type_get ( igmp_timer_type_t  t)

Definition at line 68 of file igmp_timer.c.

+ Here is the caller graph for this function:

◆ igmp_timer_type_set()

void igmp_timer_type_set ( igmp_timer_type_t  t,
u32  v 
)

Definition at line 75 of file igmp_timer.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ igmp_default_timer_values

igmp_timer_type_t igmp_default_timer_values[]
static
Initial value:
= {
[IGMP_TIMER_QUERY] = 60,
[IGMP_TIMER_SRC] = (3 * 60),
[IGMP_TIMER_LEAVE] = 60,
[IGMP_TIMER_REPORT_INTERVAL] = 1,
}

Default timer values as per RFC.

Definition at line 25 of file igmp_timer.c.

◆ igmp_process_event_t

enum { ... } igmp_process_event_t

◆ igmp_timer_process_node

vlib_node_registration_t igmp_timer_process_node
Initial value:
=
{
.function = igmp_timer_process,
.name = "igmp-timer-process",
.n_next_nodes = 0,
}

(constructor) VLIB_REGISTER_NODE (igmp_timer_process_node)

Definition at line 185 of file igmp_timer.c.

◆ pending_timers

u32* pending_timers
static

Vector of pending timers.

Definition at line 65 of file igmp_timer.c.

◆ timer_pool

igmp_timer_t* timer_pool
static

pool of timers

Definition at line 60 of file igmp_timer.c.

igmp_timer_process
static uword igmp_timer_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
igmp timer process
Definition: igmp_timer.c:144
VLIB_NODE_TYPE_PROCESS
@ VLIB_NODE_TYPE_PROCESS
Definition: node.h:84