igmp_timer_id_t timers[IGMP_CONFIG_N_TIMERS]
A vector of scheduled query-respone timers.
void igmp_timer_retire(igmp_timer_id_t *tid)
igmp_group_t * igmp_group_lookup(igmp_config_t *config, const igmp_key_t *key)
igmp group lookup
vnet_main_t * vnet_get_main(void)
igmp_config_t * configs
pool of configs
format_function_t format_vnet_sw_if_index_name
void igmp_clear_config(igmp_config_t *config)
igmp clear config
u32 igmp_config_index(const igmp_config_t *c)
Get the pool index for a config.
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
igmp_config_t * igmp_config_get(u32 index)
Get the config from the pool index.
#define FOR_EACH_GROUP(_group, _config, _body)
uword * igmp_group_by_key
Database of groups joined on the link.
igmp_config_t * igmp_config_lookup(u32 sw_if_index)
igmp config lookup
#define IGMP_CONFIG_N_TIMERS
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
collection of data related to IGMP
u32 * igmp_config_by_sw_if_index
per-interface DB of configs
ip46_address_t igmp_key_t
IGMP Key Used to index groups within an interface config and sources within a list.
IGMP interface configuration.
igmp_group_t * groups
pool of groups
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
IGMP group A multicast group address for which reception has been requested.
#define hash_get_mem(h, key)
void igmp_group_clear(igmp_group_t *group)