igmp.h raw
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