windows-nt/Source/XPSP1/NT/public/sdk/inc/ipxrip.h
2020-09-26 16:20:57 +08:00

221 lines
5.1 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_
#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
//
#endif