182 lines
5.5 KiB
C
182 lines
5.5 KiB
C
|
/*++
|
|||
|
Copyright (c) 1998, Microsoft Corporation
|
|||
|
|
|||
|
Module:
|
|||
|
msdp\msdprm.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
Contains type definitions and declarations for MSDP,
|
|||
|
used by the IP Router Manager.
|
|||
|
|
|||
|
Revistion History:
|
|||
|
Dave Thaler May-21-1999 Created.
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _MSDPRM_H_
|
|||
|
#define _MSDPRM_H_
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// CONSTANT DECLARATIONS
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define MSDP_CONFIG_VERSION_500 500
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// constants identifying MSDP's MIB tables
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// constants used for the field MSDP_GLOBAL_CONFIG::LoggingLevel
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define MSDP_LOGGING_NONE 0
|
|||
|
#define MSDP_LOGGING_ERROR 1
|
|||
|
#define MSDP_LOGGING_WARN 2
|
|||
|
#define MSDP_LOGGING_INFO 3
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// STRUCTURE DEFINITIONS
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// struct: MSDP_IPV4_PEER_CONFIG
|
|||
|
//
|
|||
|
// This MIB entry describes per-peer configuration.
|
|||
|
// All IP address fields must be in network order.
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define MSDP_PEER_CONFIG_KEEPALIVE 0x01
|
|||
|
// unused 0x02
|
|||
|
#define MSDP_PEER_CONFIG_CONNECTRETRY 0x04
|
|||
|
#define MSDP_PEER_CONFIG_CACHING 0x08
|
|||
|
#define MSDP_PEER_CONFIG_DEFAULTPEER 0x10
|
|||
|
#define MSDP_PEER_CONFIG_PASSIVE 0x20 // derived flag
|
|||
|
|
|||
|
#define MSDP_ENCAPS_NONE 0
|
|||
|
#define MSDP_ENCAPS_TCP 1
|
|||
|
#define MSDP_ENCAPS_UDP 2
|
|||
|
#define MSDP_ENCAPS_GRE 3
|
|||
|
|
|||
|
#define MSDP_ENCAPS_DEFAULT MSDP_ENCAPS_NONE
|
|||
|
|
|||
|
typedef struct _MSDP_IPV4_PEER_CONFIG {
|
|||
|
IPV4_ADDRESS ipRemoteAddress;
|
|||
|
IPV4_ADDRESS ipLocalAddress;
|
|||
|
|
|||
|
// Or'ing of the flags listed above
|
|||
|
DWORD dwConfigFlags;
|
|||
|
|
|||
|
ULONG ulKeepAlive;
|
|||
|
ULONG ulConnectRetry;
|
|||
|
|
|||
|
DWORD dwEncapsMethod;
|
|||
|
} MSDP_IPV4_PEER_CONFIG, *PMSDP_IPV4_PEER_CONFIG;
|
|||
|
|
|||
|
#define MSDP_STATE_IDLE 0
|
|||
|
#define MSDP_STATE_CONNECT 1
|
|||
|
#define MSDP_STATE_ACTIVE 2
|
|||
|
#define MSDP_STATE_OPENSENT 3
|
|||
|
#define MSDP_STATE_OPENCONFIRM 4
|
|||
|
#define MSDP_STATE_ESTABLISHED 5
|
|||
|
|
|||
|
typedef struct _MSDP_IPV4_PEER_ENTRY {
|
|||
|
MSDP_IPV4_PEER_CONFIG;
|
|||
|
|
|||
|
DWORD dwState;
|
|||
|
ULONG ulRPFFailures;
|
|||
|
ULONG ulInSAs;
|
|||
|
ULONG ulOutSAs;
|
|||
|
ULONG ulInSARequests;
|
|||
|
ULONG ulOutSARequests;
|
|||
|
ULONG ulInSAResponses;
|
|||
|
ULONG ulOutSAResponses;
|
|||
|
ULONG ulInControlMessages;
|
|||
|
ULONG ulOutControlMessages;
|
|||
|
ULONG ulInDataPackets;
|
|||
|
ULONG ulOutDataPackets;
|
|||
|
ULONG ulFsmEstablishedTransitions;
|
|||
|
ULONG ulFsmEstablishedTime;
|
|||
|
ULONG ulInMessageElapsedTime;
|
|||
|
} MSDP_IPV4_PEER_ENTRY, *PMSDP_IPV4_PEER_ENTRY;
|
|||
|
|
|||
|
//----------------------------------------------------------------------------
|
|||
|
// struct: MSDP_GLOBAL_CONFIG
|
|||
|
//
|
|||
|
// This MIB entry stores global configuration for MSDP
|
|||
|
// There is only one instance, so this entry has no index.
|
|||
|
//
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define MSDP_GLOBAL_FLAG_ACCEPT_ALL 0x01
|
|||
|
|
|||
|
#define MSDP_MIN_CACHE_LIFETIME 90
|
|||
|
|
|||
|
typedef struct _MSDP_GLOBAL_CONFIG {
|
|||
|
// Fields duplicated in the CONFIGURATION_ENTRY struct
|
|||
|
DWORD dwLoggingLevel; // pce->dwLogLevel
|
|||
|
DWORD dwFlags;
|
|||
|
ULONG ulDefKeepAlive;
|
|||
|
ULONG ulDefConnectRetry; // pTpi->usDefaultConnectRetryInterval
|
|||
|
|
|||
|
// Protocol-specific fields
|
|||
|
ULONG ulCacheLifetime;
|
|||
|
ULONG ulSAHolddown;
|
|||
|
} MSDP_GLOBAL_CONFIG, *PMSDP_GLOBAL_CONFIG;
|
|||
|
|
|||
|
typedef struct _MSDP_GLOBAL_ENTRY {
|
|||
|
MSDP_GLOBAL_CONFIG;
|
|||
|
|
|||
|
DWORD dwEnabled; // XXX not yet implemented
|
|||
|
ULONG ulNumSACacheEntries;
|
|||
|
HANDLE hSAAdvTimer;
|
|||
|
DWORD dwRouterId;
|
|||
|
} MSDP_GLOBAL_ENTRY, *PMSDP_GLOBAL_ENTRY;
|
|||
|
|
|||
|
typedef struct _MSDP_REQUESTS_ENTRY {
|
|||
|
IPV4_ADDRESS ipGroup;
|
|||
|
IPV4_ADDRESS ipMask;
|
|||
|
IPV4_ADDRESS ipPeer;
|
|||
|
} MSDP_REQUESTS_ENTRY, *PMSDP_REQUESTS_ENTRY;
|
|||
|
|
|||
|
typedef struct _MSDP_REQUESTS_TABLE
|
|||
|
{
|
|||
|
DWORD dwNumEntries;
|
|||
|
MSDP_REQUESTS_ENTRY table[ANY_SIZE];
|
|||
|
}MSDP_REQUESTS_TABLE, *PMSDP_REQUESTS_TABLE;
|
|||
|
|
|||
|
typedef struct _MSDP_SA_CACHE_ENTRY {
|
|||
|
IPV4_ADDRESS ipGroupAddr;
|
|||
|
IPV4_ADDRESS ipSourceAddr;
|
|||
|
IPV4_ADDRESS ipOriginRP;
|
|||
|
IPV4_ADDRESS ipPeerLearnedFrom;
|
|||
|
IPV4_ADDRESS ipRPFPeer;
|
|||
|
ULONG ulInSAs;
|
|||
|
ULONG ulInDataPackets;
|
|||
|
ULONG ulUpTime;
|
|||
|
ULONG ulExpiryTime;
|
|||
|
} MSDP_SA_CACHE_ENTRY, *PMSDP_SA_CACHE_ENTRY;
|
|||
|
|
|||
|
typedef struct _MSDP_SA_CACHE_TABLE
|
|||
|
{
|
|||
|
DWORD dwNumEntries;
|
|||
|
MSDP_SA_CACHE_ENTRY table[ANY_SIZE];
|
|||
|
}MSDP_SA_CACHE_TABLE, *PMSDP_SA_CACHE_TABLE;
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// MACRO DECLARATIONS
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
//----------------------------------------
|
|||
|
// constants identifying MSDP's MIB tables
|
|||
|
#define MIBID_MSDP_GLOBAL 0
|
|||
|
#define MIBID_MSDP_REQUESTS_ENTRY 1
|
|||
|
#define MIBID_MSDP_IPV4_PEER_ENTRY 2
|
|||
|
#define MIBID_MSDP_SA_CACHE_ENTRY 3
|
|||
|
|
|||
|
#endif // _MSDPRM_H_
|