TN-ETH-RING-MIB DEFINITIONS ::= BEGIN

-- (c) Copyright 2019 Nokia Networks.  All rights reserved.
-- This software is the confidential and proprietary property of
-- Nokia and may only be used in accordance with the terms of the
-- license agreement provided with this software.

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        NOTIFICATION-TYPE, Unsigned32         FROM SNMPv2-SMI

        TEXTUAL-CONVENTION, RowStatus,
        TimeStamp, TruthValue, MacAddress     FROM SNMPv2-TC

        tnSRMIBModules, tnSRObjs,
        tnSRNotifyPrefix                      FROM TROPIC-GLOBAL-REG

        InterfaceIndexOrZero                  FROM IF-MIB

        tnSvcId                               FROM TN-SERV-MIB

        tnSapPortId, tnSapEncapValue          FROM TN-SAP-MIB

        TmnxAdminState, TmnxOperState,
        TmnxEncapVal, TItemDescription        FROM TN-TC-MIB

        tnSysSwitchId                         FROM TROPIC-SYSTEM-MIB
        ;

tnEthRingMIBModule MODULE-IDENTITY
        LAST-UPDATED  "201603150000Z"
        ORGANIZATION  "Nokia"
        CONTACT-INFO
             "Nokia 7x50 Support
              Web: http://www.nokia.com/comps/pages/carrier_support.jhtml"
        DESCRIPTION
        "This document is the SNMP MIB module to manage and provision the
        Ethernet Ring components of the Nokia 7x50 device.

        Copyright (c) 2009-2010 Nokia.  All rights reserved.
        Reproduction of this document is authorized on the condition that
        the foregoing copyright notice is included.

        This SNMP MIB module (Specification) embodies Nokia's
        proprietary intellectual property.  Nokia retains
        all title and ownership in the Specification, including any
        revisions.

        Nokia grants all interested parties a non-exclusive
        license to use and distribute an unmodified copy of this
        Specification in connection with management of Nokia
        products, and without fee, provided this copyright notice and
        license appear on all copies.

        This Specification is supplied 'as is', and Nokia
        makes no warranty, either express or implied, as to the use,
        operation, condition, or performance of the Specification."

--
--  Revision History
--
        REVISION        "201603150000Z"
        DESCRIPTION     "1)Added the following to tnEthRingConfigTable:
                           tnEthRingState.
                         2)Added the following to tnEthRingPathTable:
                           tnEthRingPortState."

        REVISION        "201501220000Z"
        DESCRIPTION     "Updated units of tnEthRingCcmHoldDownTime from
                         deciseconds to centiseconds."

        REVISION        "201306280000Z"
        DESCRIPTION     "Uncommented the following:
                         tnEthRingSAPPathTable."

        REVISION        "201212050000Z"
        DESCRIPTION     "Commented out unsupported MIB tables and
                         attributes for 1830."

        REVISION        "201001010000Z"
        DESCRIPTION     "Rev 1.0                01 Jan 2010 00:00
                         1.0 release of the TIMETRA-ETH-TUNNEL-MIB."

        ::= { tnSRMIBModules 72 }

tnEthRingObjs             OBJECT IDENTIFIER ::= { tnSRObjs        72 }
tnEthRingNotifyPrefix     OBJECT IDENTIFIER ::= { tnSRNotifyPrefix  72 }
-- tnEthRingConformance      OBJECT IDENTIFIER ::= { tnSRConfs       72 }

-- Object Groups in the Nokia ETH-RING MIB Module
-- tnEthRingConfigTimeStamps OBJECT IDENTIFIER ::= { tnEthRingObjs   0 }
tnEthRingConfigurations   OBJECT IDENTIFIER ::= { tnEthRingObjs   1 }
-- tnEthRingStatistics       OBJECT IDENTIFIER ::= { tnEthRingObjs   2 }

-- Notification Groups in the Nokia ETH-RING MIB Module
tnEthRingNotifications    OBJECT IDENTIFIER ::= { tnEthRingNotifyPrefix 0 }

-- Compliance Groups in the Nokia ETH-RING MIB Module
-- tnEthRingCompliances      OBJECT IDENTIFIER ::= { tnEthRingConformance 1 }
-- tnEthRingGroups           OBJECT IDENTIFIER ::= { tnEthRingConformance 2 }

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  TIMETRA-ETH-RING-MIB Textual Conventions
--

TnEthRingIndex                 ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The TnEthRingIndex specifies the unique Ethernet Ring Identifier
         for an Ethernet Ring Node.

         The value of zero (0) is only used by objects which may reference a
         tnEthRingConfigEntry. The value zero (0) is an invalid index that
         specifies that the object is not associated with any Ethernet Ring
         Node."
    SYNTAX      Unsigned32

