LUM-IFSONET-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DateAndTime
        FROM SNMPv2-TC
    lumModules, lumIfSonetMIB
        FROM LUM-REG
    Unsigned32WithNA, SignalStatusWithNA, FaultStatusWithNA,
    DisplayStringWithNA, MgmtNameString, EnabledDisabledWithNA
        FROM LUM-TC;

lumIfSonetMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201706150000Z" -- June 15th 2017
    ORGANIZATION
        "Infinera Corporation"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "The MIB module for management of sonet parameters on port objects.


        This module describes the section and line sections in Sonet.

        References are referring to GR-253-CORE Telecordia Technologies
        Generic Requirement document, Issue 5 (Oct 2009).

        The tables contained in this MIB are:

        (1) The General group contains some general attributes as time stamps
            and tables sizes.

        (2) The section group contains information and
            configuration for the Sonet section.

        (3) The line group contains information and
            configuration for the Sonet line.

"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201501230000Z" -- January 23rd 2015
    DESCRIPTION
        "Changes made for release r24:
        - Added Section Tx LOF alarm."
    REVISION
        "201405160000Z" -- May 16th 2014
    DESCRIPTION
        "Changes made for release r23:
        - Changed board name from tp10gotn to tphex10gotn.
        - Added tpmrHL16G board"
    REVISION
        "201311150000Z" -- November 15th 2013
    DESCRIPTION
        "Changes made for release r22:
        - Added tp10gotn board."
    REVISION
        "201305010000Z" -- May 1st 2013
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 53 }


-- ----------------------------------------------------
-- Compliance area, containing groups and compliance
-- specifications.
-- ----------------------------------------------------

lumIfSonetConfs OBJECT IDENTIFIER ::= { lumIfSonetMIB 1 }
lumIfSonetGroups OBJECT IDENTIFIER ::= { lumIfSonetConfs 1 }
lumIfSonetCompl OBJECT IDENTIFIER ::= { lumIfSonetConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the IFSONET MIB
-- ----------------------------------------------------

lumIfSonetMIBObjects OBJECT IDENTIFIER ::= { lumIfSonetMIB 2 }


-- ----------------------------------------------------
-- This MIB contains the following groups:
-- ----------------------------------------------------

ifSonetGeneral OBJECT IDENTIFIER ::= { lumIfSonetMIBObjects 1 }
ifSonetSectionList OBJECT IDENTIFIER ::= { lumIfSonetMIBObjects 2 }
ifSonetLineList OBJECT IDENTIFIER ::= { lumIfSonetMIBObjects 3 }
ifSonetStsList OBJECT IDENTIFIER ::= { lumIfSonetMIBObjects 4 }
ifSonetStsSpeList OBJECT IDENTIFIER ::= { lumIfSonetMIBObjects 5 }

-- ----------------------------------------------------
-- General group
-- ----------------------------------------------------

ifSonetGeneralConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the MIB was
        last changed.

"
    ::= { ifSonetGeneral 1 }

ifSonetGeneralStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of the
	MIB was last changed.

"
    ::= { ifSonetGeneral 2 }

ifSonetGeneralIfSonetSectionTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of section table.

"
    ::= { ifSonetGeneral 3 }

ifSonetGeneralIfSonetSectionConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the table was
        last changed.

"
    ::= { ifSonetGeneral 4 }

ifSonetGeneralIfSonetSectionStateLastChangeTime OBJECT-TYPE
   SYNTAX      DateAndTime
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
       "The time when the state and/or configuration of the
       table was last changed.

"
   ::= { ifSonetGeneral 5 }

ifSonetGeneralIfSonetLineTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of line table

"
    ::= { ifSonetGeneral 6 }

ifSonetGeneralIfSonetLineConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the table was
        last changed.

"
    ::= { ifSonetGeneral 7 }

ifSonetGeneralIfSonetLineStateLastChangeTime OBJECT-TYPE
   SYNTAX      DateAndTime
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
       "The time when the state and/or configuration of the
       table was last changed.

"
   ::= { ifSonetGeneral 8 }

-- ----------------------------------------------------
-- SONET SECTION group
-- ----------------------------------------------------

ifSonetSectionTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfSonetSectionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The section group contains information and
         configuration for the section."

    ::= { ifSonetSectionList 1 }

ifSonetSectionEntry OBJECT-TYPE
    SYNTAX      IfSonetSectionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifSonet section list.

"
    INDEX { ifSonetSectionIndex }
    ::= { ifSonetSectionTable 1 }

IfSonetSectionEntry ::=
    SEQUENCE {
        ifSonetSectionIndex                       Unsigned32,
        ifSonetSectionName                        MgmtNameString,
        ifSonetSectionConnIfBasicIfIndex          Unsigned32WithNA,
        ifSonetSectionOhTransparencyBitmask       Unsigned32WithNA,
        ifSonetSectionTraceTransmitted            DisplayStringWithNA,
        ifSonetSectionTraceReceived               DisplayStringWithNA,
        ifSonetSectionTraceExpected               DisplayStringWithNA,
        ifSonetSectionTraceAlarmMode              EnabledDisabledWithNA,
        ifSonetSectionTxSignalStatus              SignalStatusWithNA,
        ifSonetSectionRxSignalStatus              SignalStatusWithNA,
        ifSonetSectionTraceMismatch               FaultStatusWithNA,
        ifSonetSectionLossOfFrame                 FaultStatusWithNA,
        ifSonetSectionTxLossOfFrame               FaultStatusWithNA }

ifSonetSectionIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifSonetSectionEntry 1 }

