home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / ipxrip.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  5.4 KB  |  223 lines

  1. /*++
  2.  
  3. Copyright (c) 1995-1999 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     ipxrip.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains the definitions of the:
  12.  
  13.     interface management APIs structures
  14.     rip MIB management APIs structures
  15.  
  16. Author:
  17.  
  18.     Stefan Solomon  06/30/1995
  19.  
  20. Revision History:
  21.  
  22.  
  23. --*/
  24.  
  25. #ifndef _IPXRIP_
  26. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  27. #define _IPXRIP_
  28.  
  29. #if _MSC_VER > 1000
  30. #pragma once
  31. #endif
  32.  
  33. #include <ipxconst.h>
  34.  
  35. typedef struct _RIP_GLOBAL_INFO {
  36.     DWORD       EventLogMask;
  37. } RIP_GLOBAL_INFO, *PRIP_GLOBAL_INFO;
  38.  
  39. //********************************************************************
  40. //                                     *
  41. //            RIP Configuration Information             *
  42. //                                     *
  43. //********************************************************************
  44.  
  45.  
  46. //*** RIP Interface Only Information ***
  47.  
  48. typedef struct _RIP_IF_INFO {
  49.  
  50.     ULONG        AdminState;  // The desired state of the interface
  51.     ULONG        UpdateMode;    // RIP update mechanism used on this interface
  52.     ULONG        PacketType;  // The RIP packet type used on this interface
  53.     ULONG        Supply; // Send RIP updates on this interface
  54.     ULONG        Listen; // Listen to RIP updates on this interface
  55.     ULONG        PeriodicUpdateInterval; // in seconds - default 60
  56.     ULONG        AgeIntervalMultiplier; // default - 3
  57.  
  58.     } RIP_IF_INFO, *PRIP_IF_INFO;
  59.  
  60. // UpdateMode Values:
  61. //
  62. // This parameter controls the RIP    database update on this interface.
  63. //
  64. // If this is a LAN interface, use IPX_PERIODIC_UPDATE as default.
  65. // If this is a WAN router interface with static routes, use IPX_NO_UPDATE as default.
  66. // If you want to trigger an update on this interface and to keep the data
  67. // as static data, use IPX_AUTO_STATIC value.
  68. // IPX_AUTO_STATIC update can be set only on a WAN interface
  69. //
  70. // PacketType Default Values:
  71. //
  72. // If UpdateMode is set to IPX_NO_UPDATE, this field is meaningless.
  73. // If this is a LAN interface, use IPX_STANDARD_PACKET_TYPE as default.
  74. // If you want reliable delivery of the update data in a triggered update,
  75. // use IPX_RELIABLE_DELIVERY_PACKET_TYPE (this can be set only in combination with
  76. // IPX_AUTO_STATIC_UPDATE in the UpdateMode).
  77.  
  78. // RIP Route Filter Info
  79. //
  80. // These filters apply to routes accepted or advertised by RIP on each interface.
  81.  
  82. typedef struct _RIP_ROUTE_FILTER_INFO {
  83.  
  84.     UCHAR        Network[4];
  85.     UCHAR        Mask[4];
  86.  
  87.     } RIP_ROUTE_FILTER_INFO, *PRIP_ROUTE_FILTER_INFO;
  88.  
  89. //*** RIP Filters Only Information ***
  90. //
  91. //  This header is followed by RIP_ROUTE_FILTER_STRUCTURES in order:
  92. //  First Supply filters
  93. //  Next Listen filters
  94.  
  95. typedef struct _RIP_IF_FILTERS {
  96.  
  97.     ULONG            SupplyFilterAction;
  98.     ULONG            SupplyFilterCount;
  99.     ULONG            ListenFilterAction;
  100.     ULONG            ListenFilterCount;
  101.     RIP_ROUTE_FILTER_INFO   RouteFilter[1];
  102.  
  103.     } RIP_IF_FILTERS, *PRIP_IF_FILTERS;
  104.  
  105. // FilterAction -
  106.  
  107. #define IPX_ROUTE_FILTER_PERMIT        1
  108. #define IPX_ROUTE_FILTER_DENY        2
  109.  
  110. //
  111. //*** RIP Interface Configuration Information ***
  112. //
  113. // This structure is passed in AddInterface and SetInterface Entry Points
  114. //
  115.  
  116. typedef struct _RIP_IF_CONFIG {
  117.  
  118.     RIP_IF_INFO     RipIfInfo;
  119.     RIP_IF_FILTERS  RipIfFilters;
  120.  
  121.     } RIP_IF_CONFIG, *PRIP_IF_CONFIG;
  122.  
  123. // ***********************************************************
  124. // ***                               ***
  125. // ***        RIP MIB Table Identifiers           ***
  126. // ***                               ***
  127. // ***********************************************************
  128.  
  129.  
  130. #define RIP_BASE_ENTRY                0
  131. #define RIP_INTERFACE_TABLE            1
  132.  
  133. //************************************************************
  134. //                                 *
  135. //        RIP MIB Basic Structures             *
  136. //                                 *
  137. //************************************************************
  138.  
  139. //
  140. // RIP MIB Base Entry
  141. //
  142.  
  143. typedef struct _RIPMIB_BASE {
  144.  
  145.     ULONG        RIPOperState;
  146.  
  147.     } RIPMIB_BASE, *PRIPMIB_BASE;
  148.  
  149.  
  150. //
  151. // RIP MIB Interface Table Entry
  152. //
  153.  
  154. typedef struct _RIP_IF_STATS {
  155.  
  156.     ULONG            RipIfOperState;   // up, down or sleeping
  157.     ULONG            RipIfInputPackets;
  158.     ULONG            RipIfOutputPackets;
  159.  
  160.     } RIP_IF_STATS, *PRIP_IF_STATS;
  161.  
  162.  
  163.  
  164. typedef struct _RIP_INTERFACE {
  165.  
  166.     ULONG        InterfaceIndex;
  167.     RIP_IF_INFO        RipIfInfo;
  168.     RIP_IF_STATS    RipIfStats;
  169.  
  170.     } RIP_INTERFACE, *PRIP_INTERFACE;
  171.  
  172. //***************************************************************
  173. //                                *
  174. //         INPUT DATA For: Get, GetFirst, GetNext        *
  175. //                                *
  176. //***************************************************************
  177.  
  178. typedef struct _RIP_MIB_GET_INPUT_DATA {
  179.  
  180.     ULONG        TableId;
  181.     ULONG        InterfaceIndex;
  182.  
  183.     } RIP_MIB_GET_INPUT_DATA, *PRIP_MIB_GET_INPUT_DATA;
  184.  
  185. //***************************************************************
  186. //                                *
  187. //         INPUT DATA For: Create, Delete, Set        *
  188. //                                *
  189. //***************************************************************
  190.  
  191. typedef struct _RIP_MIB_SET_INPUT_DATA {
  192.  
  193.     ULONG         TableId;
  194.     RIP_INTERFACE     RipInterface;
  195.  
  196.     } RIP_MIB_SET_INPUT_DATA, *PRIP_MIB_SET_INPUT_DATA;
  197.  
  198. //
  199. // ***            RIP Base Entry                    ***
  200. //
  201.  
  202. // MIB Functions: Get
  203.  
  204. // INPUT DATA: RIP_MIB_GET_INPUT_DATA and Index is not used
  205.  
  206. // OUTPUT DATA: RIP_INTERFACE
  207.  
  208. //
  209. // ***            RIP Interface Table                    ***
  210. //
  211.  
  212. // MIB Functions: Get, GetFirst, GetNext, Set
  213.  
  214. // INPUT DATA: RIP_MIB_GET_INPUT_DATA for Get, GetFirst and GetNext
  215. //           RIP_MIB_SET_INPUT_DATA for Set
  216.  
  217. //
  218. // OUTPUT DATA: RIP_INTERFACE
  219. //
  220.  
  221. #pragma option pop /*P_O_Pop*/
  222. #endif
  223.