// ===================================================================
// Title:       Device Ports 2.7
// Filename:    Device27_Ports.mof
// Version:     2.7.0
// Release:     Final
// Date:        04/13/03
// ===================================================================
// Copyright 2000-2003 Distributed Management Task Force, Inc. (DMTF).
// All rights reserved.  
// DMTF is a not-for-profit association of industry members dedicated 
// to promoting enterprise and systems management and interoperability. 
// DMTF specifications and documents may be reproduced for uses
// consistent with this purpose by members and non-members, 
// provided that correct attribution is given. 
// As DMTF specifications may be revised from time to time, 
// the particular version and release date should always be noted.
//
// Implementation of certain elements of this standard or proposed 
// standard may be subject to third party patent rights, including 
// provisional patent rights (herein "patent rights"). DMTF makes 
// no representations to users of the standard as to the existence 
// of such rights, and is not responsible to recognize, disclose, or
// identify any or all such third party patent right, owners or 
// claimants, nor for any incomplete or inaccurate identification or 
// disclosure of such rights, owners or claimants. DMTF shall have no 
// liability to any party, in any manner or circumstance, under any 
// legal theory whatsoever, for failure to recognize, disclose, or 
// identify any such third party patent rights, or for such party's
// reliance on the standard or incorporation thereof in its product, 
// protocols or testing procedures. DMTF shall have no liability to 
// any party implementing such standard, whether such implementation 
// is foreseeable or not, nor to any patent owner or claimant, and shall 
// have no liability or responsibility for costs or losses incurred if 
// a standard is withdrawn or modified after publication, and shall be
// indemnified and held harmless by any party implementing the 
// standard from any and all claims of infringement by a patent owner 
// for such implementations.
//
// For information about patents held by third-parties which have 
// notified the DMTF that, in their opinion, such patent may relate to 
// or impact implementations of DMTF standards, visit 
// http://www.dmtf.org/about/policies/disclosures.php.
// ===================================================================
// Description: The Device Model extends the management concepts that
//              are related to LogicalDevices. This file defines the 
//              concepts and classes needed to manage port devices, 
//              connecting to communications media and networks.
//
//              The object classes below are listed in an order that
//              avoids forward references. Required objects, defined 
//              by other working groups, are omitted.
// ==================================================================
// Change Log for v2.7 Final
// CR971 - Removal of the Experimental qualifier
//       - Remove LogicalModule, ModulePort, and PortActiveConnection
//         so they can be experimental in 2.8
//
// Change Log for v2.7
// CR630 - Remove NetworkAdapterStatistics and Add NetworkPortStatistics
//       - Add Port
// CR632 - Add LogicalModule and ModulePort
// CR639 - Add LogicalPortGroup
// CR783 - Remove Port and Add NetworkPort
//       - Add EthernetPort, EthernetPortStatistics, TokenRingPort, 
//         TokenRingStatistics, OOBAlertServiceOnNetworkPort and
//         WakeUpServiceOnNetworkPort
//       - Modify ModulePort Ref from Port to NetworkPort
//       - Add NetworkVirtualPort 
// CR845 - Add PortActiveConnection
//       - Remove NetworkVirtualPort
// CR852 - Change the superclass of NetworkPortStatistics to 
//         StatisticalData
// CR896 - Clarify the meaning of Speed in LogicalPort and its 
//         subclass NetworkPort
// ================================================================== 

#pragma locale ("en_US")


// ===================================================================
// LogicalPort 
// ===================================================================
[Version ("2.7.0"), Description (
    "The abstraction of a port or connection point of a Device. "
    "This object should be instantiated when the Port has "
    "independent management characteristics from the Device that "
    "includes it. Examples are a Fibre Channel Port and a USB Port.") ]
class CIM_LogicalPort : CIM_LogicalDevice {

    [Description ("The bandwidth of the Port in Bits per Second."), 
        Units ("Bits per Second") ]
    uint64 Speed;

