diff options
| author | Daniel Walton <dwalton@cumulusnetworks.com> | 2016-10-20 13:34:29 +0000 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-12-21 20:26:11 -0500 |
| commit | b05b72e80b840fd8628b890cb6fa5c8ca7d73dd3 (patch) | |
| tree | a8d5f0314de5725102affaf9b0968a030548ea5c /pimd/pim_igmp.h | |
| parent | eb7a976a9d89f49ce455b1394fa64d08fbc2af39 (diff) | |
pimd: add support for IGMPv2
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Ticket: CM-7962
Diffstat (limited to 'pimd/pim_igmp.h')
| -rw-r--r-- | pimd/pim_igmp.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/pimd/pim_igmp.h b/pimd/pim_igmp.h index 2067bb30aa..fa2c255dd0 100644 --- a/pimd/pim_igmp.h +++ b/pimd/pim_igmp.h @@ -52,6 +52,7 @@ #define IGMP_V3_GROUP_RECORD_NUMSOURCES_OFFSET (2) #define IGMP_V3_GROUP_RECORD_GROUP_OFFSET (4) #define IGMP_V3_GROUP_RECORD_SOURCE_OFFSET (8) +#define IGMP_CHECKSUM_OFFSET (2) /* RFC 3376: 8.1. Robustness Variable - Default: 2 */ #define IGMP_DEFAULT_ROBUSTNESS_VARIABLE (2) @@ -65,6 +66,8 @@ /* RFC 3376: 8.8. Last Member Query Interval - Default: 10 deciseconds */ #define IGMP_SPECIFIC_QUERY_MAX_RESPONSE_TIME_DSEC (10) +#define IGMP_DEFAULT_VERSION (3) + struct igmp_join { struct in_addr group_addr; struct in_addr source_addr; @@ -152,6 +155,9 @@ struct igmp_group { since sources have their counters) */ int group_specific_query_retransmit_count; + /* compatibility mode - igmp v1, v2 or v3 */ + int igmp_version; + struct in_addr group_addr; int group_filtermode_isexcl; /* 0=INCLUDE, 1=EXCLUDE */ struct list *group_source_list; /* list of struct igmp_source */ @@ -176,4 +182,18 @@ void igmp_group_timer_on(struct igmp_group *group, struct igmp_source * source_new (struct igmp_group *group, struct in_addr src_addr); + +void igmp_send_query(int igmp_version, + struct igmp_group *group, + int fd, + const char *ifname, + char *query_buf, + int query_buf_size, + int num_sources, + struct in_addr dst_addr, + struct in_addr group_addr, + int query_max_response_time_dsec, + uint8_t s_flag, + uint8_t querier_robustness_variable, + uint16_t querier_query_interval); #endif /* PIM_IGMP_H */ |
