Source code of Windows XP (NT5)
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.

154 lines
3.3 KiB

  1. /*++
  2. Copyright (c) 1998 Microsoft Corporation
  3. Module Name:
  4. ffp.h
  5. Abstract:
  6. Structures used in controlling the
  7. Fast Forwarding Path (FFP)
  8. functionality in network drivers.
  9. Author:
  10. Chaitanya Kodeboyina (chaitk) 30-Sep-1998
  11. Environment:
  12. Kernel Mode
  13. Revision History:
  14. --*/
  15. #ifndef _FFP_H
  16. #define _FFP_H
  17. //
  18. // CacheEntryTypes for OID_FFP_SEED
  19. //
  20. #define FFP_DISCARD_PACKET -1 // -ve cache entry - packet discarded
  21. #define FFP_INDICATE_PACKET 0 // invalid entry - packet passed to xport
  22. #define FFP_FORWARD_PACKET +1 // +ve cache entry - packet forwarded
  23. //
  24. // Input format for various NDIS OIDs
  25. // used in controlling FFP operation
  26. //
  27. //
  28. // RequestInfo for OID_FFP_SUPPORT query
  29. //
  30. typedef struct _FFPVersionParams {
  31. ULONG NdisProtocolType;
  32. ULONG FFPVersion;
  33. } FFPVersionParams;
  34. //
  35. // RequestInfo for OID_FFP_SUPPORT set
  36. //
  37. typedef struct _FFPSupportParams {
  38. ULONG NdisProtocolType;
  39. ULONG FastForwardingCacheSize;
  40. ULONG FFPControlFlags;
  41. } FFPSupportParams;
  42. //
  43. // RequestInfo for OID_FFP_FLUSH set
  44. //
  45. typedef struct _FFPFlushParams {
  46. ULONG NdisProtocolType;
  47. } FFPFlushParams;
  48. //
  49. // RequestInfo for OID_FFP_CONTROL query/set
  50. //
  51. typedef struct _FFPControlParams {
  52. ULONG NdisProtocolType;
  53. ULONG FFPControlFlags;
  54. } FFPControlParams;
  55. //
  56. // RequestInfo for OID_FFP_PARAMS query/set
  57. //
  58. typedef struct _FFPCacheParams {
  59. ULONG NdisProtocolType;
  60. ULONG FastForwardingCacheSize;
  61. } FFPCacheParams;
  62. //
  63. // RequestInfo for OID_FFP_SEED query/set
  64. //
  65. typedef struct _FFPDataParams {
  66. ULONG NdisProtocolType;
  67. LONG CacheEntryType;
  68. ULONG HeaderSize;
  69. union {
  70. UCHAR Header[1];
  71. struct {
  72. IPHeader Header;
  73. ULONG DwordAfterHeader;
  74. } IpHeader;
  75. };
  76. } FFPDataParams;
  77. //
  78. // RequestInfo for OID_FFP_IFSTATS query/reset
  79. // [ used to get per adapter FF statistics ]
  80. //
  81. /*
  82. InPacketsForwarded refers to the number of packets
  83. received on this adapter that were forwarded out
  84. on another adapter,
  85. and
  86. OutPacketsForwarded refer to the number of packets
  87. received on another adapter and forwarded out on
  88. on this adapter.
  89. */
  90. typedef struct _FFPAdapterStats {
  91. ULONG NdisProtocolType;
  92. ULONG InPacketsForwarded;
  93. ULONG InOctetsForwarded;
  94. ULONG InPacketsDiscarded;
  95. ULONG InOctetsDiscarded;
  96. ULONG InPacketsIndicated;
  97. ULONG InOctetsIndicated;
  98. ULONG OutPacketsForwarded;
  99. ULONG OutOctetsForwarded;
  100. } FFPAdapterStats;
  101. //
  102. // RequestInfo for OID_FFP_GLSTATS query/reset
  103. // [ used to get global Fast Forwarding stats ]
  104. //
  105. /*
  106. PacketsForwarded refers to the number of packets
  107. forwarded out in the fast path,
  108. and
  109. PacketsDiscarded refers to the number of packets
  110. discarded on the fast path,
  111. and
  112. PacketsIndicated refers to the number of packets
  113. that were indicated to transport.
  114. */
  115. typedef struct _FFPDriverStats {
  116. ULONG NdisProtocolType;
  117. ULONG PacketsForwarded;
  118. ULONG OctetsForwarded;
  119. ULONG PacketsDiscarded;
  120. ULONG OctetsDiscarded;
  121. ULONG PacketsIndicated;
  122. ULONG OctetsIndicated;
  123. } FFPDriverStats;
  124. #endif // _FFP_H