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

-- Title:                Eltex MES Storm-control Configuration
-- Version:              2.0
-- Date:                 29-Oct-2015

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE  FROM SNMPv2-SMI
    TruthValue                                       FROM SNMPv2-TC
    InterfaceIndex                                   FROM IF-MIB
    eltMes                                           FROM ELTEX-MES;

eltMesStormCtrl MODULE-IDENTITY
                LAST-UPDATED "201510290000Z"
                ORGANIZATION "Eltex Enterprise Co, Ltd."
                CONTACT-INFO
                      "www.eltex.nsk.ru"
                DESCRIPTION
					"This private MIB module defines Eltex's private storm-control MIBs."

				REVISION "201510290000Z"
				DESCRIPTION
                	"Added eltStormCtrlAction field to eltStormCtrlConfigTable.
                    Added value 'shutdown' to EltStormControlStatusType."

                REVISION "201412300000Z"
                DESCRIPTION
					"Initial revision."
        ::= { eltMes 77 }

--
-- MIB Groups
--

eltMesStormCtrlMIBNotifs      OBJECT IDENTIFIER ::=
                                { eltMesStormCtrl 0 }
eltMesStormCtrlMIBObjects     OBJECT IDENTIFIER ::=
                                { eltMesStormCtrl 1 }

eltMesStormCtrlConfig         OBJECT IDENTIFIER ::=
                                { eltMesStormCtrlMIBObjects 1 }

eltMesStormCtrlStatus         OBJECT IDENTIFIER ::=
                                { eltMesStormCtrlMIBObjects 2 }

--
-- Textual Conventions
--

EltStormCtrlNotification ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "If the object is set to none(1), no notifications will
                     be generated.

                     A notification will be generated when a storm event is
                     detected or cleared when the object is set to
                     stormDetected(2) or stormCleared(3) respectively.

                     If the object is set to both(4), a notification will be
                     generated both when a storm event is detected and
                     cleared."
        SYNTAX INTEGER  {
                            none(1),
                            stormDetected(2),
                            stormCleared(3),
                            both(4)
                        }

EltStormCtrlTrafficType ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "The type of traffic."
        SYNTAX INTEGER  {
                            broadcast(1),
                            multicast(2),
                            unicast(3),
                            all(4)
                        }

EltStormControlStatusType ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "The current status of storm control on a given
                     interface for a given traffic type.

                     inactive        - Storm control is not enabled.

                     forwarding      - Storm control is enabled. No storm event has
                                       been detected.

                     trafficFiltered - Storm control is enabled. Storm event
                                       has occurred and traffic received
                                       on the interface is being filtered.

					 shutdown        - Storm control is enabled. Storm event
									   has occurred and interface is shutdown."

        SYNTAX INTEGER  {
                            inactive(1),
                            forwarding(2),
                            trafficFiltered(3),
                            shutdown(4)
                        }

EltStormControlActionType ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION "Type of action in case of storm.

                     filtering       - Filter broadcast traffic.

					 shutdown        - Shutdown this interface."

        SYNTAX INTEGER  {
                            filtering(1),
                            shutdown(2)
                        }

--
-- Storm-control configuration
--

eltStormCtrlConfigStatusChangeNotif OBJECT-TYPE
        SYNTAX      EltStormCtrlNotification
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable indicates whether the system
                     produces the eltStormCtrlStatusChangeNotif."
    ::= { eltMesStormCtrlConfig 1 }

eltStormCtrlConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF EltStormCtrlConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table of storm control configuration entries."
    ::= { eltMesStormCtrlConfig 2 }

eltStormCtrlConfigEntry OBJECT-TYPE
        SYNTAX      EltStormCtrlConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Storm control configuration entries, one per
                     interface and traffic type."
        INDEX           {
                            eltStormCtrlIfIndex,
                            eltStormCtrlTrafficType
                        }
    ::= { eltStormCtrlConfigTable 1 }

EltStormCtrlConfigEntry ::= SEQUENCE {
        eltStormCtrlTrafficLogging          TruthValue,
        eltStormCtrlAction                  EltStormControlActionType
}

eltStormCtrlTrafficLogging OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DEFVAL      {false}
        DESCRIPTION "This variable indicates whether the system
                     logging storm events on the interface to
                     particular traffic type."
    ::= { eltStormCtrlConfigEntry 1 }

eltStormCtrlAction OBJECT-TYPE
		SYNTAX      EltStormControlActionType
		MAX-ACCESS  read-write
		STATUS      current
		DEFVAL      {filtering}
		DESCRIPTION "This variable indicates which
					action will be used in case of storm."
	::= { eltStormCtrlConfigEntry 2 }

--
-- Storm-control status information
--

eltStormCtrlStatusTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF EltStormCtrlStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table of storm control status entries."
    ::= { eltMesStormCtrlStatus 1 }

eltStormCtrlStatusEntry OBJECT-TYPE
        SYNTAX      EltStormCtrlStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Storm control status entries, one per interface and traffic type."
        INDEX           {
                            eltStormCtrlIfIndex,
                            eltStormCtrlTrafficType
                        }
    ::= { eltStormCtrlStatusTable 1 }

EltStormCtrlStatusEntry ::= SEQUENCE {
        eltStormCtrlIfIndex                 InterfaceIndex,
        eltStormCtrlTrafficType             EltStormCtrlTrafficType,
        eltStormCtrlTrafficStatus           EltStormControlStatusType
}

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

eltStormCtrlTrafficType OBJECT-TYPE
        SYNTAX      EltStormCtrlTrafficType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Traffic type."
    ::= { eltStormCtrlStatusEntry 2 }

eltStormCtrlTrafficStatus OBJECT-TYPE
        SYNTAX      EltStormControlStatusType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object identifies the status of storm control."
    ::= { eltStormCtrlStatusEntry 3 }

--
-- Notifications
--

eltStormCtrlStatusChangeNotif NOTIFICATION-TYPE
        OBJECTS         {
                            eltStormCtrlTrafficStatus
                        }
        STATUS  current
        DESCRIPTION
                "Trap indicating that storm event is detected or cleared."
        ::= { eltMesStormCtrlMIBNotifs 1 }

END

