X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Figmp%2Figmp_group.h;h=7d4dfb6d243a10bda6f4f8d5778439dbdb9f0800;hb=573f44c2f5c883753bc9880eead1bd662586521d;hp=dc0fc7a0f8a2fcc273410133f90b6334dd4460ff;hpb=947ea6222dad1ef04595c34273e9231395aef443;p=vpp.git diff --git a/src/plugins/igmp/igmp_group.h b/src/plugins/igmp/igmp_group.h index dc0fc7a0f8a..7d4dfb6d243 100644 --- a/src/plugins/igmp/igmp_group.h +++ b/src/plugins/igmp/igmp_group.h @@ -21,33 +21,34 @@ #include #include +/** + * QUERY_REPLY = Timer running to reply to a G/SG specific query + * QUERY_SENT = wait for response from a sent G/SG specific query. + * Sent when a host leaves a group + * RESEND_REPORT = Timer running to resend report + * FILTER_MODE_CHANGE = to check if the group can swap to + * INCLUDE mode (section 6.2.2) + */ +#define foreach_igmp_group_timer \ + _(QUERY_REPLY, "query-reply") \ + _(QUERY_SENT, "query-sent") \ + _(RESEND_REPORT, "resend-report") \ + _(FILTER_MODE_CHANGE, "filter-mode-change") + /** * Types of timers maintained for each group */ typedef enum igmp_group_timer_type_t_ { - /** - * Timer running to reply to a G/SG specific query - */ - IGMP_GROUP_TIMER_QUERY_REPLY, - /** - * wait for response from a sent G/SG specfic query. - * Sent when a host leaves a group - */ - IGMP_GROUP_TIMER_QUERY_SENT, - /** - * Timer running to resend report - */ - IGMP_GROUP_TIMER_RESEND_REPORT, - /** - * filter-mode change timer, to check if the group can swap to - * INCLUDE mode (section 6.2.2) - */ - IGMP_GROUP_TIMER_FILTER_MODE_CHANGE, +#define _(v,s) IGMP_GROUP_TIMER_##v, + foreach_igmp_group_timer +#undef _ } igmp_group_timer_type_t; #define IGMP_GROUP_N_TIMERS (IGMP_GROUP_TIMER_FILTER_MODE_CHANGE + 1) +extern u8 *format_igmp_group_timer_type (u8 * s, va_list * args); + /** * @brief IGMP group * A multicast group address for which reception has been requested. @@ -114,6 +115,8 @@ extern igmp_src_t *igmp_group_src_update (igmp_group_t * group, igmp_mode_t mode); extern void igmp_group_src_remove (igmp_group_t * group, igmp_src_t * src); +extern u8 *format_igmp_group (u8 * s, va_list * args); + extern ip46_address_t *igmp_group_present_minus_new (igmp_group_t * group, igmp_filter_mode_t mode,