OpenSolaris_b135/grub/grub-0.97/netboot/igmp.h

#ifndef	_IGMP_H
#define	_IGMP_H

/* Max interval between IGMP packets */
#define IGMP_INTERVAL			(10*TICKS_PER_SEC)
#define IGMPv1_ROUTER_PRESENT_TIMEOUT	(400*TICKS_PER_SEC)

#define IGMP_QUERY	0x11
#define IGMPv1_REPORT	0x12
#define IGMPv2_REPORT	0x16
#define IGMP_LEAVE	0x17
#define GROUP_ALL_HOSTS 0xe0000001 /* 224.0.0.1 Host byte order */

struct igmp {
	uint8_t  type;
	uint8_t  response_time;
	uint16_t chksum;
	in_addr group;
};

struct igmp_ip_t { /* Format of an igmp ip packet */
	struct iphdr ip;
	uint8_t router_alert[4]; /* Router alert option */
	struct igmp igmp;
};

#endif	/* _IGMP_H */