home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / IPXRIP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  5.4 KB  |  219 lines

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