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

📄 dymo_ptypes.h

📁 备
💻 H
字号:
/* dymo_ptypes.h */
/* Prototypes used by the DYMO routing protocol	*/

/****************************************/
/*      Copyright (c) 1986-2003         */
/*     by OPNET Technologies, Inc.      */
/*      (A Delaware Corporation)        */
/*   7255 Woodmont Av., Suite 250       */
/*     Bethesda, MD 20814, U.S.A.       */
/*       All Rights Reserved.           */
/****************************************/

/* Protect against multiple includes. 	*/
#ifndef	_DYMO_PTYPES_H_INCLUDED_
#define _DYMO_PTYPES_H_INCLUDED_

#include <dymo.h>
#include <dymo_pkt_support.h>
#include <ip_addr_v4.h>
#include <ip_cmn_rte_table.h>

#if defined (__cplusplus)
extern "C" {
#endif

/***********************************************/
/******* Includes prototypes for        ********/
/******* 1. dymo_route_table.ex.c       ********/
/******* 2. dymo_packet_queue.ex.c      ********/
/******* 3. dymo_request_table.ex.c     ********/
/******* 4. dymo_pkt_support.ex.c		********/
/***********************************************/

/* dymo_route_table function prototypes	*/
DymoT_Route_Table*			dymo_route_table_create (IpT_Cmn_Rte_Table*, IpT_Rte_Proc_Id, double, double, DymoT_Local_Stathandles*);
void						dymo_route_table_entry_create (DymoT_Route_Table*, InetT_Address, InetT_Subnet_Mask,
															InetT_Address, IpT_Port_Info, int, int, double);
DymoT_Route_Entry*			dymo_route_table_entry_get (DymoT_Route_Table*, InetT_Address);
Compcode					dymo_route_table_entry_param_get (DymoT_Route_Table*, InetT_Address, int, void*);
Compcode					dymo_route_table_entry_param_set (DymoT_Route_Table*, InetT_Address, int, ...);
Compcode					dymo_route_table_precursor_add (DymoT_Route_Table*, InetT_Address, InetT_Address);
Compcode					dymo_route_table_entry_next_hop_update (DymoT_Route_Table*, InetT_Address, InetT_Address, 
																		int, IpT_Port_Info);
Compcode					dymo_route_table_entry_state_set (DymoT_Route_Table*, InetT_Address, 
																DymoC_Route_Entry_State);
Compcode					dymo_route_table_entry_delete (DymoT_Route_Table*, InetT_Address);
void						dymo_route_table_entry_expiry_time_update (DymoT_Route_Table*, InetT_Address, double, int);
int							dymo_route_table_num_active_routes_get (DymoT_Route_Table*);


/* dymo_packet_queue function prototypes	*/
DymoT_Packet_Queue*			dymo_packet_queue_create (int, DymoT_Local_Stathandles*);
void						dymo_packet_queue_insert (DymoT_Packet_Queue*, Packet*, InetT_Address);
List*						dymo_packet_queue_all_pkts_to_dest_get (DymoT_Packet_Queue*, InetT_Address, Boolean, Boolean);
void						dymo_packet_queue_all_pkts_to_dest_delete (DymoT_Packet_Queue*, InetT_Address);
int 						dymo_packet_queue_num_pkts_get (DymoT_Packet_Queue*, InetT_Address);
	

/* dymo_request_table function prototypes	*/
DymoT_Request_Table*		dymo_request_table_create (double, int);
void						dymo_request_table_orig_rreq_insert (DymoT_Request_Table*, int, InetT_Address,
																	int, double, int, InetT_Address);
void						dymo_request_table_forward_rreq_insert (DymoT_Request_Table*, int, InetT_Address);
Boolean						dymo_route_request_forward_entry_exists (DymoT_Request_Table*, int, InetT_Address);
Boolean						dymo_request_table_orig_rreq_exists (DymoT_Request_Table*, InetT_Address);
DymoT_Orig_Request_Entry*	dymo_route_request_orig_entry_get (DymoT_Request_Table*, int, Boolean);
void						dymo_route_request_orig_entry_delete (DymoT_Request_Table*, InetT_Address);
void						dymo_request_table_orig_entry_mem_free (DymoT_Orig_Request_Entry*);

/* dymo_pkt_support function prototypes	*/
Packet*						dymo_pkt_support_pkt_create (DymoT_Packet_Option*, int);
DymoT_Packet_Option*		dymo_pkt_support_re_option_create (int, int, Boolean, int, InetT_Address, int, 
														InetT_Address, int, Boolean, Boolean, int, int);
DymoT_Packet_Option*		dymo_pkt_support_hello_option_create (Boolean, Boolean, int, InetT_Address, int, 
												InetT_Address, double, int);
DymoT_Packet_Option*		dymo_pkt_support_rerr_option_create (Boolean, int, int, List*);
DymoT_Unreachable_Node*		dymo_pkt_support_unreachable_nodes_mem_alloc (void);
DymoT_Re_Block_Entry*		dymo_pkt_support_re_block_entry_mem_alloc (void);
void						dymo_pkt_support_re_block_entry_mem_free (DymoT_Route_Ele*, int);


/* dymo_support function prototypes	*/
DymoT_Global_Stathandles*	dymo_support_global_stat_handles_obtain (void);
Boolean						dymo_support_hello_efficiency_sim_attr_get (void);
void						dymo_support_routing_traffic_sent_stats_update (DymoT_Local_Stathandles*, 
																	DymoT_Global_Stathandles*, Packet*);
void						dymo_support_routing_traffic_received_stats_update (DymoT_Local_Stathandles*,
																	DymoT_Global_Stathandles*, Packet*);
void						dymo_support_route_reply_sent_stats_update (DymoT_Local_Stathandles*, 
																	DymoT_Global_Stathandles*, Boolean);

/* Prototypes for dymo_support.ex.c, to generate route table report */
void  						dymo_support_route_table_print_to_string (DymoT_Route_Table*);
void*						dymo_array_elements_add (void*, int, int, int);
void						dymo_support_conn_table_print_to_string(PrgT_String_Hash_Table*);

#if defined (__cplusplus)
} /* end of 'extern "C" {' */
#endif

/* End if for protection against multiple includes.	 */
#endif 	/*_DYMO_PTYPES_H_INCLUDED_		 */

⌨️ 快捷键说明

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