--  =======================================================================
--  File        : osSyncE.mib
--  Description : Private MIB support the functionality of 
--                Syncrouneous Ethernet (SyncE).
--  By          : Aviad

-- Copyright (c) 2008 MRV.  All Rights Reserved.
--
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This MRV SNMP MIB Specification
-- embodies MRV's proprietary intellectual property.  MRV
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is MRV's intent to encourage the widespread use of this
-- specification in connection with the management of MRV's
-- products. MRV grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of MRV's products.
--
-- This specification is supplied "AS IS," and MRV makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- Copyright text courtesy of MRV
--
-- If you have any questions about this MIB, please call MRV
-- Technical Support Center at 1-800-858-7815 from inside USA or
-- 1-818-773-0900 from outside USA.
--
--
-- MRV retains the right to change this MIB without notification.

OS-SYNCE-MIB DEFINITIONS ::= BEGIN

IMPORTS
                MODULE-IDENTITY, OBJECT-TYPE,
                NOTIFICATION-TYPE,    
                enterprises, Integer32                        FROM SNMPv2-SMI
                DisplayString, TruthValue                     FROM SNMPv2-TC
                oaOptiSwitch                                  FROM OS-COMMON-TC-MIB
                MODULE-COMPLIANCE, OBJECT-GROUP,
                NOTIFICATION-GROUP                            FROM SNMPv2-CONF;

osSyncEMIB      MODULE-IDENTITY
                LAST-UPDATED "201208150000Z"  -- Aug 15, 2012
                ORGANIZATION "MRV Communications, Inc."
                CONTACT-INFO
                    "Aviad Itzcovitch
                     MRV Communication, Inc
                     http://www.mrv.com
                     Email:  AItzcovitch@mrv.com"
                DESCRIPTION
                    "MRV Configuration of The MIB module for PTP version 2 (IEEE Std. 1588(TM)-2008)"

                -- Revision history
                -- ================

                REVISION "201208150000Z"  -- Aug 15, 2012
                DESCRIPTION
                    "Initial edition."
                ::= { oaOptiSwitch 23 }

-- ************************************************************
-- Textual conventions
-- ************************************************************

-- ************************************************************
-- MIB place Definition
-- ************************************************************
osSyncEMIBNotifs       OBJECT IDENTIFIER ::= { osSyncEMIB 0 }
osSyncEMIBObjects      OBJECT IDENTIFIER ::= { osSyncEMIB 1 }
osSyncEMIBInfo         OBJECT IDENTIFIER ::= { osSyncEMIBObjects 1 }
osSyncEMIBCfg          OBJECT IDENTIFIER ::= { osSyncEMIBObjects 2 }
osSyncEMIBCapabilities OBJECT IDENTIFIER ::= { osSyncEMIBCfg 1 }
osSyncEMIBCfgGen       OBJECT IDENTIFIER ::= { osSyncEMIBCfg 2 }
osSyncEMIBEventParams  OBJECT IDENTIFIER ::= { osSyncEMIBInfo 1 }

osSyncEMIBConformance  OBJECT IDENTIFIER ::= { osSyncEMIB 101 }
osSyncEMIBCompliances  OBJECT IDENTIFIER ::= { osSyncEMIBConformance 1 }
osSyncEMIBGroups       OBJECT IDENTIFIER ::= { osSyncEMIBConformance 2 }

-- ************************************************************
-- Objects Identifiers Definition
-- ************************************************************

osSyncEMIBSupport OBJECT-TYPE
   SYNTAX     INTEGER { notSupported(1), supported(2) }
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION
      "The value supported(2) indicates that the device supports network clocks."
   ::= { osSyncEMIBCapabilities 1 }


osSyncEStatus OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "Enable SyncE protocol."
    DEFVAL { false } 
    ::= {osSyncEMIBCfgGen  1 }


