-- *****************************************************************
-- CISCO-OPTICAL-IF-EXTN-MIB.my: Cisco optical IF extension MIB file
--
-- May 2002, Suresh Basavarajappa, Mickey Spiegel and Sameer Merchant
--
-- Copyright (c) 2001, 2002, 2003, 2004 by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************

CISCO-OPTICAL-IF-EXTN-MIB DEFINITIONS ::= BEGIN

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

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

                     Postal: 170 W Tasman Drive
                     San Jose, CA  95134
                     USA

                     Tel: +1 800 553-NETS

                     E-mail: cs-dwdm@cisco.com"

    DESCRIPTION
        "A MIB module containing extensions to the IF-MIB for optical
        interfaces."
    REVISION           "200411190000Z"
    DESCRIPTION
        "This revision adds 'sonetPhy' and 'multiRate' enumeration to 
        coIfTypeExtn object.
        "
    REVISION           "200312290000Z"
    DESCRIPTION
        "This revision adds 'twoGigabitPhy' enumeration to 
        coIfTypeExtn object.
        "
    REVISION           "200205230000Z"
    DESCRIPTION
        "This revision adds a new table coIfXcvrTable to
        control transceivers (lasers and optical receivers) 
        at optoelectronic interfaces. It also defines three new 
        code points, ethernetPhy, esconPhy and gigabitPhy
        for the coIfTypeExtn object. 
        "
    REVISION           "200104200000Z"
    DESCRIPTION
        "Initial version of this MIB."
    ::= { ciscoExperiment 66 }

coIfExtnMIBObjects OBJECT IDENTIFIER
                                ::= { ciscoOpticalIfExtnMIB 1 }
coIfTypeExtnGroup OBJECT IDENTIFIER
                                ::= { coIfExtnMIBObjects 1 }
coIfWavelengthGroup OBJECT IDENTIFIER
                                ::= { coIfExtnMIBObjects 2 }
coIfDwdmChannelGroup OBJECT IDENTIFIER
                                ::= { coIfExtnMIBObjects 3 }
coIfXcvrGroup OBJECT IDENTIFIER
                                ::= { coIfExtnMIBObjects 4 }

-- Textual Conventions

CoDwdmFrequency ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The nominal central frequency of one channel in a DWDM system,
        in GHz."
    SYNTAX      Unsigned32 (1..1000000)

CoDwdmFrequencyOrZero ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The nominal central frequency of one channel in a DWDM system,
        in GHz, or zero.  The value zero either indicates that the
        frequency is unknown, or indicates that this channel is
        uncolored."
    SYNTAX      Unsigned32 (0..1000000)

-- Optical Interface Type Extension Table

coIfTypeExtnTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CoIfTypeExtnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains extensions to the ifType object defined in
        the IF-MIB for optical interfaces."
    ::= { coIfTypeExtnGroup 1 }

coIfTypeExtnEntry OBJECT-TYPE
    SYNTAX      CoIfTypeExtnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains extensions to the ifType object defined in
        the IF-MIB for one optical interface."
    INDEX { ifIndex }
    ::= { coIfTypeExtnTable 1 }

CoIfTypeExtnEntry ::=
    SEQUENCE {
        coIfTypeExtn              INTEGER
    }

