1#ifndef _NETINET_IGMP_H 2#define _NETINET_IGMP_H 3 4#include <stdint.h> 5#include <netinet/in.h> 6 7struct igmp { 8 uint8_t igmp_type; 9 uint8_t igmp_code; 10 uint16_t igmp_cksum; 11 struct in_addr igmp_group; 12}; 13 14#define IGMP_MINLEN 8 15 16#define IGMP_MEMBERSHIP_QUERY 0x11 17#define IGMP_V1_MEMBERSHIP_REPORT 0x12 18#define IGMP_V2_MEMBERSHIP_REPORT 0x16 19#define IGMP_V2_LEAVE_GROUP 0x17 20 21#define IGMP_DVMRP 0x13 22#define IGMP_PIM 0x14 23#define IGMP_TRACE 0x15 24 25#define IGMP_MTRACE_RESP 0x1e 26#define IGMP_MTRACE 0x1f 27 28#define IGMP_MAX_HOST_REPORT_DELAY 10 29#define IGMP_TIMER_SCALE 10 30 31#define IGMP_DELAYING_MEMBER 1 32#define IGMP_IDLE_MEMBER 2 33#define IGMP_LAZY_MEMBER 3 34#define IGMP_SLEEPING_MEMBER 4 35#define IGMP_AWAKENING_MEMBER 5 36 37#define IGMP_v1_ROUTER 1 38#define IGMP_v2_ROUTER 2 39 40#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY 41#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT 42#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT 43#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP 44 45#endif 46