1/* 2 * Copyright (c) 1998-2008 Apple 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 * IOEthernetStats.h - Ethernet MIB statistics definitions. 24 * 25 * HISTORY 26 */ 27 28#ifndef _IOETHERNETSTATS_H 29#define _IOETHERNETSTATS_H 30 31/*! @header IOEthernetStats.h 32 @discussion Ethernet statistics. */ 33 34//--------------------------------------------------------------------------- 35// Ethernet-like statistics group. 36 37/*! @typedef IODot3StatsEntry 38 @discussion Ethernet MIB statistics structure. 39 @field alignmentErrors dot3StatsAlignmentErrors. 40 @field fcsErrors dot3StatsFCSErrors. 41 @field singleCollisionFrames dot3StatsSingleCollisionFrames. 42 @field multipleCollisionFrames dot3StatsMultipleCollisionFrames. 43 @field sqeTestErrors dot3StatsSQETestErrors. 44 @field deferredTransmissions dot3StatsDeferredTransmissions. 45 @field lateCollisions dot3StatsLateCollisions. 46 @field excessiveCollisions dot3StatsExcessiveCollisions. 47 @field internalMacTransmitErrors dot3StatsInternalMacTransmitErrors. 48 @field carrierSenseErrors dot3StatsCarrierSenseErrors. 49 @field frameTooLongs dot3StatsFrameTooLongs. 50 @field internalMacReceiveErrors dot3StatsInternalMacReceiveErrors. 51 @field etherChipSet dot3StatsEtherChipSet. 52 @field missedFrames dot3StatsMissedFrames (not in RFC1650). 53 */ 54 55typedef struct { 56 UInt32 alignmentErrors; 57 UInt32 fcsErrors; 58 UInt32 singleCollisionFrames; 59 UInt32 multipleCollisionFrames; 60 UInt32 sqeTestErrors; 61 UInt32 deferredTransmissions; 62 UInt32 lateCollisions; 63 UInt32 excessiveCollisions; 64 UInt32 internalMacTransmitErrors; 65 UInt32 carrierSenseErrors; 66 UInt32 frameTooLongs; 67 UInt32 internalMacReceiveErrors; 68 UInt32 etherChipSet; 69 UInt32 missedFrames; 70} IODot3StatsEntry; 71 72//--------------------------------------------------------------------------- 73// Ethernet-like collision statistics group (optional). 74 75/*! @typedef IODot3CollEntry 76 @discussion Collision statistics structure. 77 @field collFrequencies dot3StatsCollFrequencies. */ 78 79typedef struct { 80 UInt32 collFrequencies[16]; 81} IODot3CollEntry; 82 83//--------------------------------------------------------------------------- 84// Receiver extra statistics group (not defined by RFC 1650). 85 86/*! @typedef IODot3RxExtraEntry 87 @discussion Extra receiver statistics not defined by RFC1650. 88 @field overruns receiver overruns. 89 @field watchdogTimeouts watchdog timer expirations. 90 @field frameTooShorts runt frames. 91 @field collisionErrors frames damages by late collision. 92 @field phyErrors PHY receive errors. 93 @field timeouts receiver timeouts. 94 @field interrupts receiver interrupts. 95 @field resets receiver resets. 96 @field resourceErrors receiver resource shortages. 97 */ 98 99typedef struct { 100 UInt32 overruns; 101 UInt32 watchdogTimeouts; 102 UInt32 frameTooShorts; 103 UInt32 collisionErrors; 104 UInt32 phyErrors; 105 UInt32 timeouts; 106 UInt32 interrupts; 107 UInt32 resets; 108 UInt32 resourceErrors; 109 UInt32 reserved[4]; 110} IODot3RxExtraEntry; 111 112//--------------------------------------------------------------------------- 113// Transmitter extra statistics group (not defined by RFC 1650). 114 115/*! @typedef IODot3TxExtraEntry 116 @discussion Extra transmitter statistics not defined by RFC1650. 117 @field underruns transmit underruns. 118 @field jabbers jabber events. 119 @field phyErrors PHY transmit errors. 120 @field timeouts transmitter timeouts. 121 @field interrupts transmitter interrupts. 122 @field resets transmitter resets. 123 @field resourceErrors transmitter resource shortages. 124 */ 125 126typedef struct { 127 UInt32 underruns; 128 UInt32 jabbers; 129 UInt32 phyErrors; 130 UInt32 timeouts; 131 UInt32 interrupts; 132 UInt32 resets; 133 UInt32 resourceErrors; 134 UInt32 reserved[4]; 135} IODot3TxExtraEntry; 136 137//--------------------------------------------------------------------------- 138// Aggregate Ethernet statistics. 139 140/*! @typedef IOEthernetStats 141 @discussion Aggregate Ethernet statistics structure. 142 @field dot3StatsEntry IODot3StatsEntry statistics group. 143 @field dot3CollEntry IODot3CollEntry statistics group. 144 @field dot3RxExtraEntry IODot3RxExtraEntry statistics group. 145 @field dot3TxExtraEntry IODot3TxExtraEntry statistics group. 146 */ 147 148typedef struct { 149 IODot3StatsEntry dot3StatsEntry; 150 IODot3CollEntry dot3CollEntry; 151 IODot3RxExtraEntry dot3RxExtraEntry; 152 IODot3TxExtraEntry dot3TxExtraEntry; 153} IOEthernetStats; 154 155/*! @defined kIOEthernetStatsKey 156 @discussion Defines the name of an IONetworkData that contains 157 an IOEthernetStats. */ 158 159#define kIOEthernetStatsKey "IOEthernetStatsKey" 160 161#endif /* !_IOETHERNETSTATS_H */ 162