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

-- Title:      ELTEX MES SYSLOG Private MIB
-- Version:    2.0
-- Date:       11 May 2016
--
-- 03-Aug-2015 Added eltMesSyslogEvents
-- 11-May-2016 Added eltSyslogUserCmdEnable
-- 24-Jul-2019 Added eltMesSnmpSyslogCollector

IMPORTS
    eltMes                                  FROM ELTEX-MES
    OBJECT-TYPE, IpAddress, Unsigned32,Counter32,
    MODULE-IDENTITY                         FROM SNMPv2-SMI
    EltCpuRateLimiterTrafficType            FROM ELTEX-MES-SWITCH-RATE-LIMITER-MIB
    snmpSyslogCollectorEntry                FROM DRAFT-IETF-SYSLOG-DEVICE-MIB
    rlSyslogLogEntry                        FROM RADLAN-SYSLOG-MIB
    DisplayString, TEXTUAL-CONVENTION,
    TruthValue, RowStatus, TimeStamp        FROM SNMPv2-TC
    InterfaceIndex                          FROM IF-MIB;

eltMesSyslog MODULE-IDENTITY
          LAST-UPDATED "201605110000Z"
          ORGANIZATION "Eltex Ltd."
          CONTACT-INFO
                  "eltex.nsk.ru"
          DESCRIPTION
                  "The private MIB module definition for SYSLOG services in Eltex devices."
          ::= { eltMes 10 }

--------------------------------------------------------------------------------
-- Textual Conventions
--------------------------------------------------------------------------------

EltMesSyslogAlarmEventId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Alarm events, existing in system."
    SYNTAX      INTEGER {
                  none                  (0),  -- No event
                  erps-fail             (1),  -- ERPS Ring failure
                  pwr1-fail             (2),  -- Power supply #1 not present
                  pwr2-fail             (3),  -- Power supply #2 not present
                  critical-temperature  (4),  -- Reaching critical temperature threshold
                  poe-power-exceeded    (5),  -- Reaching POE PSE power usage threshold
                  link-up               (6),  -- Changing operating status unused interface to UP
                  link-down             (7)   -- Changing operating status used interface to DOWN
                }

EltMesSyslogAlarmEventState ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Alarm event states."
    SYNTAX      INTEGER {
                  raise (1), -- Alarm is in raised state for an event
                  clear (2)  -- Alarm is cleared for an event
                }

EltMesSyslogAlarmEventType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Alarm event types."
    SYNTAX      INTEGER {
                  global    (1),    -- Global (system) alarm event
                  interface (2)     -- Alarm event on interface
                }

--------------------------------------------------------------------------------
-- eltSyslogCpuRateLimiterTable
--------------------------------------------------------------------------------

eltSyslogCpuRateLimiterTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF EltSyslogCpuRateLimiterEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION        "Enable/disable logging per CPU rate limitter."
    ::= { eltMesSyslog 1 }

eltSyslogCpuRateLimiterEntry OBJECT-TYPE
    SYNTAX          EltSyslogCpuRateLimiterEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION        "An entry containing enable/disable logging settings per CPU rate limitter."
    INDEX           { eltSyslogCpuRateLimiterIndex }
    ::= { eltSyslogCpuRateLimiterTable 1 }

EltSyslogCpuRateLimiterEntry ::= SEQUENCE {
        eltSyslogCpuRateLimiterIndex       EltCpuRateLimiterTrafficType,
        eltSyslogCpuRateLimiterEnabled     TruthValue
}

eltSyslogCpuRateLimiterIndex OBJECT-TYPE
    SYNTAX          EltCpuRateLimiterTrafficType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION        "Traffic type"
    ::= { eltSyslogCpuRateLimiterEntry 1 }

eltSyslogCpuRateLimiterEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION        "Enable logging of rate-limiter events"
    ::= { eltSyslogCpuRateLimiterEntry 2 }

--
-- eltMesSyslogEvents
--

eltMesSyslogEvents  OBJECT IDENTIFIER
    ::= { eltMesSyslog 2 }

--
-- eltSyslogEventsStpTable
--

eltSyslogEventsStpTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF EltSyslogEventsStpEntry
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION        "Enable/disable logging of STP events."
    ::= { eltMesSyslogEvents 2 }

