17c478bd9Sstevel@tonic-gate #ifndef _IGMP_H 27c478bd9Sstevel@tonic-gate #define _IGMP_H 37c478bd9Sstevel@tonic-gate 47c478bd9Sstevel@tonic-gate /* Max interval between IGMP packets */ 57c478bd9Sstevel@tonic-gate #define IGMP_INTERVAL (10*TICKS_PER_SEC) 67c478bd9Sstevel@tonic-gate #define IGMPv1_ROUTER_PRESENT_TIMEOUT (400*TICKS_PER_SEC) 77c478bd9Sstevel@tonic-gate 87c478bd9Sstevel@tonic-gate #define IGMP_QUERY 0x11 97c478bd9Sstevel@tonic-gate #define IGMPv1_REPORT 0x12 107c478bd9Sstevel@tonic-gate #define IGMPv2_REPORT 0x16 117c478bd9Sstevel@tonic-gate #define IGMP_LEAVE 0x17 127c478bd9Sstevel@tonic-gate #define GROUP_ALL_HOSTS 0xe0000001 /* 224.0.0.1 Host byte order */ 137c478bd9Sstevel@tonic-gate 147c478bd9Sstevel@tonic-gate struct igmp { 157c478bd9Sstevel@tonic-gate uint8_t type; 167c478bd9Sstevel@tonic-gate uint8_t response_time; 177c478bd9Sstevel@tonic-gate uint16_t chksum; 187c478bd9Sstevel@tonic-gate in_addr group; 197c478bd9Sstevel@tonic-gate }; 207c478bd9Sstevel@tonic-gate 217c478bd9Sstevel@tonic-gate struct igmp_ip_t { /* Format of an igmp ip packet */ 227c478bd9Sstevel@tonic-gate struct iphdr ip; 237c478bd9Sstevel@tonic-gate uint8_t router_alert[4]; /* Router alert option */ 247c478bd9Sstevel@tonic-gate struct igmp igmp; 257c478bd9Sstevel@tonic-gate }; 267c478bd9Sstevel@tonic-gate 277c478bd9Sstevel@tonic-gate #endif /* _IGMP_H */ 28