-- *****************************************************************
-- CISCO-METRO-PHY-MIB.my 
--
-- Feb 2001, Sonal Maheshwari, Mickey Spiegel
-- May 2002, Sonal Maheshwari, Mickey Spiegel 
-- Dec 2002, Arvind Prabhudev, Sonal Maheshwari, Mickey Spiegel
--
-- Copyright (c) 2001, 2002, 2003, 2004 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-METRO-PHY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    Integer32,
    Counter32,
    Unsigned32,
    Counter64,
    MODULE-IDENTITY,
    OBJECT-TYPE                         FROM SNMPv2-SMI
    TEXTUAL-CONVENTION,
    TruthValue                          FROM SNMPv2-TC
    MODULE-COMPLIANCE,
    OBJECT-GROUP                        FROM SNMPv2-CONF
    ifIndex                             FROM IF-MIB
    ciscoExperiment                     FROM CISCO-SMI    
;

ciscoMetroPhyMIB MODULE-IDENTITY
    LAST-UPDATED   "200411190000Z" 
    ORGANIZATION   "Cisco Systems, Inc."
    CONTACT-INFO   "Cisco Systems
                    Customer Service

                    Postal: 170 W Tasman Drive
                    San Jose, CA 95134

                    Tel: +1 800 553-NETS

                    E-mail: cs-dwdm@cisco.com"
    DESCRIPTION
        "This MIB module defines the managed objects for physical 
        layer related interface configurations and objects
        for the protocol specific error counters for DWDM
        optical switches.

        This MIB contains three groups.
 
        The first group, cmPhyIf group, handles the physical layer
        related interface configurations. The cmPhyIfTable has objects
        for configuring protocol, rate, error monitoring, loopback
        mode and safety features like OFC (Open Fibre Control), laser
        safety control and forward laser control. 

        The second group, cmPhyStatistics group, represents the 
        counters that collect error statistics on the received 
        data traffic for all protocols except SONET. 
        The error statistics for SONET are covered 
        in the SONET-MIB.

        The third group, cmPhySonetSectionTrace group, provides
        objects for section trace monitoring on SONET/SDH
        interfaces. 
        "
    REVISION   "200411190000Z"
    DESCRIPTION
        "cmPhyIfTransType object has been added to cmPhyIfTable.
         'e1', 't1', 'e3', 't3', 'dvb', 'sdi' and 'its' enumeration 
         has been added to cmPhyIfProtocol object."
    REVISION   "200308250000Z"
    DESCRIPTION
        "cmPhyIfAutoNegotiation object has been added to cmPhyIfTable."
    REVISION   "200301080000Z"
    DESCRIPTION
        "cmPhyIfTxBufferSize object has been added to cmPhyIfTable."
    REVISION   "200205140000Z"
    DESCRIPTION
        "The third revision of this MIB.
 
        The following new counters have been added - 
        cmPhyRxCRC,
        cmPhyRxCRCOverflow,
        cmPhyHCRxCRC,
        cmPhyTxEncapFarEndPktErrors,
        cmPhyTxEncapFarEndPktErrOverflow,
        cmPhyHCTxEncapFarEndPktErrors 

        The following objects have been deprecated -
        cmPhyIfLaserSafetyControl (moved to CISCO-OPTICAL-IF-EXTN-MIB),
        cmPhyIfForwardLaserControl (moved to CISCO-OPTICAL-IF-EXTN-MIB),
        cmPhyRxPower (moved to CISCO-OPTICAL-MONITOR-MIB), 
        cmPhyRxHEC (moved to CISCO-CDL-MIB),
        cmPhyRxHECOverflow (moved to CISCO-CDL-MIB) and
        cmPhyHCRxHEC (moved to CISCO-CDL-MIB).
        "
    REVISION   "200108310000Z"
    DESCRIPTION
        "The second revision of this MIB."
    REVISION   "200104190000Z" 
    DESCRIPTION
        "The initial revision of this MIB."
    ::= { ciscoExperiment 69 } -- assigned by CANA


-- Textual Conventions

TransmissionType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "An integer value that identifies the physical layer medium
         used across an interface.

         The value 'unknown' indicates the physical layer medium is not
         known.

         The value 'copper' indicates the physical layer medium is
         copper.

         The value 'optical' indicates the physical layer medium is
         optical."
      
    SYNTAX INTEGER {
         unknown(1),
         copper(2),
         optical(3)
    }

