ENTERASYS-VIRTUAL-SWITCH-BONDING-MIB DEFINITIONS ::= BEGIN

--  enterasys-virtual-switch-bonding-mib.txt
--
--  Part Number:
--
--

--  This module provides authoritative definitions for Enterasys 
--  Networks' Virtual Switch Bonding MIB.

--
--  This module will be extended, as needed.

--  Enterasys Networks reserves the right to make changes in this
--  specification and other information contained in this document
--  without prior notice.  The reader should consult Enterasys Networks
--  to determine whether any such changes have been made.
--
--  In no event shall Enterasys Networks be liable for any incidental,
--  indirect, special, or consequential damages whatsoever (including
--  but not limited to lost profits) arising out of or related to this
--  document or the information contained in it, even if Enterasys
--  Networks has been advised of, known, or should have known, the
--  possibility of such damages.
--
--  Enterasys Networks grants vendors, end-users, and other interested
--  parties a non-exclusive license to use this Specification in 
--  connection with the management of Enterasys Networks products.

--  Copyright March 2012 Enterasys Networks, Inc.

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, TruthValue, TimeStamp, MacAddress
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    ifIndex
        FROM IF-MIB
    etsysModules
        FROM ENTERASYS-MIB-NAMES;

etsysVirtualSwitchBondingMIB MODULE-IDENTITY
    LAST-UPDATED "201203131914Z"  -- Tue Mar 13 19:14 UTC 2012
    ORGANIZATION "Enterasys Networks, Inc"
    CONTACT-INFO
        "Postal:  Enterasys Networks
                  50 Minuteman Rd.
                  Andover, MA 01810-1008
                  USA
         Phone:   +1 978 684 1000
         E-mail:  support@enterasys.com
         WWW:     http://www.enterasys.com"
    DESCRIPTION
        "This MIB module defines a portion of the SNMP MIB under
         Enterasys Networks' enterprise OID pertaining to Virtual
         Switch Bonding (VSB).

         VSB is meant to accomplish two similar 
         goals: to allow the aggregation of two or more
         chassis-type products into a single, virtual network 
         device; and similarly to support building a stack of 
         two or more stand-alone-type products. The key operational 
         benefit behind this (and similar) technologies is the 
         ability to provide transparent Layer 2 physical redundancy 
         (redundancy of both links and network devices) all the way 
         to the edge of the network."

    REVISION "201203131914Z"  -- Tue Mar 13 19:14 UTC 2012
    DESCRIPTION
        "Added the etsysVsbSystemLinkFailureResponse and
         etsysVsbChassisLfrOperPriority objects."

    REVISION "201202071553Z"  -- Tue Feb  7 15:53 UTC 2012
    DESCRIPTION
        "Correct DEFVAL clause for etsysVsbPortAdminStatus."

    REVISION "201112132031Z"  -- Tue Dec 13 20:31 UTC 2011
    DESCRIPTION
        "The initial version of this MIB module."

    ::= { etsysModules 83 } 


-- -------------------------------------------------------------
-- MIB Objects
-- -------------------------------------------------------------

etsysVsbObjects      
        OBJECT IDENTIFIER ::= { etsysVirtualSwitchBondingMIB 1 }

etsysVsbSystem
        OBJECT IDENTIFIER ::= { etsysVsbObjects 1 }

etsysVsbChassis
        OBJECT IDENTIFIER ::= { etsysVsbObjects 2 }

etsysVsbPort
        OBJECT IDENTIFIER ::= { etsysVsbObjects 3 }


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

VsbId ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
       "An octet string value that uniquely identifies a 
        virtual switch. A string of zero length means no ID is 
        configured for this device."
    SYNTAX  OCTET STRING (SIZE (0|8)) 

VsbChassisStatus ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
       "This textual convention describes chassis  
        bonding status.

        up(1)         indicates chassis is present and bonded
                      to all virtual switch members.
        down(2)       indicates chassis is not present.
        incomplete(3) indicates chassis is present but not 
                      bonded to all virtual switch members.
        inactive(4)   indicates chassis is present but not
                      active in the bond."
    SYNTAX INTEGER  {
                        up(1),
                        down(2),
                        incomplete(3),
                        inactive(4)
                    }

VsbSlotList ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION
      "Each octet within this value specifies a set of eight 
       slots, with the first octet specifying slots 1 through 8,
       the second octet specifying slots 9 through 16, etc.
       Within each octet, the most significant bit represents 
       the lowest numbered slot, and the least significant bit
       represents the highest numbered slot. Thus, each slot
       of the virtual switch is represented by a single bit 
       within the value of this object. If that bit has a value
       of '1' then that slot is included in the set of slots; 
       the slot is not included if its bit has a value of '0'." 
   SYNTAX OCTET STRING 

