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
14struct igmp {
15	uint8_t  type;
16	uint8_t  response_time;
17	uint16_t chksum;
18	in_addr group;
19};
20
21struct 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