1 /***************************************************************************\
3 |* Copyright 2001-2003 NVIDIA, Corporation. All rights reserved. *|
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. *|
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. *|
14 \***************************************************************************/
17 * This file contains the header info common to the network drivers and applications.
18 * Currently, these applications include ASF, co-installers, and qstats.
26 // Switch to byte packing, regardless of global packing specified by the compiler switch
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
34 #define ADAPTER_STATS_LEGACY_VERSION 1
35 #define ADAPTER_STATS_RM_VERSION 2
37 typedef struct _ADAPTER_STATS_V1
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];
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
60 //interrupt related statistics
61 NV_UINT32 ulRxInterrupt;
62 NV_UINT32 ulRxInterruptUnsuccessful;
63 NV_UINT32 ulTxInterrupt;
64 NV_UINT32 ulTxInterruptUnsuccessful;
65 NV_UINT32 ulPhyInterrupt;
67 } ADAPTER_STATS_V1, *PADAPTER_STATS_V1;
68 //////////////////////////////////////////////////////////////////
70 //////////////////////////////////////////////////////////////////
71 // For the ADAPTER_GetStatistics call used by qstats. This
72 // is the template used by the FD.
73 typedef struct _ADAPTER_STATS
76 NV_UINT8 ulMacAddress[6];
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];
92 // New Tx counters for GigE.
94 NV_UINT64 ulTxByteCount;
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
111 // New Rx counters for GigE.
113 NV_UINT64 ulRxExtraByteCount;
114 NV_UINT64 ulRxFrameTooLongCount;
115 NV_UINT64 ulRxFrameAlignmentErrorCount;
116 NV_UINT64 ulRxLateCollisionErrors;
117 NV_UINT64 ulRxRuntPacketErrors;
119 NV_UINT64 ulRxUnicastFrameCount;
120 NV_UINT64 ulRxMulticastFrameCount;
121 NV_UINT64 ulRxBroadcastFrameCount;
122 NV_UINT64 ulRxPromiscuousModeFrameCount;
124 //Interrupt related statistics
125 NV_UINT64 ulRxInterrupt;
126 NV_UINT64 ulRxInterruptUnsuccessful;
127 NV_UINT64 ulTxInterrupt;
128 NV_UINT64 ulTxInterruptUnsuccessful;
129 NV_UINT64 ulPhyInterrupt;
133 // Handy things to know
135 NV_UINT64 ulDescriptorVersion;
136 NV_UINT64 ulPollingCfg; // configured for cpu or throughput
137 NV_UINT64 ulPollingState; // current optimizefor state.
139 NV_UINT64 ulNumTxDesc;
140 NV_UINT64 ulNumRxDesc;
143 // Useful to determine if TX is stuck.
145 NV_UINT64 ulNumTxPktsQueued;
146 NV_UINT64 ulNumTxPktsInProgress;
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;
160 #ifdef _PERF_LOOP_CNTRS
161 NV_UINT64 ulNumTxCmplsToProcess;
162 NV_UINT64 ulNumRxCmplsToProcess;
163 NV_UINT64 ulNumIntsToProcess;
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;
178 NV_UINT64 MaxRxLoopCnt;
179 NV_UINT64 MaxTxLoopCnt;
182 } ADAPTER_STATS, *PADAPTER_STATS;
183 //////////////////////////////////////////////////////////////////
188 #endif // #define _DRVINFO_H_