SNR-ERS-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, enterprises, Integer32, Unsigned32, Gauge32, Opaque FROM SNMPv2-SMI DisplayString, TEXTUAL-CONVENTION FROM SNMPv2-TC MODULE-COMPLIANCE, NOTIFICATION-GROUP, OBJECT-GROUP FROM SNMPv2-CONF ; ers MODULE-IDENTITY LAST-UPDATED "202602021200Z" -- Feb 02, 2026 ORGANIZATION "NAGTECH" CONTACT-INFO "erd@nag.ru" DESCRIPTION "The MIB module for SNR-ERS devices." REVISION "202602021200Z" -- Feb 02, 2026 DESCRIPTION "Fix syntax" REVISION "202506031200Z" -- jun 03, 2025 DESCRIPTION "Initial version of the MIB module." ::= { snr 2 } snr OBJECT IDENTIFIER ::= { enterprises 40418 } snrERS OBJECT IDENTIFIER ::= { ers 1 } ersInputs OBJECT IDENTIFIER ::= { snrERS 1 } -- Input tables ersOutputs OBJECT IDENTIFIER ::= { snrERS 2 } -- Output tables ersTraps OBJECT IDENTIFIER ::= { snrERS 3 } -- Trap Groups ersSystemObject OBJECT IDENTIFIER ::= { ersTraps 1 } ersIndicatorObject OBJECT IDENTIFIER ::= { ersTraps 2 } ersElementObject OBJECT IDENTIFIER ::= { ersTraps 3 } ersAutomationObject OBJECT IDENTIFIER ::= { ersTraps 4 } -- Explicit Notification Nodes ersSystemNotifications OBJECT IDENTIFIER ::= { ersSystemObject 0 } ersSystemVariables OBJECT IDENTIFIER ::= { ersSystemObject 1 } ersIndicatorNotifications OBJECT IDENTIFIER ::= { ersIndicatorObject 0 } ersIndicatorVariables OBJECT IDENTIFIER ::= { ersIndicatorObject 1 } ersElementNotifications OBJECT IDENTIFIER ::= { ersElementObject 0 } ersElementVariables OBJECT IDENTIFIER ::= { ersElementObject 1 } ersAutomationNotifications OBJECT IDENTIFIER ::= { ersAutomationObject 0 } ersAutomationVariables OBJECT IDENTIFIER ::= { ersAutomationObject 1 } ersConformance OBJECT IDENTIFIER ::= { snrERS 100 } ersGroups OBJECT IDENTIFIER ::= { ersConformance 1 } ersCompliances OBJECT IDENTIFIER ::= { ersConformance 2 } -- Textual Conventions IndicatorUniqueID ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "Represents a non-negative unique identifier for indicators." SYNTAX Unsigned32 (1..4294967295) Float32TC ::= TEXTUAL-CONVENTION DISPLAY-HINT "4x" STATUS current DESCRIPTION "This type represents a 32-bit (4-octet) IEEE 754 floating-point number." SYNTAX Opaque (SIZE(4)) -- =========================================================================== -- Discrete inputs -- =========================================================================== discreteInputsTable OBJECT-TYPE SYNTAX SEQUENCE OF DiscreteInputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of discrete input indicators." ::= { ersInputs 1 } discreteInputsEntry OBJECT-TYPE SYNTAX DiscreteInputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the discrete input indicators table." INDEX { inDiscreteID } ::= { discreteInputsTable 1 } DiscreteInputsEntry ::= SEQUENCE { inDiscreteID IndicatorUniqueID, inDiscreteName DisplayString, inDiscreteValue Integer32, inDiscreteElementID Gauge32, inDiscreteStatus DisplayString, inDiscreteState DisplayString, inDiscreteNominalValue Integer32 } inDiscreteID OBJECT-TYPE SYNTAX IndicatorUniqueID MAX-ACCESS not-accessible STATUS current DESCRIPTION "The unique identifier of the discrete indicator." ::= { discreteInputsEntry 1 } inDiscreteName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The name of the discrete indicator." ::= { discreteInputsEntry 2 } inDiscreteValue OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current value of the discrete indicator." ::= { discreteInputsEntry 3 } inDiscreteElementID OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The identifier of the element associated with this indicator." ::= { discreteInputsEntry 4 } inDiscreteStatus OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The current status of the discrete indicator." ::= { discreteInputsEntry 5 } inDiscreteState OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the discrete indicator." ::= { discreteInputsEntry 6 } inDiscreteNominalValue OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION "The nominal value of the discrete indicator." ::= { discreteInputsEntry 7 } -- =========================================================================== -- Analog inputs -- =========================================================================== analogInputsTable OBJECT-TYPE SYNTAX SEQUENCE OF AnalogInputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of analog input indicators." ::= { ersInputs 2 } analogInputsEntry OBJECT-TYPE SYNTAX AnalogInputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the analog input indicators table." INDEX { inAnalogID } ::= { analogInputsTable 1 } AnalogInputsEntry ::= SEQUENCE { inAnalogID IndicatorUniqueID, inAnalogName DisplayString, inAnalogValue Float32TC, inAnalogElementID Gauge32, inAnalogStatus DisplayString, inAnalogState DisplayString, inAnalogCriticalHighThreshold Float32TC, inAnalogWarningHighThreshold Float32TC, inAnalogCriticalLowThreshold Float32TC, inAnalogWarningLowThreshold Float32TC } inAnalogID OBJECT-TYPE SYNTAX IndicatorUniqueID MAX-ACCESS not-accessible STATUS current DESCRIPTION "The unique identifier of the analog indicator." ::= { analogInputsEntry 1 } inAnalogName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The name of the analog indicator." ::= { analogInputsEntry 2 } inAnalogValue OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS read-only STATUS current DESCRIPTION "The current value of the analog indicator." ::= { analogInputsEntry 3 } inAnalogElementID OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The identifier of the element associated with this indicator." ::= { analogInputsEntry 4 } inAnalogStatus OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The current status of the analog indicator." ::= { analogInputsEntry 5 } inAnalogState OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the analog indicator." ::= { analogInputsEntry 6 } inAnalogCriticalHighThreshold OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS read-write STATUS current DESCRIPTION "The critical high threshold value. Exceeding this value changes the indicator's state." ::= { analogInputsEntry 7 } inAnalogWarningHighThreshold OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS read-write STATUS current DESCRIPTION "The warning high threshold value. Exceeding this value changes the indicator's state." ::= { analogInputsEntry 8 } inAnalogCriticalLowThreshold OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS read-write STATUS current DESCRIPTION "The critical low threshold value. Falling below this value changes the indicator's state." ::= { analogInputsEntry 9 } inAnalogWarningLowThreshold OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS read-write STATUS current DESCRIPTION "The warning low threshold value. Falling below this value changes the indicator's state." ::= { analogInputsEntry 10 } -- =========================================================================== -- Discrete outputs -- =========================================================================== discreteOutputsTable OBJECT-TYPE SYNTAX SEQUENCE OF DiscreteOutputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of discrete output indicators." ::= { ersOutputs 1 } discreteOutputsEntry OBJECT-TYPE SYNTAX DiscreteOutputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the discrete output indicators table." INDEX { outDiscreteID } ::= { discreteOutputsTable 1 } DiscreteOutputsEntry ::= SEQUENCE { outDiscreteID IndicatorUniqueID, outDiscreteName DisplayString, outDiscreteValue Integer32, outDiscreteElementID Gauge32 } outDiscreteID OBJECT-TYPE SYNTAX IndicatorUniqueID MAX-ACCESS not-accessible STATUS current DESCRIPTION "The unique identifier of the discrete indicator." ::= { discreteOutputsEntry 1 } outDiscreteName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The name of the discrete indicator." ::= { discreteOutputsEntry 2 } outDiscreteValue OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION "The current value of the discrete indicator." ::= { discreteOutputsEntry 3 } outDiscreteElementID OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The identifier of the element associated with this indicator." ::= { discreteOutputsEntry 4 } -- =========================================================================== -- Analog outputs -- =========================================================================== analogOutputsTable OBJECT-TYPE SYNTAX SEQUENCE OF AnalogOutputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of analog output indicators." ::= { ersOutputs 2 } analogOutputsEntry OBJECT-TYPE SYNTAX AnalogOutputsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the analog output indicators table." INDEX { outAnalogID } ::= { analogOutputsTable 1 } AnalogOutputsEntry ::= SEQUENCE { outAnalogID IndicatorUniqueID, outAnalogName DisplayString, outAnalogValue Float32TC, outAnalogElementID Gauge32 } outAnalogID OBJECT-TYPE SYNTAX IndicatorUniqueID MAX-ACCESS not-accessible STATUS current DESCRIPTION "The unique identifier of the analog indicator." ::= { analogOutputsEntry 1 } outAnalogName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The name of the analog indicator." ::= { analogOutputsEntry 2 } outAnalogValue OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS read-write STATUS current DESCRIPTION "The current value of the analog indicator." ::= { analogOutputsEntry 3 } outAnalogElementID OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The identifier of the element associated with this indicator." ::= { analogOutputsEntry 4 } -- =========================================================================== -- SNMP Traps (Notifications) -- =========================================================================== ersDyingGasp NOTIFICATION-TYPE STATUS current DESCRIPTION "Notification about an unexpected power loss" ::= { ersSystemNotifications 1 } ersTestTrapMsg OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Message" ::= { ersSystemVariables 1 } -- TRAP = TestTrap ersTestTrap NOTIFICATION-TYPE OBJECTS { ersTestTrapMsg } STATUS current DESCRIPTION "A test SNMP notification to verify the traps' operation." ::= { ersSystemNotifications 999 } -- TRAP = IndicatorStateChanged ersDiscreteIndicatorStateChanged NOTIFICATION-TYPE OBJECTS { inDiscreteName, inDiscreteState, inDiscreteValue } STATUS current DESCRIPTION "Generated when a discrete input indicator's state changes." ::= { ersIndicatorNotifications 1 } ersAnalogIndicatorStateChanged NOTIFICATION-TYPE OBJECTS { inAnalogName, inAnalogState, inAnalogValue } STATUS current DESCRIPTION "Generated when a analog input indicator's state changes." ::= { ersIndicatorNotifications 2 } -- TRAP = OutputValueChanged ersDiscreteOutputValueChangedPrevValue OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The current value of the discrete indicator." ::= { ersIndicatorVariables 1 } ersAnalogOutputValueChangedPrevValue OBJECT-TYPE SYNTAX Float32TC MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The current value of the analog indicator." ::= { ersIndicatorVariables 2 } ersDiscreteOutputValueChanged NOTIFICATION-TYPE OBJECTS { outDiscreteName, outDiscreteValue, ersDiscreteOutputValueChangedPrevValue } STATUS current DESCRIPTION "Generated when a discrete output indicator's value changes." ::= { ersIndicatorNotifications 3 } ersAnalogOutputValueChanged NOTIFICATION-TYPE OBJECTS { outAnalogName, outAnalogValue, ersAnalogOutputValueChangedPrevValue } STATUS current DESCRIPTION "Generated when a discrete output indicator's value changes." ::= { ersIndicatorNotifications 4 } ersAutomationRuleSucceedName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Name of the rule" ::= { ersAutomationVariables 1 } ersAutomationRuleSucceedType OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Type of the rule" ::= { ersAutomationVariables 2 } -- TRAP = AutomationRuleSucceed ersAutomationRuleSucceed NOTIFICATION-TYPE OBJECTS { ersAutomationRuleSucceedName, ersAutomationRuleSucceedType } STATUS current DESCRIPTION "Fired when automation rule succeeds" ::= { ersAutomationNotifications 1 } -- =========================================================================== -- Groups & Compliance -- =========================================================================== inputTablesGroup OBJECT-GROUP OBJECTS { inDiscreteName, inDiscreteValue, inDiscreteElementID, inDiscreteStatus, inDiscreteState, inDiscreteNominalValue, inAnalogName, inAnalogValue, inAnalogElementID, inAnalogStatus, inAnalogState, inAnalogCriticalHighThreshold, inAnalogWarningHighThreshold, inAnalogCriticalLowThreshold, inAnalogWarningLowThreshold } STATUS current DESCRIPTION "A group containing all input indicator objects." ::= { ersGroups 1 } outputTablesGroup OBJECT-GROUP OBJECTS { outDiscreteName, outDiscreteValue, outDiscreteElementID, outAnalogName, outAnalogValue, outAnalogElementID } STATUS current DESCRIPTION "A group containing all output indicator objects." ::= { ersGroups 2 } trapVariablesGroup OBJECT-GROUP OBJECTS { ersTestTrapMsg, ersDiscreteOutputValueChangedPrevValue,ersAnalogOutputValueChangedPrevValue, ersAutomationRuleSucceedName, ersAutomationRuleSucceedType } STATUS current DESCRIPTION "A group containing variables embedded in traps." ::= { ersGroups 3 } trapGroup NOTIFICATION-GROUP NOTIFICATIONS { ersDiscreteIndicatorStateChanged, ersAnalogIndicatorStateChanged, ersDiscreteOutputValueChanged, ersAnalogOutputValueChanged, ersAutomationRuleSucceed, ersDyingGasp, ersTestTrap } STATUS current DESCRIPTION "A group containing state change notifications." ::= { ersGroups 4 } ersCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNR-ERS devices." MODULE MANDATORY-GROUPS { inputTablesGroup, outputTablesGroup, trapVariablesGroup, trapGroup } ::= { ersCompliances 5 } END