155 lines
3.3 KiB
C
155 lines
3.3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1998 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ffp.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Structures used in controlling the
|
||
|
Fast Forwarding Path (FFP)
|
||
|
functionality in network drivers.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Chaitanya Kodeboyina (chaitk) 30-Sep-1998
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel Mode
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _FFP_H
|
||
|
#define _FFP_H
|
||
|
|
||
|
//
|
||
|
// CacheEntryTypes for OID_FFP_SEED
|
||
|
//
|
||
|
|
||
|
#define FFP_DISCARD_PACKET -1 // -ve cache entry - packet discarded
|
||
|
#define FFP_INDICATE_PACKET 0 // invalid entry - packet passed to xport
|
||
|
#define FFP_FORWARD_PACKET +1 // +ve cache entry - packet forwarded
|
||
|
|
||
|
//
|
||
|
// Input format for various NDIS OIDs
|
||
|
// used in controlling FFP operation
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_SUPPORT query
|
||
|
//
|
||
|
typedef struct _FFPVersionParams {
|
||
|
ULONG NdisProtocolType;
|
||
|
ULONG FFPVersion;
|
||
|
} FFPVersionParams;
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_SUPPORT set
|
||
|
//
|
||
|
typedef struct _FFPSupportParams {
|
||
|
ULONG NdisProtocolType;
|
||
|
ULONG FastForwardingCacheSize;
|
||
|
ULONG FFPControlFlags;
|
||
|
} FFPSupportParams;
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_FLUSH set
|
||
|
//
|
||
|
typedef struct _FFPFlushParams {
|
||
|
ULONG NdisProtocolType;
|
||
|
} FFPFlushParams;
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_CONTROL query/set
|
||
|
//
|
||
|
typedef struct _FFPControlParams {
|
||
|
ULONG NdisProtocolType;
|
||
|
ULONG FFPControlFlags;
|
||
|
} FFPControlParams;
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_PARAMS query/set
|
||
|
//
|
||
|
typedef struct _FFPCacheParams {
|
||
|
ULONG NdisProtocolType;
|
||
|
ULONG FastForwardingCacheSize;
|
||
|
} FFPCacheParams;
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_SEED query/set
|
||
|
//
|
||
|
typedef struct _FFPDataParams {
|
||
|
ULONG NdisProtocolType;
|
||
|
LONG CacheEntryType;
|
||
|
ULONG HeaderSize;
|
||
|
union {
|
||
|
UCHAR Header[1];
|
||
|
struct {
|
||
|
IPHeader Header;
|
||
|
ULONG DwordAfterHeader;
|
||
|
} IpHeader;
|
||
|
};
|
||
|
} FFPDataParams;
|
||
|
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_IFSTATS query/reset
|
||
|
// [ used to get per adapter FF statistics ]
|
||
|
//
|
||
|
|
||
|
/*
|
||
|
InPacketsForwarded refers to the number of packets
|
||
|
received on this adapter that were forwarded out
|
||
|
on another adapter,
|
||
|
and
|
||
|
OutPacketsForwarded refer to the number of packets
|
||
|
received on another adapter and forwarded out on
|
||
|
on this adapter.
|
||
|
*/
|
||
|
|
||
|
typedef struct _FFPAdapterStats {
|
||
|
ULONG NdisProtocolType;
|
||
|
ULONG InPacketsForwarded;
|
||
|
ULONG InOctetsForwarded;
|
||
|
ULONG InPacketsDiscarded;
|
||
|
ULONG InOctetsDiscarded;
|
||
|
ULONG InPacketsIndicated;
|
||
|
ULONG InOctetsIndicated;
|
||
|
ULONG OutPacketsForwarded;
|
||
|
ULONG OutOctetsForwarded;
|
||
|
} FFPAdapterStats;
|
||
|
|
||
|
|
||
|
//
|
||
|
// RequestInfo for OID_FFP_GLSTATS query/reset
|
||
|
// [ used to get global Fast Forwarding stats ]
|
||
|
//
|
||
|
|
||
|
/*
|
||
|
PacketsForwarded refers to the number of packets
|
||
|
forwarded out in the fast path,
|
||
|
and
|
||
|
PacketsDiscarded refers to the number of packets
|
||
|
discarded on the fast path,
|
||
|
and
|
||
|
PacketsIndicated refers to the number of packets
|
||
|
that were indicated to transport.
|
||
|
*/
|
||
|
|
||
|
typedef struct _FFPDriverStats {
|
||
|
ULONG NdisProtocolType;
|
||
|
ULONG PacketsForwarded;
|
||
|
ULONG OctetsForwarded;
|
||
|
ULONG PacketsDiscarded;
|
||
|
ULONG OctetsDiscarded;
|
||
|
ULONG PacketsIndicated;
|
||
|
ULONG OctetsIndicated;
|
||
|
} FFPDriverStats;
|
||
|
|
||
|
#endif // _FFP_H
|