    [Description (
        "The maximum bandwidth of the Port in Bits per Second."), 
        Units ("Bits per Second") ]
    uint64 MaxSpeed;
};


// ===================================================================
// PortOnDevice 
// ===================================================================
[Association, Version ("2.6.0"), Description (
    "PortOnDevice associates a Port or connection point with its "
    "Device.") ]
class CIM_PortOnDevice : CIM_Dependency {

    [Override ("Antecedent"), 
        Description ("The Device that includes the Port.") ]
    CIM_LogicalDevice REF Antecedent;

    [Override ("Dependent"), 
        Description ("The Port on the Device.") ]
    CIM_LogicalPort REF Dependent;
};


// ==================================================================
// LogicalPortGroup
// ==================================================================
[Version ("2.7.0"), Description (
    "A collection of one or more ports logically grouped for "
    "administrative purposes.  This class is created for specific "
    "ease of query when a Port is associated to more than one "
    "SystemSpecificCollection.  In FibreChannel, this is the case "
    "(e.g. Node, Zone, ZoneSet).") ] 
class CIM_LogicalPortGroup: CIM_SystemSpecificCollection {
};


// ==================================================================
// NetworkPort
// ==================================================================
[Version ("2.7.0"), Description (
    "NetworkPort is the logical representation of network "
    "communications hardware - a physical connector and the "
    "setup/operation of the network chips, at the lowest layers "
    "of a network stack.") ] 
class CIM_NetworkPort : CIM_LogicalPort {
    
    [Override ("Speed"), Description (
        "The current bandwidth of the Port in Bits per Second. "
        "For ports that vary in bandwidth or for those where "
        "no accurate estimation can be made, this property should "
        "contain the nominal bandwidth."),
        Units ("Bits per Second"), 
        MappingStrings {"MIB.IETF|MIB-II.ifSpeed", 
            "MIF.DMTF|Network Adapter 802 Port|001.5"} ]
    uint64 Speed;
 
    [Description (
        "PortType is defined to force consistent naming of the 'type' "
        "property in subclasses and to guarantee unique enum values "
        "for all instances of NetworkPort.  When set to 1 (\"Other\"), "
        "related property OtherPortType contains a string description "
        "the of the port's type.  A range of values, DMTF_Reserved, "
        "has been defined that allows subclasses to override and "
        "define their specific port types."),
        ValueMap {"0", "1", "2", "3..15999", "16000..65535"},
        Values {"Unknown", "Other", "Not Applicable", "DMTF Reserved", 
            "Vendor Reserved"},
        ModelCorrespondence {"CIM_NetworkPort.OtherNetworkPortType"} ]
    uint16 PortType;
    
    [Description (
        "Describes the type of module, when PortType is "
        "set to 1 (\"Other\")."),
        ModelCorrespondence {"CIM_NetworkPort.PortType"} ]
    string OtherNetworkPortType;
    
    [Description (
        "NetworkPorts are often numbered relative to either a logical "
        "modules or a network element.") ]
    uint16 PortNumber;
    
    [Description (
        "An enumeration of the types of links. When set to 1 "
        "(\"Other\"), the related property OtherLinkTechnology "
        "contains a string description of the link's type."),
        ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
        Values {"Unknown", "Other", "Ethernet", "IB", "FC",
            "FDDI", "ATM", "Token Ring", "Frame Relay"},
        ModelCorrespondence {"CIM_NetworkPort.OtherLinkTechnology"} ]
    uint16 LinkTechnology;
    
    [Description (
        "A string value describing LinkTechnology when it "
        "is set to 1, \"Other\"."),
        ModelCorrespondence {"CIM_NetworkPort.LinkTechnology"} ]
    string OtherLinkTechnology;
 
