18 #ifndef __IGMP_CONFIG_H__ 19 #define __IGMP_CONFIG_H__ 29 #define foreach_igmp_config_timer_type \ 30 _(GENERAL_REPORT, "general-report") \ 31 _(GENERAL_QUERY, "general-query") 35 #define _(v,s) IGMP_CONFIG_TIMER_##v, 40 #define IGMP_CONFIG_N_TIMERS (IGMP_CONFIG_TIMER_GENERAL_QUERY + 1) 85 #define FOR_EACH_GROUP(_group, _config, _body) \ 87 igmp_key_t *__key__; \ 89 hash_foreach_mem(__key__, __gid__, _config->igmp_group_by_key, \ 91 _group = pool_elt_at_index(igmp_main.groups, __gid__); \ 92 do { _body; } while (0); \ igmp_timer_id_t timers[IGMP_CONFIG_N_TIMERS]
A vector of scheduled query-response timers.
u8 * format_igmp_config_timer_type(u8 *s, va_list *args)
igmp_group_t * igmp_group_lookup(igmp_config_t *config, const igmp_key_t *key)
igmp group lookup
struct igmp_config_t_ igmp_config_t
IGMP interface configuration.
enum igmp_config_timer_type_t_ igmp_config_timer_type_t
#define foreach_igmp_config_timer_type
GENERAL_REPORT = On expiry send a general report GENERAL_QUERY = On expiry send a general query...
uword * igmp_group_by_key
Database of groups joined on the link.
#define IGMP_CONFIG_N_TIMERS
u32 igmp_timer_id_t
The id of a running timer.
u32 adj_index_t
An index for adjacencies.
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.
ip46_address_t igmp_key_t
IGMP Key Used to index groups within an interface config and sources within a list.
u8 robustness_var
Robustness variable (section 5.1)
IGMP interface configuration.
u32 proxy_device_id
ID of a proxy device this configuration is on.
igmp_config_t * igmp_config_lookup(u32 sw_if_index)
igmp config lookup
IGMP group A multicast group address for which reception has been requested.
igmp_config_timer_type_t_
enum igmp_mode_t_ igmp_mode_t
igmp_config_t * igmp_config_get(u32 index)
Get the config from the pool index.
u8 * format_igmp_config(u8 *s, va_list *args)