osSyncET1CableType       OBJECT-TYPE
    SYNTAX      INTEGER {
        lengthNotApplicable (0),
        length0To133        (1),
        length134To266      (2),
        length267To399      (3),
        length400To533      (4),
        length534To655      (5),
        lboNeg7p5dB         (6),
        lboNeg15p0dB        (7),
        lboNeg22p5dB        (8)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "osSyncET1CableType applies both to a ds1 port
         configured with a short buildout (1-6) and for long buildout (7-9).
         Short buildout is bescribed bythe length of the line (in feet).
         For line lengths longer than 655 feet the ds1 buildout is long.
         Long buildout is described in decibels(dB) the transmission signal 
         decreases over the line.
         For long buildout the following values are valid:
             lboNeg7p5dB      - For -7.5 dB
             lboNeg15p0dB     - For -15.0 dB
             lboNeg22p5dB     - For -22.5 dB
         For short buildout the following values are valid:
             length0To133     - For line length from 0 to 133 feet  (0.0dB)
             length134To266   - For line length from 134 to 266 feet (0.5dB)
             length267To399   - For line length from 267 to 399 feet (0.8dB)
             length400To533   - For line length from 400 to 533 feet (1.1dB)
             length534To655   - For line length from 534 to 655 feet (1.5dB)"
    REFERENCE
       "CLI command 'ds1e1 type t1 (133ft|266ft|399ft|533ft|655ft|-7.5db|-15db|-22.5db)'"
    DEFVAL { lengthNotApplicable } 
    ::= { osSyncEMIBCfgGen 2 }

osSyncEDs1e1Type    OBJECT-TYPE
    SYNTAX          INTEGER  {
                        notSet(0),
                        square1544(1),
                        square2048(2),
                        typeE1(3),
                        typeJ1(4),
                        typeT1(5)
                    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "the value of osSyncEDs1e1Type indicates whether the DS1e1 
        signal is in T1, E1 or J1 mode. 
        in addition, a square signal of 1544 or 2048 (that can be 
        derived from the triatri-signal of e1,t1 ot j1)"
    REFERENCE
       "CLI command 'ds1e1 type (1.544MHz|2.048MHz|e1|j1|t1)'"
    DEFVAL { notSet } 
    ::= { osSyncEMIBCfgGen 3 }

osSyncEDs1e1Connect    OBJECT-TYPE
    SYNTAX      INTEGER {
        notSet(0),
        sec (1),
        ssu (2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "sec: Connectivity to SDH Equipment Clock
         ssu: Connectivity to Synchronization Supply Unit"
    REFERENCE
       "CLI command 'ds1e1 connect (ssu|sec)'"
    DEFVAL { notSet } 
    ::= { osSyncEMIBCfgGen 4 }


osSyncEFrequencyClkIn    OBJECT-TYPE
    SYNTAX      INTEGER {
        notSet(0),
        frequency1544KHz (4),
        frequency2048KHz (5),
        frequency6480KHz (6),
        frequency19440KHz (7)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "frequency of the BNC input signal ClkIn."
    DEFVAL { notSet } 
    ::= { osSyncEMIBCfgGen 5 }

osSyncEFrequencyClkOut    OBJECT-TYPE
    SYNTAX      INTEGER {
        notSet(0),
        frequency2KHz (1),
        frequency4KHz (2),
        frequency8KHz (3),
        frequency1544KHz (4),
        frequency2048KHz (5),
        frequency6480KHz (6),
        frequency19440KHz (7),
        ptp (8)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "frequency of the BNC output signal ClkOut
         ptp: connect the ptpOut signal to the clkOut BNC"
    DEFVAL { notSet } 
    ::= { osSyncEMIBCfgGen 6 }

osSyncEFrequencyPtp    OBJECT-TYPE
    SYNTAX      INTEGER {
        notSet(0),
        frequency1544KHz (1),
        frequency2048KHz (2),
        frequency6480KHz (3),
        frequency19440KHz (4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "frequency of the BNC input signal ClkIn"
    DEFVAL { notSet } 
    ::= { osSyncEMIBCfgGen 7 }

osSyncELineCode OBJECT-TYPE
    SYNTAX    INTEGER {
        notSet(0),
        ami(1),
        hdb3(2),
        b8zs(3)
    }
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION
        "This variable describes the variety of Zero Code Suppression used on the
        link, which in turn affects a number of its characteristics. It should
        be set to match the carrier.

        AMI (alternate mark inversion) refers to a mode wherein no zero code
        suppression is present and the line encoding does not solve the problem
        directly.  In  this application, the higher layer must provide data
        which meets or exceeds the pulse density  requirements, such as inverting
        HDLC data. This could be used for T1 or E1 lines.

        B8ZS refers to the use of a specified pattern of normal bits and bipolar
        violations which are used to replace a sequence of eight zero bits. This
        can be used on T1 lines while HDB3 provides similar functionality for
        E1 links."
    REFERENCE
       "CLI command 'ds1e1 linecode (ami|hdb3|b8zs)'"
    DEFVAL    { notSet }
    ::= { osSyncEMIBCfgGen 8 }

osSyncEFreeRunMode OBJECT-TYPE
    SYNTAX    INTEGER {
        dnu(1),
        eec(2)
    }
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION
        "Free-run mode is one that has not beem syncronized to a clock source.
        eec: EEC1 or EEC2 quality level as defined by ITU-T G.781
        dnu: Do not use me (quality level 15)"
    REFERENCE
       "CLI command 'freerun-mode (eec|dnu)'"
    DEFVAL    { dnu }
    ::= { osSyncEMIBCfgGen 9 }


-- ************************************************************
-- SyncE Clock Source Table
-- ************************************************************

osSyncEClockSourceTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF OsSyncEClockSourceEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
    "The table of clock sources for SyncE"
     ::= { osSyncEMIBCfg  3 }
 
osSyncEClockSourceEntry OBJECT-TYPE 
     SYNTAX       OsSyncEClockSourceEntry 
     MAX-ACCESS   not-accessible 
     STATUS       current 
     DESCRIPTION 
         "An entry in the table contains a SyncE clock source." 
     INDEX    { osSyncEClockSourceEntryId } 
     ::= { osSyncEClockSourceTable 1 } 
 
OsSyncEClockSourceEntry ::= SEQUENCE {
     osSyncEClockSourceEntryId       Integer32,
     osSyncEClockSourceEntryType     INTEGER,
     osSyncEClockSourceEthPortNum    Integer32,
     osSyncEClockSourceEthPriority   Integer32,
     osSyncEClockSourceE1QL          INTEGER,
     osSyncEClockSourceT1QL          INTEGER,
     osSyncEClockSourceJ1QL          INTEGER
    }
 
osSyncEClockSourceEntryId OBJECT-TYPE
   SYNTAX                 Integer32 (1..65535)
   MAX-ACCESS             not-accessible
   STATUS                 current
   DESCRIPTION
      "."
   ::= { osSyncEClockSourceEntry 1 }

osSyncEClockSourceEntryType OBJECT-TYPE
    SYNTAX                INTEGER {
                            clkIn   (1),
                            ds1e1   (2),
                            ptp     (3),
                            ethPort (4)
                          }
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
            "clock source entry type."
        ::= { osSyncEClockSourceEntry 2 }
   
osSyncEClockSourceEthPortNum  OBJECT-TYPE
    SYNTAX                Integer32   (0..65535)
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "Port of the entry. 0 value indicates invalid entry."
    ::= { osSyncEClockSourceEntry 3 }

osSyncEClockSourceEthPriority OBJECT-TYPE
    SYNTAX                Integer32   (0..127)
    MAX-ACCESS            read-write
    STATUS                current
    DESCRIPTION
        "port priority to be selected from the range 0 to 126
         0:   do not use
         1:   highest priority
         127: lowest priority (default)"
    DEFVAL    { 127 }
    ::= { osSyncEClockSourceEntry 4 }

osSyncEClockSourceE1QL    OBJECT-TYPE
    SYNTAX                INTEGER {
                            prc     (2),
                            ssuA    (4),
                            ssuB    (8),
                            eec1    (11),
                            dnu     (15),
                            notDefined (127)
                          }
    MAX-ACCESS            read-write
    STATUS                current
    DESCRIPTION
        "Indicates the QL of the clock source assuming it is E1."
    DEFVAL    { notDefined }
    ::= { osSyncEClockSourceEntry  5 }

osSyncEClockSourceT1QL    OBJECT-TYPE
    SYNTAX                INTEGER {
                            stu        (0),
                            prs        (1),
                            tnc        (4),
                            st2        (7),
                            st3        (10),
                            st3e       (13),
                            prov       (14),
                            dnu        (15),
                            notDefined (127)
                          }
    MAX-ACCESS            read-write
    STATUS                current
    DESCRIPTION
        "Indicates the QL of the clock source assuming it is T1."
    DEFVAL    { notDefined }
    ::= { osSyncEClockSourceEntry  6 }

osSyncEClockSourceJ1QL    OBJECT-TYPE
    SYNTAX                INTEGER {
                            unk     (0),
                            eec1    (11),
                            notDefined (127)
                          }
    MAX-ACCESS            read-write
    STATUS                current
    DESCRIPTION
        "Indicates the QL of the clock source assuming it is j1."
    DEFVAL    { notDefined }
    ::= { osSyncEClockSourceEntry  7 }


osSyncEEventDescription OBJECT-TYPE
   SYNTAX           DisplayString (SIZE(0..120))
   MAX-ACCESS       read-only
   STATUS           current
   DESCRIPTION
      "SyncE Event Description.
       Default description : 'Alarm: <alarm itself>'"
   ::= { osSyncEMIBEventParams 1 }

-- ******************************************************************
-- NOTIFICATIONS (TRAPS)
-- These notifications will be sent to the management entity
-- whenever a MEP loses/restores contact with one or more other MEPs.
-- ******************************************************************

osSyncEClockAlarmLock NOTIFICATION-TYPE
    OBJECTS     { osSyncEClockSourceEntryType
                }
    STATUS      current
    DESCRIPTION
       "Network Clock Lock (synchronization) alarm to specific source;
        osSyncEClockSourceEntryType is the part of osSyncEClockSourceEntry
        (osSyncEClockSourceTable)

        osSyncEClockSourceEntryId - Also the index clock source table 
        (osSyncEClockSourceTable), it is number of Ethernet ports or
        some code for ds1e1/LIU, SMB.
       "
    REFERENCE
       "ABC."
    ::= { osSyncEMIBNotifs 1 }

osSyncEClockAlarmUnLock NOTIFICATION-TYPE
    OBJECTS     { osSyncEClockSourceEntryType
                }
    STATUS      current
    DESCRIPTION
       "Network Clock UnLock (de-synchronisation) alarm to specific source;
        osSyncEClockSourceEntryType is the part of osSyncEClockSourceEntry
        (osSyncEClockSourceTable)

        osSyncEClockSourceEntryId - Also the index clock source table 
        (osSyncEClockSourceTable), it is the number of Ethernet ports or
        some code for ds1e1/LIU, SMB.
       "
    REFERENCE
       "ABC."
    ::= { osSyncEMIBNotifs 2 }

osSyncEPtpAlarmLock NOTIFICATION-TYPE
    OBJECTS     { osSyncEEventDescription
                }
    STATUS      current
    DESCRIPTION
       "PTP (1588) state is Lock.
       "
    REFERENCE
       "ABC."
    ::= { osSyncEMIBNotifs 3 }

osSyncEPtpAlarmUnLock NOTIFICATION-TYPE
    OBJECTS     { osSyncEEventDescription
                }
    STATUS      current
    DESCRIPTION
       "PTP (1588) state is UnLock.
       "
    REFERENCE
       "ABC."
    ::= { osSyncEMIBNotifs 4 }


--- *******************************************************************
---  Compliance statements
--- ******************************************************************* 

osSyncEMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The core compliance statement for all the implementations." 
    MODULE -- this module 
        MANDATORY-GROUPS { 
          osSyncEMibMandatoryGroup,
          osSyncEMIBNotificationsGroup
          }     
    ::= { osSyncEMIBCompliances 1 }

--- ******************************************************************* 
--- Conformance Groups 
--- ******************************************************************* 
 
osSyncEMibMandatoryGroup  OBJECT-GROUP
  OBJECTS { 
    osSyncEMIBSupport,

    osSyncEStatus,
    osSyncET1CableType, 
    osSyncEDs1e1Type,
    osSyncEDs1e1Connect, 
    osSyncEFrequencyClkIn, 
    osSyncEFrequencyClkOut,
    osSyncEFrequencyPtp, 
    osSyncELineCode, 
    osSyncEFreeRunMode, 

    osSyncEEventDescription,

    osSyncEClockSourceEntryType,
    osSyncEClockSourceEthPortNum, 
    osSyncEClockSourceEthPriority, 
    osSyncEClockSourceE1QL, 
    osSyncEClockSourceT1QL, 
    osSyncEClockSourceJ1QL
  }
  STATUS  current 
  DESCRIPTION
    "."
  ::= { osSyncEMIBGroups 1 } 

osSyncEMIBNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
      osSyncEClockAlarmLock, osSyncEClockAlarmUnLock, 
      osSyncEPtpAlarmLock, osSyncEPtpAlarmUnLock
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Notifications group."
    ::= { osSyncEMIBGroups 2 }

END
