223 lines
5.2 KiB
C
223 lines
5.2 KiB
C
/*++
|
|
|
|
Copyright (c) 1995-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ipxrip.h
|
|
|
|
Abstract:
|
|
|
|
This module contains the definitions of the:
|
|
|
|
interface management APIs structures
|
|
rip MIB management APIs structures
|
|
|
|
Author:
|
|
|
|
Stefan Solomon 06/30/1995
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef _IPXRIP_
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#define _IPXRIP_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#include <ipxconst.h>
|
|
|
|
typedef struct _RIP_GLOBAL_INFO {
|
|
DWORD EventLogMask;
|
|
} RIP_GLOBAL_INFO, *PRIP_GLOBAL_INFO;
|
|
|
|
//********************************************************************
|
|
// *
|
|
// RIP Configuration Information *
|
|
// *
|
|
//********************************************************************
|
|
|
|
|
|
//*** RIP Interface Only Information ***
|
|
|
|
typedef struct _RIP_IF_INFO {
|
|
|
|
ULONG AdminState; // The desired state of the interface
|
|
ULONG UpdateMode; // RIP update mechanism used on this interface
|
|
ULONG PacketType; // The RIP packet type used on this interface
|
|
ULONG Supply; // Send RIP updates on this interface
|
|
ULONG Listen; // Listen to RIP updates on this interface
|
|
ULONG PeriodicUpdateInterval; // in seconds - default 60
|
|
ULONG AgeIntervalMultiplier; // default - 3
|
|
|
|
} RIP_IF_INFO, *PRIP_IF_INFO;
|
|
|
|
// UpdateMode Values:
|
|
//
|
|
// This parameter controls the RIP database update on this interface.
|
|
//
|
|
// If this is a LAN interface, use IPX_PERIODIC_UPDATE as default.
|
|
// If this is a WAN router interface with static routes, use IPX_NO_UPDATE as default.
|
|
// If you want to trigger an update on this interface and to keep the data
|
|
// as static data, use IPX_AUTO_STATIC value.
|
|
// IPX_AUTO_STATIC update can be set only on a WAN interface
|
|
//
|
|
// PacketType Default Values:
|
|
//
|
|
// If UpdateMode is set to IPX_NO_UPDATE, this field is meaningless.
|
|
// If this is a LAN interface, use IPX_STANDARD_PACKET_TYPE as default.
|
|
// If you want reliable delivery of the update data in a triggered update,
|
|
// use IPX_RELIABLE_DELIVERY_PACKET_TYPE (this can be set only in combination with
|
|
// IPX_AUTO_STATIC_UPDATE in the UpdateMode).
|
|
|
|
// RIP Route Filter Info
|
|
//
|
|
// These filters apply to routes accepted or advertised by RIP on each interface.
|
|
|
|
typedef struct _RIP_ROUTE_FILTER_INFO {
|
|
|
|
UCHAR Network[4];
|
|
UCHAR Mask[4];
|
|
|
|
} RIP_ROUTE_FILTER_INFO, *PRIP_ROUTE_FILTER_INFO;
|
|
|
|
//*** RIP Filters Only Information ***
|
|
//
|
|
// This header is followed by RIP_ROUTE_FILTER_STRUCTURES in order:
|
|
// First Supply filters
|
|
// Next Listen filters
|
|
|
|
typedef struct _RIP_IF_FILTERS {
|
|
|
|
ULONG SupplyFilterAction;
|
|
ULONG SupplyFilterCount;
|
|
ULONG ListenFilterAction;
|
|
ULONG ListenFilterCount;
|
|
RIP_ROUTE_FILTER_INFO RouteFilter[1];
|
|
|
|
} RIP_IF_FILTERS, *PRIP_IF_FILTERS;
|
|
|
|
// FilterAction -
|
|
|
|
#define IPX_ROUTE_FILTER_PERMIT 1
|
|
#define IPX_ROUTE_FILTER_DENY 2
|
|
|
|
//
|
|
//*** RIP Interface Configuration Information ***
|
|
//
|
|
// This structure is passed in AddInterface and SetInterface Entry Points
|
|
//
|
|
|
|
typedef struct _RIP_IF_CONFIG {
|
|
|
|
RIP_IF_INFO RipIfInfo;
|
|
RIP_IF_FILTERS RipIfFilters;
|
|
|
|
} RIP_IF_CONFIG, *PRIP_IF_CONFIG;
|
|
|
|
// ***********************************************************
|
|
// *** ***
|
|
// *** RIP MIB Table Identifiers ***
|
|
// *** ***
|
|
// ***********************************************************
|
|
|
|
|
|
#define RIP_BASE_ENTRY 0
|
|
#define RIP_INTERFACE_TABLE 1
|
|
|
|
//************************************************************
|
|
// *
|
|
// RIP MIB Basic Structures *
|
|
// *
|
|
//************************************************************
|
|
|
|
//
|
|
// RIP MIB Base Entry
|
|
//
|
|
|
|
typedef struct _RIPMIB_BASE {
|
|
|
|
ULONG RIPOperState;
|
|
|
|
} RIPMIB_BASE, *PRIPMIB_BASE;
|
|
|
|
|
|
//
|
|
// RIP MIB Interface Table Entry
|
|
//
|
|
|
|
typedef struct _RIP_IF_STATS {
|
|
|
|
ULONG RipIfOperState; // up, down or sleeping
|
|
ULONG RipIfInputPackets;
|
|
ULONG RipIfOutputPackets;
|
|
|
|
} RIP_IF_STATS, *PRIP_IF_STATS;
|
|
|
|
|
|
|
|
typedef struct _RIP_INTERFACE {
|
|
|
|
ULONG InterfaceIndex;
|
|
RIP_IF_INFO RipIfInfo;
|
|
RIP_IF_STATS RipIfStats;
|
|
|
|
} RIP_INTERFACE, *PRIP_INTERFACE;
|
|
|
|
//***************************************************************
|
|
// *
|
|
// INPUT DATA For: Get, GetFirst, GetNext *
|
|
// *
|
|
//***************************************************************
|
|
|
|
typedef struct _RIP_MIB_GET_INPUT_DATA {
|
|
|
|
ULONG TableId;
|
|
ULONG InterfaceIndex;
|
|
|
|
} RIP_MIB_GET_INPUT_DATA, *PRIP_MIB_GET_INPUT_DATA;
|
|
|
|
//***************************************************************
|
|
// *
|
|
// INPUT DATA For: Create, Delete, Set *
|
|
// *
|
|
//***************************************************************
|
|
|
|
typedef struct _RIP_MIB_SET_INPUT_DATA {
|
|
|
|
ULONG TableId;
|
|
RIP_INTERFACE RipInterface;
|
|
|
|
} RIP_MIB_SET_INPUT_DATA, *PRIP_MIB_SET_INPUT_DATA;
|
|
|
|
//
|
|
// *** RIP Base Entry ***
|
|
//
|
|
|
|
// MIB Functions: Get
|
|
|
|
// INPUT DATA: RIP_MIB_GET_INPUT_DATA and Index is not used
|
|
|
|
// OUTPUT DATA: RIP_INTERFACE
|
|
|
|
//
|
|
// *** RIP Interface Table ***
|
|
//
|
|
|
|
// MIB Functions: Get, GetFirst, GetNext, Set
|
|
|
|
// INPUT DATA: RIP_MIB_GET_INPUT_DATA for Get, GetFirst and GetNext
|
|
// RIP_MIB_SET_INPUT_DATA for Set
|
|
|
|
//
|
|
// OUTPUT DATA: RIP_INTERFACE
|
|
//
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif
|