    [MaxLen (64), Description (
        "PermanentAddress defines the network address hardcoded into "
        "a port.  This 'hardcoded' address may be changed via "
        "firmware upgrade or software configuration. If so, this field "
        "should be updated when the change is made.  PermanentAddress "
        "should be left blank if no 'hardcoded' address exists for the "
        "NetworkAdapter."),
        MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.2"} ]       
    string PermanentAddress;
 
    [MaxLen (64), Description (
        "An array of strings indicating the network addresses for "
        "the port."),
        MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.3"} ]
    string NetworkAddresses[]; 
 
    [Description (
        "Boolean indicating that the port is operating in "
        "full duplex mode.") ]
    boolean FullDuplex;
 
    [Description ( 
        "A boolean indicating whether the NetworkPort is capable " 
        "of automatically determining the speed or other "
        "communications characteristics of the attached network "
        "media.") ] 
    boolean AutoSense;
 
    [Description (
        "The maximum transmission unit (MTU) that can be supported."), 
        Units ("Bytes") ] 
    uint64 SupportedMaximumTransmissionUnit;
 
    [Description (
        "The active or negotiated maximum transmission unit (MTU) that "
        "can be supported."), 
        Units ("Bytes") ] 
    uint64 ActiveMaximumTransmissionUnit;
};
 
 
// ===================================================================
// EthernetPort
// ===================================================================
[Version ("2.7.0"), Description (
    "Capabilities and management of an EthernetPort.") ]
class CIM_EthernetPort : CIM_NetworkPort {
 
    [Override("PortType"), Description (
        "The specific mode currently enabled for the Port. "
        "When set to 1 (\"Other\"), the related property "
        "OtherPortType contains a string description of "
        "the port's type."),
        ValueMap {"0", "1", "50", "51", "52", "53", "16000..65535"},
        Values {"Unknown", "Other", "10BaseT", "10-100BaseT",  
            "100BaseT", "1000BaseT", "Vendor Reserved"} ]
    uint16 PortType;

    [Override ("NetworkAddresses"), 
        Description (
        "Ethernet/802.3 MAC addresses formatted as twelve hexadecimal "
        "digits (e.g. \"010203040506\"), with each pair representing "
        "one of the six octets of the MAC address in \"canonical\" bit "
        "order.  (Thus, the Group address bit is found in the low "
        "order bit of the first character of the string.)") ]
    string NetworkAddresses[];
 
    [Description (
        "The maximum size of the INFO (non-MAC) field that will be "
        "received or transmitted."), 
        Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"} ]
    uint32 MaxDataSize;
 
    [Description (
        "Capabilities of the EthernetPort. For example, the "
        "Device may support AlertOnLan, WakeOnLan, Load Balancing "
        "and/or FailOver. If failover or load balancing "
        "capabilities are listed, a SpareGroup (failover) or "
        "ExtraCapacityGroup (load balancing) should also be defined "
        "to completely describe the capability."), 
        ArrayType ("Indexed"), 
        ValueMap {"0", "1", "2", "3", "4", "5"},
        Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
            "FailOver", "LoadBalancing"}, 
        ModelCorrespondence {
            "CIM_EthernetPort.CapabilityDescriptions"} ]
    uint16 Capabilities[];
 
    [Description (
        "An array of free-form strings providing more detailed "
        "explanations for any of the EthernetPort features "
        "indicated in the Capabilities array. Note, each entry of "
        "this array is related to the entry in the Capabilities "
        "array that is located at the same index."), 
        ArrayType ("Indexed"), 
        ModelCorrespondence {"CIM_EthernetPort.Capabilities"} ]
    string CapabilityDescriptions[];
 
    [Description (
        "Specifies which capabilities are enabled from the list "
        "of all supported ones, defined in the Capabilities array."),
        ArrayType ("Indexed"),
        ValueMap {"0", "1", "2", "3", "4", "5"},    
        Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
            "FailOver", "LoadBalancing"}, 
        ModelCorrespondence {"CIM_EthernetPort.Capabilities",
            "CIM_EthernetPort.OtherEnabledCapabilities"} ]
    uint16 EnabledCapabilities[];
 
    [Description (
        "An array of free-form strings providing more detailed "
        "explanations for any of the enabled capabilities "
        "that are specified as 'Other'."),
        ArrayType ("Indexed"), 
        ModelCorrespondence {"CIM_EthernetPort.EnabledCapabilities"} ]
    string OtherEnabledCapabilities[];
};
 
 
// ===================================================================
// TokenRingPort
// ===================================================================
[Version ("2.7.0"), Description (
    "Capabilities and management of a TokenRingPort.") ]
class CIM_TokenRingPort : CIM_NetworkPort {
 