TnEthRingPathIndex             ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The TnEthRingPathIndex specifies the unique Ethernet Ring
         Path Identifier.

         Along with an Object of type TnEthRingIndex, an Object of this
         type references a specific path on a specific Ethernet Ring Node."
    SYNTAX      INTEGER {
                   pathA   (0),
                   pathB   (1)
                }

TnEthRingRplNodeType           ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The TnEthRingRplNodeType specifies the Ring Protection Link (RPL)
         Node type. An object of this type may be assigned to a value of:
                - rplNone (0)       -- The Ethernet Ring Node is not designated
                                       as either an Owner or Neighbor Node.
                - rplOwner(1)       -- The Ethernet Ring Node is adjacent to
                                       the RPL that is responsible for blocking
                                       its end of the RPL under normal
                                       conditions. It is the responsibility of
                                       the rplOwner for activating reversion
                                       behaviour from protected or MS/FS
                                       conditions.
                - rplNeighbor(2)    -- The Ethernet Ring Node is adjacent to
                                       the RPL that is responsible for blocking
                                       its end of the RPL under normal
                                       conditions in addition to the block by
                                       the RPL Owner Node. The node is, however,
                                       not responsibel for activating the
                                       reversion behavior."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
               Section 3.14, 3.15"
    SYNTAX      INTEGER {
                    rplNone     (0),
                    rplOwner    (1),
                    rplNeighbor (2)
                }

TnEthRingApsInfoType           ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1x-1x [1x:1x:1x:1x:1x:1x] 24x-"
    STATUS      current
    DESCRIPTION
        "The TnEthRingApsInfoType specifies the Ring APS specific PDU message
         information. If the value of an object of this type is the empty
         string, then no Ring APS specific PDU message is available.
         The APS pdu uses the following format:

           +-------+-------+---------------+---------------+---------------+
           |8 7 6 5|4 3 2 1|8 7 6 5 4 3 2 1|8 7 6 ... 3 2 1|8 7 6 ... 3 2 1|
           |-------+-------+---------------+---------------+---------------+
           | Rqst/ | sub-  |    Status     | Node ID       | Reserved      |
           | State | code  +-+-+-+---------+  (6 octets)   |  (24 octets)  |
           |       |       |R|D|B| status  |               |               |
           |       |       |B|N|P|   Rsvd  |               |               |
           |       |       | |F|R|         |               |               |
           +-------+-------+-+-+-+---------+---------------+---------------+"
     REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
                Section 10.26"
     SYNTAX    OCTET STRING (SIZE (0|8..32))



--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  TIMETRA-ETH-RING-MIB Configuration Objects
--

-- tnEthRingCfgTblLastChanged     OBJECT-TYPE
--     SYNTAX      TimeStamp
--     MAX-ACCESS  read-only
--     STATUS      current
--     DESCRIPTION
--         "The tnEthRingCfgTblLastChanged indicates the time, since system
--          startup, when a row in the tnEthRingConfigTable last changed."
--     ::= { tnEthRingConfigTimeStamps 1 }

tnEthRingConfigTable           OBJECT-TYPE
    SYNTAX      SEQUENCE OF TnEthRingConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingConfigTable consists of the Ethernet Ring
         configuration information."
    ::= { tnEthRingConfigurations 1 }

tnEthRingConfigEntry           OBJECT-TYPE
    SYNTAX      TnEthRingConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingConfigEntry contains information pertaining to an
         individual Ethernet Ring.

         Rows in this table are created and destroyed using the
         tnEthRingRowStatus object."
    INDEX       { tnSysSwitchId, tnEthRingIndex }
    ::= { tnEthRingConfigTable 1 }

TnEthRingConfigEntry           ::= SEQUENCE {
    tnEthRingIndex                 TnEthRingIndex,
    tnEthRingRowStatus             RowStatus,
    tnEthRingTimeStamp             TimeStamp,
    tnEthRingDescription           TItemDescription,
    tnEthRingAdminState            TmnxAdminState,
    tnEthRingOperState             TmnxOperState,
    tnEthRingGuardTime             Unsigned32,
    tnEthRingRevertTime            Unsigned32,
    tnEthRingRevertTimeCountDn     Unsigned32,
    tnEthRingCcmHoldDownTime       Unsigned32,
    tnEthRingCcmHoldUpTime         Unsigned32,
    tnEthRingRplNode               TnEthRingRplNodeType,
    tnEthRingNodeId                MacAddress,
    tnEthRingTxApsPdu              TnEthRingApsInfoType,
    tnEthRingDefectStatus          BITS,
    tnEthRingSubRingType           INTEGER,
    tnEthRingSubRingInterconnectId Unsigned32,
    tnEthRingSubRingPropTopChange  TruthValue,
    tnEthRingCompatibleVersion     INTEGER,
    tnEthRingState                 INTEGER
}

