• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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