Ipxrip.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:5k
源码类别:

模拟服务器

开发平台:

C/C++

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