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