ELTEX-MES-IPSLA-MIB DEFINITIONS ::= BEGIN

-- Title:      ELTEX MES IP Service Level Agreements Extension Private
-- Version:    1.0
-- Date:       11 Aug 2025

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32        FROM SNMPv2-SMI
    rlSLAOperEntry, rlSLATrackEntry, rlSLATrackObj  FROM RADLAN-IP-SLA
    eltMesMng                                       FROM ELTEX-MES
    RowStatus                                       FROM SNMPv2-TC;

eltMesIpSlaMIB MODULE-IDENTITY
    LAST-UPDATED "202508110000Z"    -- August 11, 2025
    ORGANIZATION "Eltex Ltd."
    CONTACT-INFO "eltex-co.ru"
    DESCRIPTION
        "This module defines a MIB for IP Service Level
        Agreements Application. IP SLA operations allows
        to analyze IP service levels by using active
        traffic monitoring.

        IP SLA Objects
        |--- Administration Group
        |    |--- Administration Oper Table
        "

    REVISION     "202508110000Z"    -- August 11, 2025
    DESCRIPTION
        "Initial revision."
    ::= { eltMesMng 6 }

--
-- IP Service Level Agreements MIB Objects
--

eltMesIpSlaObjects      OBJECT IDENTIFIER ::= { eltMesIpSlaMIB 1 }

-- IP Service Level Agreements Object Groups


-- eltMesIpSlaAppl      OBJECT IDENTIFIER ::= { eltMesIpSlaObjects 1 }

eltMesIpSlaAdmin        OBJECT IDENTIFIER ::= { eltMesIpSlaObjects 2 }

-- eltMesIpSlaStats     OBJECT IDENTIFIER ::= { eltMesIpSlaObjects 3 }

-- eltMesIpSlaSchedule  OBJECT IDENTIFIER ::= { eltMesIpSlaObjects 4 }

-- eltMesIpSlaHistory   OBJECT IDENTIFIER ::= { eltMesIpSlaObjects 5 }

eltMesIpSlaTrack        OBJECT IDENTIFIER ::= { eltMesIpSlaObjects 6 }

-- eltMesIpSlaAdminOperTable

eltMesIpSlaAdminOperTable OBJECT-TYPE
    SYNTAX SEQUENCE OF EltMesIpSlaAdminOperEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains configured ip SLA operations."
    ::= { eltMesIpSlaAdmin 4 }

eltMesIpSlaAdminOperEntry OBJECT-TYPE
    SYNTAX      EltMesIpSlaAdminOperEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table augments existing RADLAN table rlSLAOperTable."
    AUGMENTS    { rlSLAOperEntry }
    ::= { eltMesIpSlaAdminOperTable 1 }

EltMesIpSlaAdminOperEntry ::= SEQUENCE {
    eltMesIpSlaAdminOperMrid    Unsigned32
}

eltMesIpSlaAdminOperMrid OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "MRID used for the operation."
    DEFVAL      { 1 }
    ::= { eltMesIpSlaAdminOperEntry 1 }

eltMesIpSlaTrackTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF EltMesIpSlaTrackEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "The table contains tracks that contain other tracks."
    ::= { eltMesIpSlaTrack 1 }

eltMesIpSlaTrackEntry OBJECT-TYPE
    SYNTAX      EltMesIpSlaTrackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table augments existing RADLAN table rlSLATrackTable."
    AUGMENTS    { rlSLATrackEntry }
    ::= { eltMesIpSlaTrackTable 1 }

EltMesIpSlaTrackBooleanOperation ::= TEXTUAL-CONVENTION
   STATUS      current
   DESCRIPTION "The representation of boolean operation type."
   SYNTAX      INTEGER {
                 booleanNotSet(0),
                 booleanOr(1),
                 booleanAnd(2)
               }

EltMesIpSlaTrackEntry ::= SEQUENCE {
    eltMesIpSlaTrackBooleanOperation    EltMesIpSlaTrackBooleanOperation
}

eltMesIpSlaTrackBooleanOperation OBJECT-TYPE
       SYNTAX          EltMesIpSlaTrackBooleanOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION     "Type of boolean operation for tracks.

                        - not set(0): the operation is not set.
                           
                        - OR(1): track will be up if at least one
                          track in the list is up, track will be down
                          if all tracks in the list are down.
                            
                         - AND(2): track will be up if all tracks
                          in the list are up, track will be down
                          if at least one track in the list is down."
       DEFVAL           { booleanNotSet }
       ::= { eltMesIpSlaTrackEntry 1 }

eltMesIpSlaTrackListObjectsTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF EltMesIpSlaTrackListObjectsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "The table contains track list objects."
    ::= { eltMesIpSlaTrack 2 }

eltMesIpSlaTrackListObjectsEntry OBJECT-TYPE
    SYNTAX      EltMesIpSlaTrackListObjectsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry contains objects in the list."
    INDEX { rlSLATrackObj,
            eltMesIpSlaTrackListObjectsTrackedObjectId }
    ::= { eltMesIpSlaTrackListObjectsTable 1 }

EltMesIpSlaTrackListObjectsEntry ::= SEQUENCE {
    eltMesIpSlaTrackListObjectsTrackedObjectId  Unsigned32,
    eltMesIpSlaTrackListObjectsRowStatus        RowStatus
}

eltMesIpSlaTrackListObjectsTrackedObjectId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry contains the tracked object id."
    ::= { eltMesIpSlaTrackListObjectsEntry 2 }

eltMesIpSlaTrackListObjectsRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Used to create and delete a track list object 
        table entry."
    ::= { eltMesIpSlaTrackListObjectsEntry 3 }

END
