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