ProtocolType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "An integer value that identifies the protocol used across an
        interface.

         The value 'e1' indicates an interface that implements the
         physical layer of E1.

         The value 't1' indicates an interface that implements the
         physical layer of T1.

         The value 'e3' indicates an interface that implements the
         physical layer of E3.

         The value 't3' indicates an interface that implements the
         physical layer of T3.
         
         The value 'dvb' indicates an interface that implements the
         physical layer of DVB.
         
         The value 'sdi' indicates an interface that implements the
         physical layer of SDI.
        
         The value 'its' indicates an interface that implements the
         physical layer of ITS. "

    SYNTAX INTEGER {
        other(1),
        unknown(2),
        gigabitEthernet(3),
        tenGigabitEthernet(4),
        fibreChannel(5),
        ficon(6),
        escon(7),
        sonet(8),
        sdh(9),
        sysplexIscCompatibility(10),
        sysplexIscPeer(11),
        sysplexTimerEtr(12),
        sysplexTimerClo(13),
        fastEthernet(14),
        fddi(15),
        e1(16),
        t1(17),
        e3(18),
        t3(19),
        dvb(20),
        sdi(21),
        its(22)
    }

TriValue ::= TEXTUAL-CONVENTION
    STATUS     current
    DESCRIPTION
        "A three codepoint value."
    SYNTAX INTEGER {
        true(1),
        false(2),
        notApplicable(3)
    }	

-- MIB Object Definitions

ciscoMetroPhyMIBObjects    OBJECT IDENTIFIER ::= { ciscoMetroPhyMIB 1 }

-- groups in this MIB module

cmPhyIf                OBJECT IDENTIFIER 
                       ::= { ciscoMetroPhyMIBObjects 1 }
cmPhyStatistics        OBJECT IDENTIFIER 
                       ::= { ciscoMetroPhyMIBObjects 2 }
cmPhySonetSectionTrace OBJECT IDENTIFIER 
                       ::= { ciscoMetroPhyMIBObjects 3 }

-- cmPhyIf group

-- This group handles the physical layer related interface  
-- configurations, like the protocol and rate used across the client 
-- side interface, monitoring of counters, enabling/disabling of OFC, 
-- forward laser control, laser safety control and loopback mode  
-- across client and trunk side interfaces. 

-- PHY If Table

cmPhyIfTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF CmPhyIfEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table allows physical layer related interface
        configurations on an interface."
    ::= { cmPhyIf 1 }

cmPhyIfEntry OBJECT-TYPE
    SYNTAX        CmPhyIfEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A collection of objects for configuration on an
        interface."
    INDEX         { ifIndex }
    ::= { cmPhyIfTable 1 }

CmPhyIfEntry ::= SEQUENCE {
    cmPhyIfMode                   INTEGER,
    cmPhyIfProtocol               ProtocolType,
    cmPhyIfClockRate              Integer32,
    cmPhyIfMonitor                TruthValue,
    cmPhyIfLoopback               INTEGER,
    cmPhyIfOFC                    TruthValue,
    cmPhyIfLaserSafetyControl     TruthValue,
    cmPhyIfForwardLaserControl    TruthValue,
    cmPhyIfTxBufferSize           Unsigned32,
    cmPhyIfAutoNegotiation        TriValue,
    cmPhyIfTransType              TransmissionType
}

