]> git.saurik.com Git - apple/xnu.git/blob - iokit/IOKit/network/IOEthernetStats.h
xnu-123.5.tar.gz
[apple/xnu.git] / iokit / IOKit / network / IOEthernetStats.h
1 /*
2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 /*
23 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
24 *
25 * IOEthernetStats.h - Ethernet MIB statistics definitions.
26 *
27 * HISTORY
28 */
29
30 #ifndef _IOETHERNETSTATS_H
31 #define _IOETHERNETSTATS_H
32
33 /*! @header IOEthernetStats.h
34 @discussion Ethernet statistics. */
35
36 //---------------------------------------------------------------------------
37 // Ethernet-like statistics group.
38
39 /*! @typedef IODot3StatsEntry
40 @discussion Ethernet MIB statistics structure.
41 @field alignmentErrors dot3StatsAlignmentErrors.
42 @field fcsErrors dot3StatsFCSErrors.
43 @field singleCollisionFrames dot3StatsSingleCollisionFrames.
44 @field multipleCollisionFrames dot3StatsMultipleCollisionFrames.
45 @field sqeTestErrors dot3StatsSQETestErrors.
46 @field deferredTransmissions dot3StatsDeferredTransmissions.
47 @field lateCollisions dot3StatsLateCollisions.
48 @field excessiveCollisions dot3StatsExcessiveCollisions.
49 @field internalMacTransmitErrors dot3StatsInternalMacTransmitErrors.
50 @field carrierSenseErrors dot3StatsCarrierSenseErrors.
51 @field frameTooLongs dot3StatsFrameTooLongs.
52 @field internalMacReceiveErrors dot3StatsInternalMacReceiveErrors.
53 @field etherChipSet dot3StatsEtherChipSet.
54 @field missedFrames dot3StatsMissedFrames (not in RFC1650).
55 */
56
57 typedef struct {
58 UInt32 alignmentErrors;
59 UInt32 fcsErrors;
60 UInt32 singleCollisionFrames;
61 UInt32 multipleCollisionFrames;
62 UInt32 sqeTestErrors;
63 UInt32 deferredTransmissions;
64 UInt32 lateCollisions;
65 UInt32 excessiveCollisions;
66 UInt32 internalMacTransmitErrors;
67 UInt32 carrierSenseErrors;
68 UInt32 frameTooLongs;
69 UInt32 internalMacReceiveErrors;
70 UInt32 etherChipSet;
71 UInt32 missedFrames;
72 } IODot3StatsEntry;
73
74 //---------------------------------------------------------------------------
75 // Ethernet-like collision statistics group (optional).
76
77 /*! @typedef IODot3CollEntry
78 @discussion Collision statistics structure.
79 @field collFrequencies dot3StatsCollFrequencies. */
80
81 typedef struct {
82 UInt32 collFrequencies[16];
83 } IODot3CollEntry;
84
85 //---------------------------------------------------------------------------
86 // Receiver extra statistics group (not defined by RFC 1650).
87
88 /*! @typedef IODot3RxExtraEntry
89 @discussion Extra receiver statistics not defined by RFC1650.
90 @field overruns receiver overruns.
91 @field watchdogTimeouts watchdog timer expirations.
92 @field frameTooShorts runt frames.
93 @field collisionErrors frames damages by late collision.
94 @field phyErrors PHY receive errors.
95 @field timeouts receiver timeouts.
96 @field interrupts receiver interrupts.
97 @field resets receiver resets.
98 @field resourceErrors receiver resource shortages.
99 */
100
101 typedef struct {
102 UInt32 overruns;
103 UInt32 watchdogTimeouts;
104 UInt32 frameTooShorts;
105 UInt32 collisionErrors;
106 UInt32 phyErrors;
107 UInt32 timeouts;
108 UInt32 interrupts;
109 UInt32 resets;
110 UInt32 resourceErrors;
111 UInt32 reserved[4];
112 } IODot3RxExtraEntry;
113
114 //---------------------------------------------------------------------------
115 // Transmitter extra statistics group (not defined by RFC 1650).
116
117 /*! @typedef IODot3TxExtraEntry
118 @discussion Extra transmitter statistics not defined by RFC1650.
119 @field underruns transmit underruns.
120 @field jabbers jabber events.
121 @field phyErrors PHY transmit errors.
122 @field timeouts transmitter timeouts.
123 @field interrupts transmitter interrupts.
124 @field resets transmitter resets.
125 @field resourceErrors transmitter resource shortages.
126 */
127
128 typedef struct {
129 UInt32 underruns;
130 UInt32 jabbers;
131 UInt32 phyErrors;
132 UInt32 timeouts;
133 UInt32 interrupts;
134 UInt32 resets;
135 UInt32 resourceErrors;
136 UInt32 reserved[4];
137 } IODot3TxExtraEntry;
138
139 //---------------------------------------------------------------------------
140 // Aggregate Ethernet statistics.
141
142 /*! @typedef IOEthernetStats
143 @discussion Aggregate Ethernet statistics structure.
144 @field dot3StatsEntry IODot3StatsEntry statistics group.
145 @field dot3CollEntry IODot3CollEntry statistics group.
146 @field dot3RxExtraEntry IODot3RxExtraEntry statistics group.
147 @field dot3TxExtraEntry IODot3TxExtraEntry statistics group.
148 */
149
150 typedef struct {
151 IODot3StatsEntry dot3StatsEntry;
152 IODot3CollEntry dot3CollEntry;
153 IODot3RxExtraEntry dot3RxExtraEntry;
154 IODot3TxExtraEntry dot3TxExtraEntry;
155 } IOEthernetStats;
156
157 /*! @defined kIOEthernetStatsKey
158 @discussion Defines the name of an IONetworkData that contains
159 an IOEthernetStats. */
160
161 #define kIOEthernetStatsKey "IOEthernetStatsKey"
162
163 #endif /* !_IOETHERNETSTATS_H */