tnEthRingIndex                 OBJECT-TYPE
    SYNTAX      TnEthRingIndex (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingIndex specifies the row index of the Ethernet
         Ring Group."
    ::= { tnEthRingConfigEntry 1 }

tnEthRingRowStatus             OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingRowStatus controls the creation and deletion of
         row entries in the tnEthRingConfigTable."
    ::= { tnEthRingConfigEntry 2 }

tnEthRingTimeStamp             OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingTimeStamp indicates the time, since system
         startup, of the last change to this row."
    ::= { tnEthRingConfigEntry 3 }

tnEthRingDescription           OBJECT-TYPE
    SYNTAX      TItemDescription -- TItemLongDescription?
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingDescription specifies the user supplied
         description of the Ethernet Ring."
    DEFVAL { "" }
    ::= { tnEthRingConfigEntry 4 }

tnEthRingAdminState            OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingAdminState specifies the administrative state
         of the Ethernet Ring."
    DEFVAL { outOfService }
    ::= { tnEthRingConfigEntry 5 }

tnEthRingOperState             OBJECT-TYPE
    SYNTAX      TmnxOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingOperState indicates the operational state of
         the Ethernet Ring."
    ::= { tnEthRingConfigEntry 6 }

tnEthRingGuardTime             OBJECT-TYPE
    SYNTAX      Unsigned32 (1..20)
    UNITS       "deciseconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingGuardTime specifies the guard timer, in
         deciseconds, of a Ring-APS (R-APS) node.

         The guard timer is used to prevent the Ethernet Ring node from acting
         upon outdated R-APS messages and prevent the possibility of forming a
         closed loop.

         While the guard timer is running, any received R-APS Request/State and
         Status information is blocked and not forwarded to the Priority Logic.
         When the guard timer is not running, the R-APS Request/State and
         Status information is forwarded unchanged."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
               Section 10.1.5"
    DEFVAL { 5 }
    ::= { tnEthRingConfigEntry 7 }

tnEthRingRevertTime            OBJECT-TYPE
    SYNTAX      Unsigned32 (0..720)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingRevertTime specifies the Wait-To-Restore (WTR)
         timer, in seconds, of a Ring-APS (R-APS) node.

         The WTR timer is used to prevent frequent operation of the protection
         switching due to intermittent signal failure defects.

         Setting tnEthRingRevertTime to the value zero (0) puts the Ethernet
         Ring into a non-revertive mode."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
               Section 10.1.4"
    DEFVAL { 300 }
    ::= { tnEthRingConfigEntry 8 }

tnEthRingRevertTimeCountDn     OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingRevertTimeCountDn indicates the remaining time,
         in seconds, before the Ethernet Ring can revert to its original state."
    DEFVAL { 0 }
    ::= { tnEthRingConfigEntry 9 }

tnEthRingCcmHoldDownTime       OBJECT-TYPE
    SYNTAX      Unsigned32  (0..5000)
    UNITS       "centiseconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingCcmHoldDownTime specifies the time, in
         centiseconds, used for the hold-timer for associated Continuity Check
         (CC) Session down event dampening. This guards against reporting
         excessive path operational state transitions.

         This is implemented by not advertising subsequent transitions of the
         CC state to the Ethernet Ring Node until the configured timer has
         expired.

         A value of zero (0) specifies that a down transition is reported
         immediately."
    DEFVAL { 0 }
    ::= { tnEthRingConfigEntry 10 }

tnEthRingCcmHoldUpTime         OBJECT-TYPE
    SYNTAX      Unsigned32  (0..5000)
    UNITS       "deciseconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingCcmHoldUpTime specifies the time, in
         deciseconds, used for the hold-timer for associated Continuity Check
         (CC) Session up event dampening. This guards against reporting
         excessive path operational state transitions.

         This is implemented by not advertising subsequent transitions of the
         CC state to the Ethernet Ring Node until the configured timer has
         expired.

         A value of zero (0) specifies that an up transition is reported
         immediately."
    DEFVAL { 20 }
    ::= { tnEthRingConfigEntry 11 }

tnEthRingRplNode               OBJECT-TYPE
    SYNTAX      TnEthRingRplNodeType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingRplNode specifies the Ring Protection Link
         (RPL) type of the Ethernet Ring Node."
    DEFVAL { rplNone }
    ::= { tnEthRingConfigEntry 12 }

tnEthRingNodeId                OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingNodeId specifies the Ethernet Ring Node ID

         The default value is the system's MAC address.

         Writing the MAC address value 00:00:00:00:00:00 to tnEthRingNodeId
         will reset its value to the system's MAC address."
    ::= { tnEthRingConfigEntry 13 }

tnEthRingTxApsPdu              OBJECT-TYPE
    SYNTAX      TnEthRingApsInfoType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingTxApsPdu indicates the contents of the R-APS
         PDU transmitted on the Ethernet Ring."
    ::= { tnEthRingConfigEntry 14 }

tnEthRingDefectStatus          OBJECT-TYPE
    SYNTAX      BITS {
                  dFopPM (0)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingDefectStatus indicates what defects are
         active on the Ethernet Ring.

         The defects are defined as:
                dFopPM  -- Provisioning Mismatch"
    ::= { tnEthRingConfigEntry 15 }

tnEthRingSubRingType           OBJECT-TYPE
    SYNTAX      INTEGER {
                    none           (0),
                    virtualLink    (1),
                    nonVirtualLink (2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingSubRingType specifies whether this Ethernet
         Ring is a sub-ring or not. A value of 'none (0)' specifies that the
         Ethernet Ring is not a sub-ring. A value 'virtualLink (1)' specifies
         that the Ethernet Ring is a sub-ring with R-APS virtual channel, while
         the value 'nonVirtualLink (2)' specifies that the Ethernet Ring is a
         sub-ring without R-APS virtual channel.

         This object MUST be set to a value other than 'none (0)' for
         tnEthRingSubRingInterconnectId and tnEthRingSubRingPropTopChange to
         be modified away from their default values."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 version 3
               Ethernet Ring Protection Switching"
    DEFVAL { none }
    ::= { tnEthRingConfigEntry 16 }

tnEthRingSubRingInterconnectId OBJECT-TYPE
    SYNTAX      Unsigned32 (0|1..4294967294|4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingSubRingInterconnectId specifies whether the
         Ethernet sub-ring is interconnected to an Ethernet Ring, as identified
         by the Ethernet Ring ID, a VPLS service (4294967295), or is not
         interconnected (0).

         A sub-ring can only be interconnected to a VPLS service
         (i.e. tnEthRingSubRingInterconnectId assigned the value 4294967295),
         if tnEthRingSubRingType is assigned the value 'nonVirtualLink (2)'.

         This object MUST be set to a value other than zero (0) for
         tnEthRingSubRingPropTopChange to be modified away from its default
         value.

         Attempts to modify this object away from its default value when
         tnEthRingSubRingType is set to 'none (0)' will result in an SNMP
         inconsistentValue error."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 version 3
               Ethernet Ring Protection Switching"
    DEFVAL { 0 }
    ::= { tnEthRingConfigEntry 17 }

tnEthRingSubRingPropTopChange  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingSubRingPropTopChange specifies whether or not
         the Ethernet sub-ring propagates topology changes to the interconnected
         ring as specified by the value of tnEthRingSubRingInterconnectId.

         Attempts to modify this object away from its default value when
         tnEthRingSubRingInterconnectId is set to zero (0) will result in an
         SNMP inconsistentValue error."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 version 3
               Ethernet Ring Protection Switching"
    DEFVAL { false }
    ::= { tnEthRingConfigEntry 18 }

tnEthRingCompatibleVersion     OBJECT-TYPE
    SYNTAX      INTEGER {
                    version1 (1),
                    version2 (2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingCompatibleVersion specifies the backward
         compatibility logic for the Ethernet Ring.

         If this object is set to 'version1 (1)' then:
             1. Attempts at setting tnEthRingCommandSwitch to the value
                'forceSwitch (2)' or 'manualSwitch (3)' will result in an
                inconsistentValue error, and

             2. Attempts at setting tnEthRingRevertTime to the value zero (0)
                will result in an inconsistentValue error.

         If this object is set to 'version2 (2)' then the above restrictions
         will not apply."
    DEFVAL { version2 }
    ::= { tnEthRingConfigEntry 19 }

tnEthRingState          OBJECT-TYPE
    SYNTAX      INTEGER {
                    deactivated    (0),
                    idle           (1),
                    protection     (2),
                    manualSwitch   (3),
                    forcedSwitch   (4),
                    pending        (5)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingState indicates the current state of ERP instance, valid on all ERP Ring nodes.
          It is a combination of ERP Instance activation state and the state of the ERP Protocol."
    ::= { tnEthRingConfigEntry  20}

--
-- Ethernet Ring Path Table
--

-- tnEthRingPathTblLastChanged    OBJECT-TYPE
--     SYNTAX      TimeStamp
--     MAX-ACCESS  read-only
--     STATUS      current
--     DESCRIPTION
--         "The tnEthRingPathTblLastChanged indicates the time, since system
--          startup, when a row in the tnEthRingPathTable last changed."
--     ::= { tnEthRingConfigTimeStamps 2 }

tnEthRingPathTable             OBJECT-TYPE
    SYNTAX      SEQUENCE OF TnEthRingPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingPathTable consists of the paths associated with
         the corresponding tnEthRingConfigEntry."
    ::= { tnEthRingConfigurations 3 }

tnEthRingPathEntry             OBJECT-TYPE
    SYNTAX      TnEthRingPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingPathEntry contains information pertaining to an
         individual path associated with a tnEthRingConfigEntry.

         Rows in this table are created and destroyed using the
         tnEthRingPathRowStatus object."
    INDEX {    tnSysSwitchId,
               tnEthRingIndex,
               tnEthRingPathIndex
          }
    ::= { tnEthRingPathTable 1 }

TnEthRingPathEntry             ::= SEQUENCE {
    tnEthRingPathIndex             TnEthRingPathIndex,
    tnEthRingPathRowStatus         RowStatus,
    tnEthRingPathTimeStamp         TimeStamp,
    tnEthRingPathIfIndex           InterfaceIndexOrZero,
    tnEthRingPathIfRapsCcTag       TmnxEncapVal,
    tnEthRingPathDescription       TItemDescription,
    tnEthRingPathAdminStatus       TmnxAdminState,
    tnEthRingPathOperStatus        TmnxOperState,
    tnEthRingPathType              INTEGER,
    tnEthRingPathFwdState          INTEGER,
    tnEthRingPathFwdStateChgTime   TimeStamp,
    tnEthRingPathRxApsPdu          TnEthRingApsInfoType,
    tnEthRingPortState             INTEGER
}

tnEthRingPathIndex             OBJECT-TYPE
    SYNTAX      TnEthRingPathIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingPathIndex specifies the row index of the member."
    ::= { tnEthRingPathEntry 1 }

tnEthRingPathRowStatus         OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The tnEthRingPathRowStatus, along with tnEthRingPathIfIndex and
         tnEthRingPathIfRapsCcTag, control the creation and deletion
         of row entries in the tnEthRingPathTable."
    ::= { tnEthRingPathEntry 2 }

tnEthRingPathTimeStamp         OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathTimeStamp indicates the time, since
         system startup, of the last change to this row."
    ::= { tnEthRingPathEntry 3 }

tnEthRingPathIfIndex           OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathIfIndex specifies the member's port
         tmnxPortPortID associated with the tnEthRingConfigEntry.

         This object must be included in the same SNMP PDU as that of the
         tnEthRingPathRowStatus object for creation of the path. The absense
         of this object will result in a NO CREATION error.

         The tnEthRingPathIfIndex can not be changed; the row must be
         destroyed and re-created."
    ::= { tnEthRingPathEntry 4 }

tnEthRingPathIfRapsCcTag       OBJECT-TYPE
    SYNTAX      TmnxEncapVal
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathIfRapsCcTag specifies the member's
         encapsulation.

         This object must be included in the same SNMP PDU as that of the
         tnEthRingPathRowStatus object for creation of the path. The absense
         of this object will result in a NO CREATION ERROR

         Once specified, the tnEthRingPathIfRapsCcTag can not be changed;
         the row must be destroyed and re-created."
    ::= { tnEthRingPathEntry 5 }

tnEthRingPathDescription       OBJECT-TYPE
    SYNTAX      TItemDescription
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathDescription specifies a detailed
         description of the Ethernet Ring path."
    ::= { tnEthRingPathEntry 6 }

tnEthRingPathAdminStatus       OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathAdminStatus specifies the
         administrative state of the path. 'outOfService (3)' specifies that
         the member will not partake in Ring Redundancy."
   DEFVAL { outOfService }
   ::= { tnEthRingPathEntry 7 }

tnEthRingPathOperStatus        OBJECT-TYPE
    SYNTAX      TmnxOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The tnEthRingPathOperStatus indicates the operational state of
         of the path. The tnEthRingPathOperStatus supports the
         following two TmnxOperState values:
               inService    (2)
               outOfService (3)"
    ::= { tnEthRingPathEntry 8 }

tnEthRingPathType              OBJECT-TYPE
    SYNTAX      INTEGER {
                    normal (0),
                    rplEnd (1)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The value of tnEthRingPathType specifies the Ethernet Ring Node Path
        acts as an rplEnd or in a normal state. This is only configurable if
        tnEthRingRplNode is set to 'rplOwner (1)' or 'rplNeighbor (2)'."
    DEFVAL { normal }
    ::= { tnEthRingPathEntry 9 }

tnEthRingPathFwdState          OBJECT-TYPE
    SYNTAX      INTEGER {
                    unblocked (0),
                    blocked   (1)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathFwdState indicates whether the Ethernet
         Ring Node Path blocks the transmission and reception of traffic on the
         ring port."
    REFERENCE "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
               Section 9.4 and 9.5"
    ::= { tnEthRingPathEntry 10 }


tnEthRingPathFwdStateChgTime   OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathFwdStateChgTime indicates the time, since
         system startup, that the Ethernet Ring Path last experienced a change
         in the forwarding state."
    ::= { tnEthRingPathEntry 11 }

tnEthRingPathRxApsPdu          OBJECT-TYPE
    SYNTAX      TnEthRingApsInfoType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPathRxApsPdu indicates the contents of the
         R-APS PDU received on the Ethernet Ring path."
    ::= { tnEthRingPathEntry 12 }

tnEthRingPortState          OBJECT-TYPE
    SYNTAX      INTEGER {
                    portDisabled         (0),
                    portNormal           (1),
                    portForcedSwitched   (2),
                    portManualSwitched   (3),
                    portFailedSF         (4),
                    na                   (5)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingPortState indicates the current state of ERP Port or an EPR instance.
          It is a combination of port administrative state and the state of the Ring Port."
    ::= { tnEthRingPathEntry 13}

tnEthRingSAPConfigs  OBJECT IDENTIFIER ::= { tnEthRingConfigurations 4 }

--
-- Ethernet Ring SAP Member Table
--
-- tnEthRingSAPPathTblChanged     OBJECT-TYPE
--     SYNTAX      TimeStamp
--     MAX-ACCESS  read-only
--     STATUS      current
--     DESCRIPTION
--         "The tnEthRingSAPPathTblChanged indicates the time, since system
--          startup, when a row in the tnEthRingSAPPathTable last changed."
--     ::= { tnEthRingConfigTimeStamps 4 }

tnEthRingSAPPathTable          OBJECT-TYPE
    SYNTAX      SEQUENCE OF TnEthRingSAPPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingSAPPathTable consists of the configuration for
         Ethernet Ring Group members associated to SAPs."
    ::= { tnEthRingSAPConfigs 1 }

tnEthRingSAPPathEntry          OBJECT-TYPE
    SYNTAX      TnEthRingSAPPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingSAPPathEntry contains the SAP information pertaining
         to an Ethernet Ring Group member.

         Entries in the tnEthRingSAPPathTable are created and destroyed by
         the system when the TIMETRA-SAP-MIB::sapEthRingIndex is set to a
         non-zero value during the creation of a row in the
         TIMETRA-SAP-MIB::sapBaseInfoTable."

    INDEX {    tnSysSwitchId,
               tnSvcId,
               tnSapPortId,
               tnSapEncapValue
          }
    ::= { tnEthRingSAPPathTable 1 }

TnEthRingSAPPathEntry          ::= SEQUENCE {
    tnEthRingSAPPathIndex          Unsigned32,
    tnEthRingSAPPathControlFlag    TruthValue
}

tnEthRingSAPPathIndex          OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingSAPPathIndex indicates the corresponding path
         index of the tnEthRingPathEntry for this row."
    ::= { tnEthRingSAPPathEntry 1 }

tnEthRingSAPPathControlFlag    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingSAPPathControlFlag indicates whether or not
         this row corresponds to the control SAP of the tnEthRingConfigEntry."
    ::= { tnEthRingSAPPathEntry 2 }

--
-- Ethernet Ring Command Table
--
tnEthRingCommandTable          OBJECT-TYPE
    SYNTAX      SEQUENCE OF TnEthRingCommandEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingCommandTable consists of the one-shot action commands
         that effect the state of the Ethernet Ring operation."
    ::= { tnEthRingConfigurations 5 }

tnEthRingCommandEntry          OBJECT-TYPE
    SYNTAX      TnEthRingCommandEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tnEthRingCommandEntry contains the commands available to
         execute on an existing Ethernet Ring Group Path.

         Rows in this table are created and destroyed by the system."
    AUGMENTS    { tnEthRingPathEntry }
    ::= { tnEthRingCommandTable 1 }

TnEthRingCommandEntry          ::= SEQUENCE {
    tnEthRingCommandSwitch         INTEGER
}

tnEthRingCommandSwitch         OBJECT-TYPE
    SYNTAX      INTEGER {
                    noCmd        (0),
                    clear        (1),
                    forceSwitch  (2),
                    manualSwitch (3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tnEthRingCommandSwitch specifies the switch command to
         initiate on a path of an Ethernet Ring Group.

         When read, this object returns the last command written or 'noCmd (0)'
         if no command has been written to this Ethernet Ring Group path since
         initialization. The return of the last command written does not imply
         that this command is currently in effect. The request may be preempted
         by a higher priority local or remote request. In order to determine the
         current state of the group it is necessary to read the objects
         tnEthRingPathRxApsPdu and tnEthRingTxApsPdu.

         The value 'noCmd (0)' may not be used in a write command.

         The value 'clear (1)' clears all the switch commands listed below for
         the specified ring, regardless of the specified path. In addition, if
         tnEthRingRevertTime is a non-zero value (revertive mode) the active
         WTR (Wait To Restore) state is also cleared, or in the case of
         non-revertive mode, the command will trigger a reversion.

         The 'clear (1)' command is only valid if at least one path is
         configured and either:
             1. a local Forced Switch or Manual Switch command is in effect, or
             2. a local Ethernet Ring Node is an RPL Owner Node and top priority
                request is neither R-APS (FS) nor R-APS (MS).

         The value 'forceSwitch (2)' forces the specified path's
         tnEthRingPathFwdState to the 'blocked (1)' state.

         The value 'manualSwitch (3)' sets the specified path's
         tnEthRingPathFwdState to the 'blocked (1)' state in the absence of a
         failure or forceSwitch. An inconsistentValue error is returned,
         otherwise."
    DEFVAL { noCmd }
    ::= { tnEthRingCommandEntry 1 }

--
-- Dummy Scalars
--
tnEthRingConfigurationsScalar1 OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A dummy scalar that satisfies a SNMP get request quickly when
         there is no 11QPE24 card provisioned.  Otherwise, it has to
         traverse the remaining 11QPE24 MIB to get to the next applicable
         item."
    ::= { tnEthRingConfigurations 101 }

tnEthRingConfigurationsScalar2 OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "."
    ::= { tnEthRingConfigurations 102 }

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  TIMETRA-ETH-RING-MIB Statistics Objects
--

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  TIMETRA-ETH-RING-MIB Notification Objects
--

tnEthRingOprNotifications
                         OBJECT IDENTIFIER ::= { tnEthRingNotifications 1 }

tnEthRingPathFwdStateChange    NOTIFICATION-TYPE
    OBJECTS     {
                     tnEthRingPathFwdState
                }
    STATUS      current
    DESCRIPTION
        "The tnEthRingPathFwdStateChange is generated when an Ethernet Ring
         Path changes its forwarding state (tnEthRingPathFwdState) from
         blocked to unblocked or from unblocked to blocked."
    ::= { tnEthRingOprNotifications 1 }

tnEthRingApsNotifications
                         OBJECT IDENTIFIER ::= { tnEthRingNotifications 2 }

tnEthRingApsPrvsnRaiseAlarm    NOTIFICATION-TYPE
    OBJECTS     {
                    tnEthRingTxApsPdu,
                    tnEthRingPathRxApsPdu,
                    tnEthRingDefectStatus
                }
    STATUS      current
    DESCRIPTION
        "The tnEthRingApsPrvsnRaiseAlarm is generated when an Ethernet Ring
         provisioning mismatch is detected. A mismatch occurs when the RPL Owner
         Node receives one or more No Request R-APS message(s) with RPL Blocked
         status flag set (NR,RB) and a Node ID that differs from its own."
    REFERENCE   "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
                 Section 10.27"
    ::= { tnEthRingApsNotifications 1 }

tnEthRingApsPrvsnClearAlarm    NOTIFICATION-TYPE
    OBJECTS     {
                    tnEthRingTxApsPdu,
                    tnEthRingPathRxApsPdu,
                    tnEthRingDefectStatus
                }
    STATUS      current
    DESCRIPTION
        "The tnEthRingApsPrvsnClearAlarm is generated when an Ethernet Ring
         provisioning mismatch is cleared."
    REFERENCE   "Draft ITU-T Recommendation G.8032/Y.1344 Version 2
                 Section 10.27"
    ::= { tnEthRingApsNotifications 2 }


--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  TIMETRA-ETH-Ring-MIB Conformance Statements
--

-- tnEthRingCompliance            MODULE-COMPLIANCE
--    STATUS      current
--    DESCRIPTION
--        "The compliance statement for revision 1.0 of TIMETRA-ETH-Ring-MIB."
--    MODULE this module
--        MANDATORY-GROUPS {
--            tnEthRingTimeStampGroup,
--            tnEthRingBaseConfigGroup,
--            tnEthRingBasePathGroup,
--            tnEthRingSAPPathGroup,
--            tnEthRingOperNotifyGroup,
--            tnEthRingApsNotifyGroup
--        }
--    ::= { tnEthRingCompliances 1 }

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  TIMETRA-ETH-Ring-MIB Object Groups
--

-- tnEthRingTSGroups              OBJECT IDENTIFIER ::= { tnEthRingGroups 0 }

-- tnEthRingTimeStampGroup        OBJECT-GROUP
--    OBJECTS {
--        tnEthRingCfgTblLastChanged,
--        tnEthRingTimeStamp,
--        tnEthRingPathTblLastChanged,
--        tnEthRingPathTimeStamp,
--        tnEthRingSAPPathTblChanged
--    }
--    STATUS      current
--    DESCRIPTION
--        "The group of objects that track configuration changes for the
--         maintenance of Ethernet Rings for the 7x50."
--    ::= { tnEthRingTSGroups 1 }

-- tnEthRingConfigGroups          OBJECT IDENTIFIER ::= { tnEthRingGroups 1 }

-- tnEthRingBaseConfigGroup       OBJECT-GROUP
--    OBJECTS {
--        tnEthRingRowStatus,
--        tnEthRingDescription,
--        tnEthRingAdminState,
--        tnEthRingOperState,
--        tnEthRingGuardTime,
--        tnEthRingCcmHoldDownTime,
--        tnEthRingCcmHoldUpTime,
--        tnEthRingRevertTime,
--        tnEthRingRevertTimeCountDn,
--        tnEthRingRplNode,
--        tnEthRingNodeId,
--        tnEthRingTxApsPdu,
--        tnEthRingDefectStatus,
--        tnEthRingSubRingType,
--        tnEthRingSubRingInterconnectId,
--        tnEthRingSubRingPropTopChange,
--        tnEthRingCompatibleVersion,
--        tnEthRingState
--    }
--    STATUS      current
--    DESCRIPTION
--        "The group of objects for management of Ethernet Ring Group
--         configurations for the 7x50."
--    ::= { tnEthRingConfigGroups 1 }

-- tnEthRingOperGroups            OBJECT IDENTIFIER ::= { tnEthRingGroups 2 }

-- tnEthRingMemberGroups          OBJECT IDENTIFIER ::= { tnEthRingGroups 3 }

-- tnEthRingBasePathGroup         OBJECT-GROUP
--    OBJECTS {
--        tnEthRingPathRowStatus,
--        tnEthRingPathIfIndex,
--        tnEthRingPathIfRapsCcTag,
--        tnEthRingPathDescription,
--        tnEthRingPathAdminStatus,
--        tnEthRingPathOperStatus,
--        tnEthRingPathType,
--        tnEthRingPathFwdState,
--        tnEthRingPathFwdStateChgTime,
--        tnEthRingPathRxApsPdu
--        tnEthRingPortState
--    }
--    STATUS      current
--    DESCRIPTION
--        "The group of objects for management of Ethernet Ring Group
--         Member configurations for the 7x50."
--    ::= { tnEthRingMemberGroups 1 }

-- tnEthRingAPSGroups             OBJECT IDENTIFIER ::= { tnEthRingGroups 4 }

-- tnEthRingNotifyGroups          OBJECT IDENTIFIER ::= { tnEthRingGroups 5 }

-- tnEthRingOperNotifyGroup       NOTIFICATION-GROUP
--    NOTIFICATIONS {
--        tnEthRingPathFwdStateChange
--    }
--    STATUS      current
--    DESCRIPTION
--        "The group of notifications for management of Ethernet Ring Group
--         configurations for the SR series systems."
--    ::= { tnEthRingNotifyGroups 1 }

-- tnEthRingApsNotifyGroup        NOTIFICATION-GROUP
--    NOTIFICATIONS {
--        tnEthRingApsPrvsnRaiseAlarm,
--        tnEthRingApsPrvsnClearAlarm
--    }
--    STATUS      current
--    DESCRIPTION
--        "The group of notifications for management of Ethernet Ring Group
--         APS configurations for the SR series systems."
--    ::= { tnEthRingNotifyGroups 2 }

-- tnEthRingSAPGroups             OBJECT IDENTIFIER ::= { tnEthRingGroups 6 }

-- tnEthRingSAPPathGroup          OBJECT-GROUP
--    OBJECTS {
--        tnEthRingSAPPathIndex,
--        tnEthRingSAPPathControlFlag
--    }
--    STATUS      current
--    DESCRIPTION
--        "The group of objects added in Release 8.0 to support configuration and
--         maintenance of Ethernet Ring Groups on SAPs for the 7x50."
--    ::= { tnEthRingSAPGroups 1 }

END