ifSonetSectionName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the Sonet section, for example
        'section:1:2:1-2', where the first number indicates
        subrack, the second slot number and the third/fourth
        are the physical port numbers.

"
    ::= { ifSonetSectionEntry 2 }

ifSonetSectionConnIfBasicIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index that describes to which index in ifBasicIf table
        this object is related.

"
    ::= { ifSonetSectionEntry 3 }

ifSonetSectionOhTransparencyBitmask   OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The OH transparency bitmask.
          Bits:
          B1     = 0x01
          E1     = 0x02
          F1     = 0x04
          D1-D3  = 0x08
          J0     = 0x10

"
    DEFVAL { 0 }
    ::= { ifSonetSectionEntry 4 }

ifSonetSectionTraceTransmitted   OBJECT-TYPE
    SYNTAX      DisplayStringWithNA (SIZE(0..63))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The trace to be transmitted from this interface.

         Default value:	<IP address>:<subrack>:<slot>:<port>
	 Note that only the last part of the address is used.

         The trace _notApplicable_ is used to tell SNMP clients that
         attribute is not used in current configuration.

"
    ::= { ifSonetSectionEntry 5 }

ifSonetSectionTraceReceived OBJECT-TYPE
    SYNTAX      DisplayStringWithNA (SIZE(0..63))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The received trace for this interface.

         The trace _notApplicable_ is used to tell SNMP clients that
         attribute is not used in current configuration.

         The trace _notAvailable_ is used to tell SNMP clients that
         attribute is not possible to read at the moment.

"
    ::= { ifSonetSectionEntry 6 }

ifSonetSectionTraceExpected OBJECT-TYPE
    SYNTAX      DisplayStringWithNA (SIZE(0..63))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Trace used for matching against the received trace.

         The trace _notApplicable_ is used to tell SNMP clients that
         attribute is not used in current configuration.

"
    DEFVAL { "" }
    ::= { ifSonetSectionEntry 7 }

ifSonetSectionTraceAlarmMode OBJECT-TYPE
    SYNTAX      EnabledDisabledWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Controls if the trace identifier mismatch alarm
        should be raised if received trace and expected trace
        differs.

        disabled - The alarm is disabled.

        enabled - The alarm is raised if expected trace identifier
        differs from the received trace identifier.

"
    DEFVAL { disabled }
    ::= { ifSonetSectionEntry 8 }

ifSonetSectionTxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for outgoing (TX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifSonetSectionEntry 9 }

ifSonetSectionRxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for incoming (RX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifSonetSectionEntry 10 }

