/*++ Copyright (c) 1995 Microsoft Corporation Module Name: routing\ip\rtrmgr\exdeclar.h Abstract: This file contains the data definitions used by IP Router Manager Revision History: Amritansh Raghav 7/8/95 Created --*/ #ifndef __EXDECLAR_H__ #define __EXDECLAR_H__ // // This table holds the timeout values for all the caches. Currently they are // #defined // DWORD g_TimeoutTable[NUM_CACHE] = { IPADDRCACHE_TIMEOUT, IPFORWARDCACHE_TIMEOUT, IPNETCACHE_TIMEOUT, TCPCACHE_TIMEOUT, UDPCACHE_TIMEOUT, }; // // This table holds pointers to functions that load each of the caches // DWORD (*g_LoadFunctionTable[NUM_CACHE])() = { LoadIpAddrTable, LoadIpForwardTable, LoadIpNetTable, LoadTcpTable, LoadUdpTable, }; // // This table holds the time when each of the cache's were last updated // DWORD g_LastUpdateTable[NUM_CACHE]; // // This is a table of locks around each of the caches and it also hold the // ICB_LIST and the PROTOCOL_CB_LIST locks // RTL_RESOURCE g_LockTable[NUM_LOCKS]; // // This table holds the functions that are used to access the MIB variables // made visible by IP Router Manager // DWORD (*g_AccessFunctionTable[NUMBER_OF_EXPORTED_VARIABLES])( DWORD dwQueryType, DWORD dwInEntrySize, PMIB_OPAQUE_QUERY pInEntry, PDWORD pOutEntrySize, PMIB_OPAQUE_INFO pOutEntry, PBOOL pbCache ) = { AccessIfNumber, AccessIfTable, AccessIfRow, AccessIpStats, AccessIpAddrTable, AccessIpAddrRow, AccessIpForwardNumber, AccessIpForwardTable, AccessIpForwardRow, AccessIpNetTable, AccessIpNetRow, AccessIcmpStats, AccessTcpStats, AccessTcpTable, AccessTcpRow, AccessUdpStats, AccessUdpTable, AccessUdpRow, AccessMcastMfe, AccessMcastMfeStats, AccessBestIf, AccessBestRoute, AccessProxyArp, AccessMcastIfStats, AccessMcastStats, AccessIfStatus, AccessMcastBoundary, AccessMcastScope, AccessDestMatching, AccessDestLonger, AccessDestShorter, AccessRouteMatching, AccessRouteLonger, AccessRouteShorter, AccessSetRouteState, AccessMcastMfeStatsEx }; #ifdef DEADLOCK_DEBUG PBYTE g_pszLockNames[NUM_LOCKS] = {"IP Address Lock", "IP Forward Lock", "IP Net Lock", "TCP Lock", "UDP Lock", "ICB List Lock", "ProtocolCB List Lock", "Binding List Lock", "Boundary Table Lock", "MZAP Timer Lock", "ZBR List Lock", "ZLE List Lock", "ZAM Cache Lock" }; #endif // DEADLOCK_DEBUG // // The following is the time the Router Manager started // DWORD g_dwStartTime; HANDLE g_hIpDevice; HANDLE g_hMcastDevice; HANDLE g_hIpRouteChangeDevice; // // These various caches // IP_CACHE g_IpInfo; TCP_CACHE g_TcpInfo; UDP_CACHE g_UdpInfo; // // Each of the groups have a private heap // HANDLE g_hIfHeap; HANDLE g_hIpAddrHeap; HANDLE g_hIpForwardHeap; HANDLE g_hIpNetHeap; HANDLE g_hTcpHeap; HANDLE g_hUdpHeap; PICB g_pInternalInterfaceCb; PICB g_pLoopbackInterfaceCb; DWORD g_dwNextICBSeqNumberCounter; ULONG g_ulNumBindings; ULONG g_ulNumInterfaces; ULONG g_ulNumNonClientInterfaces; LIST_ENTRY g_leStackRoutesToRestore; SUPPORT_FUNCTIONS g_sfnDimFunctions; PICMP_ROUTER_ADVT_MSG g_pIcmpAdvt; SOCKADDR_IN g_sinAllSystemsAddr; WSABUF g_wsabufICMPAdvtBuffer; WSABUF g_wsaIpRcvBuf; BOOL g_bUninitServer; MCAST_OVERLAPPED g_rginMcastMsg[NUM_MCAST_IRPS]; IPNotifyData g_IpNotifyData; ROUTE_CHANGE_INFO g_rgIpRouteNotifyOutput[NUM_ROUTE_CHANGE_IRPS]; #endif