Windows2000/private/ntos/inc/ffp.h

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