drvinfo.h revision 143439
1143439Sobrien/***************************************************************************\ 2143439Sobrien|* *| 3143439Sobrien|* Copyright 2001-2003 NVIDIA, Corporation. All rights reserved. *| 4143439Sobrien|* *| 5143439Sobrien|* THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL *| 6143439Sobrien|* TO NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY *| 7143439Sobrien|* THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP. *| 8143439Sobrien|* *| 9143439Sobrien|* THE INFORMATION CONTAINED HEREIN IS PROVIDED "AS IS" WITHOUT *| 10143439Sobrien|* EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED *| 11143439Sobrien|* WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A *| 12143439Sobrien|* PARTICULAR PURPOSE. *| 13143439Sobrien|* *| 14143439Sobrien\***************************************************************************/ 15143439Sobrien 16143439Sobrien/* 17143439Sobrien * This file contains the header info common to the network drivers and applications. 18143439Sobrien * Currently, these applications include ASF, co-installers, and qstats. 19143439Sobrien * 20143439Sobrien * 21143439Sobrien */ 22143439Sobrien 23143439Sobrien#ifndef _DRVINFO_H_ 24143439Sobrien#define _DRVINFO_H_ 25143439Sobrien 26143439Sobrien// Switch to byte packing, regardless of global packing specified by the compiler switch 27143439Sobrien#pragma pack(1) 28143439Sobrien 29143439Sobrien////////////////////////////////////////////////////////////////// 30143439Sobrien// For the ADAPTER_GetStatistics call used by qstats. This 31143439Sobrien// is the template used by the legacy driver. 32143439Sobrien#define MAX_TRANSMIT_COLISION_STATS 16 33143439Sobrien 34143439Sobrien#define ADAPTER_STATS_LEGACY_VERSION 1 35143439Sobrien#define ADAPTER_STATS_RM_VERSION 2 36143439Sobrien 37143439Sobrientypedef struct _ADAPTER_STATS_V1 38143439Sobrien{ 39143439Sobrien NV_UINT32 ulVersion; 40143439Sobrien 41143439Sobrien NV_UINT32 ulSuccessfulTransmissions; 42143439Sobrien NV_UINT32 ulFailedTransmissions; 43143439Sobrien NV_UINT32 ulRetryErrors; 44143439Sobrien NV_UINT32 ulUnderflowErrors; 45143439Sobrien NV_UINT32 ulLossOfCarrierErrors; 46143439Sobrien NV_UINT32 ulLateCollisionErrors; 47143439Sobrien NV_UINT32 ulDeferredTransmissions; 48143439Sobrien NV_UINT32 ulExcessDeferredTransmissions; 49143439Sobrien NV_UINT32 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS]; 50143439Sobrien 51143439Sobrien NV_UINT32 ulMissedFrames; 52143439Sobrien NV_UINT32 ulSuccessfulReceptions; 53143439Sobrien NV_UINT32 ulFailedReceptions; 54143439Sobrien NV_UINT32 ulCRCErrors; 55143439Sobrien NV_UINT32 ulFramingErrors; 56143439Sobrien NV_UINT32 ulOverFlowErrors; 57143439Sobrien NV_UINT32 ulFrameErrorsPrivate; //Not for public. 58143439Sobrien NV_UINT32 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS 59143439Sobrien 60143439Sobrien //interrupt related statistics 61143439Sobrien NV_UINT32 ulRxInterrupt; 62143439Sobrien NV_UINT32 ulRxInterruptUnsuccessful; 63143439Sobrien NV_UINT32 ulTxInterrupt; 64143439Sobrien NV_UINT32 ulTxInterruptUnsuccessful; 65143439Sobrien NV_UINT32 ulPhyInterrupt; 66143439Sobrien 67143439Sobrien} ADAPTER_STATS_V1, *PADAPTER_STATS_V1; 68143439Sobrien////////////////////////////////////////////////////////////////// 69143439Sobrien 70143439Sobrien////////////////////////////////////////////////////////////////// 71143439Sobrien// For the ADAPTER_GetStatistics call used by qstats. This 72143439Sobrien// is the template used by the FD. 73143439Sobrientypedef struct _ADAPTER_STATS 74143439Sobrien{ 75143439Sobrien NV_UINT32 ulVersion; 76143439Sobrien NV_UINT8 ulMacAddress[6]; 77143439Sobrien 78143439Sobrien // 79143439Sobrien // Tx counters. 80143439Sobrien // 81143439Sobrien NV_UINT64 ulSuccessfulTransmissions; 82143439Sobrien NV_UINT64 ulFailedTransmissions; 83143439Sobrien NV_UINT64 ulRetryErrors; 84143439Sobrien NV_UINT64 ulUnderflowErrors; 85143439Sobrien NV_UINT64 ulLossOfCarrierErrors; 86143439Sobrien NV_UINT64 ulLateCollisionErrors; 87143439Sobrien NV_UINT64 ulDeferredTransmissions; 88143439Sobrien NV_UINT64 ulExcessDeferredTransmissions; 89143439Sobrien NV_UINT64 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS]; 90143439Sobrien 91143439Sobrien // 92143439Sobrien // New Tx counters for GigE. 93143439Sobrien // 94143439Sobrien NV_UINT64 ulTxByteCount; 95143439Sobrien 96143439Sobrien // 97143439Sobrien // Rx counters. 98143439Sobrien // 99143439Sobrien NV_UINT64 ulMissedFrames; 100143439Sobrien NV_UINT64 ulSuccessfulReceptions; 101143439Sobrien NV_UINT64 ulFailedReceptions; 102143439Sobrien NV_UINT64 ulCRCErrors; 103143439Sobrien NV_UINT64 ulLengthErrors; 104143439Sobrien NV_UINT64 ulFramingErrors; 105143439Sobrien NV_UINT64 ulOverFlowErrors; 106143439Sobrien NV_UINT64 ulRxNoBuffer; 107143439Sobrien NV_UINT64 ulFrameErrorsPrivate; //Not for public. 108143439Sobrien NV_UINT64 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS 109143439Sobrien 110143439Sobrien // 111143439Sobrien // New Rx counters for GigE. 112143439Sobrien // 113143439Sobrien NV_UINT64 ulRxExtraByteCount; 114143439Sobrien NV_UINT64 ulRxFrameTooLongCount; 115143439Sobrien NV_UINT64 ulRxFrameAlignmentErrorCount; 116143439Sobrien NV_UINT64 ulRxLateCollisionErrors; 117143439Sobrien NV_UINT64 ulRxRuntPacketErrors; 118143439Sobrien 119143439Sobrien NV_UINT64 ulRxUnicastFrameCount; 120143439Sobrien NV_UINT64 ulRxMulticastFrameCount; 121143439Sobrien NV_UINT64 ulRxBroadcastFrameCount; 122143439Sobrien NV_UINT64 ulRxPromiscuousModeFrameCount; 123143439Sobrien 124143439Sobrien //Interrupt related statistics 125143439Sobrien NV_UINT64 ulRxInterrupt; 126143439Sobrien NV_UINT64 ulRxInterruptUnsuccessful; 127143439Sobrien NV_UINT64 ulTxInterrupt; 128143439Sobrien NV_UINT64 ulTxInterruptUnsuccessful; 129143439Sobrien NV_UINT64 ulPhyInterrupt; 130143439Sobrien 131143439Sobrien 132143439Sobrien // 133143439Sobrien // Handy things to know 134143439Sobrien // 135143439Sobrien NV_UINT64 ulDescriptorVersion; 136143439Sobrien NV_UINT64 ulPollingCfg; // configured for cpu or throughput 137143439Sobrien NV_UINT64 ulPollingState; // current optimizefor state. 138143439Sobrien 139143439Sobrien NV_UINT64 ulNumTxDesc; 140143439Sobrien NV_UINT64 ulNumRxDesc; 141143439Sobrien 142143439Sobrien // 143143439Sobrien // Useful to determine if TX is stuck. 144143439Sobrien // 145143439Sobrien NV_UINT64 ulNumTxPktsQueued; 146143439Sobrien NV_UINT64 ulNumTxPktsInProgress; 147143439Sobrien 148143439Sobrien // 149143439Sobrien // Rx Xsum Cntrs 150143439Sobrien // 151143439Sobrien NV_UINT64 ulNoRxPktsNoXsum; 152143439Sobrien NV_UINT64 ulNoRxPktsXsumIpPassTcpFail; 153143439Sobrien NV_UINT64 ulNoRxPktsXsumIpPassUdpFail; 154143439Sobrien NV_UINT64 ulNoRxPktsXsumIpFail; 155143439Sobrien NV_UINT64 ulNoRxPktsXsumIpPassNoTcpUdp; 156143439Sobrien NV_UINT64 ulNoRxPktsXsumIpPassTcpPass; 157143439Sobrien NV_UINT64 ulNoRxPktsXsumIpPassUdpPass; 158143439Sobrien NV_UINT64 ulNoRxPktsXsumReserved; 159143439Sobrien 160143439Sobrien#ifdef _PERF_LOOP_CNTRS 161143439Sobrien NV_UINT64 ulNumTxCmplsToProcess; 162143439Sobrien NV_UINT64 ulNumRxCmplsToProcess; 163143439Sobrien NV_UINT64 ulNumIntsToProcess; 164143439Sobrien 165143439Sobrien NV_UINT64 IntLoop0Cnt; 166143439Sobrien NV_UINT64 IntLoop1Cnt; 167143439Sobrien NV_UINT64 IntLoop2Cnt; 168143439Sobrien NV_UINT64 IntLoop3Cnt; 169143439Sobrien NV_UINT64 IntLoop4Cnt; 170143439Sobrien NV_UINT64 IntLoop5Cnt; 171143439Sobrien NV_UINT64 IntLoop6To10Cnt; 172143439Sobrien NV_UINT64 IntLoop11Cnt; 173143439Sobrien NV_UINT64 IntMaxLoopCnt; 174143439Sobrien 175143439Sobrien NV_UINT64 IntRxCnt0; 176143439Sobrien NV_UINT64 IntTxCnt0; 177143439Sobrien 178143439Sobrien NV_UINT64 MaxRxLoopCnt; 179143439Sobrien NV_UINT64 MaxTxLoopCnt; 180143439Sobrien 181143439Sobrien#endif 182143439Sobrien} ADAPTER_STATS, *PADAPTER_STATS; 183143439Sobrien////////////////////////////////////////////////////////////////// 184143439Sobrien 185143439Sobrien#pragma pack() 186143439Sobrien 187143439Sobrien 188143439Sobrien#endif // #define _DRVINFO_H_ 189143439Sobrien 190143439Sobrien 191