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

📄 igmp_prototypes.h

📁 路由器协议平台igmp协议设计实现源码。
💻 H
字号:
/*
 $Log:: /OEM Source Code/igmp/igmp_prototypes.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_PROTOTYPES_H_)
#define _IGMP_PROTOTYPES_H_

/* igmp_control.c */
enum TEST igmp_shutdown (void);
enum TEST igmp_control (enum PROTOCOL_CONTROL_OPERATION command, ULONG parameter_0, ULONG parameter_1, ULONG parameter_2);
ULONG igmp_get_configuration_table_address (void);
ULONG igmp_get_winrouter_import_table_address (void);
ULONG igmp_get_export_table_address (void);

/* igmp_deserialize_message.c */
IGMP_MESSAGE *igmp_deserialize_received_message (IP_PARAMETERS *sptr_ip_parameters, void *sptr_igmp_received_packet, UINT igmp_packet_size);

/* igmp_host_api.c */
enum IGMP_HOST_API_ERROR igmp_host_join_group (UINT port, ULONG group_ip_address);
enum IGMP_HOST_API_ERROR igmp_host_leave_group (UINT port, ULONG group_ip_address);

/* igmp_host_receive.c */
void igmp_host_process_received_message (IGMP_MESSAGE *sptr_igmp_message);

/* igmp_host_state.c */
void igmp_process_host_group_state_transition (UINT port, ULONG group_ip_address,enum IGMP_HOST_GROUP_EVENT event);
void igmp_host_send_join_report_message (UINT port, ULONG group_ip_address);
void igmp_host_send_leave_if_this_host_last_repoter (UINT port, ULONG group_ip_address);
void igmp_host_start_report_delay_timer (UINT port, ULONG group_ip_address);
void igmp_host_stop_report_delay_timer (UINT port, ULONG group_ip_address);
void igmp_host_check_and_reset_report_delay_timer (UINT port, ULONG group_ip_address);
void igmp_host_set_this_host_as_last_reporter (UINT port, ULONG group_ip_address);
void igmp_host_clear_last_reporter (UINT port, ULONG group_ip_address);
enum BOOLEAN igmp_host_group_state_is_valid (enum IGMP_HOST_GROUP_STATE state);

/* igmp_initialize.c */
enum TEST initialize_igmp (ULONG clock_ticks_per_second);
void initialize_igmp_port (UINT port);


/* igmp_receive.c */
void igmp_receive_packet (IP_PARAMETERS *sptr_ip_parameters,void *sptr_igmp_received_packet,USHORT igmp_packet_size);

/* igmp_router_receive.c */
void igmp_router_process_received_message (IGMP_MESSAGE *sptr_igmp_message);

/* igmp_router_state.c */
void igmp_process_router_port_state_transition (UINT port, ULONG group_ip_address,enum IGMP_ROUTER_PORT_EVENT event);
void igmp_process_router_group_state_transition (UINT port, ULONG group_ip_address, enum IGMP_ROUTER_GROUP_EVENT event);
void igmp_router_start_general_query_timer (UINT port, ULONG group_ip_address);
void igmp_router_start_other_querier_present_timer (UINT port, ULONG group_ip_address);
void igmp_router_notify_routing_of_group_addition (UINT port, ULONG group_ip_address);
void igmp_router_notify_routing_of_group_deletion (UINT port, ULONG group_ip_address);
void igmp_router_start_group_specific_timer (UINT port, ULONG group_ip_address);
void igmp_router_start_v1_host_timer (UINT port, ULONG group_ip_address);
void igmp_router_start_star_timer (UINT port, ULONG group_ip_address);
void igmp_router_start_retransmit_timer (UINT port, ULONG group_ip_address);
void igmp_router_clear_retransmit_timer (UINT port, ULONG group_ip_address);
void igmp_router_tx_message (UINT port, ULONG group_ip_address);

/* igmp_serialize_message.c */
enum TEST igmp_serialize_message (UINT port, IGMP_MESSAGE *sptr_igmp_message);

/* igmp_snmp.c */
enum TEST get_igmp_mib_variable (enum MIB_OPERATION mib_operation, char *cptr_mib_string,
	BYTE *bptr_variable_value, USHORT *usptr_size_of_variable_value, USHORT *usptr_size_of_table_indices,
	ULONG *ulptr_table_indices, enum BOOLEAN *eptr_end_of_table, char **ptr_to_cptr_next_variable_name);
enum TEST igmp_get_mib_variable (char *cptr_protocol_name, MIB_ACCESS_PARAMETERS *sptr_mib_access_parameters);

/* igmp_timer.c */
void igmp_timer (void);

/* igmp_transmit.c */
void igmp_transmit_message (UINT port, ULONG group_ip_address, enum IGMP_MESSAGE_TYPE message_type, enum BOOLEAN copy_to_router, enum BOOLEAN copy_to_host);

/* igmp_utilities.c */
void igmp_trace (enum IGMP_TRACE_GROUP printf_group, const char *cptr_format, ...);
void igmp_display_message (ULONG source_address, ULONG destination_address, enum IGMP_MESSAGE_TYPE igmp_message_type,
						   UINT igmp_message_max_response_time, ULONG igmp_message_group_ip_address);
IGMP_GROUP_CLASS *igmp_add_group_to_port (ULONG group_ip_address, UINT port);
IGMP_GROUP_CLASS *igmp_get_matching_group_node_on_port (ULONG group_ip_address, UINT port);
IGMP_MESSAGE *igmp_create_message (void);
void igmp_free_message (IGMP_MESSAGE *sptr_igmp_message);
void igmp_initialize_timer (IGMP_TIMER *sptr_timer);
void igmp_increment_timer (IGMP_TIMER *sptr_timer);
enum BOOLEAN igmp_timer_has_expired (IGMP_TIMER *sptr_timer);
void igmp_enable_timer (IGMP_TIMER *sptr_timer, UINT expiry_time);
ULONG igmp_get_ip_address_for_port_from_ip (UINT port);

#endif /* _IGMP_PROTOTYPES_H_ */

⌨️ 快捷键说明

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