ELTEX-MES-PHYSICAL-DESCRIPTION-MIB DEFINITIONS ::= BEGIN
-- Version:              2.2
-- Date:                 21-Apr-2025

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, TimeTicks,
    NOTIFICATION-TYPE, Integer32, Unsigned32                FROM SNMPv2-SMI
    DisplayString, PhysAddress, RowStatus, TruthValue       FROM SNMPv2-TC
    JackType                                                FROM MAU-MIB
    InterfaceIndexOrZero,ifIndex,InterfaceIndex             FROM IF-MIB
    eltMes                                                  FROM ELTEX-MES
    rlPhdUnitGenParamEntry, rlCascadeEntry                  FROM RADLAN-Physicaldescription-MIB
    rlPhdUnitEnvParamEntry, rlPhdStackUnit                  FROM RADLAN-Physicaldescription-MIB
    rndErrorDesc, rndErrorSeverity                          FROM RADLAN-DEVICEPARAMS-MIB
    ;

eltMesPhysicalDescription  MODULE-IDENTITY
                       LAST-UPDATED "201509140000Z"
                       ORGANIZATION "Eltex Ltd."
                       CONTACT-INFO
                            "eltex.nsk.ru"
                       DESCRIPTION
                            "The private MIB module definition for physical
                             device configuration and information."

                       REVISION "202504210000Z"
                       DESCRIPTION
                            "Added qsfp-dd(24) to eltPhdTransceiverInfoType"

                       REVISION "201711110000Z"
                       DESCRIPTION
                            "Added fields eltPhdTransceiverInfoPartNumber and
                            eltPhdTransceiverInfoVendorRev to eltPhdTransceiverInfoTable"

                       REVISION "201509140000Z"
                       DESCRIPTION
                            "Added eltPhdUnitGenParamTable."

                       REVISION "201303210000Z"
                       DESCRIPTION
                            "Initial revision."
                       ::= { eltMes 53 }

eltMesPhdTransceiver OBJECT IDENTIFIER ::= { eltMesPhysicalDescription 1 }

eltPhdTransceiverInfoTable OBJECT-TYPE
    SYNTAX SEQUENCE OF EltPhdTransceiverInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table show the information of transceiver on interface."
    ::= { eltMesPhdTransceiver 1 }

eltPhdTransceiverInfoEntry OBJECT-TYPE
    SYNTAX EltPhdTransceiverInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry of the eltPhdTransceiverInfoTable."
    INDEX { ifIndex }
    ::= { eltPhdTransceiverInfoTable 1 }

EltPhdTransceiverInfoEntry ::=
    SEQUENCE {
        eltPhdTransceiverInfoConnectorType         INTEGER,
        eltPhdTransceiverInfoType                  INTEGER,
        eltPhdTransceiverInfoComplianceCode        OCTET STRING,
        eltPhdTransceiverInfoWaveLength            Integer32,
        eltPhdTransceiverInfoVendorName            OCTET STRING,
        eltPhdTransceiverInfoSerialNumber          OCTET STRING,
        eltPhdTransceiverInfoFiberDiameterType     INTEGER,
        eltPhdTransceiverInfoTransferDistance      Integer32,
        eltPhdTransceiverInfoDiagnostic            TruthValue,
        eltPhdTransceiverInfoPartNumber            OCTET STRING,
        eltPhdTransceiverInfoVendorRev             OCTET STRING
    }

