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