    [Override ("NetworkAddresses"), Description (
        "Token Ring/802.5 MAC addresses formatted as twelve "
        "hexadecimal digits (e.g. \"010203040506\"), with each pair "
        "representing one of the six octets of the MAC address in "
        "\"canonical\" bit order.  (Thus, the Group address bit is "
        "found in the low order bit of the first character of the "
        "string.)") ]
    string NetworkAddresses[];
 
    [Description (
        "The maximum size of the INFO (non-MAC) field that will be "
        "received or transmitted."), 
        Mappingstrings {"MIB.IETF|BRIDGE-MIB.dot1dTpPortMaxInfo"} ]
    uint32 MaxDataSize;
 
    [Description (
        "Capabilities of the TokenRingPort. For example, the Device "
        "may support AlertOnLan, WakeOnLan, Load Balancing and/or "
        "Failover. If failover or load balancing capabilities are "
        "listed, a SpareGroup (failover) or ExtraCapacityGroup (load "
        "balancing) should also be defined to completely describe the "
        "capability."), 
        ArrayType ("Indexed"), 
        ValueMap {"0", "1", "2", "3", "4", "5"},
        Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
            "FailOver", "LoadBalancing"}, 
        ModelCorrespondence {
            "CIM_TokenRingPort.CapabilityDescriptions"} ]
    uint16 Capabilities[];
 
    [Description (
        "An array of free-form strings providing more detailed "
        "explanations for any of the TokenRingAPort features "
        "indicated in the Capabilities array. Note, each entry of "
        "this array is related to the entry in the Capabilities array "
        "that is located at the same index."), 
        ArrayType ("Indexed"), 
        ModelCorrespondence {"CIM_TokenRingPort.Capabilities"} ]
    string CapabilityDescriptions[];
 