ifSonetSectionTraceMismatch OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Trace identifier mismatch (TIM).

        Indicates if the expected trace identifier differs from the
        received trace identifier.

        Reference: GR-253/6.2.1.1.9.

        alarm: The received trace identifier differs from
        the expected trace identifier.

        ok: The identifiers match.

"
    ::= { ifSonetSectionEntry 11 }

ifSonetSectionLossOfFrame OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Rx Section-Loss of frame (LOF).

        Reference: GR-253/6.2.1.1.2

        alarm: A SECTION frame cannot be located.

        ok: A SECTION frame can be located.

"
    ::= { ifSonetSectionEntry 12 }

ifSonetSectionTxLossOfFrame OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Tx Section-Loss of frame (LOF).

        Reference: GR-253/6.2.1.1.2

        alarm: A SECTION frame cannot be located.

        ok: A SECTION frame can be located.

"
    ::= { ifSonetSectionEntry 13 }

-- ----------------------------------------------------
-- SONET LINE group
-- ----------------------------------------------------

ifSonetLineTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfSonetLineEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The line group contains information and
         configuration for the line overhead."

    ::= { ifSonetLineList 1 }

ifSonetLineEntry OBJECT-TYPE
    SYNTAX      IfSonetLineEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifSonet line list.
"

    INDEX { ifSonetLineIndex }
    ::= { ifSonetLineTable 1 }

IfSonetLineEntry ::=
    SEQUENCE {
        ifSonetLineIndex                       Unsigned32,
        ifSonetLineName                        MgmtNameString,
        ifSonetLineConnIfBasicIfIndex          Unsigned32WithNA,
        ifSonetLineOhTransparencyBitmask       Unsigned32WithNA,
        ifSonetLineTxSignalStatus              SignalStatusWithNA,
        ifSonetLineRxSignalStatus              SignalStatusWithNA,
        ifSonetLineRxAlarmIndicationSignal     FaultStatusWithNA,
        ifSonetLineRemoteDefectIndication      FaultStatusWithNA,
        ifSonetLineTxAlarmIndicationSignal     FaultStatusWithNA }

ifSonetLineIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifSonetLineEntry 1 }

ifSonetLineName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the Sonet line, for example
        'line:1:2:1-2', where the first number indicates
        subrack, the second slot number and the third/fourth
        are the physical port numbers.

"
    ::= { ifSonetLineEntry 2 }

ifSonetLineConnIfBasicIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index that describes to which index in ifBasicIf table
        this object is related.

"
    ::= { ifSonetLineEntry 3 }

ifSonetLineOhTransparencyBitmask   OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION

         "The OH transparency bitmask.
          Bits:
          B2     = 0x01
          E2     = 0x02
          D4-D12 = 0x04
          K1-K2  = 0x08

"
    DEFVAL { 0 }
    ::= { ifSonetLineEntry 4 }

ifSonetLineTxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for outgoing (TX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifSonetLineEntry 5 }

ifSonetLineRxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for incoming (RX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifSonetLineEntry 6 }

ifSonetLineRxAlarmIndicationSignal OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Rx Line alarm indication signal (AIS).

        Reference: GR-253/6.2.1.2.1

        alarm: An line AIS signal is detected.

        ok: The line AIS is cleared.

"
    ::= { ifSonetLineEntry 7 }

ifSonetLineRemoteDefectIndication OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Rx Line remote defect indication (RDI).

        Reference: GR-253/6.2.1.3

        alarm: RDI indication (in frame) active.

        ok: RDI indication inactive.

"
    ::= { ifSonetLineEntry 8 }

ifSonetLineTxAlarmIndicationSignal OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Tx Line alarm indication signal (AIS).

        Reference: GR-253/6.2.1.2.1

        alarm: An line AIS signal is detected.

        ok: The line AIS is cleared.

"
    ::= { ifSonetLineEntry 9 }

-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------


-- ----------------------------------------------------
-- Object and event groups
-- ----------------------------------------------------

ifSonetGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        ifSonetGeneralConfigLastChangeTime,
        ifSonetGeneralStateLastChangeTime,
        ifSonetGeneralIfSonetSectionTableSize,
        ifSonetGeneralIfSonetSectionConfigLastChangeTime,
        ifSonetGeneralIfSonetSectionStateLastChangeTime,
        ifSonetGeneralIfSonetLineTableSize,
        ifSonetGeneralIfSonetLineConfigLastChangeTime,
        ifSonetGeneralIfSonetLineStateLastChangeTime }

    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumIfSonetGroups 1 }

