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_
|