138 lines
4.5 KiB
C
138 lines
4.5 KiB
C
|
/*++
|
|||
|
Copyright (c) 1998, Microsoft Corporation
|
|||
|
|
|||
|
Module:
|
|||
|
vrrp\vrrprm.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
Contains type definitions and declarations for VRRP,
|
|||
|
used by the IP Router Manager.
|
|||
|
|
|||
|
Revistion History:
|
|||
|
Harry Heymann July-07-1998 Created.
|
|||
|
Peeyush Ranjan Mar-10-1999 Modified.
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _VRRPRM_H_
|
|||
|
#define _VRRPRM_H_
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// CONSTANT DECLARATIONS
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define VRRP_CONFIG_VERSION_500 500
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// constants identifying VRRP's MIB tables
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// constants used for the field VRRP_GLOBAL_CONFIG::LoggingLevel
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define VRRP_LOGGING_NONE 0
|
|||
|
#define VRRP_LOGGING_ERROR 1
|
|||
|
#define VRRP_LOGGING_WARN 2
|
|||
|
#define VRRP_LOGGING_INFO 3
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// constant for the field VRRP_IF_CONFIG::AuthenticationKey;
|
|||
|
// defines maximum authentication key size
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define VRRP_MAX_AUTHKEY_SIZE 8
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// constants for the field VRRP_IF_CONFIG::AuthenticationType
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#define VRRP_AUTHTYPE_NONE 0
|
|||
|
#define VRRP_AUTHTYPE_PLAIN 1
|
|||
|
#define VRRP_AUTHTYPE_IPHEAD 2
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// STRUCTURE DEFINITIONS
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
//----------------------------------------------------------------------------
|
|||
|
// struct: VRRP_GLOBAL_CONFIG
|
|||
|
//
|
|||
|
// This MIB entry stores global configuration for VRRP
|
|||
|
// There is only one instance, so this entry has no index.
|
|||
|
//
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
typedef struct _VRRP_GLOBAL_CONFIG {
|
|||
|
DWORD LoggingLevel;
|
|||
|
} VRRP_GLOBAL_CONFIG, *PVRRP_GLOBAL_CONFIG;
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// struct: VRRP_VROUTER_CONFIG
|
|||
|
//
|
|||
|
// THIS STRUCTURE IS VARIABLE LENGTH:
|
|||
|
//
|
|||
|
// After the base structure comes a variable lenght array (IPAddress) of
|
|||
|
// IP Addresses for the VRouter
|
|||
|
//
|
|||
|
// IPCount indicates the size of this array.
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
typedef struct _VRRP_VROUTER_CONFIG {
|
|||
|
BYTE VRID;
|
|||
|
BYTE ConfigPriority;
|
|||
|
BYTE AdvertisementInterval;
|
|||
|
BOOL PreemptMode;
|
|||
|
BYTE IPCount;
|
|||
|
BYTE AuthenticationType;
|
|||
|
BYTE AuthenticationData[VRRP_MAX_AUTHKEY_SIZE];
|
|||
|
DWORD IPAddress[1];
|
|||
|
} VRRP_VROUTER_CONFIG, *PVRRP_VROUTER_CONFIG;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// struct: VRRP_IF_CONFIG
|
|||
|
//
|
|||
|
// This MIB entry describes per-interface configuration.
|
|||
|
// All IP address fields must be in network order.
|
|||
|
//
|
|||
|
// THIS STRUCTURE IS VARIABLE LENGTH:
|
|||
|
//
|
|||
|
// After the base structure comes VrouterCount VRRP_VROUTER_CONFIG structures.
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
typedef struct _VRRP_IF_CONFIG {
|
|||
|
BYTE VrouterCount;
|
|||
|
} VRRP_IF_CONFIG, *PVRRP_IF_CONFIG;
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// MACRO DECLARATIONS
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// macro: VRRP_IF_CONFIG_SIZE
|
|||
|
//
|
|||
|
// determines thge space requirements for an interface config block based
|
|||
|
// on the number of vrouters and total number of IPAddresses.
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
#define VRRP_IF_CONFIG_SIZE(VRCount,IPCount) \
|
|||
|
sizeof(VRRP_IF_CONFIG) + \
|
|||
|
VRCount * sizeof(VRRP_VROUTER_CONFIG) + \
|
|||
|
(IPCount-VRCount) * sizeof(DWORD)
|
|||
|
|
|||
|
#define VRRP_FIRST_VROUTER_CONFIG(pic) ((PVRRP_VROUTER_CONFIG)(pic + 1))
|
|||
|
|
|||
|
#define VRRP_NEXT_VROUTER_CONFIG(pvc) \
|
|||
|
(PVRRP_VROUTER_CONFIG)((PDWORD)(pvc + 1) + (pvc->IPCount-1))
|
|||
|
|
|||
|
#define VRRP_VROUTER_CONFIG_SIZE(pvc) \
|
|||
|
(sizeof(VRRP_VROUTER_CONFIG) + \
|
|||
|
(((pvc)->IPCount - 1) * sizeof(DWORD)))
|
|||
|
|
|||
|
#endif // _VRRPRM_H_
|