FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
igmp.c File Reference
+ Include dependency graph for igmp.c:

Go to the source code of this file.

Macros

#define igmp_type(n, s)
 
#define igmp_report_type(n, s)
 

Functions

void igmp_clear_config (igmp_config_t *config)
 
int igmp_timer_compare (const void *_a, const void *_b)
 
void igmp_sort_timers (igmp_timer_t *timers)
 
void igmp_create_int_timer (f64 time, u32 sw_if_index, igmp_timer_function_t *func)
 
void igmp_create_sg_timer (f64 time, u32 sw_if_index, igmp_sg_key_t *key, igmp_timer_function_t *func)
 
static igmp_timer_tigmp_get_next_timer (igmp_main_t *im)
 
static void igmp_create_report_v31 (vlib_buffer_t *b, igmp_config_t *config)
 
u8 ip4_lookup (ip4_address_t *a, igmp_membership_report_v3_t *igmp, u16 n, igmp_membership_group_v3_type_t type)
 
static void igmp_create_report_v32 (vlib_buffer_t *b, igmp_config_t *config)
 
static void igmp_create_general_query_v3 (vlib_buffer_t *b, igmp_config_t *config)
 
static void igmp_create_ip4 (vlib_buffer_t *b, igmp_config_t *config, u8 is_report)
 
static void igmp_send_msg (vlib_main_t *vm, vlib_node_runtime_t *node, igmp_main_t *im, igmp_config_t *config, u8 is_report)
 
void igmp_send_query (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)
 
void igmp_query_resp_exp (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)
 
void igmp_send_report (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)
 
void igmp_send_state_changed (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)
 
void igmp_sg_exp (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)
 
static uword igmp_timer_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
int igmp_listen (vlib_main_t *vm, u8 enable, u32 sw_if_index, ip46_address_t saddr, ip46_address_t gaddr, u8 cli_api_configured)
 
static clib_error_tigmp_hw_interface_link_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
 VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION (igmp_hw_interface_link_up_down)
 
static clib_error_tigmp_init (vlib_main_t *vm)
 
 VLIB_PLUGIN_REGISTER ()
 

Variables

igmp_main_t igmp_main
 
vlib_node_registration_t igmp_timer_process_node
 (constructor) VLIB_REGISTER_NODE (igmp_timer_process_node) More...
 

Macro Definition Documentation

#define igmp_report_type (   n,
 
)
Value:
do { \
vec_add2 (im->report_type_infos, rti, 1); \
rti->type = n; \
rti->name = (u8 *) #s; \
} while (0);
#define vec_add2(V, P, N)
Add N elements to end of vector V, return pointer to new elements in P.
Definition: vec.h:559
unsigned char u8
Definition: types.h:56
#define igmp_type (   n,
 
)
Value:
do { \
vec_add2 (im->type_infos, ti, 1); \
ti->type = n; \
ti->name = (u8 *) #s; \
} while (0);
#define vec_add2(V, P, N)
Add N elements to end of vector V, return pointer to new elements in P.
Definition: vec.h:559
unsigned char u8
Definition: types.h:56

Function Documentation

void igmp_clear_config ( igmp_config_t config)

Definition at line 38 of file igmp.c.

+ Here is the caller graph for this function:

static void igmp_create_general_query_v3 ( vlib_buffer_t b,
igmp_config_t config 
)
static

Definition at line 286 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_create_int_timer ( f64  time,
u32  sw_if_index,
igmp_timer_function_t func 
)

Definition at line 86 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void igmp_create_ip4 ( vlib_buffer_t b,
igmp_config_t config,
u8  is_report 
)
static

Definition at line 313 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void igmp_create_report_v31 ( vlib_buffer_t b,
igmp_config_t config 
)
static

Definition at line 160 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void igmp_create_report_v32 ( vlib_buffer_t b,
igmp_config_t config 
)
static

Definition at line 227 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_create_sg_timer ( f64  time,
u32  sw_if_index,
igmp_sg_key_t key,
igmp_timer_function_t func 
)

Definition at line 102 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static igmp_timer_t* igmp_get_next_timer ( igmp_main_t im)
inlinestatic

Definition at line 122 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* igmp_hw_interface_link_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 711 of file igmp.c.

+ Here is the call graph for this function:

static clib_error_t* igmp_init ( vlib_main_t vm)
static

Definition at line 733 of file igmp.c.

+ Here is the call graph for this function:

int igmp_listen ( vlib_main_t vm,
u8  enable,
u32  sw_if_index,
ip46_address_t  saddr,
ip46_address_t  gaddr,
u8  cli_api_configured 
)

Definition at line 595 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_query_resp_exp ( vlib_main_t vm,
vlib_node_runtime_t rt,
igmp_main_t im,
igmp_timer_t timer 
)

Definition at line 435 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void igmp_send_msg ( vlib_main_t vm,
vlib_node_runtime_t node,
igmp_main_t im,
igmp_config_t config,
u8  is_report 
)
static

Definition at line 348 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_send_query ( vlib_main_t vm,
vlib_node_runtime_t rt,
igmp_main_t im,
igmp_timer_t timer 
)

Definition at line 413 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_send_report ( vlib_main_t vm,
vlib_node_runtime_t rt,
igmp_main_t im,
igmp_timer_t timer 
)

Definition at line 455 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_send_state_changed ( vlib_main_t vm,
vlib_node_runtime_t rt,
igmp_main_t im,
igmp_timer_t timer 
)

Definition at line 479 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_sg_exp ( vlib_main_t vm,
vlib_node_runtime_t rt,
igmp_main_t im,
igmp_timer_t timer 
)

Definition at line 513 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void igmp_sort_timers ( igmp_timer_t timers)

Definition at line 68 of file igmp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int igmp_timer_compare ( const void *  _a,
const void *  _b 
)

Definition at line 59 of file igmp.c.

+ Here is the caller graph for this function:

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

Definition at line 544 of file igmp.c.

+ Here is the call graph for this function:

u8 ip4_lookup ( ip4_address_t a,
igmp_membership_report_v3_t igmp,
u16  n,
igmp_membership_group_v3_type_t  type 
)

Definition at line 200 of file igmp.c.

+ Here is the call graph for this function:

VLIB_PLUGIN_REGISTER ( )

+ Here is the caller graph for this function:

VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION ( igmp_hw_interface_link_up_down  )

+ Here is the caller graph for this function:

Variable Documentation

igmp_main_t igmp_main

Definition at line 34 of file igmp.c.

vlib_node_registration_t igmp_timer_process_node
Initial value:
=
{
.function = igmp_timer_process,
.name = "igmp-timer-process",
.n_next_nodes = IGMP_N_NEXT,
.next_nodes = {
[IGMP_NEXT_IP4_REWRITE_MCAST_NODE] = "ip4-rewrite-mcast",
[IGMP_NEXT_IP6_REWRITE_MCAST_NODE] = "ip6-rewrite-mcast",
}
}
static uword igmp_timer_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: igmp.c:544

(constructor) VLIB_REGISTER_NODE (igmp_timer_process_node)

Definition at line 581 of file igmp.c.