eltPhdTransceiverInfoConnectorType OBJECT-TYPE
    SYNTAX INTEGER
        {
            unknown(0),
            sc(1),
            fibre-ch-st1(2),
            fibre-ch-st2(3),
            bnc-tnc(4),
            fibre-ch-coaxial-headers(5),
            fibrejack(6),
            lc(7),
            mt-rj(8),
            mu(9),
            sg(10),
            optical-pigtail(11),
            mpo-parallel-optic(12),
            mpo-2x16(13),
            hssdc-ii(32),
            copper-pigtail(33),
            rj45(34),
            no-separable-connector(35),
            mxc-2x16(36),
            cs-optical-connector(37),
            sn-optical-connector(38),
            mpo-2x12(39),
            mpo-1x16(40),
            unallocated(127),
            vendorspec(255)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Connector type of the interface."
    ::= { eltPhdTransceiverInfoEntry 1 }

eltPhdTransceiverInfoType OBJECT-TYPE
    SYNTAX INTEGER
            {
            unknown(0),
            gbic(1),
            sff(2),
            sfp-sfpplus(3),
            xbi-300-pin(4),
            xenpak(5),
            xfp(6),
            xff(7),
            xfp-e(8),
            xpak(9),
            x2(10),
            dwdm-sfp(11),
            qsfp(12),
            qsfpplus(13),
            qsfp28(17),
            qsfp-dd(24),
            reserved(127),
            vendorspec(255)
            }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Type of the interface, such as SFP/XFP/GBIC."
    ::= { eltPhdTransceiverInfoEntry 2 }

eltPhdTransceiverInfoComplianceCode OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Compliance code read from the transceiver."
    ::= { eltPhdTransceiverInfoEntry 3 }

eltPhdTransceiverInfoWaveLength OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Wave length of the interface, measured in nanometer."
    ::= { eltPhdTransceiverInfoEntry 4 }

eltPhdTransceiverInfoVendorName OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Vendor name of the interface."
    ::= { eltPhdTransceiverInfoEntry 5 }

eltPhdTransceiverInfoSerialNumber OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Serial number of the interface."
    ::= { eltPhdTransceiverInfoEntry 6 }

eltPhdTransceiverInfoFiberDiameterType OBJECT-TYPE
    SYNTAX INTEGER
        {
          fiber9(1),
          fiber50(2),
          fiber625(3),
          copper(4),
          unknown(65535)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The diameter of the fiber, measured in micron.
        fiber9 - 9 micron multi-mode fiber
        fiber50 - 50 micron multi-mode fiber
        fiber625 - 62.5 micron multi-mode fiber
        copper - copper cable."
    ::= { eltPhdTransceiverInfoEntry 7 }

eltPhdTransceiverInfoTransferDistance OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximal distance which the interface could transmit,
        measured in meter."
    ::= { eltPhdTransceiverInfoEntry 8 }

eltPhdTransceiverInfoDiagnostic OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicating whether the digital diagnostic monitoring function is supported or not."
    ::= { eltPhdTransceiverInfoEntry 9 }

eltPhdTransceiverInfoPartNumber OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Part number provided by SFP vendor."
    ::= { eltPhdTransceiverInfoEntry 10 }

eltPhdTransceiverInfoVendorRev OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Revision level for part number provided by vendor."
    ::= { eltPhdTransceiverInfoEntry 11 }
    
--
-- eltCascadeTable
--

eltCascadeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltCascadeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table augments existing RADLAN table rlCascadeTable."
    ::= { eltMesPhysicalDescription 3 }

eltCascadeEntry OBJECT-TYPE
    SYNTAX      EltCascadeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of this table specifies a cascaded link information in a unit"
    AUGMENTS { rlCascadeEntry }
    ::= { eltCascadeTable 1 }

EltCascadeEntry ::= SEQUENCE {
    eltCascadeLastChange              TimeTicks
}

eltCascadeLastChange OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime at the time the cascade interface 
         entered its current operational state."
    ::= { eltCascadeEntry 1 }


--
-- eltPhdUnitGenParamTable
--

eltPhdUnitGenParamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltPhdUnitGenParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "For each module (board) there is an entry describing it in this
         module"
    ::= { eltMesPhysicalDescription 2 }

eltPhdUnitGenParamEntry OBJECT-TYPE
    SYNTAX      EltPhdUnitGenParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table augments existing RADLAN table rlPhdUnitGenParamTable"
    AUGMENTS { rlPhdUnitGenParamEntry }
    ::= { eltPhdUnitGenParamTable 1 }

EltPhdUnitGenParamEntry ::= SEQUENCE {
    eltPhdUnitGenParamCommitHash               DisplayString,
    eltPhdUnitGenParamBuildTag                 DisplayString,
    eltPhdUnitGenParamBuildNumber              DisplayString
}

eltPhdUnitGenParamCommitHash OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "Hash of current commit."
       ::= { eltPhdUnitGenParamEntry 1 }
       
eltPhdUnitGenParamBuildTag OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "Build branch."
       ::= { eltPhdUnitGenParamEntry 2 }

eltPhdUnitGenParamBuildNumber OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "Build describe number."
       ::= { eltPhdUnitGenParamEntry 3 }

--
-- eltPhdTransceiverThresholdTable
--

eltPhdTransceiverThresholdTable OBJECT-TYPE
    SYNTAX SEQUENCE OF EltPhdTransceiverThresholdEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains the threshold information of transceiver."
    ::= { eltMesPhdTransceiver 2 }

eltPhdTransceiverThresholdEntry OBJECT-TYPE
    SYNTAX EltPhdTransceiverThresholdEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry of the eltPhdTransceiverThresholdTable."
    INDEX { ifIndex, eltPhdTransceiverThresholdType }
    ::= { eltPhdTransceiverThresholdTable 1 }

EltPhdTransceiverThresholdEntry ::=
    SEQUENCE {
        eltPhdTransceiverThresholdType             INTEGER,
        eltPhdTransceiverThresholdAction           INTEGER,
        eltPhdTransceiverThresholdHighAlarm        INTEGER,
        eltPhdTransceiverThresholdHighWarning      INTEGER,
        eltPhdTransceiverThresholdLowWarning       INTEGER,
        eltPhdTransceiverThresholdLowAlarm         INTEGER
    }

eltPhdTransceiverThresholdType OBJECT-TYPE
    SYNTAX INTEGER
        {
        temperature(0),
        supply(1),
        txBias(2),
        txOutput(3),
        rxOpticalPower(4)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "A value indicating the threshold to configure.
        temperature - degree (Celsius) -127-127, voltage - microVolt 0-6550000,
        current - microAmper 0-131000, output power or input power - microWatt 0-6553"
    ::= { eltPhdTransceiverThresholdEntry 1 }

eltPhdTransceiverThresholdAction OBJECT-TYPE
    SYNTAX INTEGER
        {
        none(0),
        log(1),
        send-trap(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "What action to perform when value is bad."
    ::= { eltPhdTransceiverThresholdEntry 2 }

eltPhdTransceiverThresholdHighAlarm OBJECT-TYPE
    SYNTAX   INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "See eltPhdTransceiverThresholdType for details"
    ::= { eltPhdTransceiverThresholdEntry 3 }

eltPhdTransceiverThresholdHighWarning OBJECT-TYPE
    SYNTAX   INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "See eltPhdTransceiverThresholdType for details"
    ::= { eltPhdTransceiverThresholdEntry 4 }

eltPhdTransceiverThresholdLowWarning OBJECT-TYPE
    SYNTAX   INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "See eltPhdTransceiverThresholdType for details"
    ::= { eltPhdTransceiverThresholdEntry 5 }

eltPhdTransceiverThresholdLowAlarm OBJECT-TYPE
    SYNTAX   INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "See eltPhdTransceiverThresholdType for details"
    ::= { eltPhdTransceiverThresholdEntry 6 }

---
-- eltPhdUnitEnvParamTable
---

eltPhdUnitEnvParamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltPhdUnitEnvParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "For each module (board) there is an entry describing it in this
         module"
    ::= { eltMesPhysicalDescription 7 }

eltPhdUnitEnvParamEntry OBJECT-TYPE
    SYNTAX      EltPhdUnitEnvParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A entry of this table specifies a module (board)"
    AUGMENTS { rlPhdUnitEnvParamEntry }
    ::= { eltPhdUnitEnvParamTable 1 }

EltPhdUnitEnvParamEntry ::= SEQUENCE {
    eltPhdUnitEnvParamUpTimeInSec       Unsigned32
}

eltPhdUnitEnvParamUpTimeInSec OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "seconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "Up time of the unit in seconds."
    ::= { eltPhdUnitEnvParamEntry 1 }

eltMesPhdNsf OBJECT IDENTIFIER ::= { eltMesPhysicalDescription 4 }

eltPhdNsfEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Enable Non-Stop Forwarding during the stack master switchover."
    DEFVAL  { false }
    ::= { eltMesPhdNsf 1 }
    
eltPhdNsfTime OBJECT-TYPE
    SYNTAX      INTEGER (60..600)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Set the time period in which protocols wait for the new master to complete initialization.
         The port states set by the former master is preserved during this time."
    DEFVAL {120}
    ::= { eltMesPhdNsf 2 }
    
eltPhdNsfOperState OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Non-Stop Forwarding operate status during the stack master switchover."
    DEFVAL  { false }
    ::= { eltMesPhdNsf 3 }

--
-- eltMesPhdStackTable
--

eltMesPhdStackTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF EltPhdStackEntry
    MAX-ACCESS      not-accessible
    STATUS current
    DESCRIPTION
        "For each stack unit there is an entry describing it in this table"
    ::= { eltMesPhysicalDescription 5 }

eltPhdStackEntry OBJECT-TYPE
    SYNTAX       EltPhdStackEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A entry of this table specifies a stack unit"
    INDEX  { eltPhdStackUnit }
    ::= { eltMesPhdStackTable 1 }

EltPhdStackEntry ::= SEQUENCE {
    eltPhdStackUnit                INTEGER,
    eltPhdStackUnitAdminRole       INTEGER,
    eltPhdStackUnitRole            INTEGER
}

eltPhdStackUnit OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The stack unit described by this entry."
    ::= { eltPhdStackEntry 1 }

eltPhdStackUnitAdminRole OBJECT-TYPE
   SYNTAX                INTEGER {
                         slave (0),
                         masterOrbackup(1)
                         }
    MAX-ACCESS           read-write
    STATUS               current
    DESCRIPTION
        "Set role of the current unit: master/backup or slave.
        When enabling master/backup for more than 2 units, it is strongly recommended to enable NSF."
    ::= { eltPhdStackEntry 2 }
    
eltPhdStackUnitRole      OBJECT-TYPE
   SYNTAX                INTEGER {
                         slave (0),
                         masterOrbackup(1)
                         }
    MAX-ACCESS           read-only
    STATUS               current
    DESCRIPTION
        "Get current role of the unit: master/backup or slave"
    ::= { eltPhdStackEntry 3 }

---
--- Notifications
---

eltMesPhdNotifications OBJECT IDENTIFIER ::= { eltMesPhysicalDescription 0 }

eltPhdStackUnitConnected NOTIFICATION-TYPE
    OBJECTS { rndErrorDesc, rndErrorSeverity }
    STATUS current
    DESCRIPTION
        "Send connectiction unit stack with unit id."
    ::= { eltMesPhdNotifications 0 }

END