EltSyslogEventsStpEventType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION    "Types of STP events."
    SYNTAX INTEGER {
        eltSyslogEventsStpEventStateChange(1),
        eltSyslogEventsStpEventTopologyChange(2),
        eltSyslogEventsStpEventRootBridgeChange(3),
        eltSyslogEventsStpTcProtectionThresholdReached(4)
}

EltSyslogEventsStpEntry ::= SEQUENCE {
	eltSyslogEventsStpEventIndex  		EltSyslogEventsStpEventType,
	eltSyslogEventsStpEventEnabled      TruthValue
}

eltSyslogEventsStpEntry OBJECT-TYPE
    SYNTAX          EltSyslogEventsStpEntry
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION        "An entry containing enable/disable logging of STP events."
    INDEX           { eltSyslogEventsStpEventIndex }
    ::= { eltSyslogEventsStpTable 1 }

eltSyslogEventsStpEventIndex OBJECT-TYPE
	SYNTAX			EltSyslogEventsStpEventType
    MAX-ACCESS		read-write
    STATUS			current
    DESCRIPTION			"Specify the index of STP event."
    ::= { eltSyslogEventsStpEntry 1 }

eltSyslogEventsStpEventEnabled OBJECT-TYPE
	SYNTAX			TruthValue
    MAX-ACCESS		read-write
    STATUS			current
    DESCRIPTION			"Enable logging of STP event."
    ::= { eltSyslogEventsStpEntry 2 }

--
-- eltSyslogEventsSLATable
--

eltSyslogEventsSLATable OBJECT-TYPE
    SYNTAX          SEQUENCE OF EltSyslogEventsSLAEntry
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION        "Enable/disable logging of IP SLA events."
    ::= { eltMesSyslogEvents 3 }

EltSyslogEventsSLAEventType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION    "Types of IP SLA events."
    SYNTAX INTEGER {
        eltSyslogEventsSLAOperationStateChange(1),
        eltSyslogEventsSLATrackStateChange(2)
}

EltSyslogEventsSLAEntry ::= SEQUENCE {
    eltSyslogEventsSLAEventIndex      EltSyslogEventsSLAEventType,
    eltSyslogEventsSLAEventEnabled    TruthValue
}

eltSyslogEventsSLAEntry OBJECT-TYPE
    SYNTAX          EltSyslogEventsSLAEntry
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION        "An entry containing enable/disable logging of IP SLA events."
    INDEX           { eltSyslogEventsSLAEventIndex }
    ::= { eltSyslogEventsSLATable 1 }

eltSyslogEventsSLAEventIndex OBJECT-TYPE
	SYNTAX          EltSyslogEventsSLAEventType
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION         "Specify the index of IP SLA event."
    ::= { eltSyslogEventsSLAEntry 1 }

eltSyslogEventsSLAEventEnabled OBJECT-TYPE
	SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION	        "Enable logging of IP SLA event."
    ::= { eltSyslogEventsSLAEntry 2 }

--
-- eltSyslogEventsTransceiverAlarmEnable
--

eltSyslogEventsTransceiverAlarmEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION        "Enable/disable logging of DDM Threshold events."
    ::= { eltMesSyslogEvents 4 }

eltSyslogUserCmdEnable OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "User commands enter enable for syslog flash, syslog cache and syslog UDP.
         When set to true, generating syslog entry for user commands entered."
    DEFVAL  { false }
    ::= { eltMesSyslog 3 }

--
-- eltSnmpSyslogCollectorTable
--

eltMesSnmpSyslogCollector OBJECT IDENTIFIER
    ::= { eltMesSyslog 4 }

EltSyslogCollectorMsgFormat  ::=  TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "Format of messages that will be sent to collectors."
    SYNTAX  INTEGER {
                      default(0),
                      cef(1)
                    }

eltSnmpSyslogCollectorTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltSnmpSyslogCollectorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing Syslog collector information."
    ::= { eltMesSnmpSyslogCollector 1 }

eltSnmpSyslogCollectorEntry OBJECT-TYPE
    SYNTAX      EltSnmpSyslogCollectorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the information to generate syslog messages to
         an aggregating agent or collector.

         Entries within this table with an access level of read-
         create MUST be considered non-volatile and MUST be
         maintained across entity resets."
    AUGMENTS   { snmpSyslogCollectorEntry }
    ::= { eltSnmpSyslogCollectorTable 1 }

