122851890Sopenharmony_ci/****************************************************************************
222851890Sopenharmony_ci ****************************************************************************
322851890Sopenharmony_ci ***
422851890Sopenharmony_ci ***   This header was automatically generated from a Linux kernel header
522851890Sopenharmony_ci ***   of the same name, to make information necessary for userspace to
622851890Sopenharmony_ci ***   call into the kernel available to libc.  It contains only constants,
722851890Sopenharmony_ci ***   structures, and macros generated from the original header, and thus,
822851890Sopenharmony_ci ***   contains no copyrightable information.
922851890Sopenharmony_ci ***
1022851890Sopenharmony_ci ***   To edit the content of this header, modify the corresponding
1122851890Sopenharmony_ci ***   source file (e.g. under external/kernel-headers/original/) then
1222851890Sopenharmony_ci ***   run bionic/libc/kernel/tools/update_all.py
1322851890Sopenharmony_ci ***
1422851890Sopenharmony_ci ***   Any manual change here will be lost the next time this script will
1522851890Sopenharmony_ci ***   be run. You've been warned!
1622851890Sopenharmony_ci ***
1722851890Sopenharmony_ci ****************************************************************************
1822851890Sopenharmony_ci ****************************************************************************/
1922851890Sopenharmony_ci#ifndef _UAPI_LINUX_IGMP_H
2022851890Sopenharmony_ci#define _UAPI_LINUX_IGMP_H
2122851890Sopenharmony_ci#include <linux/types.h>
2222851890Sopenharmony_ci#include <asm/byteorder.h>
2322851890Sopenharmony_cistruct igmphdr {
2422851890Sopenharmony_ci  __u8 type;
2522851890Sopenharmony_ci  __u8 code;
2622851890Sopenharmony_ci  __sum16 csum;
2722851890Sopenharmony_ci  __be32 group;
2822851890Sopenharmony_ci};
2922851890Sopenharmony_ci#define IGMPV3_MODE_IS_INCLUDE 1
3022851890Sopenharmony_ci#define IGMPV3_MODE_IS_EXCLUDE 2
3122851890Sopenharmony_ci#define IGMPV3_CHANGE_TO_INCLUDE 3
3222851890Sopenharmony_ci#define IGMPV3_CHANGE_TO_EXCLUDE 4
3322851890Sopenharmony_ci#define IGMPV3_ALLOW_NEW_SOURCES 5
3422851890Sopenharmony_ci#define IGMPV3_BLOCK_OLD_SOURCES 6
3522851890Sopenharmony_cistruct igmpv3_grec {
3622851890Sopenharmony_ci  __u8 grec_type;
3722851890Sopenharmony_ci  __u8 grec_auxwords;
3822851890Sopenharmony_ci  __be16 grec_nsrcs;
3922851890Sopenharmony_ci  __be32 grec_mca;
4022851890Sopenharmony_ci  __be32 grec_src[0];
4122851890Sopenharmony_ci};
4222851890Sopenharmony_cistruct igmpv3_report {
4322851890Sopenharmony_ci  __u8 type;
4422851890Sopenharmony_ci  __u8 resv1;
4522851890Sopenharmony_ci  __sum16 csum;
4622851890Sopenharmony_ci  __be16 resv2;
4722851890Sopenharmony_ci  __be16 ngrec;
4822851890Sopenharmony_ci  struct igmpv3_grec grec[0];
4922851890Sopenharmony_ci};
5022851890Sopenharmony_cistruct igmpv3_query {
5122851890Sopenharmony_ci  __u8 type;
5222851890Sopenharmony_ci  __u8 code;
5322851890Sopenharmony_ci  __sum16 csum;
5422851890Sopenharmony_ci  __be32 group;
5522851890Sopenharmony_ci#ifdef __LITTLE_ENDIAN_BITFIELD
5622851890Sopenharmony_ci  __u8 qrv : 3, suppress : 1, resv : 4;
5722851890Sopenharmony_ci#elif defined(__BIG_ENDIAN_BITFIELD)
5822851890Sopenharmony_ci  __u8 resv : 4, suppress : 1, qrv : 3;
5922851890Sopenharmony_ci#else
6022851890Sopenharmony_ci#error "Please fix <asm/byteorder.h>"
6122851890Sopenharmony_ci#endif
6222851890Sopenharmony_ci  __u8 qqic;
6322851890Sopenharmony_ci  __be16 nsrcs;
6422851890Sopenharmony_ci  __be32 srcs[0];
6522851890Sopenharmony_ci};
6622851890Sopenharmony_ci#define IGMP_HOST_MEMBERSHIP_QUERY 0x11
6722851890Sopenharmony_ci#define IGMP_HOST_MEMBERSHIP_REPORT 0x12
6822851890Sopenharmony_ci#define IGMP_DVMRP 0x13
6922851890Sopenharmony_ci#define IGMP_PIM 0x14
7022851890Sopenharmony_ci#define IGMP_TRACE 0x15
7122851890Sopenharmony_ci#define IGMPV2_HOST_MEMBERSHIP_REPORT 0x16
7222851890Sopenharmony_ci#define IGMP_HOST_LEAVE_MESSAGE 0x17
7322851890Sopenharmony_ci#define IGMPV3_HOST_MEMBERSHIP_REPORT 0x22
7422851890Sopenharmony_ci#define IGMP_MTRACE_RESP 0x1e
7522851890Sopenharmony_ci#define IGMP_MTRACE 0x1f
7622851890Sopenharmony_ci#define IGMP_MRDISC_ADV 0x30
7722851890Sopenharmony_ci#define IGMP_DELAYING_MEMBER 0x01
7822851890Sopenharmony_ci#define IGMP_IDLE_MEMBER 0x02
7922851890Sopenharmony_ci#define IGMP_LAZY_MEMBER 0x03
8022851890Sopenharmony_ci#define IGMP_SLEEPING_MEMBER 0x04
8122851890Sopenharmony_ci#define IGMP_AWAKENING_MEMBER 0x05
8222851890Sopenharmony_ci#define IGMP_MINLEN 8
8322851890Sopenharmony_ci#define IGMP_MAX_HOST_REPORT_DELAY 10
8422851890Sopenharmony_ci#define IGMP_TIMER_SCALE 10
8522851890Sopenharmony_ci#define IGMP_AGE_THRESHOLD 400
8622851890Sopenharmony_ci#define IGMP_ALL_HOSTS htonl(0xE0000001L)
8722851890Sopenharmony_ci#define IGMP_ALL_ROUTER htonl(0xE0000002L)
8822851890Sopenharmony_ci#define IGMPV3_ALL_MCR htonl(0xE0000016L)
8922851890Sopenharmony_ci#define IGMP_LOCAL_GROUP htonl(0xE0000000L)
9022851890Sopenharmony_ci#define IGMP_LOCAL_GROUP_MASK htonl(0xFFFFFF00L)
9122851890Sopenharmony_ci#endif
92