1 #ifndef _NETINET_IGMP_H 2 #define _NETINET_IGMP_H 3 4 #include <stdint.h> 5 #include <netinet/in.h> 6 7 struct 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