⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 igmp_constants.h

📁 路由器协议平台igmp协议设计实现源码。
💻 H
字号:
/*
 $Log:: /OEM Source Code/igmp/igmp_constants.h                                                     $
 * 
 * 1     4/23/98 9:53p Release Engineer
 * Initial release
 * IGMP v4.1.0
 */
/************************************************************************/
/*  Copyright (C) 1997-1998 RouterWare, Inc.                            */
/*  Unpublished - rights reserved under the Copyright Laws of the       */
/*  United States.  Use, duplication, or disclosure by the              */
/*  Government is subject to restrictions as set forth in               */
/*  subparagraph (c)(1)(ii) of the Rights in Technical Data and         */
/*  Computer Software clause at 252.227-7013.                           */
/*  RouterWare, Inc., 3961 MacArthur Blvd. Suite 212, Newport Beach, CA */
/************************************************************************/
#if !defined (_IGMP_CONSTANTS_H_)
#define _IGMP_CONSTANTS_H_

#define IGMP_PROTOCOL_ID 2

#define IGMP_V2_DEFAULT_IP_TTL 1

/* was IGMP_DEFAULT_ROBUSTNESS_VARIABLE */
#define IGMP_DEFAULT_ROBUSTNESS_VALUE 2

#define IGMP_DEFAULT_GROUP_QUERY_INTERVAL 10

/* was IGMP_DEFAULT_RESPONSE_TIME_DIVISOR */
#define IGMP_HOST_RESPONSE_TIME_DIVIDER 10

#define IGMP_HOST_V1_ROUTER_PRESENT_TIMEOUT 400

#define IGMP_HOST_DEFAULT_V1_MAX_RESPONSE_TIME 10

#define IGMP_DEFAULT_GENERAL_QUERY_INTERVAL 125

#define IGMP_DEFAULT_GENERAL_QUERY_MAX_RESPONSE_INTERVAL 100

#define IGMP_PROTOCOL_PRIORITY_FOR_MFAPI 255

#define IP_ADDRESS_PRINT_BUFFER_SIZE 20

/* as of IGMPv2, the IGMP message size can only be 8 octets */
#define IGMP_MINIMUM_MESSAGE_SIZE 8

#define IGMP_INVALID_STATE 255

#define IGMP_ROUTER_INVALID_EVENT 255

#define ROUTER_ALERT_OPTION_ID 0x94

#define ROUTER_ALERT_OPTION_LENGTH 0x04

#define ALL_SYSTEMS_MULTICAST_GROUP_ADDRESS 0xe0000001

#define ALL_ROUTERS_GROUP_MULTICAST_ADDRESS 0xe0000002

enum IGMP_ROUTER_PORT_STATE
{
	IGMP_ROUTER_PORT_NON_QUERIER_STATE,
	IGMP_ROUTER_PORT_QUERIER_STATE,

	NUMBER_OF_IGMP_ROUTER_PORT_STATES
};

enum IGMP_ROUTER_PORT_EVENT
{
	IGMP_ROUTER_PORT_GENERAL_QUERY_TIMER_EXPIRED_EVENT,
	IGMP_ROUTER_PORT_QUERY_RECEIVED_FROM_ROUTER_WITH_LOWER_IP_ADDRESS_EVENT,
	IGMP_ROUTER_PORT_OTHER_QUERIER_PRESENT_TIMER_EXPIRED_EVENT,

	NUMBER_OF_IGMP_ROUTER_PORT_EVENTS
};

enum IGMP_ROUTER_GROUP_STATE
{
	IGMP_ROUTER_GROUP_NO_MEMBERS_PRESENT_STATE,
	IGMP_ROUTER_GROUP_V1_MEMBERS_PRESENT_STATE,
	IGMP_ROUTER_GROUP_V2_MEMBERS_PRESENT_STATE,
	IGMP_ROUTER_GROUP_CHECKING_MEMBERSHIP_STATE,

	NUMBER_OF_IGMP_ROUTER_GROUP_STATES
};

enum IGMP_ROUTER_GROUP_EVENT
{
	IGMP_ROUTER_GROUP_V2_REPORT_RECEIVED_EVENT,
	IGMP_ROUTER_GROUP_V1_REPORT_RECEIVED_EVENT,
	IGMP_ROUTER_GROUP_LEAVE_MESSAGE_RECEIVED_EVENT,
	IGMP_ROUTER_GROUP_SPECIFIC_TIMER_EXPIRED_EVENT,
	IGMP_ROUTER_GROUP_RETRANSMIT_TIMER_EXPIRED_EVENT,
	IGMP_ROUTER_GROUP_V1_HOST_TIMER_EXPIRED_EVENT,
	IGMP_ROUTER_GROUP_SPECIFIC_QUERY_RECEIVED_EVENT,

	NUMBER_OF_IGMP_ROUTER_GROUP_EVENTS
};

enum IGMP_HOST_GROUP_STATE
{
	IGMP_HOST_GROUP_NON_MEMBER_STATE,
	IGMP_HOST_GROUP_DELAYING_MEMBER_STATE,
	IGMP_HOST_GROUP_IDLE_MEMBER_STATE,

	NUMBER_OF_IGMP_HOST_GROUP_STATES
};

enum IGMP_HOST_GROUP_EVENT
{
	IGMP_HOST_GROUP_JOIN_EVENT,
	IGMP_HOST_GROUP_LEAVE_EVENT,
	IGMP_HOST_GROUP_QUERY_RECEIVED_EVENT,
	IGMP_HOST_GROUP_REPORT_RECEIVED_EVENT,
	IGMP_HOST_GROUP_REPORT_DELAY_TIMER_EXPIRED_EVENT,

	NUMBER_OF_IGMP_HOST_GROUP_EVENTS
};

enum IGMP_MESSAGE_TYPE
{
	IGMP_MEMBERSHIP_QUERY = 0x11,
	IGMP_V1_MEMBERSHIP_REPORT = 0x12,
	IGMP_V2_MEMBERSHIP_REPORT = 0x16,
	IGMP_LEAVE_GROUP = 0x17,

	NUMBER_OF_IGMP_MESSAGE_TYPES = 0x18
};

enum IGMP_VERSION
{
	IGMP_VERSION_1 = 1,
	IGMP_VERSION_2 = 2
};

enum IGMP_TRACE_GROUP
{
	IGMP_TRACE,
	IGMP_ALARM_TRACE
};

#if defined (__IGMP_DEBUG__)
#define IGMP_PROTOCOL_ALARM_TRACE igmp_trace
#define IGMP_PROTOCOL_TRACE igmp_trace
#define IGMP_PROTOCOL_TRACE_DISPLAY_MESSAGE igmp_display_message
#else
#define IGMP_PROTOCOL_ALARM_TRACE 
#define IGMP_PROTOCOL_TRACE
#define IGMP_PROTOCOL_TRACE_DISPLAY_MESSAGE 
#endif /* __IGMP_DEBUG__ */

#endif /*_IGMP_CONSTANTS_H_*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -