Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
5.3 KiB

  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