--
-- Eltex MES ISS POE MIB: PoE Management
--
-- Copyright (c) 2019, Eltex Co
--
-- The contents of this document are subject to change without notice.
--

ELTEX-MES-ISS-POE-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Integer32
                FROM SNMPv2-SMI
        OBJECT-GROUP
                FROM SNMPv2-CONF
        TEXTUAL-CONVENTION, TruthValue
                FROM SNMPv2-TC
        eltMesIss
                FROM ELTEX-MES-ISS-MIB;

eltMesIssPoeMIB MODULE-IDENTITY
         LAST-UPDATED "202207270000Z"
         ORGANIZATION "Eltex Enterprise, Ltd."
         CONTACT-INFO
                "eltex-co.ru"
         DESCRIPTION
                "MIB extensions for RFC3621"
         REVISION "202207270000Z"
         DESCRIPTION
                "Added eltMesIssPoeAutoRestart,
                 eltMesIssPoeRestartAction objects."
         REVISION "201907120000Z"
         DESCRIPTION
                "Added eltMesIssPoePortConfigTable object."
         REVISION "201904020000Z"
         DESCRIPTION "Initial revision."
        ::= { eltMesIss 11 }

-- Textual Conventions

EltMesIssPoeInrushTestStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Specifies PoE Inrush Test status."
    SYNTAX  INTEGER {
        enable(1),
        disable(2)
    }

-- Top level MIB structure

eltMesIssPoeNotifications   OBJECT IDENTIFIER ::= { eltMesIssPoeMIB 0 }
eltMesIssPoeObjects         OBJECT IDENTIFIER ::= { eltMesIssPoeMIB 1 }

-- MIB Groups

eltMesIssPoeGlobals         OBJECT IDENTIFIER ::= { eltMesIssPoeObjects 1 }
eltMesIssPoeStatistics      OBJECT IDENTIFIER ::= { eltMesIssPoeObjects 2 }
eltMesIssPoePortConfig      OBJECT IDENTIFIER ::= { eltMesIssPoeObjects 3 }
eltMesIssPoePortStatistics  OBJECT IDENTIFIER ::= { eltMesIssPoeObjects 4 }

-- -----------------------------------------------------------------------------
-- PoE global objects
-- -----------------------------------------------------------------------------

eltMesIssPoeGlobalConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltMesIssPoeGlobalConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of objects that control attributes of the PoE PSE group."
    ::= { eltMesIssPoeGlobals 1 }

eltMesIssPoeGlobalConfigEntry OBJECT-TYPE
    SYNTAX      EltMesIssPoeGlobalConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the eltMesIssPoeGlobalConfigTable."
    INDEX       { eltMesIssPoeGlobalConfigGroupIndex }
    ::= { eltMesIssPoeGlobalConfigTable 1 }

EltMesIssPoeGlobalConfigEntry ::= SEQUENCE {
    eltMesIssPoeGlobalConfigGroupIndex  Integer32,
    eltMesIssPoeInrushTest              EltMesIssPoeInrushTestStatus
}

eltMesIssPoeGlobalConfigGroupIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This variable uniquely identifies the group
         containing the port to which a power Ethernet PSE is
         connected.  Group means box in the stack, module in a
         rack and the value 1 MUST be used for non-modular devices."
    ::= { eltMesIssPoeGlobalConfigEntry 1 }

eltMesIssPoeInrushTest OBJECT-TYPE
    SYNTAX      EltMesIssPoeInrushTestStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object controls PoE Inrush Test status.
         If PoE Inrush Test is ENABLED, then at the initialization
         of the connection, less power is supplied to prevent
         damaging the connected device"
    DEFVAL { enable }
    ::= { eltMesIssPoeGlobalConfigEntry 2 }

eltMesIssPoeAutoRestart OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object controls auto restart of PoE component."
    DEFVAL { true }
    ::= { eltMesIssPoeGlobals 2 }

eltMesIssPoeRestartAction OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to restart PoE component manually.
         On receiving true PoE will be restarted. After a succesful
         restart this object will return FALSE."
    ::= { eltMesIssPoeGlobals 3 }

-- -----------------------------------------------------------------------------
-- PoE main statistics
-- -----------------------------------------------------------------------------

eltMesIssPoeStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltMesIssPoeStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table listing Temperature information for PoE PSE group."
    ::= { eltMesIssPoeStatistics 1 }

eltMesIssPoeStatEntry OBJECT-TYPE
    SYNTAX      EltMesIssPoeStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the eltMEsIssPoeStatTable."
    INDEX       { eltMesIssPoeStatGroupIndex }
    ::= { eltMesIssPoeStatTable 1 }

EltMesIssPoeStatEntry ::= SEQUENCE {
    eltMesIssPoeStatGroupIndex  Integer32,
    eltMesIssPoeTemperature     Integer32
}

eltMesIssPoeStatGroupIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This variable uniquely identifies the group
         containing the port to which a power Ethernet PSE is
         connected.  Group means box in the stack, module in a
         rack and the value 1 MUST be used for non-modular devices."
    ::= { eltMesIssPoeStatEntry 1 }

eltMesIssPoeTemperature OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object displays current temperature of the PoE controller."
    ::= { eltMesIssPoeStatEntry 2 }

-- -----------------------------------------------------------------------------
-- PoE port config
-- -----------------------------------------------------------------------------

eltMesIssPoePortConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltMesIssPoePortConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " A table of objects that control attributes for
          Power Over Ethernet port."
    ::= { eltMesIssPoePortConfig 1 }

eltMesIssPoePortConfigEntry  OBJECT-TYPE
    SYNTAX      EltMesIssPoePortConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " An entry in the eltMesIssPoePortConfigTable."
    INDEX       { eltMesIssPoePortConfigGroupIndex, eltMesIssPoePortConfigIfIndex }
    ::= { eltMesIssPoePortConfigTable  1 }

EltMesIssPoePortConfigEntry ::= SEQUENCE {
    eltMesIssPoePortConfigGroupIndex      Integer32,
    eltMesIssPoePortConfigIfIndex         Integer32,
    eltMesIssPoePortMaxPowerLimit         Integer32
}

eltMesIssPoePortConfigGroupIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This variable uniquely identifies the group
         containing the port to which a power Ethernet PSE is
         connected.  Group means box in the stack, module in a
         rack and the value 1 MUST be used for non-modular devices."
    ::= { eltMesIssPoePortConfigEntry 1 }

eltMesIssPoePortConfigIfIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This variable uniquely identifies the PoE PSE port
         within group eltMesIssPoePortUtilGroupIndex to which
         PoE PSE entry is connected."
    ::= { eltMesIssPoePortConfigEntry 2 }

eltMesIssPoePortMaxPowerLimit OBJECT-TYPE
    SYNTAX      Integer32 (0..31200)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This variable indicates on the user configured power level in milli
         watts which is available from eltMesIssPoePortConfigIfIndex.

         The special value of zero is used to set power level threshold
         according to class."
    DEFVAL  {0}
    ::= { eltMesIssPoePortConfigEntry 3 }

-- -----------------------------------------------------------------------------
-- PoE port statistics
-- -----------------------------------------------------------------------------

eltMesIssPoePortUtilTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltMesIssPoePortUtilEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " The table listing Current, Voltage and Power consumption
          information for Power Over Ethernet port."
    ::= { eltMesIssPoePortStatistics 1 }

eltMesIssPoePortUtilEntry  OBJECT-TYPE
    SYNTAX      EltMesIssPoePortUtilEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " An entry in the eltMesIssPoePortUtilTable."
    INDEX       { eltMesIssPoePortUtilGroupIndex, eltMesIssPoePortUtilIfIndex }
    ::= { eltMesIssPoePortUtilTable  1 }

EltMesIssPoePortUtilEntry ::= SEQUENCE {
    eltMesIssPoePortUtilGroupIndex        Integer32,
    eltMesIssPoePortUtilIfIndex           Integer32,
    eltMesIssPoePortUtilOutputVoltage     Integer32,
    eltMesIssPoePortUtilOutputCurrent     Integer32,
    eltMesIssPoePortUtilOutputPower       Integer32,
    eltMesIssPoePortUtilMaxPower          Integer32
}

eltMesIssPoePortUtilGroupIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This variable uniquely identifies the group
         containing the port to which a power Ethernet PSE is
         connected.  Group means box in the stack, module in a
         rack and the value 1 MUST be used for non-modular devices."
    ::= { eltMesIssPoePortUtilEntry 1 }

eltMesIssPoePortUtilIfIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This variable uniquely identifies the PoE PSE port
         within group eltMesIssPoePortUtilGroupIndex to which
         PoE PSE entry is connected."
    ::= { eltMesIssPoePortUtilEntry 2 }

eltMesIssPoePortUtilOutputVoltage OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable indicates on the output voltage level in volts."
    ::= { eltMesIssPoePortUtilEntry 3 }

eltMesIssPoePortUtilOutputCurrent OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable indicates on the output current level in milliamps."
    ::= { eltMesIssPoePortUtilEntry 4 }

eltMesIssPoePortUtilOutputPower OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable indicates on the output power level in milliwatts."
    ::= { eltMesIssPoePortUtilEntry 5 }

eltMesIssPoePortUtilMaxPower OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable indicates on the max power in milliwatts
         that can be provided."
    ::= { eltMesIssPoePortUtilEntry 6 }

END

