File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pimd / include / sunos-cc / netinet / igmp.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jun 12 07:59:38 2017 UTC (7 years, 1 month ago) by misho
Branches: pimd, MAIN
CVS tags: v2_3_2, HEAD
pimd 2.3.2

    1: /*
    2:  * Internet Group Management Protocol (IGMP) definitions.
    3:  *
    4:  * Written by Steve Deering, Stanford, May 1988.
    5:  *
    6:  * MULTICAST $Revision: 1.1.1.1 $
    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>