darling-IONetworkingFamily/IOEthernetStats.h
2017-02-28 16:43:08 +01:00

162 lines
5.7 KiB
C

/*
* Copyright (c) 1998-2008 Apple Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
* The contents of this file constitute Original Code as defined in and
* are subject to the Apple Public Source License Version 1.1 (the
* "License"). You may not use this file except in compliance with the
* License. Please obtain a copy of the License at
* http://www.apple.com/publicsource and read it before using this file.
*
* This Original Code and all software distributed under the License are
* distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
* License for the specific language governing rights and limitations
* under the License.
*
* @APPLE_LICENSE_HEADER_END@
*/
/*
* IOEthernetStats.h - Ethernet MIB statistics definitions.
*
* HISTORY
*/
#ifndef _IOETHERNETSTATS_H
#define _IOETHERNETSTATS_H
/*! @header IOEthernetStats.h
@discussion Ethernet statistics. */
//---------------------------------------------------------------------------
// Ethernet-like statistics group.
/*! @typedef IODot3StatsEntry
@discussion Ethernet MIB statistics structure.
@field alignmentErrors dot3StatsAlignmentErrors.
@field fcsErrors dot3StatsFCSErrors.
@field singleCollisionFrames dot3StatsSingleCollisionFrames.
@field multipleCollisionFrames dot3StatsMultipleCollisionFrames.
@field sqeTestErrors dot3StatsSQETestErrors.
@field deferredTransmissions dot3StatsDeferredTransmissions.
@field lateCollisions dot3StatsLateCollisions.
@field excessiveCollisions dot3StatsExcessiveCollisions.
@field internalMacTransmitErrors dot3StatsInternalMacTransmitErrors.
@field carrierSenseErrors dot3StatsCarrierSenseErrors.
@field frameTooLongs dot3StatsFrameTooLongs.
@field internalMacReceiveErrors dot3StatsInternalMacReceiveErrors.
@field etherChipSet dot3StatsEtherChipSet.
@field missedFrames dot3StatsMissedFrames (not in RFC1650).
*/
typedef struct {
UInt32 alignmentErrors;
UInt32 fcsErrors;
UInt32 singleCollisionFrames;
UInt32 multipleCollisionFrames;
UInt32 sqeTestErrors;
UInt32 deferredTransmissions;
UInt32 lateCollisions;
UInt32 excessiveCollisions;
UInt32 internalMacTransmitErrors;
UInt32 carrierSenseErrors;
UInt32 frameTooLongs;
UInt32 internalMacReceiveErrors;
UInt32 etherChipSet;
UInt32 missedFrames;
} IODot3StatsEntry;
//---------------------------------------------------------------------------
// Ethernet-like collision statistics group (optional).
/*! @typedef IODot3CollEntry
@discussion Collision statistics structure.
@field collFrequencies dot3StatsCollFrequencies. */
typedef struct {
UInt32 collFrequencies[16];
} IODot3CollEntry;
//---------------------------------------------------------------------------
// Receiver extra statistics group (not defined by RFC 1650).
/*! @typedef IODot3RxExtraEntry
@discussion Extra receiver statistics not defined by RFC1650.
@field overruns receiver overruns.
@field watchdogTimeouts watchdog timer expirations.
@field frameTooShorts runt frames.
@field collisionErrors frames damages by late collision.
@field phyErrors PHY receive errors.
@field timeouts receiver timeouts.
@field interrupts receiver interrupts.
@field resets receiver resets.
@field resourceErrors receiver resource shortages.
*/
typedef struct {
UInt32 overruns;
UInt32 watchdogTimeouts;
UInt32 frameTooShorts;
UInt32 collisionErrors;
UInt32 phyErrors;
UInt32 timeouts;
UInt32 interrupts;
UInt32 resets;
UInt32 resourceErrors;
UInt32 reserved[4];
} IODot3RxExtraEntry;
//---------------------------------------------------------------------------
// Transmitter extra statistics group (not defined by RFC 1650).
/*! @typedef IODot3TxExtraEntry
@discussion Extra transmitter statistics not defined by RFC1650.
@field underruns transmit underruns.
@field jabbers jabber events.
@field phyErrors PHY transmit errors.
@field timeouts transmitter timeouts.
@field interrupts transmitter interrupts.
@field resets transmitter resets.
@field resourceErrors transmitter resource shortages.
*/
typedef struct {
UInt32 underruns;
UInt32 jabbers;
UInt32 phyErrors;
UInt32 timeouts;
UInt32 interrupts;
UInt32 resets;
UInt32 resourceErrors;
UInt32 reserved[4];
} IODot3TxExtraEntry;
//---------------------------------------------------------------------------
// Aggregate Ethernet statistics.
/*! @typedef IOEthernetStats
@discussion Aggregate Ethernet statistics structure.
@field dot3StatsEntry IODot3StatsEntry statistics group.
@field dot3CollEntry IODot3CollEntry statistics group.
@field dot3RxExtraEntry IODot3RxExtraEntry statistics group.
@field dot3TxExtraEntry IODot3TxExtraEntry statistics group.
*/
typedef struct {
IODot3StatsEntry dot3StatsEntry;
IODot3CollEntry dot3CollEntry;
IODot3RxExtraEntry dot3RxExtraEntry;
IODot3TxExtraEntry dot3TxExtraEntry;
} IOEthernetStats;
/*! @defined kIOEthernetStatsKey
@discussion Defines the name of an IONetworkData that contains
an IOEthernetStats. */
#define kIOEthernetStatsKey "IOEthernetStatsKey"
#endif /* !_IOETHERNETSTATS_H */