1 #ifndef	_IGMP_H
2 #define	_IGMP_H
3 
4 /* Max interval between IGMP packets */
5 #define IGMP_INTERVAL			(10*TICKS_PER_SEC)
6 #define IGMPv1_ROUTER_PRESENT_TIMEOUT	(400*TICKS_PER_SEC)
7 
8 #define IGMP_QUERY	0x11
9 #define IGMPv1_REPORT	0x12
10 #define IGMPv2_REPORT	0x16
11 #define IGMP_LEAVE	0x17
12 #define GROUP_ALL_HOSTS 0xe0000001 /* 224.0.0.1 Host byte order */
13 
14 struct igmp {
15 	uint8_t  type;
16 	uint8_t  response_time;
17 	uint16_t chksum;
18 	in_addr group;
19 };
20 
21 struct igmp_ip_t { /* Format of an igmp ip packet */
22 	struct iphdr ip;
23 	uint8_t router_alert[4]; /* Router alert option */
24 	struct igmp igmp;
25 };
26 
27 #endif	/* _IGMP_H */
28