FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
igmp.h File Reference
+ Include dependency graph for igmp.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  igmp_index_t_
 
struct  igmp_sg_key_t_
 
struct  igmp_sg_t_
 
struct  igmp_config_t_
 
struct  igmp_type_info_t
 
struct  igmp_report_type_info_t
 
struct  igmp_main_t_
 
struct  igmp_timer_t_
 

Macros

#define IGMP_QUERY_TIMER   (60)
 
#define IGMP_SG_TIMER   (3 * IGMP_QUERY_TIMER)
 
#define IGMP_DEFAULT_ROBUSTNESS_VARIABLE   (2)
 
#define IGMP_DBG   1
 
#define DBG(...)   clib_warning(__VA_ARGS__)
 
#define group_ptr(p, l)   ((igmp_membership_group_v3_t *)((char*)p + l))
 
#define IGMP_CONFIG_FLAG_QUERY_RESP_RECVED   (1 << 0)
 
#define IGMP_CONFIG_FLAG_CAN_SEND_REPORT   (1 << 1)
 

Typedefs

typedef struct igmp_config_t_ igmp_config_t
 
typedef void( create_msg_t) (vlib_buffer_t *b, igmp_config_t *config)
 
typedef struct igmp_index_t_ igmp_index_t
 
typedef struct igmp_sg_key_t_ igmp_sg_key_t
 
typedef struct igmp_sg_t_ igmp_sg_t
 
typedef struct igmp_timer_t_ igmp_timer_t
 
typedef struct igmp_main_t_ igmp_main_t
 
typedef void( igmp_timer_function_t) (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)
 

Enumerations

enum  { IGMP_PROCESS_EVENT_UPDATE_TIMER = 1 }
 
enum  igmp_ver_t { IGMP_V1, IGMP_V2, IGMP_V3 }
 
enum  igmp_next_t { IGMP_NEXT_IP4_REWRITE_MCAST_NODE, IGMP_NEXT_IP6_REWRITE_MCAST_NODE, IGMP_N_NEXT }
 

Functions

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)
 
void igmp_clear_config (igmp_config_t *config)
 
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)
 
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 igmp_type_info_tigmp_get_type_info (igmp_main_t *im, u32 type)
 
static igmp_report_type_info_tigmp_get_report_type_info (igmp_main_t *im, u8 report_type)
 
void igmp_event (igmp_main_t *im, igmp_config_t *config, igmp_sg_t *sg)
 
static igmp_config_tigmp_config_lookup (igmp_main_t *im, u32 sw_if_index)
 
static igmp_sg_tigmp_sg_lookup (igmp_config_t *config, igmp_sg_key_t *key)
 

Variables

enum { ... }  igmp_process_event_t
 
igmp_main_t igmp_main
 
vlib_node_registration_t igmp_timer_process_node
 (constructor) VLIB_REGISTER_NODE (igmp_timer_process_node) More...
 
vlib_node_registration_t igmp_input_node
 (constructor) VLIB_REGISTER_NODE (igmp_input_node) More...
 
vlib_node_registration_t igmp_parse_query_node
 (constructor) VLIB_REGISTER_NODE (igmp_parse_query_node) More...
 
vlib_node_registration_t igmp_parse_report_node
 (constructor) VLIB_REGISTER_NODE (igmp_parse_report_node) More...
 

Macro Definition Documentation

#define DBG (   ...)    clib_warning(__VA_ARGS__)

Definition at line 35 of file igmp.h.

#define group_ptr (   p,
 
)    ((igmp_membership_group_v3_t *)((char*)p + l))

Definition at line 40 of file igmp.h.

#define IGMP_CONFIG_FLAG_CAN_SEND_REPORT   (1 << 1)

Definition at line 102 of file igmp.h.

#define IGMP_CONFIG_FLAG_QUERY_RESP_RECVED   (1 << 0)

Definition at line 101 of file igmp.h.

#define IGMP_DBG   1

Definition at line 32 of file igmp.h.

#define IGMP_DEFAULT_ROBUSTNESS_VARIABLE   (2)

Definition at line 30 of file igmp.h.

#define IGMP_QUERY_TIMER   (60)

Definition at line 28 of file igmp.h.

#define IGMP_SG_TIMER   (3 * IGMP_QUERY_TIMER)

Definition at line 29 of file igmp.h.

Typedef Documentation

typedef void( create_msg_t) (vlib_buffer_t *b, igmp_config_t *config)

Definition at line 59 of file igmp.h.

typedef struct igmp_config_t_ igmp_config_t

Definition at line 56 of file igmp.h.

typedef struct igmp_index_t_ igmp_index_t
typedef struct igmp_main_t_ igmp_main_t
typedef struct igmp_sg_key_t_ igmp_sg_key_t
typedef struct igmp_sg_t_ igmp_sg_t
typedef void( igmp_timer_function_t) (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer)

Definition at line 162 of file igmp.h.

typedef struct igmp_timer_t_ igmp_timer_t

Definition at line 112 of file igmp.h.

Enumeration Type Documentation

anonymous enum
Enumerator
IGMP_PROCESS_EVENT_UPDATE_TIMER 

Definition at line 42 of file igmp.h.

Enumerator
IGMP_NEXT_IP4_REWRITE_MCAST_NODE 
IGMP_NEXT_IP6_REWRITE_MCAST_NODE 
IGMP_N_NEXT 

Definition at line 224 of file igmp.h.

enum igmp_ver_t
Enumerator
IGMP_V1 
IGMP_V2 
IGMP_V3 

Definition at line 47 of file igmp.h.

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 igmp_config_t* igmp_config_lookup ( igmp_main_t im,
u32  sw_if_index 
)
inlinestatic

Definition at line 233 of file igmp.h.

+ 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:

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:

void igmp_event ( igmp_main_t im,
igmp_config_t config,
igmp_sg_t sg 
)

Definition at line 292 of file igmp_api.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static igmp_report_type_info_t* igmp_get_report_type_info ( igmp_main_t im,
u8  report_type 
)
inlinestatic

Definition at line 214 of file igmp.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static igmp_type_info_t* igmp_get_type_info ( igmp_main_t im,
u32  type 
)
inlinestatic

Definition at line 205 of file igmp.h.

+ Here is the caller 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:

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:

static igmp_sg_t* igmp_sg_lookup ( igmp_config_t config,
igmp_sg_key_t key 
)
inlinestatic

Definition at line 246 of file igmp.h.

+ 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:

Variable Documentation

vlib_node_registration_t igmp_input_node

(constructor) VLIB_REGISTER_NODE (igmp_input_node)

Definition at line 221 of file input.c.

igmp_main_t igmp_main

Definition at line 34 of file igmp.c.

vlib_node_registration_t igmp_parse_query_node

(constructor) VLIB_REGISTER_NODE (igmp_parse_query_node)

Definition at line 328 of file input.c.

vlib_node_registration_t igmp_parse_report_node

(constructor) VLIB_REGISTER_NODE (igmp_parse_report_node)

Definition at line 525 of file input.c.

enum { ... } igmp_process_event_t
vlib_node_registration_t igmp_timer_process_node

(constructor) VLIB_REGISTER_NODE (igmp_timer_process_node)

Definition at line 581 of file igmp.c.