cmPhyIfMode OBJECT-TYPE
    SYNTAX        INTEGER {
                      mode2R(1),
                      mode3R(2)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object allows the management client to configure
        the mode of operation for the client interface modules.

        When in 2R mode, there is no protocol type, clock rate
        or monitoring to be configured i.e. the next three
        objects would be read-only. When in 3R mode, monitoring
        can be enabled or disabled and the clock rate and protocol
        should be configured."
    ::= { cmPhyIfEntry 1 }
 
cmPhyIfProtocol OBJECT-TYPE
    SYNTAX        ProtocolType
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object is used to specify the protocol of the data 
        carried over the client side interface.

        This object applies to linecards which support a variety of
        protocols and allow dynamic configuration of the specific
        protocol to be monitored on the interface. The ifType value
        for such interfaces remains fixed. The agent may use this
        object to identify the protocol to be monitored (see the
        cmPhyIfMonitor object), to set the clock rate for the 
        interface (see the cmPhyIfClockRate object), or to enable
        or disable functionality related to the protocol, for 
        example OFC (see the cmPhyIfOFC object).

        The value of this object cannot be modified when the 
        cmPhyIfMonitor object is set to 'true' for that interface.
        Also, this object does not apply to the trunk side 
        interfaces."
    ::= { cmPhyIfEntry 2 }

cmPhyIfClockRate OBJECT-TYPE
    SYNTAX        Integer32 (0..10312000)
    UNITS         "kHz"
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object allows the management client to set the
        clock rate across the client side interface.

        Due to hardware limitations, all values may not be supported.
        The default value of this object depends on the value of the
        cmPhyIfProtocol object. When the value of the cmPhyIfProtocol
        object is reset, the value of this object will be 
        automatically set to the default for that protocol.
        In case of protocols that support multiple rates,
        the default value of this object will be the lowest rate
        possible for that protocol. For example, if the value
        of cmPhyIfProtocol is set to 'sonet', the default value
        of cmPhyIfClockRate is set to the OC-3 rate of 155520 kHz. 
        If a non-default value is desired, then this object must
        be set after the cmPhyIfProtocol object has been reset. 
        This object must be set to a supported clock rate when
        setting cmPhyIfProtocol to 'unknown'.
        In 2R mode of operation, this object is not applicable
        and will have a default value of 0.
       
        The value of this object cannot be modified when the
        cmPhyIfMonitor object is set to 'true' for that interface. 
        Also, this object is not applicable to trunk side interfaces."
    ::= { cmPhyIfEntry 3 }

cmPhyIfMonitor OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object allows the management client to enable 
        monitoring of the error counters on an interface,
        by writing a value of 'true' to this object. To bypass
        the monitoring hardware, a value of 'false' must be 
        written to this object.

        Monitoring does not apply when the value of 
        cmPhyIfProtocol is 'unknown'."
    ::= { cmPhyIfEntry 4 }

cmPhyIfLoopback OBJECT-TYPE
    SYNTAX        INTEGER {
                      noLoop(1),
                      diagnosticLoop(2),
                      lineLoop(3),
                      otherLoop(4)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object allows the management client to configure
        loopback for the client side or trunk side interfaces.
        
        'noLoop'         - No Loopback present.
        'diagnosticLoop' - This is an internal loopback, where the
                           data stream is looped from the transmit
                           to receive section. It is used for hardware
                           debug, bring-up and diagnostics.
        'lineLoop'       - In this mode, the receive data stream is
                           looped back to the transmit side.
        'otherLoop'      - This indicates loopbacks not defined here.

        The default value of this object will be 'noLoop'."
    ::= { cmPhyIfEntry 5 }

cmPhyIfOFC OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object allows the management client to enable
        OFC(Open Fibre Control) safety protocol for the client 
        side interfaces, by writing a 'true' value to
        this object. A 'false' value would disable OFC.

        The default value of this object varies depending on the value 
        of cmPhyIfProtocol and cmPhyIfClockRate.  When cmPhyIfProtocol 
        or cmPhyIfClockRate is reset, then the value of this object is
        automatically reset to the default value for that protocol or
        rate. If non-default OFC behavior is desired, then this object
        should be set after cmPhyIfProtocol or cmPhyIfClockRate has 
        been reset.

        This object is not applicable to trunk side interfaces."
    ::= { cmPhyIfEntry 6 }

cmPhyIfLaserSafetyControl OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        deprecated
    DESCRIPTION
        "This object allows the management client to enable
        laser safety control feature on the trunk side interfaces
        by writing a true value to this object. If laser safety
        control is enabled, the transmit laser on the trunk side is
        shut when the receive signal is not available on the fiber. 
        A 'false' value disables this feature and is the default
        value assigned to this object.

        Laser safety control would not apply in case of  splitter
        protection on the optical switch." 
    ::= { cmPhyIfEntry 7 }

cmPhyIfForwardLaserControl OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        deprecated
    DESCRIPTION
        "This object allows the management client to enable
        forward laser control on the client or trunk side interfaces
        by writing a true value to this object. If forward laser 
        control is enabled, the transmit laser is shut when the
        cross-connect receive port on the switch is in alarm 
        condition. A 'false' value disables this feature and is
        the default value assigned to this object."
    ::= { cmPhyIfEntry 8 }

cmPhyIfTxBufferSize OBJECT-TYPE
    SYNTAX        Unsigned32 (0..65536)
    UNITS         "bytes"
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object applies when circuit emulation of the client
        protocol is used. It allows the management client to
        configure the size of the transmit buffer on the client
        port. A value of 0 implies that this object does not apply
        to this interface.

        Controlling the size of the transmit buffer on a client
        port may be essential in scenarios where packet streams
        from various client ports are aggregated onto a single
        trunk port. The latency associated with an elementary
        stream received on a client port, from the trunk port is
        influenced by the nature of other elementary streams in
        the aggregate. For example, a giant packet in one stream
        will increase latency in processing packets in other
        elementary streams. The size of the transmit buffer on
        the client port must be configured proportional to this
        expected latency. Increasing the buffer size when latency
        is higher helps in reassembly of fragmented packets before
        transmitting them to the client device.

        Note that increasing the buffer size results in higher
        latency even when the elementary packet stream is not
        subject to high jitters. Refer to the platform specific
        documentation for guidelines on configuring this buffer
        size."
    ::= { cmPhyIfEntry 9 }

cmPhyIfAutoNegotiation OBJECT-TYPE
    SYNTAX        TriValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object allows the management client to enable
        auto negotiation signaling on the client side interface,
        by writing a 'true' value to this object. A 'false'
        value would disable auto negotiation. Setting the value 
        'notApplicable' to this object will not change the 
        existing value in this object.

        Auto negotiation is applicable only for a few client
        protocols such as gigabitEthernet. If the client 
        interface does not support 'auto negotiation' feature, 
        then this object has the value of 'notApplicable' and 
        the value will not be changed via a set operation."
    ::= { cmPhyIfEntry 10 }

cmPhyIfTransType OBJECT-TYPE
    SYNTAX        TransmissionType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object is used to identify the physical layer medium used
         for carrying data. For non-relevant interfaces, this value is
         'unknown'."
    ::= { cmPhyIfEntry 11 }
 
--  cmPhyStatistics group

--  This group contains objects for the error 
--  counters for client data traffic, collected by the 
--  monitoring hardware.

--  Statistics Table

cmPhyStatisticsTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF CmPhyStatisticsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION 
        "This table contains the cumulative error statistics being 
        collected for the different medium types, except SONET,
        on the client side and an object for the optical
        power level on the trunk side.
        The error statistics for SONET are covered
        by the sonetSectionCurrentTable and the
        sonetSectionIntervalTable in the RFC1595-MIB."
    ::= { cmPhyStatistics 1 }

cmPhyStatisticsEntry OBJECT-TYPE
    SYNTAX        CmPhyStatisticsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry in the cmPhyStatisticsTable." 
    INDEX         { ifIndex }
    ::= { cmPhyStatisticsTable 1 }

CmPhyStatisticsEntry ::= SEQUENCE {
    cmPhyRxPower                      Integer32,
    cmPhyRxCVRD                       Counter32,
    cmPhyRxCVRDOverflow               Counter32,
    cmPhyHCRxCVRD                     Counter64,
    cmPhyRxHEC                        Counter32,
    cmPhyRxHECOverflow                Counter32,
    cmPhyHCRxHEC                      Counter64,
    cmPhyRxCRC                        Counter32,
    cmPhyRxCRCOverflow                Counter32,
    cmPhyHCRxCRC                      Counter64,
    cmPhyTxEncapFarEndPktErrors       Counter32,
    cmPhyTxEncapFarEndPktErrOverflow  Counter32,
    cmPhyHCTxEncapFarEndPktErrors     Counter64
}

cmPhyRxPower OBJECT-TYPE
    SYNTAX        Integer32 (-4000..0)
    UNITS         "dBm"
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "This object gives the optical power level received
        on the trunk side interface. 

        The actual value of the power level received on
        the interface is the value of this object divided
        by 100. This object is not applicable to client side
        interfaces.

        This object has been deprecated since a similar object
        has been defined in the CISCO-OPTICAL-MONITOR-MIB."
    ::= { cmPhyStatisticsEntry 1 }

cmPhyRxCVRD OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only       
    STATUS        current
    DESCRIPTION
        "This object represents the lower word value of the 
        counter associated with the 
        number of code violations and running disparity errors
        encountered, in the receive direction.

        NOTE: The object cmPhyRxCVRDOverflow contains the
        higher 32 bits of this counter value. SNMP v2c or v3
        managers can use the cmPhyHCRxCVRD object
        directly which is a 64 bit counter."
    ::= { cmPhyStatisticsEntry 2 }

cmPhyRxCVRDOverflow OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the high word value of the
        counter associated with the
        number of code violations and running disparity errors
        encountered, in the receive direction.

        NOTE: The object cmPhyRxCVRD contains the lower 32 
        bits of this counter value. If the error count is
        greater than 4,294,967,295 the higher word value
        will be stored in this object. SNMP v2c or v3 
        managers can use the cmPhyHCRxCVRD object 
        directly which is a 64 bit counter."
    ::= { cmPhyStatisticsEntry 3 }

cmPhyHCRxCVRD OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the counter associated with the
        number of code violations and running disparity errors
        encountered, in the receive direction.

        This is a High Capacity (64 bit) version of the 
        cmPhyRxCVRD counter."
    ::= { cmPhyStatisticsEntry 4 }

cmPhyRxHEC OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "This object represents the lower word value of the 
        counter associated with the
        number of CDL HEC errors encountered, in the receive
        direction.
    
        This object has a valid value only if the protocol
        type is gigabitEthernet/ tenGigabitEthernet. For all other
        protocols, this object is not applicable.

        NOTE: The object cmPhyRxHECOverflow contains the
        higher 32 bits of this counter value. SNMP v2c or v3
        managers can use the cmPhyHCRxHEC object
        directly which is a 64 bit counter.

        This object has been deprecated since a similar object
        has been defined in the CISCO-CDL-MIB."
    ::= { cmPhyStatisticsEntry 5 }

cmPhyRxHECOverflow OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "This object represents the high word value of the 
        counter associated with the number of CDL
        HEC errors encountered, in the receive direction.

        This object has a valid value only if the protocol
        type is gigabitEthernet/ tenGigabitEthernet. For all other
        protocols, this object is not applicable.

        NOTE: The object cmPhyRxHEC contains the lower 32 
        bits of this counter value. If the error count is
        greater than 4,294,967,295 the higher word value
        will be stored in this object. SNMP v2c or v3 
        managers can use the cmPhyHCRxHEC object 
        directly which is a 64 bit counter.

        This object has been deprecated since a similar object
        has been defined in the CISCO-CDL-MIB."
    ::= { cmPhyStatisticsEntry 6 }

cmPhyHCRxHEC OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "This object represents the counter associated with the
        number of CDL HEC errors encountered, in the receive
        direction.
        This object has a valid value only if the medium
        type is gigabitEthernet/ tenGigabitEthernet. For all other
        media, this object is not applicable.

        This is a High Capacity (64 bit) version of the 
        cmPhyRxHEC counter.

        This object has been deprecated since a similar object
        has been defined in the CISCO-CDL-MIB."
    ::= { cmPhyStatisticsEntry 7 }

cmPhyRxCRC OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the lower word value of the
        counter associated with CRC errors.
        This object has a valid value only for interfaces that
        provide CRC error monitoring.

        NOTE: The object cmPhyRxCRCOverflow contains the
        higher 32 bits of this counter value. SNMP v2c or v3
        managers can use the cmPhyHCRxCRC object
        directly which is a 64 bit counter."
    ::= { cmPhyStatisticsEntry 8 }

cmPhyRxCRCOverflow OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the higher word value of the
        counter associated with CRC errors.
        This object has a valid value only for interfaces that
        provide CRC error monitoring.

        NOTE: The object cmPhyRxCRC contains the
        lower 32 bits of this counter value. If the error count is
        greater than 4,294,967,295 the higher word value
        will be stored in this object. SNMP v2c or v3
        managers can use the cmPhyHCRxCRC object
        directly which is a 64 bit counter."
    ::= { cmPhyStatisticsEntry 9 }

cmPhyHCRxCRC OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the counter associated with 
        CRC errors. This object has a valid value only for
        interfaces that provide CRC error monitoring.  

        This is a High Capacity (64 bit) version of the cmPhyRxCRC
        counter."
    ::= { cmPhyStatisticsEntry 10 }

cmPhyTxEncapFarEndPktErrors OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the lower word value of the counter
        associated with ingress error indications from the far end of
        an Ethernet network, where an ESCON stream is encapsulated in
        Ethernet packets. This counter is incremented whenever
        an ESCON packet or control character has 8b/10b code
        violations or running disparity errors in the ingress
        direction at the far end of the Ethernet network.

        This object has a valid value only for ESCON interfaces where
        Ethernet encapsulation is performed.

        NOTE: The object cmPhyTxEncapFarEndPktErrOverflow contains the
        higher 32 bits of this counter value. SNMP v2c or v3
        managers can use the cmPhyHCTxEsconPktInd object
        directly which is a 64 bit counter."
    ::= { cmPhyStatisticsEntry 11 }

cmPhyTxEncapFarEndPktErrOverflow OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the higher word value of the counter
        associated with ingress error indications from the far end of
        an Ethernet network, where an ESCON stream is encapsulated in
        Ethernet packets. This counter is incremented whenever
        an ESCON packet or control character has 8b/10b code
        violations or running disparity errors in the ingress
        direction at the far end of the Ethernet network.

        This object has a valid value only for ESCON interfaces where
        Ethernet encapsulation is performed.

        NOTE: The object cmPhyTxEncapFarEndPktErrors contains the  
        lower 32 bits of this counter value. SNMP v2c or v3   
        managers can use the cmPhyHCTxEsconPktInd object  
        directly which is a 64 bit counter."   
    ::= { cmPhyStatisticsEntry 12 }

cmPhyHCTxEncapFarEndPktErrors OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the counter associated with ESCON 
        ingress error indications from the far end of
        an Ethernet network, where an ESCON stream is encapsulated in
        Ethernet packets. This counter is incremented whenever
        an ESCON packet or control character has 8b/10b code
        violations or running disparity errors in the ingress
        direction at the far end of the Ethernet network.

        This object has a valid value only for ESCON interfaces where
        Ethernet encapsulation is performed.

        This is a High Capacity (64 bit) version of the
        cmPhyTxEncapFarEndPktErrors counter."
    ::={ cmPhyStatisticsEntry 13 }


-- cmPhySonetSectionTrace group

-- This group provides objects for tracing a SONET section
-- by monitoring the J0 bytes of a received SONET or SDH frame.

-- SonetSectionTrace table

cmPhySonetSectionTraceTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF CmPhySonetSectionTraceEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table provides objects for monitoring the J0
        bytes of a SONET or SDH section."
    ::= { cmPhySonetSectionTrace 1 }

cmPhySonetSectionTraceEntry OBJECT-TYPE
    SYNTAX        CmPhySonetSectionTraceEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry in the cmPhySonetSectionTraceTable is created
         when the value of the cmPhyIfProtocol object is set to
         'sonet' and the value of cmPhyIfMonitor is set to 'true'."
    INDEX         { ifIndex }
    ::= { cmPhySonetSectionTraceTable 1 }

CmPhySonetSectionTraceEntry ::= SEQUENCE {
    cmPhySonetSectionTraceReceived    OCTET STRING,
    cmPhySonetSectionTraceExpected    OCTET STRING
} 

cmPhySonetSectionTraceReceived OBJECT-TYPE
    SYNTAX        OCTET STRING (SIZE (0|16|64))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object displays the SONET or SDH section trace bytes 
        received at the interface."
    ::= { cmPhySonetSectionTraceEntry 1 }

cmPhySonetSectionTraceExpected OBJECT-TYPE
    SYNTAX        OCTET STRING (SIZE(0|16|64))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object defines the SONET or SDH section trace bytes 
        to be expected at the interface.

        The default value of this object will be a zero length  
        string."
    ::= { cmPhySonetSectionTraceEntry 2 }
   
-- MIB Conformance Statements

ciscoMetroPhyMIBConformance OBJECT IDENTIFIER ::=
    { ciscoMetroPhyMIB 3 }

ciscoMetroPhyMIBCompliances OBJECT IDENTIFIER ::=
    { ciscoMetroPhyMIBConformance 1 }

ciscoMetroPhyMIBGroups OBJECT IDENTIFIER ::=
    { ciscoMetroPhyMIBConformance 2 }

cmPhyMIBCompliance MODULE-COMPLIANCE
    STATUS    deprecated 
    DESCRIPTION
        "The compliance statement for platforms that monitor the 
        operating status with respect to error
        counters, for the physical layer."
    MODULE -- this module
        MANDATORY-GROUPS {
            cmPhyIfGroup,
            cmPhyStatisticsGroup
        }

        GROUP cmPhySonetSectionTraceGroup
        DESCRIPTION
            "Required for entities that support SONET/SDH section
             trace."

        OBJECT        cmPhyIfMode
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required if only one mode is
            supported."

        OBJECT        cmPhyIfProtocol
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple protocols are supported on the interface."

        OBJECT        cmPhyIfClockRate
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple clock rates are supported on the interface."

        OBJECT        cmPhyIfMonitor
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfOFC
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

    ::= { ciscoMetroPhyMIBCompliances 1 }

cmPhyMIBCompliance2 MODULE-COMPLIANCE
    STATUS   deprecated 
    DESCRIPTION
        "The compliance statement for platforms that monitor the
        operating status with respect to error
        counters, for the physical layer."
    MODULE -- this module
        MANDATORY-GROUPS {
            cmPhyIf2Group
        }

        GROUP cmPhyCVRDErrorsGroup
        DESCRIPTION
            "Required only for entities that support code violation
            and running disparity error counters."

        GROUP cmPhyCRCErrorsGroup
        DESCRIPTION
            "Required only for entities that support 
            CRC error counters."

        GROUP cmPhyEncapFarEndPktErrorsGroup
        DESCRIPTION
            "Required only for entities that support 
            far end ingress error indication counters for Ethernet-
            encapsulated ESCON streams."

        GROUP cmPhySonetSectionTraceGroup
        DESCRIPTION
            "Required for entities that support SONET/SDH section
             trace."

        OBJECT        cmPhyIfMode
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required if only one mode is
            supported."

        OBJECT        cmPhyIfProtocol
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple protocols are supported on the interface."

        OBJECT        cmPhyIfClockRate
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple clock rates are supported on the interface."

        OBJECT        cmPhyIfMonitor
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfOFC
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

    ::= { ciscoMetroPhyMIBCompliances 2 }


cmPhyMIBCompliance3 MODULE-COMPLIANCE
    STATUS   deprecated
    DESCRIPTION
        "The compliance statement for platforms that monitor the
        operating status with respect to error
        counters, for the physical layer."
    MODULE -- this module
        MANDATORY-GROUPS {
            cmPhyIf2Group
        }

        GROUP cmPhyCVRDErrorsGroup
        DESCRIPTION
            "Required only for entities that support code violation
            and running disparity error counters."

        GROUP cmPhyCRCErrorsGroup
        DESCRIPTION
            "Required only for entities that support
            CRC error counters."

        GROUP cmPhyEncapFarEndPktErrorsGroup
        DESCRIPTION
            "Required only for entities that support
            far end ingress error indication counters for Ethernet-
            encapsulated ESCON streams."

        GROUP cmPhySonetSectionTraceGroup
        DESCRIPTION
            "Required for entities that support SONET/SDH section
             trace."

        GROUP cmPhyIfTxBufferSizeGroup
        DESCRIPTION
            "Required for entities that support control of transmit
             buffer size."

        OBJECT        cmPhyIfMode
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required if only one mode is
            supported."

        OBJECT        cmPhyIfProtocol
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple protocols are supported on the interface."

        OBJECT        cmPhyIfClockRate
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple clock rates are supported on the interface."

        OBJECT        cmPhyIfMonitor
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfOFC
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfTxBufferSize
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

    ::= { ciscoMetroPhyMIBCompliances 3 }


cmPhyMIBComplianceRev4 MODULE-COMPLIANCE
    STATUS   deprecated
    DESCRIPTION
        "The compliance statement for platforms that monitor the
        operating status with respect to error
        counters, for the physical layer."
    MODULE -- this module
        MANDATORY-GROUPS {
            cmPhyIf2Group
        }

        GROUP cmPhyCVRDErrorsGroup
        DESCRIPTION
            "Required only for entities that support code violation
            and running disparity error counters."

        GROUP cmPhyCRCErrorsGroup
        DESCRIPTION
            "Required only for entities that support
            CRC error counters."

        GROUP cmPhyEncapFarEndPktErrorsGroup
        DESCRIPTION
            "Required only for entities that support
            far end ingress error indication counters for Ethernet-
            encapsulated ESCON streams."

        GROUP cmPhySonetSectionTraceGroup
        DESCRIPTION
            "Required for entities that support SONET/SDH section
             trace."

        GROUP cmPhyIfTxBufferSizeGroup
        DESCRIPTION
            "Required for entities that support control of transmit
             buffer size."

        GROUP cmPhyIfAutoNegGroup
        DESCRIPTION
            "Required for entities that support auto negotiation
             on the client interface."

        OBJECT        cmPhyIfMode
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required if only one mode is
            supported."

        OBJECT        cmPhyIfProtocol
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple protocols are supported on the interface."

        OBJECT        cmPhyIfClockRate
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple clock rates are supported on the interface."

        OBJECT        cmPhyIfMonitor
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfOFC
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfTxBufferSize
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfAutoNegotiation
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

    ::= { ciscoMetroPhyMIBCompliances 4 }



cmPhyMIBComplianceRev5 MODULE-COMPLIANCE
    STATUS   current
    DESCRIPTION
        "The compliance statement for platforms that monitor the
        operating status with respect to error
        counters, for the physical layer."
    MODULE -- this module
        MANDATORY-GROUPS {
            cmPhyIf2Group
        }

        GROUP cmPhyCVRDErrorsGroup
        DESCRIPTION
            "Required only for entities that support code violation
            and running disparity error counters."

        GROUP cmPhyCRCErrorsGroup
        DESCRIPTION
            "Required only for entities that support
            CRC error counters."

        GROUP cmPhyEncapFarEndPktErrorsGroup
        DESCRIPTION
            "Required only for entities that support
            far end ingress error indication counters for Ethernet-
            encapsulated ESCON streams."

        GROUP cmPhySonetSectionTraceGroup
        DESCRIPTION
            "Required for entities that support SONET/SDH section
             trace."

        GROUP cmPhyIfTxBufferSizeGroup
        DESCRIPTION
            "Required for entities that support control of transmit
             buffer size."

        GROUP cmPhyIfAutoNegGroup
        DESCRIPTION
            "Required for entities that support auto negotiation
             on the client interface."

        GROUP cmPhyIfGroupSup1
        DESCRIPTION
            "Required for entities that have different transmission 
             types on the client interface."

        OBJECT        cmPhyIfMode
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required if only one mode is
            supported."

        OBJECT        cmPhyIfProtocol
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple protocols are supported on the interface."

        OBJECT        cmPhyIfClockRate
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is required only when 3R mode is supported
            and multiple clock rates are supported on the interface."

        OBJECT        cmPhyIfMonitor
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfOFC
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfTxBufferSize
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT        cmPhyIfAutoNegotiation
        MIN-ACCESS    read-only
        DESCRIPTION
            "Write access is not required."

    ::= { ciscoMetroPhyMIBCompliances 5 }


--
-- units of conformance
--

cmPhyIfGroup OBJECT-GROUP
    OBJECTS {
        cmPhyIfMode,
        cmPhyIfProtocol,
        cmPhyIfClockRate,
        cmPhyIfMonitor,
        cmPhyIfLoopback,
        cmPhyIfOFC,
        cmPhyIfLaserSafetyControl,
        cmPhyIfForwardLaserControl
    }
    STATUS deprecated 
    DESCRIPTION
        "The collection of objects to allow configurations and give
        information related to the physical layer characteristics
        of an interface."
    ::= { ciscoMetroPhyMIBGroups 1 }

cmPhyStatisticsGroup OBJECT-GROUP
    OBJECTS {
        cmPhyRxPower,
        cmPhyRxCVRD,
        cmPhyRxCVRDOverflow,
        cmPhyHCRxCVRD,
        cmPhyRxHEC,
        cmPhyRxHECOverflow,
        cmPhyHCRxHEC
    }
    STATUS   deprecated
    DESCRIPTION
        "The collection of objects used to monitor the protocol
        error counters on the client side and the power level
        received on the trunk side."
    ::= { ciscoMetroPhyMIBGroups 2 }

cmPhySonetSectionTraceGroup OBJECT-GROUP
    OBJECTS {
        cmPhySonetSectionTraceReceived,
        cmPhySonetSectionTraceExpected
    }
    STATUS current
    DESCRIPTION
        "The objects used for monitoring the SONET section 
        trace bytes."
    ::= { ciscoMetroPhyMIBGroups 3 }

cmPhyIf2Group OBJECT-GROUP
    OBJECTS {
        cmPhyIfMode,
        cmPhyIfProtocol,
        cmPhyIfClockRate,
        cmPhyIfMonitor,
        cmPhyIfLoopback,
        cmPhyIfOFC
    }
    STATUS current
    DESCRIPTION
        "The collection of objects to allow configurations and give
        information related to the physical layer characteristics
        of an interface."
    ::= { ciscoMetroPhyMIBGroups 4 }

cmPhyCVRDErrorsGroup OBJECT-GROUP
    OBJECTS {
        cmPhyRxCVRD,
        cmPhyRxCVRDOverflow,
        cmPhyHCRxCVRD
    }
    STATUS  current
    DESCRIPTION
        "The collection of objects used to monitor the code violation
        and running disparity error counters."
    ::= { ciscoMetroPhyMIBGroups 5 }

cmPhyCRCErrorsGroup OBJECT-GROUP
    OBJECTS {
        cmPhyRxCRC,
        cmPhyRxCRCOverflow,
        cmPhyHCRxCRC
    }
    STATUS  current
    DESCRIPTION
        "The collection of objects used to monitor CRC 
        error counters."
    ::= { ciscoMetroPhyMIBGroups 6 }

cmPhyEncapFarEndPktErrorsGroup OBJECT-GROUP
    OBJECTS {
        cmPhyTxEncapFarEndPktErrors,
        cmPhyTxEncapFarEndPktErrOverflow,
        cmPhyHCTxEncapFarEndPktErrors
    }
    STATUS  current
    DESCRIPTION
        "The collection of objects used to monitor the 
        far end ingress error indication counters for Ethernet-
        encapsulated ESCON streams."
    ::= { ciscoMetroPhyMIBGroups 7 }

cmPhyIfTxBufferSizeGroup OBJECT-GROUP
    OBJECTS {
        cmPhyIfTxBufferSize
    }
    STATUS  current
    DESCRIPTION
        "The collection of objects used to control size of
        transmit buffer."
    ::= { ciscoMetroPhyMIBGroups 8 }

cmPhyIfAutoNegGroup OBJECT-GROUP
    OBJECTS {
        cmPhyIfAutoNegotiation
    }
    STATUS  current
    DESCRIPTION
        "The collection of objects used to control auto
        negotiation behavior."
    ::= { ciscoMetroPhyMIBGroups 9 }

cmPhyIfGroupSup1 OBJECT-GROUP
    OBJECTS {
        cmPhyIfTransType
    }
    STATUS current
    DESCRIPTION
        "The object that gives information related to transmission 
         types on the client interface."
    ::= { ciscoMetroPhyMIBGroups 10 }


END
