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