coIfTypeExtn OBJECT-TYPE
    SYNTAX      INTEGER {
                    opticalTransponder(1),
                    wdmTransport(2),
                    wdmChannel(3),
                    wdmChannelGroup(4),
                    wavelengthTransport(5),
                    ethernetPhy(6),
                    esconPhy(7),
                    gigabitPhy(8),
                    twoGigabitPhy(9),
                    sonetPhy(10),
                    multiRate(11)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the type of an optical interface, when
        the type is not specified in the ifType object in the IF-MIB,
        i.e., when the ifType object is set to 'other'.

        The value 'opticalTransponder' represents an optoelectronic
        interface that relays signals of various physical layer
        protocols.  The interface may be capable of pulse shaping and
        retiming.  The interface may be capable of monitoring various
        physical layer protocols.  The interface may emit signals
        that are colored (e.g. one channel in a DWDM system) or
        uncolored (i.e., for single channel interfaces).

        The value 'wdmTransport' indicates an optical interface that
        carries multiple wavelengths.

        The value 'wdmChannel' indicates an interface sub-layer above
        'wdmTransport' representing a single wavelength.

        The value 'wdmChannelGroup' indicates an interface sub-layer
        above 'wdmTransport' representing a wavelength division
        multiplexed group of wavelengths.

        The value 'wavelengthTransport' indicates an optical interface
        that carries a single wavelength.

        The value 'ethernetPhy' indicates an interface that implements
        the physical layer of the Ethernet protocol.

        The value 'esconPhy' indicates an interface that implements the
        physical layer of ESCON.

        The value 'gigabitPhy' indicates an interface that supports the
        physical layers of both Gigabit Ethernet and Fibre Channel.

        The value 'twoGigabitPhy' indicates an interface that supports 
        the physical layer of 1x and 2x Fibre Channel.

        The value 'sonetPhy' indicates an interface that carries the
        trunk side traffic of eight port multirate muxponder

        The value 'multiRate' indicates an interface that supports 
        client protocols of eight port multirate muxponder ."

    ::= { coIfTypeExtnEntry 1 }

-- Optical Interface Wavelength Table

coIfWavelengthTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CoIfWavelengthEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains wavelength information for optical
        interfaces."
    ::= { coIfWavelengthGroup 1 }

coIfWavelengthEntry OBJECT-TYPE
    SYNTAX      CoIfWavelengthEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains wavelength information for one optical
        interface."
    INDEX { ifIndex }
    ::= { coIfWavelengthTable 1 }

CoIfWavelengthEntry ::=
    SEQUENCE {
        coIfDwdmFrequency         CoDwdmFrequency
    }

coIfDwdmFrequency OBJECT-TYPE
    SYNTAX      CoDwdmFrequency
    UNITS       "GHz"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The nominal central frequency associated with this interface,
        in GHz.

        This object is instantiated for interfaces with
        coIfTypeExtn value of 'wdmChannel' and
        'wavelengthTransport'.  This object may also be instantiated
        for optoelectronic interfaces that originate or terminate
        DWDM wavelengths, including some of the interfaces with
        coIfTypeExtn value of 'opticalTransponder'."
    ::= { coIfWavelengthEntry 1 }

-- DWDM Channel Group Table

coIfDwdmChannelGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CoIfDwdmChannelGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains information about interfaces representing
        groups of DWDM channels.  This includes interfaces with
        coIfTypeExtn value of 'wdmChannelGroup'."
    ::= { coIfDwdmChannelGroup 3 }

coIfDwdmChannelGroupEntry OBJECT-TYPE
    SYNTAX      CoIfDwdmChannelGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains information about one interface that
        represents a group of DWDM channels.  The group can be
        described as a specified set of DWDM frequencies, or as the
        group of all DWDM frequencies except for those in a specified
        set.

        If a frequency is included in a DWDM channel group, this does
        not necessarily indicate that there is a signal present at that
        frequency.  It indicates that if a signal is present at that
        frequency, then that signal is included in this DWDM channel
        group."
    INDEX { ifIndex }
    ::= { coIfDwdmChannelGroupTable 1 }

CoIfDwdmChannelGroupEntry ::=
    SEQUENCE {
        coIfDwdmChannelGroupMinFrequency    CoDwdmFrequency,
        coIfDwdmChannelGroupSpacing         Unsigned32,
        coIfDwdmChannelGroupBitmapLogic     INTEGER,
        coIfDwdmChannelGroupBitmap          OCTET STRING
    }

coIfDwdmChannelGroupMinFrequency OBJECT-TYPE
    SYNTAX      CoDwdmFrequency
    UNITS       "GHz"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The lowest frequency represented in the bitmap specified in
        coIfDwdmChannelGroupBitmap, i.e., the frequency represented by
        bit 0 of octet 1 of coIfDwdmChannelGroupBitmap."
    ::= { coIfDwdmChannelGroupEntry 1 }

coIfDwdmChannelGroupSpacing OBJECT-TYPE
    SYNTAX      Unsigned32 (1..1000)
    UNITS       "GHz"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The difference in frequency between successive bits in
        coIfDwdmChannelGroupBitmap.  This is typically the frequency
        difference between adjacent channels in the DWDM system."
    ::= { coIfDwdmChannelGroupEntry 2 }

coIfDwdmChannelGroupBitmapLogic OBJECT-TYPE
    SYNTAX      INTEGER {
                    carried(1),
                    blocked(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether coIfDwdmChannelGroupBitmap
        identifies channels included in the channel group, or whether
        it identifies channels excluded from the channel group.

        When the value of this object is 'carried', then the channel
        group is composed only of those channels for which the value of
        the corresponding bit in coIfDwdmChannelBitmap is one.

        When the value of this object is 'blocked', then the channel
        group is composed of all channels except those for which the
        value of the corresponding bit in coIfDwdmChannelBitmap is
        one.  Channels that are not identified in coIfDwdmChannelBitmap
        are included in the channel group."
    ::= { coIfDwdmChannelGroupEntry 3 }

coIfDwdmChannelGroupBitmap OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The DWDM channel bitmap that indicates those channels that
        are included or excluded (depending on the value of
        coIfDwdmChannelBitmapLogic) from the DWDM channel group.

        If a frequency is included in a DWDM channel group, this does
        not necessarily indicate that there is a signal present at that
        frequency.  It indicates that if a signal is present at that
        frequency, then that signal is included in this DWDM channel
        group.

        Bit zero of octet one corresponds to the lowest channel
        (representing the frequency identified by
        coIfDwdmChannelGroupMinFrequency), bit one of octet one
        corresponds to the lowest plus one channel (representing
        the frequency obtained by adding the values of
        coIfDwdmChannelGroupMinFrequency and
        coIfDwdmChannelGroupSpacing), and so on.

        When the value of coIfDwdmChannelBitmapLogic is 'carried',
        then channels included in the channel group will have the
        corresponding bit set to one in the bitmap.  Bits that are set
        to zero represent channels that are excluded from the channel
        group.  Channels that are not represented in the bitmap are
        also excluded from the channel group.

        When the value of coIfDwdmChannelBitmapLogic is 'blocked',
        then channels excluded from the channel group will have the
        corresponding bit set to one in the bitmap.  Bits that are set
        to zero represent channels that are included in the channel
        group.  Channels that are not represented in the bitmap are
        also included in the channel group."
    ::= { coIfDwdmChannelGroupEntry 4 }

-- Optical Interface Transceiver Table

coIfXcvrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CoIfXcvrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to control transceivers (lasers
        and optical receivers) at optoelectronic interfaces."
    ::= { coIfXcvrGroup 1 }

coIfXcvrEntry OBJECT-TYPE
    SYNTAX      CoIfXcvrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains objects for control of a transceiver at an
        optoelectronic interface."
    INDEX { ifIndex }
    ::= { coIfXcvrTable 1 }

CoIfXcvrEntry ::=
    SEQUENCE {
        coIfXcvrLaserAdminStatus             INTEGER,
        coIfXcvrLaserOperStatus              INTEGER,
        coIfXcvrMinLaserFrequency            CoDwdmFrequencyOrZero,
        coIfXcvrLaserFrequencySpacing        Unsigned32,
        coIfXcvrLaserFrequencyBitmap         OCTET STRING,
        coIfXcvrForwardLaserControl          INTEGER,
        coIfXcvrLaserSafetyControl           INTEGER,
        coIfXcvrLSCProtocol                  INTEGER,
        coIfXcvrLSCRestartMode               INTEGER,
        coIfXcvrLSCManualRestart             INTEGER,
        coIfXcvrLSCPulseLength               Unsigned32,
        coIfXcvrLSCTestPulseLength           Unsigned32,
        coIfXcvrLSCPulseRepetitionTime       Unsigned32
    }

coIfXcvrLaserAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                up(1),
                down(2)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The desired state of the laser on this interface.

        This object differs from ifAdminStatus in the IF-MIB, since
        in some cases setting ifAdminStatus to 'down' causes an alarm
        indication to be transmitted, rather than shutting down the
        laser.  When this object is set to 'down', ifOperStatus in the
        IF-MIB goes to the 'down' state, and the laser is shut down.

        In order to administratively enable an interface, both
        ifAdminStatus in the IF-MIB and this object must be set to
        'up'."
    ::= { coIfXcvrEntry 1 }

coIfXcvrLaserOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                transmitting(1),
                degraded(2),
                down(3),
                lscDown(4),
                flcDown(5),
                unknown(6)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the current operational status of the
        laser on this interface.

        'transmitting': The laser is on.

        'degraded': The laser is on, but there is a fault that causes
            it to transmit in a degraded manner.

        'down': The laser is shut down, either because of error
            conditions or because it has been administratively
            disabled.  This state indicates that the laser is shut down
            due to conditions other than Laser Safety Control or
            Forward Laser Control.

        'lscDown': The laser is shut down due to Laser Safety Control
            (LSC) mechanisms such as Automatic Laser Shutdown (ALS),
            i.e., due to a fault in the receive direction at this
            interface.

        'flcDown': The laser is shut down due to Forward Laser Control,
            i.e., due to a fault on the cross-connected interface.

        'unknown': The operational status of the laser cannot be
            determined.

        If the value of coIfXcvrLaserAdminStatus is 'down', then this
        object also indicates 'down'.  If coIfXcvrLaserAdminStatus is
        set to 'up', then the value of this object should change to
        'transmitting' if the laser is functioning properly."
    ::= { coIfXcvrEntry 2 }

coIfXcvrMinLaserFrequency  OBJECT-TYPE
    SYNTAX      CoDwdmFrequencyOrZero
    UNITS       "GHz"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The lowest frequency represented in the bitmap specified in
        coIfXcvrLaserFrequencyBitmap, i.e., the frequency represented
        by bit 0 of octet 1 of coIfXcvrLaserFrequencyBitmap.

        A value of zero signifies that the laser on this interface is
        uncolored and that coIfXcvrLaserFrequencyBitmap does not
        apply."
    ::= { coIfXcvrEntry 3 }

coIfXcvrLaserFrequencySpacing OBJECT-TYPE
    SYNTAX      Unsigned32 (1..1000)
    UNITS       "GHz"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The difference in frequency between successive bits in
        coIfXcvrLaserFrequencyBitmap.  This is typically the frequency
        difference between adjacent channels in the DWDM system."
    ::= { coIfXcvrEntry 4 }

coIfXcvrLaserFrequencyBitmap OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This bitmap indicates the DWDM channel frequencies supported
        by the tunable laser on this interface.

        Bit zero of octet one corresponds to the lowest channel
        (representing the frequency identified by
        coIfXcvrMinLaserFrequency), bit one of octet one corresponds
        to the lowest plus one channel (representing the frequency
        obtained by adding the values of coIfXcvrMinLaserFrequency
        and coIfXcvrMinLaserFrequencySpacing), and so on.

        The frequencies supported by the tunable laser have the
        corresponding bit set to one in the bitmap.  Bits that are set
        to zero represent frequencies that are not supported by the
        tunable laser.  The frequencies that are not represented in the
        bitmap are also not supported by the tunable laser."
    ::= { coIfXcvrEntry 5 }

coIfXcvrForwardLaserControl OBJECT-TYPE
    SYNTAX      INTEGER {
                    enable(1),
                    disable(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable or disable Forward Laser Control
        (FLC) on this interface.  If Forward Laser Control is enabled,
        the laser is automatically shut down when the receive direction
        of the cross-connected interface is in an alarm condition."
    ::= { coIfXcvrEntry 6 }

coIfXcvrLaserSafetyControl OBJECT-TYPE
    SYNTAX      INTEGER {
                    enable(1),
                    disable(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable or disable Laser Safety Control
        (LSC) mechanisms such as Automatic Laser Shutdown (ALS) on this
        interface.  Laser Safety Control mechanisms are used to
        automatically shutdown the output power of laser transmitters
        when potentially hazardous conditions such as fiber breaks or
        unplugged optical connectors are detected."
    ::= { coIfXcvrEntry 7 }

coIfXcvrLSCProtocol OBJECT-TYPE
    SYNTAX      INTEGER {
                    proprietary(1),
                    g664(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the Laser Safety Control protocol that
        is applied when coIfXcvrLaserSafetyControl is set to 'enable'.

        'proprietary': Indicates that the Laser Safety Control protocol
            is proprietary.

        'g664': Indicates the Automatic Laser Shutdown (ALS) protocol
            specified in ITU-T Recommendation G.664."
    REFERENCE
        "ITU-T Recommendation G.664, Optical safety procedures and
        requirements for optical transport systems, June 1999"
    ::= { coIfXcvrEntry 8 }

coIfXcvrLSCRestartMode OBJECT-TYPE
    SYNTAX      INTEGER {
                    automaticRestart(1),
                    manualRestart(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object selects the mechanism used to restore transmission
        after the fiber has been repaired or reconnected.

        'automaticRestart': This mode selects automatic restart of the
            laser by periodically transmitting restart pulses.  The
            period between restart pulse transmissions is specified by
            coIfXcvrLSCPulseReptitionTime.

        'manualRestart': This mode selects manual restart of the laser.
            After the fiber has been repaired or reconnected, the
            coIfXcvrLSCManualRestart object should be used to trigger
            transmission of a restart pulse."
    ::= { coIfXcvrEntry 9 }

coIfXcvrLSCManualRestart OBJECT-TYPE
    SYNTAX      INTEGER {
                    noop(1),
                    restart(2),
                    restartForTest(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object initiates laser activation when the laser is shut
        down due to Laser Safety Control.

        When the value is set to 'restart', transmission of a restart
        pulse of length coIfXcvrLSCPulseLength is triggered.

        When this object is set to 'restartForTest', transmission of a
        restart pulse of length coIfXcvrLSCTestPulseLength is
        triggered.  Before setting this object to 'restartForTest',
        specific care must be taken to assure connectivity to avoid
        exposure to hazardous optical levels.

        When the value is set to 'noop', no operation is performed.
        When read, the value 'noop' is returned.

        Manual restart can only be activated when the value of
        coIfXcvrLaserOperStatus is 'lscDown'."
    ::= { coIfXcvrEntry 10 }

coIfXcvrLSCPulseLength OBJECT-TYPE
    SYNTAX      Unsigned32 (100..20000)
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the length of restart pulses used to
        restore transmission when a Laser Safety Control protocol is
        activated."
    ::= { coIfXcvrEntry 11 }

coIfXcvrLSCTestPulseLength OBJECT-TYPE
    SYNTAX      Unsigned32 (1..300)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the length of test restart pulses that
        are transmitted when coIfXcvrLSCManualRestart is set to
        'restartForTest'."
    ::= { coIfXcvrEntry 12 }

coIfXcvrLSCPulseRepetitionTime OBJECT-TYPE
    SYNTAX      Unsigned32 (1..300)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the delay interval between transmissions
        of restart pulses, when coIfXcvrLSCRestartMode is set to
        'automaticRestart' and coIfXcvrLaserOperStatus indicates
        'lscDown'."
    ::= { coIfXcvrEntry 13 }

-- conformance information

coIfExtnMIBConformance OBJECT IDENTIFIER
                                ::= { ciscoOpticalIfExtnMIB 3 }

coIfExtnMIBCompliances OBJECT IDENTIFIER
                            ::= { coIfExtnMIBConformance 1 }
coIfExtnMIBGroups OBJECT IDENTIFIER
                            ::= { coIfExtnMIBConformance 2 }

coIfExtnMIBCompliance MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "The compliance statement for the Cisco Optical Interface
        Extensions MIB."
    MODULE   -- this module
        MANDATORY-GROUPS { coIfWavelengthMIBGroup }

        GROUP       coIfTypeExtnMIBGroup
        DESCRIPTION
            "This group should be implemented only by entities
            containing interfaces whose type is not defined in the
            IANAifType textual convention."

        OBJECT      coIfDwdmFrequency
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when interfaces with tunable
            lasers or tunable filters are present.

            This object is supported by entities with interfaces that
            carry a single wavelength or frequency.  This includes
            interfaces with coIfTypeExtn value of
            'wdmChannel' and 'wavelengthTransport'.  This also includes
            optoelectronic interfaces that originate and terminate
            DWDM wavelengths, including some of the interfaces with
            coIfTypeExtn value of 'opticalTransponder'."

        GROUP       coIfDwdmChannelGroupMIBGroup
        DESCRIPTION
            "This group is required for systems supporting interfaces
            representing groups of DWDM channels.  This includes
            interfaces with coIfTypeExtn value of
            'wdmChannelGroup'."

        OBJECT      coIfDwdmChannelGroupMinFrequency
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        OBJECT      coIfDwdmChannelGroupSpacing
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        OBJECT      coIfDwdmChannelGroupBitmapLogic
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        OBJECT      coIfDwdmChannelGroupBitmap
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

    ::= { coIfExtnMIBCompliances 1 }

coIfExtnMIBCompliance2 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the Cisco Optical Interface
        Extensions MIB."
    MODULE   -- this module
        MANDATORY-GROUPS { coIfWavelengthMIBGroup }

        GROUP       coIfTypeExtnMIBGroup
        DESCRIPTION
            "This group should be implemented only by entities
            containing interfaces whose type is not defined in the
            IANAifType textual convention."

        OBJECT      coIfDwdmFrequency
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when interfaces with tunable
            lasers or tunable filters are present.

            This object is supported by entities with interfaces that
            carry a single wavelength or frequency.  This includes
            interfaces with coIfTypeExtn value of
            'wdmChannel' and 'wavelengthTransport'.  This also includes
            optoelectronic interfaces that originate and terminate
            DWDM wavelengths, including some of the interfaces with
            coIfTypeExtn value of 'opticalTransponder'."

        GROUP       coIfDwdmChannelGroupMIBGroup
        DESCRIPTION
            "This group is required for systems supporting interfaces
            representing groups of DWDM channels.  This includes
            interfaces with coIfTypeExtn value of
            'wdmChannelGroup'."

        OBJECT      coIfDwdmChannelGroupMinFrequency
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        OBJECT      coIfDwdmChannelGroupSpacing
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        OBJECT      coIfDwdmChannelGroupBitmapLogic
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        OBJECT      coIfDwdmChannelGroupBitmap
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write-access applies only when tunable or switchable
            filters are present."

        GROUP       coIfXcvrBaseMIBGroup
        DESCRIPTION
            "This group is optional."

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

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

        GROUP       coIfXcvrTunableLaserMIBGroup
        DESCRIPTION
            "This group is required for systems supporting tunable
            lasers."

        GROUP       coIfXcvrLSCMIBGroup
        DESCRIPTION
            "This group is required for systems supporting Laser Safety
            Control (LSC) mechanisms such as Automatic Laser Shutdown
            (ALS)."

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

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

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

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

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

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

    ::= { coIfExtnMIBCompliances 2 }

-- units of conformance

coIfTypeExtnMIBGroup  OBJECT-GROUP
    OBJECTS {
        coIfTypeExtn
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects providing extensions to the
        interface type information found in the IF-MIB."
    ::= { coIfExtnMIBGroups 1 }

coIfWavelengthMIBGroup  OBJECT-GROUP
    OBJECTS {
        coIfDwdmFrequency
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects providing information about
        the wavelength or frequency of optical interfaces."
    ::= { coIfExtnMIBGroups 2 }

coIfDwdmChannelGroupMIBGroup  OBJECT-GROUP
    OBJECTS {
        coIfDwdmChannelGroupMinFrequency,
        coIfDwdmChannelGroupSpacing,
        coIfDwdmChannelGroupBitmapLogic,
        coIfDwdmChannelGroupBitmap
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects providing information about
        DWDM channel groups."
    ::= { coIfExtnMIBGroups 3 }

coIfXcvrBaseMIBGroup  OBJECT-GROUP
    OBJECTS {
        coIfXcvrLaserAdminStatus,
        coIfXcvrLaserOperStatus,
        coIfXcvrForwardLaserControl
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects for control of transceivers
        (lasers and optical receivers) at optoelectronic interfaces."
    ::= { coIfExtnMIBGroups 4 }

coIfXcvrTunableLaserMIBGroup  OBJECT-GROUP
    OBJECTS {
        coIfXcvrMinLaserFrequency,
        coIfXcvrLaserFrequencySpacing,
        coIfXcvrLaserFrequencyBitmap
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects providing information about
        tunable lasers."
    ::= { coIfExtnMIBGroups 5 }

coIfXcvrLSCMIBGroup  OBJECT-GROUP
    OBJECTS {
        coIfXcvrLaserSafetyControl,
        coIfXcvrLSCProtocol,
        coIfXcvrLSCRestartMode,
        coIfXcvrLSCManualRestart,
        coIfXcvrLSCPulseLength,
        coIfXcvrLSCTestPulseLength,
        coIfXcvrLSCPulseRepetitionTime
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects for Laser Safety Control (LSC)
        mechanisms such as Automatic Laser Shutdown (ALS)."
    ::= { coIfExtnMIBGroups 6 }

END
