drvinfo.h revision 143439
1/***************************************************************************\ 2|* *| 3|* Copyright 2001-2003 NVIDIA, Corporation. All rights reserved. *| 4|* *| 5|* THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL *| 6|* TO NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY *| 7|* THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP. *| 8|* *| 9|* THE INFORMATION CONTAINED HEREIN IS PROVIDED "AS IS" WITHOUT *| 10|* EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED *| 11|* WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A *| 12|* PARTICULAR PURPOSE. *| 13|* *| 14\***************************************************************************/ 15 16/* 17 * This file contains the header info common to the network drivers and applications. 18 * Currently, these applications include ASF, co-installers, and qstats. 19 * 20 * 21 */ 22 23#ifndef _DRVINFO_H_ 24#define _DRVINFO_H_ 25 26// Switch to byte packing, regardless of global packing specified by the compiler switch 27#pragma pack(1) 28 29////////////////////////////////////////////////////////////////// 30// For the ADAPTER_GetStatistics call used by qstats. This 31// is the template used by the legacy driver. 32#define MAX_TRANSMIT_COLISION_STATS 16 33 34#define ADAPTER_STATS_LEGACY_VERSION 1 35#define ADAPTER_STATS_RM_VERSION 2 36 37typedef struct _ADAPTER_STATS_V1 38{ 39 NV_UINT32 ulVersion; 40 41 NV_UINT32 ulSuccessfulTransmissions; 42 NV_UINT32 ulFailedTransmissions; 43 NV_UINT32 ulRetryErrors; 44 NV_UINT32 ulUnderflowErrors; 45 NV_UINT32 ulLossOfCarrierErrors; 46 NV_UINT32 ulLateCollisionErrors; 47 NV_UINT32 ulDeferredTransmissions; 48 NV_UINT32 ulExcessDeferredTransmissions; 49 NV_UINT32 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS]; 50 51 NV_UINT32 ulMissedFrames; 52 NV_UINT32 ulSuccessfulReceptions; 53 NV_UINT32 ulFailedReceptions; 54 NV_UINT32 ulCRCErrors; 55 NV_UINT32 ulFramingErrors; 56 NV_UINT32 ulOverFlowErrors; 57 NV_UINT32 ulFrameErrorsPrivate; //Not for public. 58 NV_UINT32 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS 59 60 //interrupt related statistics 61 NV_UINT32 ulRxInterrupt; 62 NV_UINT32 ulRxInterruptUnsuccessful; 63 NV_UINT32 ulTxInterrupt; 64 NV_UINT32 ulTxInterruptUnsuccessful; 65 NV_UINT32 ulPhyInterrupt; 66 67} ADAPTER_STATS_V1, *PADAPTER_STATS_V1; 68////////////////////////////////////////////////////////////////// 69 70////////////////////////////////////////////////////////////////// 71// For the ADAPTER_GetStatistics call used by qstats. This 72// is the template used by the FD. 73typedef struct _ADAPTER_STATS 74{ 75 NV_UINT32 ulVersion; 76 NV_UINT8 ulMacAddress[6]; 77 78 // 79 // Tx counters. 80 // 81 NV_UINT64 ulSuccessfulTransmissions; 82 NV_UINT64 ulFailedTransmissions; 83 NV_UINT64 ulRetryErrors; 84 NV_UINT64 ulUnderflowErrors; 85 NV_UINT64 ulLossOfCarrierErrors; 86 NV_UINT64 ulLateCollisionErrors; 87 NV_UINT64 ulDeferredTransmissions; 88 NV_UINT64 ulExcessDeferredTransmissions; 89 NV_UINT64 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS]; 90 91 // 92 // New Tx counters for GigE. 93 // 94 NV_UINT64 ulTxByteCount; 95 96 // 97 // Rx counters. 98 // 99 NV_UINT64 ulMissedFrames; 100 NV_UINT64 ulSuccessfulReceptions; 101 NV_UINT64 ulFailedReceptions; 102 NV_UINT64 ulCRCErrors; 103 NV_UINT64 ulLengthErrors; 104 NV_UINT64 ulFramingErrors; 105 NV_UINT64 ulOverFlowErrors; 106 NV_UINT64 ulRxNoBuffer; 107 NV_UINT64 ulFrameErrorsPrivate; //Not for public. 108 NV_UINT64 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS 109 110 // 111 // New Rx counters for GigE. 112 // 113 NV_UINT64 ulRxExtraByteCount; 114 NV_UINT64 ulRxFrameTooLongCount; 115 NV_UINT64 ulRxFrameAlignmentErrorCount; 116 NV_UINT64 ulRxLateCollisionErrors; 117 NV_UINT64 ulRxRuntPacketErrors; 118 119 NV_UINT64 ulRxUnicastFrameCount; 120 NV_UINT64 ulRxMulticastFrameCount; 121 NV_UINT64 ulRxBroadcastFrameCount; 122 NV_UINT64 ulRxPromiscuousModeFrameCount; 123 124 //Interrupt related statistics 125 NV_UINT64 ulRxInterrupt; 126 NV_UINT64 ulRxInterruptUnsuccessful; 127 NV_UINT64 ulTxInterrupt; 128 NV_UINT64 ulTxInterruptUnsuccessful; 129 NV_UINT64 ulPhyInterrupt; 130 131 132 // 133 // Handy things to know 134 // 135 NV_UINT64 ulDescriptorVersion; 136 NV_UINT64 ulPollingCfg; // configured for cpu or throughput 137 NV_UINT64 ulPollingState; // current optimizefor state. 138 139 NV_UINT64 ulNumTxDesc; 140 NV_UINT64 ulNumRxDesc; 141 142 // 143 // Useful to determine if TX is stuck. 144 // 145 NV_UINT64 ulNumTxPktsQueued; 146 NV_UINT64 ulNumTxPktsInProgress; 147 148 // 149 // Rx Xsum Cntrs 150 // 151 NV_UINT64 ulNoRxPktsNoXsum; 152 NV_UINT64 ulNoRxPktsXsumIpPassTcpFail; 153 NV_UINT64 ulNoRxPktsXsumIpPassUdpFail; 154 NV_UINT64 ulNoRxPktsXsumIpFail; 155 NV_UINT64 ulNoRxPktsXsumIpPassNoTcpUdp; 156 NV_UINT64 ulNoRxPktsXsumIpPassTcpPass; 157 NV_UINT64 ulNoRxPktsXsumIpPassUdpPass; 158 NV_UINT64 ulNoRxPktsXsumReserved; 159 160#ifdef _PERF_LOOP_CNTRS 161 NV_UINT64 ulNumTxCmplsToProcess; 162 NV_UINT64 ulNumRxCmplsToProcess; 163 NV_UINT64 ulNumIntsToProcess; 164 165 NV_UINT64 IntLoop0Cnt; 166 NV_UINT64 IntLoop1Cnt; 167 NV_UINT64 IntLoop2Cnt; 168 NV_UINT64 IntLoop3Cnt; 169 NV_UINT64 IntLoop4Cnt; 170 NV_UINT64 IntLoop5Cnt; 171 NV_UINT64 IntLoop6To10Cnt; 172 NV_UINT64 IntLoop11Cnt; 173 NV_UINT64 IntMaxLoopCnt; 174 175 NV_UINT64 IntRxCnt0; 176 NV_UINT64 IntTxCnt0; 177 178 NV_UINT64 MaxRxLoopCnt; 179 NV_UINT64 MaxTxLoopCnt; 180 181#endif 182} ADAPTER_STATS, *PADAPTER_STATS; 183////////////////////////////////////////////////////////////////// 184 185#pragma pack() 186 187 188#endif // #define _DRVINFO_H_ 189 190 191