-- -----------------------------------------------------------------------------
-- MIB NAME : Eltex Loopback Detection Extension
-- FILE NAME: eltLbdVlanBased.mib
-- DATE     : 2015/3/1
-- VERSION  : 1.00
-- PURPOSE  : MIB extention of LBD feature
-- -----------------------------------------------------------------------------

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

IMPORTS
    OBJECT-TYPE
    	FROM SNMPv2-SMI
    eltMes
    	FROM ELTEX-MES
    TruthValue
	    FROM SNMPv2-TC
	InterfaceIndex
	    FROM IF-MIB
    VlanIndex
    	FROM Q-BRIDGE-MIB;

eltMesLbd 		OBJECT IDENTIFIER ::= { eltMes 127 }
eltMesLbdNotif  OBJECT IDENTIFIER ::= { eltMesLbd 0 }

-- -----------------------------------------------------------------------------
-- SCALARS
-- -----------------------------------------------------------------------------

eltLbdVlanBased OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Enable/Disable VLAN based loopback detection."
	::= { eltMesLbd 1 }

eltLbdVlanBasedRecoveryTime OBJECT-TYPE
    SYNTAX INTEGER
    UNITS "seconds"
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "VLAN disable period in seconds. Valid only for VLAN based loopback
         detection. Default value of 0 means that VLAN will never be recovered."
    ::= { eltMesLbd 2 }

-- -----------------------------------------------------------------------------
-- eltLbdVlanBasedPortTable
-- -----------------------------------------------------------------------------

eltLbdVlanBasedPortTable OBJECT-TYPE
    SYNTAX SEQUENCE OF EltLbdVlanBasedPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains per port VLAN list for which loopback is detected."
    ::= { eltMesLbd 3 }

eltLbdVlanBasedPortEntry OBJECT-TYPE
    SYNTAX EltLbdVlanBasedPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry contains per port VLAN list for which loopback is detected."
    INDEX { eltLbdVlanBasedPort }
    ::= { eltLbdVlanBasedPortTable 1 }

EltLbdVlanBasedPortEntry ::= SEQUENCE {
        eltLbdVlanBasedPort               InterfaceIndex,
        eltLbdVlanBasedVlanId1To1024      OCTET STRING,
        eltLbdVlanBasedVlanId1025To2048   OCTET STRING,
        eltLbdVlanBasedVlanId2049To3072   OCTET STRING,
        eltLbdVlanBasedVlanId3073To4094   OCTET STRING
    }

eltLbdVlanBasedPort OBJECT-TYPE
    SYNTAX  InterfaceIndex
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The port number."
    ::= { eltLbdVlanBasedPortEntry 1 }

eltLbdVlanBasedVlanId1To1024 OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "First VlanId List that have detected a loopback."
    ::= { eltLbdVlanBasedPortEntry 2 }

eltLbdVlanBasedVlanId1025To2048 OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Second VlanId List that have detected a loopback."
    ::= { eltLbdVlanBasedPortEntry 3 }

eltLbdVlanBasedVlanId2049To3072 OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Third VlanId List that have detected a loopback."
    ::= { eltLbdVlanBasedPortEntry 4 }

eltLbdVlanBasedVlanId3073To4094 OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Fourth VlanId List that have detected a loopback."
    ::= { eltLbdVlanBasedPortEntry 5 }

-- -----------------------------------------------------------------------------
-- eltLbdVlanBasedVlanStateTable
-- -----------------------------------------------------------------------------

eltLbdVlanBasedVlanStateTable OBJECT-TYPE
    SYNTAX SEQUENCE OF EltLbdVlanBasedVlanStateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains per port and VLAN loopback state. Only VLANS in
         which port is tagged or native member are present."
    ::= { eltMesLbd 4 }

eltLbdVlanBasedVlanStateEntry OBJECT-TYPE
    SYNTAX EltLbdVlanBasedVlanStateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry contains per port and VLAN loopback state."
    INDEX { eltLbdVlanBasedVlanStatePort, eltLbdVlanBasedVlanStateVlan }
    ::= { eltLbdVlanBasedVlanStateTable 1 }

EltLbdVlanBasedVlanStateEntry ::= SEQUENCE {
        eltLbdVlanBasedVlanStatePort  InterfaceIndex,
        eltLbdVlanBasedVlanStateVlan  VlanIndex,
        eltLbdVlanBasedVlanState      INTEGER
    }

eltLbdVlanBasedVlanStatePort OBJECT-TYPE
    SYNTAX  InterfaceIndex
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Port number with LBD enabled."
    ::= { eltLbdVlanBasedVlanStateEntry 1 }

eltLbdVlanBasedVlanStateVlan OBJECT-TYPE
    SYNTAX  VlanIndex
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "ID of VLAN that port belongs to."
    ::= { eltLbdVlanBasedVlanStateEntry 2 }

eltLbdVlanBasedVlanState OBJECT-TYPE
    SYNTAX  INTEGER {
    			active(1),
            	blocked(2)
    		}
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The loopback state of port in VLAN."
    ::= { eltLbdVlanBasedVlanStateEntry 3 }

-- -----------------------------------------------------------------------------
-- Notifications
-- -----------------------------------------------------------------------------

eltLbdVlanBasedVlanNotif NOTIFICATION-TYPE
        OBJECTS {
            eltLbdVlanBasedVlanState
        }
        STATUS  current
        DESCRIPTION
                "A eltLbdVlanBasedVlanNotif is generated when VLAN with detected
                 loopback is enabled/disabled."
    ::= { eltMesLbdNotif 1 }

END