EltSnmpSyslogCollectorEntry ::=
    SEQUENCE {
        eltSnmpSyslogCollectorMsgFormat
             EltSyslogCollectorMsgFormat
    }

eltSnmpSyslogCollectorMsgFormat OBJECT-TYPE
    SYNTAX      EltSyslogCollectorMsgFormat
    MAX-ACCESS  read-create
    STATUS      current
    DEFVAL      {default}
    DESCRIPTION 
        "Format of messages that will be sent to collectors."
    ::= { eltSnmpSyslogCollectorEntry 1 }

--
-- eltMesSyslogLogTable
--

eltMesSyslogLog OBJECT IDENTIFIER
    ::= { eltMesSyslog 5 }

eltMesSyslogLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltMesSyslogLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing events sent to the system log file."
    ::= { eltMesSyslogLog 1 }

eltMesSyslogLogEntry OBJECT-TYPE
    SYNTAX      EltMesSyslogLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A log entry "
    AUGMENTS   { rlSyslogLogEntry }
    ::= { eltMesSyslogLogTable 1 }

EltMesSyslogLogEntry ::=
    SEQUENCE {
        eltMesSyslogLogText1            DisplayString,
        eltMesSyslogLogText2            DisplayString
    }

eltMesSyslogLogText1 OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..160))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The text of the logged message without time and date - part 5."
    ::= { eltMesSyslogLogEntry 1 }

eltMesSyslogLogText2 OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..160))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The text of the logged message without time and date - part 6."
    ::= { eltMesSyslogLogEntry 2 }

--------------------------------------------------------------------------------
-- eltMesSyslogAlarm
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- MIB Groups
--------------------------------------------------------------------------------

eltMesSyslogAlarm OBJECT IDENTIFIER
    ::= { eltMesSyslog 6 }

eltMesSyslogAlarmGlobals OBJECT IDENTIFIER
    ::= { eltMesSyslogAlarm 1 }

eltMesSyslogAlarmEvents OBJECT IDENTIFIER
    ::= { eltMesSyslogAlarm 2 }

--------------------------------------------------------------------------------
-- eltSyslogAlarmGlobalEventTable
--------------------------------------------------------------------------------

eltSyslogAlarmGlobalEventTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltSyslogAlarmGlobalEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of global alarm events."
    ::= { eltMesSyslogAlarmEvents 1 }

eltSyslogAlarmGlobalEventEntry OBJECT-TYPE
    SYNTAX      EltSyslogAlarmGlobalEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the contents of each line in the eltSyslogAlarmGlobalEventTable table."
    INDEX { eltSyslogAlarmEventId }
    ::= { eltSyslogAlarmGlobalEventTable 1 }

EltSyslogAlarmGlobalEventEntry ::= SEQUENCE {
    eltSyslogAlarmEventId                   EltMesSyslogAlarmEventId,
    eltSyslogAlarmGlobalEventEnabled        TruthValue,
    eltSyslogAlarmGlobalEventState          EltMesSyslogAlarmEventState,
    eltSyslogAlarmGlobalEventLastChange     TimeStamp
}

eltSyslogAlarmEventId OBJECT-TYPE
    SYNTAX      EltMesSyslogAlarmEventId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm event ID."
    ::= { eltSyslogAlarmGlobalEventEntry 1 }

eltSyslogAlarmGlobalEventEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable alarm event."
    DEFVAL      { false }
    ::= { eltSyslogAlarmGlobalEventEntry 2 }

eltSyslogAlarmGlobalEventState OBJECT-TYPE
    SYNTAX      EltMesSyslogAlarmEventState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm event state."
    ::= { eltSyslogAlarmGlobalEventEntry 3 }

eltSyslogAlarmGlobalEventLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Time elapsed since the state of alarm event was changed."
    ::= { eltSyslogAlarmGlobalEventEntry 4 }

--------------------------------------------------------------------------------
-- eltSyslogAlarmIfaceEventTable
--------------------------------------------------------------------------------

eltSyslogAlarmIfaceEventTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltSyslogAlarmIfaceEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of interface alarm events."
    ::= { eltMesSyslogAlarmEvents 2 }