-- ---------------------------------------------------------- --
--  VSB System Group 
-- ---------------------------------------------------------- --

etsysVsbSystemEnable OBJECT-TYPE
    SYNTAX        INTEGER {
                    enabled(1),
                    disabled(2)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
       "The administrative enable/disable state for VSB. 
        Enabling this object turns on VSB in a system."
    DEFVAL { disabled }
    ::= { etsysVsbSystem  1 }

etsysVsbSystemMaxChassis OBJECT-TYPE 
    SYNTAX        Unsigned32      
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
       "The maximum number of physical chassis supported 
        in the virtual switch."
    ::= { etsysVsbSystem  2 }

etsysVsbSystemMaxSlotNumber OBJECT-TYPE 
    SYNTAX        Unsigned32      
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
       "The maximum slot number supported in the virtual switch."
    ::= { etsysVsbSystem  3 }

etsysVsbAdministrativeMacAddress OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    
       "The administratively configured mac address of the 
        virtual switch."
    ::= { etsysVsbSystem  4 }

etsysVsbOperationalMacAddress OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    
       "The operationally assigned mac address of the 
        virtual switch.  If no mac address is administratively 
        configured, the VSB system will be responsible for selecting 
        and assigning the virtual switch mac address."
    ::= { etsysVsbSystem  5 }

etsysVsbSystemLinkFailureResponse OBJECT-TYPE
    SYNTAX        INTEGER {
                    enabled(1),
                    disabled(2)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
       "The administrative state of the Link Failure Response 
        for the VSB.  Enabling this object turns on the default 
        Link Failure Response algorithms."
    DEFVAL { disabled }
    ::= { etsysVsbSystem  6 }


-- ---------------------------------------------------------- --
-- VSB Chassis Table 
-- ---------------------------------------------------------- --

etsysVsbChassisTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF EtsysVsbChassisEntry 
    MAX-ACCESS    not-accessible 
    STATUS        current
    DESCRIPTION
       "This table contains the configuration information for 
        the physical chassis of a virtual switch. 

        Adding a chassis to a virtual switch is initiated by 
        assigning a virtual switch system ID to an entry.
        The entry index is also the chassis ID in the virtual switch.

        A virtual switch ID can only be administratively assigned
        to one entry in the table because a chassis cannot 
        simultaneously be a member of multiple virtual switches, 
        or have multiple chassis IDs in the same virtual switch. 
        A value of 'inconsistentValue' will be returned if attempts 
        are made to assign the same virtual switch ID to more than 
        one entry.

        Chassis ID is also used to indicate relative position 
        in the virtual switch, where chassis 1 is assigned slot 1 
        through n, chassis 2 is assigned slots n+1 through n+m, 
        where n and m are the max number of slots for chassis 1 and
        2 respectively."
    ::= { etsysVsbChassis 1 }

etsysVsbChassisEntry OBJECT-TYPE
    SYNTAX        EtsysVsbChassisEntry 
    MAX-ACCESS    not-accessible 
    STATUS        current
    DESCRIPTION
       "The configuration for a physical chassis in the 
        virtual switch."
    INDEX { etsysVsbChassisIndex }
    ::= { etsysVsbChassisTable 1 }

EtsysVsbChassisEntry ::= 
    SEQUENCE {
        etsysVsbChassisIndex            Unsigned32,
        etsysVsbChassisSystemId         VsbId,
        etsysVsbChassisSerialNum        SnmpAdminString,
        etsysVsbChassisFirstSlotNumber  Unsigned32,
        etsysVsbChassisLocalSlotList    VsbSlotList, 
        etsysVsbChassisSystemSlotList   VsbSlotList, 
        etsysVsbChassisStatus           VsbChassisStatus,
        etsysVsbChassisLastBondTime     TimeStamp,
        etsysVsbChassisSharedSecret     SnmpAdminString,
        etsysVsbChassisSecretEntered    TruthValue,
        etsysVsbChassisLfrOperPriority  Unsigned32
    }

etsysVsbChassisIndex OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION 
       "The identifier of this chassis in the virtual switch.  
        This value is in the range between 1..etsysVsbSystemMaxChassis."
    ::= { etsysVsbChassisEntry 1 }

etsysVsbChassisSystemId OBJECT-TYPE
    SYNTAX        VsbId
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
       "The virtual switch ID for this switch."  
    ::= { etsysVsbChassisEntry 2 }

etsysVsbChassisSerialNum OBJECT-TYPE
    SYNTAX        SnmpAdminString (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
       "The serial number string for the physical chassis or standalone 
        device in a bonded setup."
    ::= { etsysVsbChassisEntry 3 }

etsysVsbChassisFirstSlotNumber OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
       "The administratively assigned first slot position in the 
        virtual switch. Manually initializing chassis position 
        will override automatic positioning by the VSB system.  
        In the event another chassis already occupies the position,
        this chassis will not be added to the bond. This value is in the
        range of 0|1..etsysVsbSystemMaxSlotNumber."
    DEFVAL { 0 }
    ::= { etsysVsbChassisEntry 4 }

etsysVsbChassisLocalSlotList OBJECT-TYPE
    SYNTAX        VsbSlotList 
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
       "The set of slots local to this chassis that are present."
    ::= { etsysVsbChassisEntry 5 }

etsysVsbChassisSystemSlotList OBJECT-TYPE
    SYNTAX        VsbSlotList 
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
       "The set of local and bonded slots that are present."
    ::= { etsysVsbChassisEntry 6 }

etsysVsbChassisStatus OBJECT-TYPE
    SYNTAX        VsbChassisStatus
    MAX-ACCESS    read-only 
    STATUS        current
    DESCRIPTION
       "The bonding status of this chassis."
    ::= { etsysVsbChassisEntry 7 }

etsysVsbChassisLastBondTime OBJECT-TYPE
    SYNTAX        TimeStamp 
    MAX-ACCESS    read-only 
    STATUS        current
    DESCRIPTION
       "Last sysUpTime at which this chassis was connected 
        to all other members of the virtual switch."
    ::= { etsysVsbChassisEntry 8 }

etsysVsbChassisSharedSecret OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The secret shared between the chassis in a virtual switch used
        to authenticate the bonding protocol data being transmitted 
        between chassis.

        On a read operation this object MUST return a zero length
        string.

        Writing this object with a zero length string clears the
        secret."
    ::= { etsysVsbChassisEntry 9 }

etsysVsbChassisSecretEntered OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "true(1) - Indicates that etsysVsbChassisSharedSecret was
        last set with some value other than the empty string.

        false(2) - Indicates that etsysVsbChassisSharedSecret has
        never been set, or was last set to the empty string."
    ::= { etsysVsbChassisEntry 10 }

etsysVsbChassisLfrOperPriority OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "Operational priority assigned to the associated chassis 
        identifier.  When responding to a VSB link failure, the 
        currently operational chassis with the highest priority 
        is allowed to remain operational.  This value is in the 
        range between 1..255."
    ::= { etsysVsbChassisEntry 11 }

-- ---------------------------------------------------------- --
--  VSB Port Table 
-- ---------------------------------------------------------- --
         
etsysVsbPortTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF EtsysVsbPortEntry 
    MAX-ACCESS    not-accessible 
    STATUS        current
    DESCRIPTION
       "A table of configuration and status objects for each 
        port that supports Bonding Port mode."
    ::= { etsysVsbPort 1 }

etsysVsbPortEntry OBJECT-TYPE
    SYNTAX        EtsysVsbPortEntry 
    MAX-ACCESS    not-accessible 
    STATUS        current
    DESCRIPTION 
       "An entry containing per port bonding properties."
    INDEX { ifIndex }
    ::= { etsysVsbPortTable 1 }

EtsysVsbPortEntry ::= 
    SEQUENCE {
        etsysVsbPortAdminStatus  INTEGER,        
        etsysVsbPortOperStatus   INTEGER 
    }

etsysVsbPortAdminStatus OBJECT-TYPE
    SYNTAX        INTEGER {
                        up(1),
                        down(2)
                  }
    MAX-ACCESS    read-write 
    STATUS        current
    DESCRIPTION
       "The desired state of the bonding port for this ifIndex."
    DEFVAL { down }
    ::= { etsysVsbPortEntry 1 }

etsysVsbPortOperStatus OBJECT-TYPE
    SYNTAX        INTEGER {
                        up(1),
                        down(2),
                        highLatency(3),
                        probeLoop(4),
                        probeTimeout(5),
                        portInstability(6)
                  }
    MAX-ACCESS    read-only 
    STATUS        current
    DESCRIPTION
       "The operational status of the bonding port for this ifIndex.
        If the state is NOT up, then it is down for the stated reason,
        if known.  If etsysVsbPortAdminStatus is down(2), then
        etsysVsbPortOperStatus should be down(2).  If etsysVsbPortAdminStatus
        is changed to up(1) the etsysVsbPortOperStatus should change to 
        up(1) if the interface is ready to transmit and receive bonding
        traffic.  It should remain in the down(2) state if and only if
        there is a fault that prevents it from going to the up(1) state."
    ::= { etsysVsbPortEntry 2 }


-- -------------------------------------------------------------
-- Conformance Information
-- -------------------------------------------------------------

etsysVsbConformance 
    OBJECT IDENTIFIER ::= { etsysVirtualSwitchBondingMIB 2 }

etsysVsbGroups
    OBJECT IDENTIFIER ::= { etsysVsbConformance 1 }

etsysVsbCompliances
    OBJECT IDENTIFIER ::= { etsysVsbConformance 2 }

-- -------------------------------------------------------------
-- Units of conformance
-- -------------------------------------------------------------

etsysVsbSystemGroup OBJECT-GROUP
    OBJECTS {
        etsysVsbSystemEnable,
        etsysVsbSystemMaxChassis,
        etsysVsbSystemMaxSlotNumber,
        etsysVsbAdministrativeMacAddress,
        etsysVsbOperationalMacAddress
    }
    STATUS  deprecated
    DESCRIPTION
       "This section is for system configuration of 
        the VSB system."
    ::= { etsysVsbGroups 1 }

etsysVsbChassisGroup OBJECT-GROUP
    OBJECTS {
        etsysVsbChassisSystemId, 
        etsysVsbChassisSerialNum,
        etsysVsbChassisFirstSlotNumber,
        etsysVsbChassisLocalSlotList,
        etsysVsbChassisSystemSlotList, 
        etsysVsbChassisStatus, 
        etsysVsbChassisLastBondTime,
        etsysVsbChassisSharedSecret,
        etsysVsbChassisSecretEntered
    }
    STATUS  deprecated
    DESCRIPTION
       "This section is for chassis based configuration of 
        the VSB system."
    ::= { etsysVsbGroups 2 }

etsysVsbPortGroup OBJECT-GROUP
    OBJECTS {
        etsysVsbPortAdminStatus,
        etsysVsbPortOperStatus
    }
    STATUS  current
    DESCRIPTION
       "This section is for port configuration of the
        VSB system."
    ::= { etsysVsbGroups 3 }

etsysVsbSystemGroup2 OBJECT-GROUP
    OBJECTS {
        etsysVsbSystemEnable,
        etsysVsbSystemMaxChassis,
        etsysVsbSystemMaxSlotNumber,
        etsysVsbAdministrativeMacAddress,
        etsysVsbOperationalMacAddress,
        etsysVsbSystemLinkFailureResponse
    }
    STATUS  current
    DESCRIPTION
       "This section is for system configuration of
        the VSB system."
    ::= { etsysVsbGroups 4 }

etsysVsbChassisGroup2 OBJECT-GROUP
    OBJECTS {
        etsysVsbChassisSystemId,
        etsysVsbChassisSerialNum,
        etsysVsbChassisFirstSlotNumber,
        etsysVsbChassisLocalSlotList,
        etsysVsbChassisSystemSlotList,
        etsysVsbChassisStatus,
        etsysVsbChassisLastBondTime,
        etsysVsbChassisSharedSecret,
        etsysVsbChassisSecretEntered,
        etsysVsbChassisLfrOperPriority
    }
    STATUS  current
    DESCRIPTION
       "This section is for chassis based configuration of
        the VSB system."
    ::= { etsysVsbGroups 5 }

-- -------------------------------------------------------------
-- Compliance statements
-- -------------------------------------------------------------

etsysVsbCompliance MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
       "The compliance statement for devices that support VSB."
    MODULE -- this module
    MANDATORY-GROUPS { etsysVsbSystemGroup,
                       etsysVsbChassisGroup,
                       etsysVsbPortGroup }

    OBJECT      etsysVsbSystemEnable
    MIN-ACCESS  read-only
    DESCRIPTION
       "Write access is not required for devices where VSB must 
        always be enabled."

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

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

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

    OBJECT      etsysVsbPortAdminStatus
    MIN-ACCESS  read-only
    DESCRIPTION
       "Write access is not required for devices with dedicated 
        VSB ports."
    ::= { etsysVsbCompliances 1 }

etsysVsbCompliance2 MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
       "The compliance statement for devices that support VSB." 
    MODULE -- this module
    MANDATORY-GROUPS { etsysVsbSystemGroup2,
                       etsysVsbChassisGroup2,
                       etsysVsbPortGroup }
   
    OBJECT      etsysVsbSystemEnable
    MIN-ACCESS  read-only
    DESCRIPTION 
       "Write access is not required for devices where VSB must 
        always be enabled."

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

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

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

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

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

    OBJECT      etsysVsbPortAdminStatus
    MIN-ACCESS  read-only
    DESCRIPTION 
       "Write access is not required for devices with dedicated 
        VSB ports."
    ::= { etsysVsbCompliances 2 } 


END
