Annotation of embedaddon/pimdd/include/sunos-cc/netinet/igmp.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Internet Group Management Protocol (IGMP) definitions.
                      3:  *
                      4:  * Written by Steve Deering, Stanford, May 1988.
                      5:  *
                      6:  * MULTICAST $Revision: 1.3 $
                      7:  */
                      8: 
                      9: /*
                     10:  * IGMP packet format.
                     11:  */
                     12: struct igmp {
                     13:        u_char          igmp_type;      /* version & type of IGMP message  */
                     14:        u_char          igmp_code;      /* code for routing sub-msgs       */
                     15:        u_short         igmp_cksum;     /* IP-style checksum               */
                     16:        struct in_addr  igmp_group;     /* group address being reported    */
                     17: };                                     /*  (zero for queries)             */
                     18: 
                     19: #define IGMP_MINLEN                 8
                     20: 
                     21: /*
                     22:  * Message types, including version number.
                     23:  */
                     24: #define IGMP_HOST_MEMBERSHIP_QUERY   0x11      /* Host membership query    */
                     25: #define IGMP_HOST_MEMBERSHIP_REPORT  0x12      /* Old membership report    */
                     26: #define IGMP_DVMRP                  0x13       /* DVMRP routing message    */
                     27: #define IGMP_PIM                    0x14       /* PIM routing message      */
                     28: 
                     29: #define IGMP_HOST_NEW_MEMBERSHIP_REPORT 0x16   /* New membership report    */
                     30: 
                     31: #define IGMP_HOST_LEAVE_MESSAGE      0x17      /* Leave-group message      */
                     32: 
                     33: #define IGMP_MTRACE_RESP            0x1e  /* traceroute resp. (to sender)  */
                     34: #define IGMP_MTRACE                 0x1f  /* mcast traceroute messages     */
                     35: 
                     36: #define IGMP_MAX_HOST_REPORT_DELAY   10    /* max delay for response to     */
                     37:                                           /*  query (in seconds)           */
                     38: 
                     39: 
                     40: #define IGMP_TIMER_SCALE     10            /* denotes that the igmp->timer filed */
                     41:                                    /* specifies time in 10th of seconds  */
                     42: 
                     43: /*
                     44:  * States for the IGMPv2 state table
                     45:  */
                     46: #define IGMP_DELAYING_MEMBER                     1
                     47: #define IGMP_IDLE_MEMBER                         2
                     48: #define IGMP_LAZY_MEMBER                         3 
                     49: #define IGMP_SLEEPING_MEMBER                     4 
                     50: #define IGMP_AWAKENING_MEMBER                    5 
                     51: 
                     52: /*
                     53:  * We must remember whether the querier is an old or a new router.
                     54:  */
                     55: #define IGMP_OLD_ROUTER                          0
                     56: #define IGMP_NEW_ROUTER                          1
                     57: 
                     58: /*
                     59:  * Revert to new router if we haven't heard from an old router in
                     60:  * this amount of time.
                     61:  */
                     62: #define IGMP_AGE_THRESHOLD                      540

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>