eltSyslogAlarmIfaceEventEntry OBJECT-TYPE
    SYNTAX      EltSyslogAlarmIfaceEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the contents of each line in the eltSyslogAlarmIfaceEventTable table."
    INDEX { eltSyslogAlarmIfaceEventIfIndex, eltSyslogAlarmEventId }
    ::= { eltSyslogAlarmIfaceEventTable 1 }

EltSyslogAlarmIfaceEventEntry ::= SEQUENCE {
    eltSyslogAlarmIfaceEventIfIndex         InterfaceIndex,
    eltSyslogAlarmIfaceEventEnabled         TruthValue,
    eltSyslogAlarmIfaceEventState           EltMesSyslogAlarmEventState,
    eltSyslogAlarmIfaceEventLastChange      TimeStamp
}

eltSyslogAlarmIfaceEventIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Interface index."
    ::= { eltSyslogAlarmIfaceEventEntry 1 }

eltSyslogAlarmIfaceEventEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable alarm event."
    DEFVAL      { false }
    ::= { eltSyslogAlarmIfaceEventEntry 2 }

eltSyslogAlarmIfaceEventState OBJECT-TYPE
    SYNTAX      EltMesSyslogAlarmEventState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm event state."
    ::= { eltSyslogAlarmIfaceEventEntry 3 }

eltSyslogAlarmIfaceEventLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Time elapsed since the state of alarm event was changed."
    ::= { eltSyslogAlarmIfaceEventEntry 4 }

--------------------------------------------------------------------------------
-- eltSyslogAlarmDescriptionTable
--------------------------------------------------------------------------------

eltSyslogAlarmDescriptionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltSyslogAlarmDescriptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of alarm events descriptions."
    ::= { eltMesSyslogAlarmEvents 3 }

eltSyslogAlarmDescriptionEntry OBJECT-TYPE
    SYNTAX      EltSyslogAlarmDescriptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the contents of each line in the eltSyslogAlarmDescriptionTable table."
    INDEX { eltSyslogAlarmEventId }
    ::= { eltSyslogAlarmDescriptionTable 1 }

EltSyslogAlarmDescriptionEntry ::= SEQUENCE {
    eltSyslogAlarmDescriptionType       EltMesSyslogAlarmEventType,
    eltSyslogAlarmDescriptionText       DisplayString
}

eltSyslogAlarmDescriptionType OBJECT-TYPE
    SYNTAX      EltMesSyslogAlarmEventType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm event type."
    ::= { eltSyslogAlarmDescriptionEntry 1 }

eltSyslogAlarmDescriptionText OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Text description of alarm event."
    ::= { eltSyslogAlarmDescriptionEntry 2 }

--------------------------------------------------------------------------------
-- eltMesSyslogAlarmNotifications
--------------------------------------------------------------------------------

eltMesSyslogNotifications OBJECT IDENTIFIER ::= { eltMesSyslog 0 }

eltMesSyslogGlobalAlarmRaiseTrap NOTIFICATION-TYPE
    OBJECTS   { eltSyslogAlarmEventId }
    STATUS    current
    DESCRIPTION
        "A eltMesSyslogGlobalAlarmRaiseTrap is generated when
         global alarm is in raised state for an event."
    ::= { eltMesSyslogNotifications 1 }

eltMesSyslogGlobalAlarmClearTrap NOTIFICATION-TYPE
    OBJECTS   { eltSyslogAlarmEventId }
    STATUS    current
    DESCRIPTION
        "A eltMesSyslogGlobalAlarmClearTrap is generated when
         global alarm is in cleared state for an event."
    ::= { eltMesSyslogNotifications 2 }

eltMesSyslogIfaceAlarmRaiseTrap NOTIFICATION-TYPE
    OBJECTS   {
                 eltSyslogAlarmEventId,
                 eltSyslogAlarmIfaceEventIfIndex
              }
    STATUS    current
    DESCRIPTION
        "A eltMesSyslogIfaceAlarmRaiseTrap is generated when
         alarm on interface is in raised state for an event."
    ::= { eltMesSyslogNotifications 3 }

eltMesSyslogIfaceAlarmClearTrap NOTIFICATION-TYPE
    OBJECTS   {
                 eltSyslogAlarmEventId,
                 eltSyslogAlarmIfaceEventIfIndex
              }
    STATUS    current
    DESCRIPTION
        "A eltMesSyslogIfaceAlarmClearTrap is generated when
         alarm on interface is in cleared state for an event."
    ::= { eltMesSyslogNotifications 4 }

END
