~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/igmp.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
  2 /*
  3  *      Linux NET3:     Internet Group Management Protocol  [IGMP]
  4  *
  5  *      Authors:
  6  *              Alan Cox <alan@lxorguk.ukuu.org.uk>
  7  *
  8  *      Extended to talk the BSD extended IGMP protocol of mrouted 3.6
  9  *
 10  *
 11  *      This program is free software; you can redistribute it and/or
 12  *      modify it under the terms of the GNU General Public License
 13  *      as published by the Free Software Foundation; either version
 14  *      2 of the License, or (at your option) any later version.
 15  */
 16 
 17 #ifndef _UAPI_LINUX_IGMP_H
 18 #define _UAPI_LINUX_IGMP_H
 19 
 20 #include <linux/types.h>
 21 #include <asm/byteorder.h>
 22 
 23 /*
 24  *      IGMP protocol structures
 25  */
 26 
 27 /*
 28  *      Header in on cable format
 29  */
 30 
 31 struct igmphdr {
 32         __u8 type;
 33         __u8 code;              /* For newer IGMP */
 34         __sum16 csum;
 35         __be32 group;
 36 };
 37 
 38 /* V3 group record types [grec_type] */
 39 #define IGMPV3_MODE_IS_INCLUDE          1
 40 #define IGMPV3_MODE_IS_EXCLUDE          2
 41 #define IGMPV3_CHANGE_TO_INCLUDE        3
 42 #define IGMPV3_CHANGE_TO_EXCLUDE        4
 43 #define IGMPV3_ALLOW_NEW_SOURCES        5
 44 #define IGMPV3_BLOCK_OLD_SOURCES        6
 45 
 46 struct igmpv3_grec {
 47         __u8    grec_type;
 48         __u8    grec_auxwords;
 49         __be16  grec_nsrcs;
 50         __be32  grec_mca;
 51         __be32  grec_src[];
 52 };
 53 
 54 struct igmpv3_report {
 55         __u8 type;
 56         __u8 resv1;
 57         __sum16 csum;
 58         __be16 resv2;
 59         __be16 ngrec;
 60         struct igmpv3_grec grec[];
 61 };
 62 
 63 struct igmpv3_query {
 64         __u8 type;
 65         __u8 code;
 66         __sum16 csum;
 67         __be32 group;
 68 #if defined(__LITTLE_ENDIAN_BITFIELD)
 69         __u8 qrv:3,
 70              suppress:1,
 71              resv:4;
 72 #elif defined(__BIG_ENDIAN_BITFIELD)
 73         __u8 resv:4,
 74              suppress:1,
 75              qrv:3;
 76 #else
 77 #error "Please fix <asm/byteorder.h>"
 78 #endif
 79         __u8 qqic;
 80         __be16 nsrcs;
 81         __be32 srcs[];
 82 };
 83 
 84 #define IGMP_HOST_MEMBERSHIP_QUERY      0x11    /* From RFC1112 */
 85 #define IGMP_HOST_MEMBERSHIP_REPORT     0x12    /* Ditto */
 86 #define IGMP_DVMRP                      0x13    /* DVMRP routing */
 87 #define IGMP_PIM                        0x14    /* PIM routing */
 88 #define IGMP_TRACE                      0x15
 89 #define IGMPV2_HOST_MEMBERSHIP_REPORT   0x16    /* V2 version of 0x12 */
 90 #define IGMP_HOST_LEAVE_MESSAGE         0x17
 91 #define IGMPV3_HOST_MEMBERSHIP_REPORT   0x22    /* V3 version of 0x12 */
 92 
 93 #define IGMP_MTRACE_RESP                0x1e
 94 #define IGMP_MTRACE                     0x1f
 95 
 96 #define IGMP_MRDISC_ADV                 0x30    /* From RFC4286 */
 97 
 98 /*
 99  *      Use the BSD names for these for compatibility
100  */
101 
102 #define IGMP_DELAYING_MEMBER            0x01
103 #define IGMP_IDLE_MEMBER                0x02
104 #define IGMP_LAZY_MEMBER                0x03
105 #define IGMP_SLEEPING_MEMBER            0x04
106 #define IGMP_AWAKENING_MEMBER           0x05
107 
108 #define IGMP_MINLEN                     8
109 
110 #define IGMP_MAX_HOST_REPORT_DELAY      10      /* max delay for response to */
111                                                 /* query (in seconds)   */
112 
113 #define IGMP_TIMER_SCALE                10      /* denotes that the igmphdr->timer field */
114                                                 /* specifies time in 10th of seconds     */
115 
116 #define IGMP_AGE_THRESHOLD              400     /* If this host don't hear any IGMP V1  */
117                                                 /* message in this period of time,      */
118                                                 /* revert to IGMP v2 router.            */
119 
120 #define IGMP_ALL_HOSTS          htonl(0xE0000001L)
121 #define IGMP_ALL_ROUTER         htonl(0xE0000002L)
122 #define IGMPV3_ALL_MCR          htonl(0xE0000016L)
123 #define IGMP_LOCAL_GROUP        htonl(0xE0000000L)
124 #define IGMP_LOCAL_GROUP_MASK   htonl(0xFFFFFF00L)
125 
126 /*
127  * struct for keeping the multicast list in
128  */
129 
130 #endif /* _UAPI_LINUX_IGMP_H */
131 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php