-- -----------------------------------------------------------------------------
-- MIB NAME : Eltex Flex Links
-- FILE NAME: eltFlexLinksV2.mib
-- DATE     : 2014/10/9
-- VERSION  : 1.00
-- PURPOSE  : MIB structure of Flex Links feature
-- -----------------------------------------------------------------------------

ELTEX-FLEX-LINKS-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Unsigned32
                FROM SNMPv2-SMI
            MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
            TruthValue
                FROM SNMPv2-TC
            InterfaceIndex, InterfaceIndexOrZero
                FROM IF-MIB
            eltexLtd
                FROM ELTEX-SMI-ACTUAL;

        eltexFlexLinksMIB MODULE-IDENTITY
            LAST-UPDATED "201410070000Z"
            ORGANIZATION "Eltex Ltd."
            CONTACT-INFO
                "http://www.eltex.nsk.ru"
            DESCRIPTION
                "This MIB module is for configuration and status query
                of Flex Links feature on the Eltex device.

                Flex Links are a pair of Layer 2 interfaces, where one
                interface is configured to act as a backup to the other.
                The feature provides an alternative solution to the
                Spanning Tree Protocol (STP), allowing users to turn
                off STP and still provide basic link redundancy.

                Flex Links are typically configured in service provider
                or enterprise networks where users do not want to run
                STP on the device."
        ::= { eltexLtd 31 }

eltexFlexLinksMIBNotifs      OBJECT IDENTIFIER ::=
                                { eltexFlexLinksMIB 0 }
eltexFlexLinksMIBObjects     OBJECT IDENTIFIER ::=
                                { eltexFlexLinksMIB 1 }
eltexFlexLinksMIBConformance OBJECT IDENTIFIER ::=
                                { eltexFlexLinksMIB 2 }

eltexFlConfig                OBJECT IDENTIFIER ::=
                                { eltexFlexLinksMIBObjects 1 }
eltexFlStatus                OBJECT IDENTIFIER ::=
                                { eltexFlexLinksMIBObjects 2 }

-- Flex Links configuration table

eltexFlIfConfigTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF EltexFlIfConfigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "This table allows user to configure Flex Links.

                The Flex Links feature requires interface pairs to be
                setup. This table allows user to specify such
                interface pairs.

                An interface can become part of only one such interface
                pair at any given time."
        ::= { eltexFlConfig 1 }

eltexFlIfConfigEntry OBJECT-TYPE
        SYNTAX     EltexFlIfConfigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry containing information about Flex Links
                configuration. Each entry configures a pair of
                interfaces for a Flex Links.

                Only those Layer 2 interfaces which are capable of
                performing Flex Links operation may be configured
                in this table.

                Once an interface is configured as part of a Flex Links
                pair, such an interface, can not be configured as a
                part of other Flex Links pairs."
        INDEX { eltexFlIfConfigPrimary }
        ::= { eltexFlIfConfigTable 1 }

EltexFlIfConfigEntry ::= SEQUENCE {
        eltexFlIfConfigPrimary     InterfaceIndex,
        eltexFlIfConfigBackUp      InterfaceIndexOrZero
}

eltexFlIfConfigPrimary OBJECT-TYPE
        SYNTAX     InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The object indicates the primary interface in this
                Flex Links pair."
    ::= { eltexFlIfConfigEntry 1 }

eltexFlIfConfigBackUp OBJECT-TYPE
        SYNTAX     InterfaceIndexOrZero
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The object indicates the back up interface in this
                Flex Links pair.

                The value of this object is changed to 0 (zero) if this
                interface is removed from the ifTable. The SNMP agent
                is responsible for updating this object's value once
                the interface is added to the ifTable. The value of
                0 (zero) cannot be set."
    ::= { eltexFlIfConfigEntry 2 }

eltexFlEnableStatusChangeNotif OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "This variable indicates whether the system
                produces the eltexFlIfStatusChangeNotif.

                A value of 'false' will prevent
                eltexFlIfStatusChangeNotif."
    ::= { eltexFlConfig 2 }

-- Flex Links configuration Extension table

eltexFlIfConfigExtTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF EltexFlIfConfigExtEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "This table contains management information, such as
                of MAC address-table Move Update(MMU), preemption
                mechanism, VLAN load balancing of Flex Links pair,
                of interfaces which are capable of supporting these
                features."
        ::= { eltexFlConfig 3 }

eltexFlIfConfigExtEntry OBJECT-TYPE
        SYNTAX     EltexFlIfConfigExtEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry containing Flex Links management information
                for a particular interface."
        INDEX { eltexFlIfConfigPrimary }
        ::= { eltexFlIfConfigExtTable 1 }

EltexFlIfConfigExtEntry ::= SEQUENCE {
        eltexFlIfConfigPreemptionMode        INTEGER,
        eltexFlIfConfigPreemptionDelay       Unsigned32
}

eltexFlIfConfigPreemptionMode OBJECT-TYPE
        SYNTAX     INTEGER {
                       off(1),
                       forced(2),
                       bandwidth(3)
                   }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The object specifies the preemption mechanism for
                a Flex Link interface pair.

                off - No preemption happens from active interface
                      to backup interface.

                forced - The active interface always preempts the
                      backup interface.  The preemption occurs
                      after the time specified in
                      eltexFlIfConfigPreemptionDelay.

                bandwidth - The interface with higher bandwidth
                      always acts as the active interface."
    ::= { eltexFlIfConfigExtEntry 1 }

