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
|