1 /*
2  * The mrouted program is covered by the license in the accompanying file
3  * named "LICENSE".  Use of the mrouted program represents acceptance of
4  * the terms and conditions listed in that file.
5  *
6  * The mrouted program is COPYRIGHT 1989 by The Board of Trustees of
7  * Leland Stanford Junior University.
8  *
9  *
10  * igmpv2.h,v 3.8.4.1 1997/11/18 23:25:58 fenner Exp
11  */
12 
13 /*
14  * Constants for IGMP Version 2.  Several of these, especially the
15  * robustness variable, should be variables and not constants.
16  */
17 #define	IGMP_ROBUSTNESS_VARIABLE		2
18 #define	IGMP_QUERY_INTERVAL			125
19 #define	IGMP_QUERY_RESPONSE_INTERVAL		10
20 #define	IGMP_GROUP_MEMBERSHIP_INTERVAL		(IGMP_ROBUSTNESS_VARIABLE * \
21 					IGMP_QUERY_INTERVAL + \
22 					IGMP_QUERY_RESPONSE_INTERVAL)
23 #define	IGMP_OTHER_QUERIER_PRESENT_INTERVAL	(IGMP_ROBUSTNESS_VARIABLE * \
24 					IGMP_QUERY_INTERVAL + \
25 					IGMP_QUERY_RESPONSE_INTERVAL / 2)
26 						/* Round to the nearest TIMER_INTERVAL */
27 #define	IGMP_STARTUP_QUERY_INTERVAL		(((IGMP_QUERY_INTERVAL / 4) \
28 							/ TIMER_INTERVAL) * TIMER_INTERVAL)
29 #define	IGMP_STARTUP_QUERY_COUNT		IGMP_ROBUSTNESS_VARIABLE
30 #define	IGMP_LAST_MEMBER_QUERY_INTERVAL		1
31 #define	IGMP_LAST_MEMBER_QUERY_COUNT		IGMP_ROBUSTNESS_VARIABLE
32 
33 /*
34  * OLD_AGE_THRESHOLD is the number of IGMP_QUERY_INTERVAL's to remember the
35  * presence of an IGMPv1 group member.  According to the IGMPv2 specification,
36  * routers remember this presence for [Robustness Variable] * [Query Interval] +
37  * [Query Response Interval].  However, OLD_AGE_THRESHOLD is in units of
38  * [Query Interval], so doesn't have sufficient resolution to represent
39  * [Query Response Interval].  When the timer mechanism gets an efficient
40  * method of refreshing timers, this should get fixed.
41  */
42 #define OLD_AGE_THRESHOLD		IGMP_ROBUSTNESS_VARIABLE
43