#ifndef	IGMP_H
#define	IGMP_H

#include "stdint.h"
#include "in.h"

#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 */

#define MULTICAST_MASK    0xf0000000
#define MULTICAST_NETWORK 0xe0000000

enum {
	IGMP_SERVER,
	MAX_IGMP
};

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

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

struct igmptable_t {
	struct in_addr group;
	unsigned long time;
} PACKED;

extern void join_group ( int slot, unsigned long group );
extern void leave_group ( int slot );

#endif	/* IGMP_H */
