linux/include/uapi/linux/igmp.h

/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
 *	Linux NET3:	Internet Group Management Protocol  [IGMP]
 *
 *	Authors:
 *		Alan Cox <[email protected]>
 *
 *	Extended to talk the BSD extended IGMP protocol of mrouted 3.6
 *
 *
 *	This program is free software; you can redistribute it and/or
 *	modify it under the terms of the GNU General Public License
 *	as published by the Free Software Foundation; either version
 *	2 of the License, or (at your option) any later version.
 */

#ifndef _UAPI_LINUX_IGMP_H
#define _UAPI_LINUX_IGMP_H

#include <linux/types.h>
#include <asm/byteorder.h>

/*
 *	IGMP protocol structures
 */

/*
 *	Header in on cable format
 */

struct igmphdr {};

/* V3 group record types [grec_type] */
#define IGMPV3_MODE_IS_INCLUDE
#define IGMPV3_MODE_IS_EXCLUDE
#define IGMPV3_CHANGE_TO_INCLUDE
#define IGMPV3_CHANGE_TO_EXCLUDE
#define IGMPV3_ALLOW_NEW_SOURCES
#define IGMPV3_BLOCK_OLD_SOURCES

struct igmpv3_grec {};

struct igmpv3_report {};

struct igmpv3_query {};

#define IGMP_HOST_MEMBERSHIP_QUERY
#define IGMP_HOST_MEMBERSHIP_REPORT
#define IGMP_DVMRP
#define IGMP_PIM
#define IGMP_TRACE
#define IGMPV2_HOST_MEMBERSHIP_REPORT
#define IGMP_HOST_LEAVE_MESSAGE
#define IGMPV3_HOST_MEMBERSHIP_REPORT

#define IGMP_MTRACE_RESP
#define IGMP_MTRACE

#define IGMP_MRDISC_ADV

/*
 *	Use the BSD names for these for compatibility
 */

#define IGMP_DELAYING_MEMBER
#define IGMP_IDLE_MEMBER
#define IGMP_LAZY_MEMBER
#define IGMP_SLEEPING_MEMBER
#define IGMP_AWAKENING_MEMBER

#define IGMP_MINLEN

#define IGMP_MAX_HOST_REPORT_DELAY
						/* query (in seconds)	*/

#define IGMP_TIMER_SCALE
						/* specifies time in 10th of seconds	 */

#define IGMP_AGE_THRESHOLD
						/* message in this period of time,	*/
						/* revert to IGMP v2 router.		*/

#define IGMP_ALL_HOSTS
#define IGMP_ALL_ROUTER
#define IGMPV3_ALL_MCR
#define IGMP_LOCAL_GROUP
#define IGMP_LOCAL_GROUP_MASK

/*
 * struct for keeping the multicast list in
 */

#endif /* _UAPI_LINUX_IGMP_H */