ifSonetSectionGroupV1 OBJECT-GROUP
    OBJECTS {
        ifSonetSectionIndex,
        ifSonetSectionName,
        ifSonetSectionConnIfBasicIfIndex,
        ifSonetSectionOhTransparencyBitmask,
        ifSonetSectionTraceTransmitted,
        ifSonetSectionTraceReceived,
        ifSonetSectionTraceExpected,
        ifSonetSectionTraceAlarmMode,
        ifSonetSectionTxSignalStatus,
        ifSonetSectionRxSignalStatus,
        ifSonetSectionTraceMismatch,
        ifSonetSectionLossOfFrame }

    STATUS      deprecated
    DESCRIPTION
        "The ifSonet SECTION objects (R20.0)."
    ::= { lumIfSonetGroups 2 }

ifSonetLineGroupV1 OBJECT-GROUP
    OBJECTS {
        ifSonetLineIndex,
        ifSonetLineName,
        ifSonetLineConnIfBasicIfIndex,
        ifSonetLineOhTransparencyBitmask,
        ifSonetLineTxSignalStatus,
        ifSonetLineRxSignalStatus,
        ifSonetLineRxAlarmIndicationSignal,
        ifSonetLineRemoteDefectIndication }

    STATUS      deprecated
    DESCRIPTION
        "The ifSonet LINE objects (R20.0)."
    ::= { lumIfSonetGroups 3 }

ifSonetLineGroupV2 OBJECT-GROUP
    OBJECTS {
        ifSonetLineIndex,
        ifSonetLineName,
        ifSonetLineConnIfBasicIfIndex,
        ifSonetLineOhTransparencyBitmask,
        ifSonetLineTxSignalStatus,
        ifSonetLineRxSignalStatus,
        ifSonetLineRxAlarmIndicationSignal,
        ifSonetLineRemoteDefectIndication,
        ifSonetLineTxAlarmIndicationSignal }

    STATUS      current
    DESCRIPTION
        "The ifSonet LINE objects (R24.0)."
    ::= { lumIfSonetGroups 4 }

ifSonetSectionGroupV2 OBJECT-GROUP
    OBJECTS {
        ifSonetSectionIndex,
        ifSonetSectionName,
        ifSonetSectionConnIfBasicIfIndex,
        ifSonetSectionOhTransparencyBitmask,
        ifSonetSectionTraceTransmitted,
        ifSonetSectionTraceReceived,
        ifSonetSectionTraceExpected,
        ifSonetSectionTraceAlarmMode,
        ifSonetSectionTxSignalStatus,
        ifSonetSectionRxSignalStatus,
        ifSonetSectionTraceMismatch,
        ifSonetSectionLossOfFrame,
        ifSonetSectionTxLossOfFrame }

    STATUS      current
    DESCRIPTION
        "The ifSonet SECTION objects (R24.0)."
    ::= { lumIfSonetGroups 5 }

-- ----------------------------------------------------
-- Compliance
-- ----------------------------------------------------

lumIfSonetComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the ifSonet MIB. (R20.0)"
    MODULE
        MANDATORY-GROUPS {
            ifSonetGeneralGroupV1,
            ifSonetSectionGroupV1,
            ifSonetLineGroupV1 }
    ::= { lumIfSonetCompl 1 }

lumIfSonetComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the ifSonet MIB. (R24.0)"
    MODULE
        MANDATORY-GROUPS {
            ifSonetGeneralGroupV1,
            ifSonetSectionGroupV1,
            ifSonetLineGroupV2 }
    ::= { lumIfSonetCompl 2 }

lumIfSonetComplV3 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the ifSonet MIB. (R24.0)"
    MODULE
        MANDATORY-GROUPS {
            ifSonetGeneralGroupV1,
            ifSonetSectionGroupV2,
            ifSonetLineGroupV2 }
    ::= { lumIfSonetCompl 3 }

END

