freebsd-dev/sys/contrib/dev/nve/drvinfo.h
David E. O'Brien 1e5fec6b15 Import the nForce MCP NIC bits. This is version 1.0-0301.
Demanded by:	DES
Encouraged by:	scottl
2005-03-12 00:17:37 +00:00

191 lines
6.1 KiB
C

/***************************************************************************\
|* *|
|* Copyright 2001-2003 NVIDIA, Corporation. All rights reserved. *|
|* *|
|* THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL *|
|* TO NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY *|
|* THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP. *|
|* *|
|* THE INFORMATION CONTAINED HEREIN IS PROVIDED "AS IS" WITHOUT *|
|* EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED *|
|* WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A *|
|* PARTICULAR PURPOSE. *|
|* *|
\***************************************************************************/
/*
* This file contains the header info common to the network drivers and applications.
* Currently, these applications include ASF, co-installers, and qstats.
*
*
*/
#ifndef _DRVINFO_H_
#define _DRVINFO_H_
// Switch to byte packing, regardless of global packing specified by the compiler switch
#pragma pack(1)
//////////////////////////////////////////////////////////////////
// For the ADAPTER_GetStatistics call used by qstats. This
// is the template used by the legacy driver.
#define MAX_TRANSMIT_COLISION_STATS 16
#define ADAPTER_STATS_LEGACY_VERSION 1
#define ADAPTER_STATS_RM_VERSION 2
typedef struct _ADAPTER_STATS_V1
{
NV_UINT32 ulVersion;
NV_UINT32 ulSuccessfulTransmissions;
NV_UINT32 ulFailedTransmissions;
NV_UINT32 ulRetryErrors;
NV_UINT32 ulUnderflowErrors;
NV_UINT32 ulLossOfCarrierErrors;
NV_UINT32 ulLateCollisionErrors;
NV_UINT32 ulDeferredTransmissions;
NV_UINT32 ulExcessDeferredTransmissions;
NV_UINT32 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
NV_UINT32 ulMissedFrames;
NV_UINT32 ulSuccessfulReceptions;
NV_UINT32 ulFailedReceptions;
NV_UINT32 ulCRCErrors;
NV_UINT32 ulFramingErrors;
NV_UINT32 ulOverFlowErrors;
NV_UINT32 ulFrameErrorsPrivate; //Not for public.
NV_UINT32 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
//interrupt related statistics
NV_UINT32 ulRxInterrupt;
NV_UINT32 ulRxInterruptUnsuccessful;
NV_UINT32 ulTxInterrupt;
NV_UINT32 ulTxInterruptUnsuccessful;
NV_UINT32 ulPhyInterrupt;
} ADAPTER_STATS_V1, *PADAPTER_STATS_V1;
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
// For the ADAPTER_GetStatistics call used by qstats. This
// is the template used by the FD.
typedef struct _ADAPTER_STATS
{
NV_UINT32 ulVersion;
NV_UINT8 ulMacAddress[6];
//
// Tx counters.
//
NV_UINT64 ulSuccessfulTransmissions;
NV_UINT64 ulFailedTransmissions;
NV_UINT64 ulRetryErrors;
NV_UINT64 ulUnderflowErrors;
NV_UINT64 ulLossOfCarrierErrors;
NV_UINT64 ulLateCollisionErrors;
NV_UINT64 ulDeferredTransmissions;
NV_UINT64 ulExcessDeferredTransmissions;
NV_UINT64 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
//
// New Tx counters for GigE.
//
NV_UINT64 ulTxByteCount;
//
// Rx counters.
//
NV_UINT64 ulMissedFrames;
NV_UINT64 ulSuccessfulReceptions;
NV_UINT64 ulFailedReceptions;
NV_UINT64 ulCRCErrors;
NV_UINT64 ulLengthErrors;
NV_UINT64 ulFramingErrors;
NV_UINT64 ulOverFlowErrors;
NV_UINT64 ulRxNoBuffer;
NV_UINT64 ulFrameErrorsPrivate; //Not for public.
NV_UINT64 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
//
// New Rx counters for GigE.
//
NV_UINT64 ulRxExtraByteCount;
NV_UINT64 ulRxFrameTooLongCount;
NV_UINT64 ulRxFrameAlignmentErrorCount;
NV_UINT64 ulRxLateCollisionErrors;
NV_UINT64 ulRxRuntPacketErrors;
NV_UINT64 ulRxUnicastFrameCount;
NV_UINT64 ulRxMulticastFrameCount;
NV_UINT64 ulRxBroadcastFrameCount;
NV_UINT64 ulRxPromiscuousModeFrameCount;
//Interrupt related statistics
NV_UINT64 ulRxInterrupt;
NV_UINT64 ulRxInterruptUnsuccessful;
NV_UINT64 ulTxInterrupt;
NV_UINT64 ulTxInterruptUnsuccessful;
NV_UINT64 ulPhyInterrupt;
//
// Handy things to know
//
NV_UINT64 ulDescriptorVersion;
NV_UINT64 ulPollingCfg; // configured for cpu or throughput
NV_UINT64 ulPollingState; // current optimizefor state.
NV_UINT64 ulNumTxDesc;
NV_UINT64 ulNumRxDesc;
//
// Useful to determine if TX is stuck.
//
NV_UINT64 ulNumTxPktsQueued;
NV_UINT64 ulNumTxPktsInProgress;
//
// Rx Xsum Cntrs
//
NV_UINT64 ulNoRxPktsNoXsum;
NV_UINT64 ulNoRxPktsXsumIpPassTcpFail;
NV_UINT64 ulNoRxPktsXsumIpPassUdpFail;
NV_UINT64 ulNoRxPktsXsumIpFail;
NV_UINT64 ulNoRxPktsXsumIpPassNoTcpUdp;
NV_UINT64 ulNoRxPktsXsumIpPassTcpPass;
NV_UINT64 ulNoRxPktsXsumIpPassUdpPass;
NV_UINT64 ulNoRxPktsXsumReserved;
#ifdef _PERF_LOOP_CNTRS
NV_UINT64 ulNumTxCmplsToProcess;
NV_UINT64 ulNumRxCmplsToProcess;
NV_UINT64 ulNumIntsToProcess;
NV_UINT64 IntLoop0Cnt;
NV_UINT64 IntLoop1Cnt;
NV_UINT64 IntLoop2Cnt;
NV_UINT64 IntLoop3Cnt;
NV_UINT64 IntLoop4Cnt;
NV_UINT64 IntLoop5Cnt;
NV_UINT64 IntLoop6To10Cnt;
NV_UINT64 IntLoop11Cnt;
NV_UINT64 IntMaxLoopCnt;
NV_UINT64 IntRxCnt0;
NV_UINT64 IntTxCnt0;
NV_UINT64 MaxRxLoopCnt;
NV_UINT64 MaxTxLoopCnt;
#endif
} ADAPTER_STATS, *PADAPTER_STATS;
//////////////////////////////////////////////////////////////////
#pragma pack()
#endif // #define _DRVINFO_H_