1 #ifndef _IGMP_H 2 #define _IGMP_H 3 4 /* Max interval between IGMP packets */ 5 #define IGMP_INTERVAL (10*TICKS_PER_SEC) 6 #define IGMPv1_ROUTER_PRESENT_TIMEOUT (400*TICKS_PER_SEC) 7 8 #define IGMP_QUERY 0x11 9 #define IGMPv1_REPORT 0x12 10 #define IGMPv2_REPORT 0x16 11 #define IGMP_LEAVE 0x17 12 #define GROUP_ALL_HOSTS 0xe0000001 /* 224.0.0.1 Host byte order */ 13 14 struct igmp { 15 uint8_t type; 16 uint8_t response_time; 17 uint16_t chksum; 18 in_addr group; 19 }; 20 21 struct igmp_ip_t { /* Format of an igmp ip packet */ 22 struct iphdr ip; 23 uint8_t router_alert[4]; /* Router alert option */ 24 struct igmp igmp; 25 }; 26 27 #endif /* _IGMP_H */ 28