eltexFlIfConfigPreemptionDelay OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "seconds"
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The object specifies the delay time until an
                interface preempts another interface for a
                Flex Link interface pair."
    ::= { eltexFlIfConfigExtEntry 2 }

-- Flex Links status table

eltexFlIfStatusTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF EltexFlIfStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "A list of interfaces which are members of Flex Links."
        ::= { eltexFlStatus 1 }

eltexFlIfStatusEntry OBJECT-TYPE
        SYNTAX     EltexFlIfStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry, containing status information about a
                Flex Links interface.

                Entry is created when an interface is configured as
                a member of a Flex Links. When an entry is created
                in the eltexFlIfConfigTable, entries corresponding to
                eltexFlIfConfigPrimary and eltexFlIfConfigBackUp are created
                in this table.

                Entry is deleted when an interface is removed from
                a Flex Links. When an entry is removed from the
                eltexFlIfConfigTable, entries corresponding to
                eltexFlIfConfigPrimary and eltexFlIfConfigBackUp are deleted
                from this table."
        INDEX { eltexFlIfIndex }
        ::= { eltexFlIfStatusTable 1 }

EltexFlIfStatusEntry ::= SEQUENCE {
        eltexFlIfIndex                InterfaceIndex,
        eltexFlIfStatus               INTEGER
}

eltexFlIfIndex OBJECT-TYPE
        SYNTAX     InterfaceIndex
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The index value which uniquely identifies the
                interface to which this entry is applicable.
                eltexFlIfIndex is the same as the ifIndex of the
                interface associated with a Flex Links."
    ::= { eltexFlIfStatusEntry 1 }

eltexFlIfStatus OBJECT-TYPE
        SYNTAX     INTEGER {
                        forwarding(1),
                        blocking(2),
                        down(3),
                        unknown(4)
                   }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The status of an interface which is participating in
                Flex Links operation.

                A value of 'forwarding' indicates that, the interface is
                participating in Flex Links operation and is
                actively forwarding traffic.

                A value of 'blocking' indicates that, interface is
                participating in Flex Links operation and is ready
                to forward traffic if the interface it backs up in
                Flex Links operation goes down.

                A value of 'down' indicates that, the interface
                participating in Flex Links operation has gone down.

                A value of 'unknown' indicates that, the interface
                is participating Flex Links operation and has entered
                an unknown state."
    ::= { eltexFlIfStatusEntry 2 }

-- Notifications

eltexFlIfStatusChangeNotif NOTIFICATION-TYPE
        OBJECTS {
                eltexFlIfIndex,
                eltexFlIfStatus
        }
        STATUS  current
        DESCRIPTION
                "A eltexFlIfStatusChangeNotif is generated when the
                value of eltexFlIfStatus changes."
    ::= { eltexFlexLinksMIBNotifs 1 }

-- Conformance

eltexFlexLinksMIBCompliances OBJECT IDENTIFIER
                                  ::= { eltexFlexLinksMIBConformance 1 }
eltexFlexLinksMIBGroups      OBJECT IDENTIFIER
                                  ::= { eltexFlexLinksMIBConformance 2 }

eltexFlexLinksMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which implement
                the ELTEX-FLEX-LINKS-MIB."
        MODULE        -- this module
                MANDATORY-GROUPS {
                        eltexFlexLinksIfConfigGroup,
                        eltexFlexLinksIfStatusGroup,
                        eltexFlexLinksEnableNotifGroup,
                        eltexFlexLinksNotifGroup
                }
        GROUP           eltexFlexLinksPreemptionGroup
        DESCRIPTION
                "This group is mandatory in devices running software
                which support preemption feature."

        OBJECT          eltexFlIfConfigBackUp
        MIN-ACCESS      read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT          eltexFlEnableStatusChangeNotif
        MIN-ACCESS      read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT          eltexFlIfConfigPreemptionMode
        MIN-ACCESS      read-only
        DESCRIPTION
            "Write access is not required."

        OBJECT          eltexFlIfConfigPreemptionDelay
        MIN-ACCESS      read-only
        DESCRIPTION
            "Write access is not required."

        ::= { eltexFlexLinksMIBCompliances 1 }

-- Units of Conformance

eltexFlexLinksIfConfigGroup OBJECT-GROUP
        OBJECTS {
                eltexFlIfConfigBackUp
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing interface
                configuration information for Flex Links."
        ::= { eltexFlexLinksMIBGroups 1 }

eltexFlexLinksIfStatusGroup OBJECT-GROUP
        OBJECTS {
                eltexFlIfStatus
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing interface
                status information for Flex Links."
        ::= { eltexFlexLinksMIBGroups 2 }

eltexFlexLinksEnableNotifGroup OBJECT-GROUP
        OBJECTS {
                eltexFlEnableStatusChangeNotif
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing enabling/disabling
                 of the status change notifications for Flex
                 Links."
        ::= { eltexFlexLinksMIBGroups 3 }

eltexFlexLinksNotifGroup NOTIFICATION-GROUP
        NOTIFICATIONS  {
                 eltexFlIfStatusChangeNotif
        }
        STATUS current
        DESCRIPTION
                "A collection of notifications providing the status
                 change for Flex Links."
        ::= { eltexFlexLinksMIBGroups 4 }

eltexFlexLinksPreemptionGroup OBJECT-GROUP
        OBJECTS {
                 eltexFlIfConfigPreemptionMode,
                 eltexFlIfConfigPreemptionDelay
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing interface
                preemption information of Flex Links."
        ::= { eltexFlexLinksMIBGroups 5 }

END