    [Description (
        "Specifies which of the capabilities from the \"Capabilities\" "
        "property are currently enabled."), 
        ArrayType ("Indexed"), 
        ValueMap {"0", "1", "2", "3", "4", "5"},
        Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
            "FailOver", "LoadBalancing"}, 
        ModelCorrespondence {"CIM_TokenRingPort.Capabilities",
            "CIM_TokenRingPort.OtherEnabledCapabilities"} ]
    uint16 EnabledCapabilities[];
 
    [Description (
        "An array of free-form strings providing more detailed "
        "explanations for any of the enabled capabilities "
        "that are specified as 'Other'."),
        ArrayType ("Indexed"), 
        ModelCorrespondence {"CIM_TokenRingPort.EnabledCapabilities"} ]
    string OtherEnabledCapabilities[];
 
    [Description (
        "The current status which can be used to diagnose fluctuating "
        "problems that can occur on token rings, after a station has "
        "successfully been added to the ring. Before an open is "
        "completed, this object contains the value indicating "
        "\"no status\" (131072). (The RingState and RingOpenStatus "
        "properties are also provided for debugging problems when the "
        "station can not even enter the ring.) The property's value is "
        "a sum of values, one for each currently applicable condition. "
        "The following values are defined for various conditions:\n"
        "0 = No Problems Detected, 32 = Ring Recovery, "
        "64 = Single Station, 256 = Remove Received, 512 = Reserved, "
        "1024 = Auto-Removal Error, 2048 = Lobe Wire Fault, "
        "4096 = Transmit Beacon, 8192 = Soft Error, "
        "16384 = Hard Error, 32768 = Signal Loss, 131072 = No Status, "
        "Open Not Completed."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingStatus"} ]
    uint32 RingStatus;
 
    [Description (
        "The current Device state with respect to entering or leaving "
        "the ring."), 
        ValueMap {"0", "1", "2", "3", "4", "5"},
        Values {"Opened", "Closed", "Opening", "Closing", 
            "Open Failure", "Ring Failure"}, 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingState"} ]
    uint16 RingState;
 
    [Description (
        "This property indicates the success, or the reason for "
        "failure, of the station's most recent attempt to enter the "
        "ring."), 
        ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
            "10"},
        Values {"No Open Attempted", "Bad Parameter", "Lobe Failed", 
           "Signal Loss", "Insertion Timeout", "Ring Failed", 
           "Beaconing", "Duplicate MAC", "Request Failed", 
           "Remove Received", 
           // 10
           "Last Open Successful"}, 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingOpenStatus"} ]
    uint16 RingOpenStatus;
 
    [Description ("The ring's bandwidth."), 
        ValueMap {"0", "1", "2", "3", "4"},
        Values {"Unknown", "Other", "One Megabit", "Four Megabit", 
            "Sixteen Megabit"}, 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5RingSpeed"} ]
    uint16 RingSpeed;
};
 
 
// ===================================================================
// OOBAlertServiceOnNetworkPort 
// ===================================================================
[Association, Version ("2.7.0"), Description (
    "OOBAlertServiceOnNetworkPort defines where the out of band "
    "alerting Service is implemented. Currently, the Service can "
    "either employ a Modem or a NetworkPort to send alerts.") ]
class CIM_OOBAlertServiceOnNetworkPort : 
CIM_DeviceServiceImplementation {
 
    [Override ("Antecedent"), Max (1), Description (
        "The NetworkPort which implements the Service.") ]
    CIM_NetworkPort REF Antecedent;
 
    [Override ("Dependent"), Description (
        "The alerting Service provided on the NetworkPort.") ]
    CIM_OOBAlertService REF Dependent;
};
 
 
// ===================================================================
// WakeUpServiceOnNetworkPort
// ===================================================================
[Association, Version ("2.7.0"), Description (
    "WakeUpServiceOnNetworkPort defines where the WakeUpService "
    "is implemented. Currently, the Service can either employ a Modem "
    "or a NetworkPort for wakeup.") ]
class CIM_WakeUpServiceOnNetworkPort : CIM_DeviceServiceImplementation {
 
    [Override ("Antecedent"), Max (1), Description (
        "The NetworkPort which implements the Service.") ]
    CIM_NetworkPort REF Antecedent;
 
    [Override ("Dependent"), Description (
        "The wakeup Service provided on the NetworkPort.") ]
    CIM_WakeUpService REF Dependent;
};


// =================================================================== 
// PortImplementsEndpoint 
// =================================================================== 
[Association, Version ("2.6.0"), Description ( 
    "PortImplementsEndpoint associates a LogicalPort with one or " 
    "more ProtocolEndpoints that are implemented on it. This "
    "class specializes the DeviceSAPImplementation association. "
    "It indicates that the referenced Endpoint is dependent on the "
    "operations of the Port Device.") ]
class CIM_PortImplementsEndpoint : CIM_DeviceSAPImplementation { 

    [Override ("Antecedent"), Description (
        "The LogicalPort that represents the Device behind " 
        "the ProtocolEndpoint.") ] 
    CIM_LogicalPort REF Antecedent; 

    [Override ("Dependent"), Description (
        "The ProtocolEndpoint implemented on the LogicalPort.") ] 
    CIM_ProtocolEndpoint REF Dependent; 
}; 
 
 
// ==================================================================
// NetworkPortStatistics
// ==================================================================
[Version ("2.7.0"), Description (
    "The NetworkPortStatistics class describes the statistics "
    "for the NetworkPort.") ]
class CIM_NetworkPortStatistics : CIM_StatisticalData {
    
    [Counter, Description (
        "The total number of bytes transmitted, including framing "
        "characters."),
        Mappingstrings {"MIB.IETF|MIB-II.ifOutOctets", 
            "MIF.DMTF|Network Adapter 802 Port|001.7"}, 
        Units ("Bytes") ] 
    uint64 BytesTransmitted;
    
    [Counter, Description (
          "The total number of bytes received, including framing "
          "characters."),
          Mappingstrings {"MIB.IETF|MIB-II.ifInOctets",
              "MIF.DMTF|Network Adapter 802 Port|001.9"}, 
          Units ("Bytes") ] 
    uint64 BytesReceived;
    
    [Counter, Description (
        "The total number of packets transmitted.") ]
    uint64 PacketsTransmitted;
    
    [Counter, Description (
        "The total number of packets received.") ] 
    uint64 PacketsReceived;
};
 
 
// ==================================================================
// EthernetPortStatistics
// ==================================================================
[Version ("2.7.0"), Description (
    "The EthernetPortStatistics class describes the statistics for "
    "the EthernetPort.") ]
class CIM_EthernetPortStatistics : CIM_NetworkPortStatistics {
 
    [Override ("PacketsTransmitted"), Counter, Description (
        "The total number of packets transmitted."), 
        MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.6"} ] 
    uint64 PacketsTransmitted;
 
    [Override ("PacketsReceived"), Counter, Description (
        "The total number of packets received."), 
        MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.8"} ]
    uint64 PacketsReceived;
 
    [Counter, Description (
        "The number of times there was an invalid data symbol when "
        "a valid carrier was present. The count is incremented at "
        "most once per carrier event, even if multiple symbol "
        "errors occur during the carrier event."), 
        MappingStrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsSymbolErrors"} ] 
    uint32 SymbolErrors;
 
    [Counter, Description (
        "A count of frames received on a particular interface "
        "that are not an integral number of octets in length and do "
        "not pass the FCS check. The count represented by an "
        "instance of this object is incremented when the alignment "
        "error status is returned by the MAC layer to the LLC (or "
        "other MAC user). Received frames for which multiple error "
        "conditions obtain are, according to the conventions of IEEE "
        "802.3 Layer Management, counted exclusively according to "
        "the error status presented to the LLC."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsAlignmentErrors"} ] 
    uint32 AlignmentErrors;
 
    [Counter, Description (
        "A count of frames received on a particular interface "
        "that are an integral number of octets in length but do "
        "not pass the FCS check. The count represented by an "
        "instance of this object is incremented when the frame "
        "check error status is returned by the MAC layer to the "
        "LLC (or other MAC user). Received frames for which "
        "multiple error conditions obtain are, according to the "
        "conventions of IEEE 802.3 Layer Management, counted "
        "exclusively according to the error status presented to "
        "the LLC."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsFCSErrors"} ]
    uint32 FCSErrors;
 
    [Counter, Description (
        "A count of successfully transmitted frames on a particular "
        "interface for which transmission is inhibited by exactly "
        "one collision. A frame that is counted by an instance of "
        "this object is not counted by the corresponding instance "
        "of the MultipleCollisionFrames property."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsSingleCollisionFrames"} ] 
    uint32 SingleCollisionFrames;
 
    [Counter, Description (
        "A count of successfully transmitted frames on a particular "
        "interface for which transmission is inhibited by more than "
        "one collision. A frame that is counted by an instance of "
        "this object is not counted by the corresponding instance "
        "of the SingleCollisionFrames property."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsMultipleCollisionFrames"} ]
    uint32 MultipleCollisionFrames;
 
    [Counter, Description (
        "A count of times that the SQE TEST ERROR message is "
        "generated by the PLS sublayer for a particular interface. "
        "The SQE TEST ERROR message is defined in section "
        "7.2.2.2.4 of ANSI/IEEE 802.3-1985 and its generation is "
        "described in section 7.2.4.6 of the same document."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsSQETestErrors"} ]
    uint32 SQETestErrors;
 
    [Counter, Description (
        "A count of frames for which the first transmission "
        "attempt on a particular interface is delayed because the "
        "medium is busy. The count represented by an instance of "
        "this object does not include frames involved in collisions."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsDeferredTransmissions"} ]
    uint32 DeferredTransmissions;
 
    [Counter, Description (
        "The number of times that a collision is detected on a "
        "particular interface later than 512 bit-times into the "
        "transmission of a packet. Five hundred and twelve bit-"
        "times corresponds to 51.2 microseconds on a 10 Mbit/s "
        "system. A (late) collision included in a count "
        "represented by an instance of this object is also "
        "considered as a (generic) collision for purposes of "
        "other collision-related statistics."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsLateCollisions"} ]
    uint32 LateCollisions;
 
    [Counter, Description (
        "A count of frames for which transmission on a particular "
        "interface fails due to excessive collisions."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsExcessiveCollisions"} ]
    uint32 ExcessiveCollisions;
 
    [Counter, Description (
        "A count of frames for which transmission on a particular "
        "interface fails due to an internal MAC sublayer transmit "
        "error. A frame is only counted by an instance of this "
        "object if it is not counted by the corresponding instance "
        "of either the LateCollisions property, the Excessive"
        "Collisions property, or the CarrierSenseErrors property. "
        "The precise meaning of the count represented by an instance "
        "of this object is implementation-specific.  In particular, "
        "an instance of this object may represent a count of "
        "transmission errors on a particular interface that are "
        "not otherwise counted."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB."
            "dot3StatsInternalMacTransmitErrors"} ]
    uint32 InternalMACTransmitErrors;
 
    [Counter, Description (
        "A count of frames for which reception on a particular "
        "interface fails due to an internal MAC sublayer receive "
        "error. A frame is only counted by an instance of this "
        "object if it is not counted by the corresponding instance "
        "of either the FrameTooLongs property, the AlignmentErrors "
        "property, or the FCSErrors property. The precise meaning "
        "of the count represented by an instance of this object is "
        "implementation-specific.  In particular, an instance of "
        "this object may represent a count of receive errors on a "
        "particular interface that are not otherwise counted."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsInternalMacReceiveErrors"} ]
    uint32 InternalMACReceiveErrors;
 
    [Counter, Description (
        "The number of times that the carrier sense condition was "
        "lost or never asserted when attempting to transmit a frame "
        "on a particular interface. The count represented by an "
        "instance of this object is incremented at most once per "
        "transmission attempt, even if the carrier sense condition "
        "fluctuates during a transmission attempt."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsCarrierSenseErrors"} ]
    uint32 CarrierSenseErrors;
 
    [Counter, Description (
        "A count of frames received on a particular interface that "
        "exceed the maximum permitted frame size. The count "
        "represented by an instance of this object is incremented "
        "when the FrameTooLong status is returned by the MAC layer "
        "to the LLC (or other MAC user). Received frames for which "
        "multiple error conditions obtain are, according to the "
        "conventions of IEEE 802.3 Layer Management, counted "
        "exclusively according to the error status presented to "
        "the LLC."),
        Mappingstrings {
            "MIB.IETF|EtherLike-MIB.dot3StatsFrameTooLongs"} ]
    uint32 FrameTooLongs;
};


// ==================================================================
// TokenRingPortStatistics
// ==================================================================
[Version ("2.7.0"), Description (
    "The TokenRingPortStatistics class describes the statistics for "
    "the TokenRingPort.") ]
class CIM_TokenRingPortStatistics : CIM_NetworkPortStatistics {
    
    [Counter, Description (
        "This counter is incremented when a station detects the "
        "absence of transitions for five half-bit timers (burst-five "
        "errors)."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsBurstErrors"} ] 
    uint32 BurstErrors;
 
    [Counter, Description (
        "This counter is incremented when a station receives an AMP or "
        "SMP frame in which A is equal to C is equal to 0, and then "
        "receives another SMP frame with A equal to C equal to 0 "
        "without first receiving an AMP frame. It denotes a station "
        "that cannot set the AC bits properly."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsACErrors"} ] 
    uint32 ACErrors;
 
    [Counter, Description (
        "This counter is incremented when a station transmits an abort "
        "delimiter while transmitting data."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB."
            "dot5StatsAbortTransErrors"} ] 
    uint32 AbortTransErrors;
 
    [Counter, Description (
        "This counter is incremented when a station recognizes an "
        "internal error."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB."
            "dot5StatsInternalErrors"} ] 
    uint32 InternalErrors;
 
    [Counter, Description (
        "This counter is incremented when a station is transmitting "
        "and its TRR timer expires. This denotes a condition where a "
        "transmitting station in strip mode does not receive the "
        "trailer of the frame before the TRR timer goes off."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB."
            "dot5StatsLostFrameErrors"} ] 
    uint32 LostFrameErrors;
 
    [Counter, Description (
        "This counter is incremented when a station recognizes a frame "
        "addressed to its specific address, but has no available "
        "buffer space - indicating that the station is congested."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB."
            "dot5StatsReceiveCongestions"} ] 
    uint32 ReceiveCongestions;
 
    [Counter, Description (
        "This counter is incremented when a station recognizes a frame "
        "addressed to its specific address and detects that the FS "
        "field A bits are set to 1 indicating a possible line hit or "
        "duplicate address."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB."
            "dot5StatsFrameCopiedErrors"} ] 
    uint32 FrameCopiedErrors;
 
    [Counter, Description (
        "This counter is incremented when a station acting as the "
        "active monitor recognizes an error condition that needs a "
        "token transmitted."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsTokenErrors"} ]
    uint32 TokenErrors;
 
    [Counter, Description (
        "The number of Soft Errors that the Device has detected. It "
        "directly corresponds to the number of Report Error MAC frames "
        "that this Device has transmitted. Soft Errors are those which "
        "are recoverable by the MAC layer protocols."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSoftErrors"} ] 
    uint32 SoftErrors;
 
    [Counter, Description (
        "The number of times this Device has detected an immediately "
        "recoverable fatal error. It denotes the number of times this "
        "Device is either transmitting or receiving beacon MAC "
        "frames."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsHardErrors"} ] 
    uint32 HardErrors;
 
    [Counter, Description (
        "The number of times this Device has detected the loss of "
        "signal condition from the ring."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSignalLoss"} ] 
    uint32 SignalLossCount;
 
    [Counter, Description (
        "The number of times this Device has transmitted a beacon "
        "frame."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB."
            "dot5StatsTransmitBeacons"} ] 
    uint32 TransmittedBeacons;
 
    [Counter, Description (
        "The number of Claim Token MAC frames received or transmitted "
        "after the Device has received a Ring Purge MAC frame. This "
        "counter signifies the number of times the ring has been "
        "purged and is being recovered back into a normal operating "
        "state."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRecoverys"} ] 
    uint32 Recoverys;
 
    [Counter, Description (
        "The number of times the Device has detected an open or short "
        "circuit in the lobe data path. The port will be closed and "
        "RingState will signify this condition."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsLobeWires"} ] 
    uint32 LobeWires;
 
    [Counter, Description (
        "The number of times the Device has received a Remove Ring "
        "Station MAC frame request. When this frame is received, the "
        "Device will enter the close state and RingState will "
        "signify this condition."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsRemoves"} ] 
    uint32 Removes;
 
    [Counter, Description (
        "The number of times the Device has sensed that it is the "
        "only station on the ring. This will happen if the Device "
        "is the first one up on a ring, or if there is a hardware "
        "problem."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsSingles"} ] 
    uint32 Singles;
 
    [Counter, Description (
        "The number of times the Device has detected that the "
        "frequency of the incoming signal differs from the expected "
        "frequency by more than that specified by the IEEE 802.5 "
        "standard."), 
        MappingStrings {
            "MIB.IETF|IEEE 802.5 Token Ring MIB.dot5StatsFreqErrors"} ] 
    uint32 FrequencyErrors;
};


// ===================================================================
// end of file
// ===================================================================
