windows-nt/Source/XPSP1/NT/net/rras/inc/vrrprm.h

138 lines
4.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
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_