-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

-- $Id: fsmbsm.mib,v 1.8 2012/09/07 09:52:05 siva Exp $

-- ISS Chassis MIB Definition 
 
-- MIB for Chassis based 'Intelligent Switch Solution'
 
 
 
SUPERMICRO-CHASSIS-MIB DEFINITIONS ::= BEGIN 

IMPORTS 
   MODULE-IDENTITY, OBJECT-TYPE, 
   Counter32, enterprises, IpAddress, Integer32, Unsigned32   
   FROM SNMPv2-SMI NOTIFICATION-TYPE FROM SNMPv2-SMI
   RowStatus, TruthValue, DisplayString, 
   TEXTUAL-CONVENTION, MacAddress           FROM SNMPv2-TC 
   IANAifType                               FROM IANAifType-MIB;

mbsmIssGroup  MODULE-IDENTITY
      LAST-UPDATED "201209050000Z"
      ORGANIZATION "Super Micro Computer Inc."
      CONTACT-INFO "support@Supermicro.com"
      DESCRIPTION
          " ISS Chassis MIB"
      REVISION "201209050000Z"
      DESCRIPTION
          " ISS Chassis MIB"

         ::= { enterprises supermicro-computer-inc(10876) super-switch(101) basic(1) iss (81) 100 }

--future              OBJECT IDENTIFIER ::= { enterprises 2076}
--iss             OBJECT IDENTIFIER ::= { future 81 }
--mbsmIssGroup     OBJECT IDENTIFIER ::= { iss 100 }



    mbsmIssScalarGroup OBJECT IDENTIFIER ::=  { mbsmIssGroup 1 }


mbsmMaxNumOfLCSlots OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647)
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION 
      "Maximum number of Line cards slots present in the Chassis system.
       After  modifying this, switch should be restarted." 
   ::= { mbsmIssScalarGroup 1 }


mbsmMaxNumOfSlots OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647)
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION 
      "Maximum number of slots present in the 
       Chassis system. After  modifying this, switch should be 
       restarted." 
   ::= { mbsmIssScalarGroup 2 }

mbsmMaxNumOfPortsPerLC OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647)
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION 
      "Maximum number of ports that can exist in a Line card. 
       After  modifying this, switch should be restarted." 
   ::= { mbsmIssScalarGroup 3 }

mbsmLoadSharingFlag OBJECT-TYPE
   SYNTAX     INTEGER {
                       enable  (1),
                       disable (2)
                      }
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "Flag to enable/disable Load-Sharing. This flag can set/reset
       at anytime. But, Load-sharing happens only when there are
       2 control cards"
    DEFVAL { 2 }
   ::= { mbsmIssScalarGroup 4 }

-- Chassis management module's Slot Module Map Table

mbsmSlotModuleMapTable OBJECT-TYPE 
   SYNTAX      SEQUENCE OF MbsmSlotModuleMapEntry
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
       "This table has the details of slot versus module information.
	After configuring all the entries in this table, 
	switch must be restarted."
   ::= { mbsmIssGroup 2 }

mbsmSlotModuleMapEntry OBJECT-TYPE 
   SYNTAX      MbsmSlotModuleMapEntry
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
       "Information about the module type for a particular slot." 
   INDEX { mbsmSlotId }
   ::= { mbsmSlotModuleMapTable 1 }
   
MbsmSlotModuleMapEntry ::= 
   SEQUENCE { 
      mbsmSlotId 
         Integer32,
      mbsmSlotModuleType 
         INTEGER,
      mbsmSlotModuleStatus
	  RowStatus	
  }

mbsmSlotId OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647) 
   MAX-ACCESS  not-accessible
   STATUS      current 
   DESCRIPTION 
      "Slot Id of the chassis for which the configuration
      in this entry applies."
   
   ::= { mbsmSlotModuleMapEntry 1 }
    
mbsmSlotModuleType OBJECT-TYPE
   SYNTAX      INTEGER {
               lineCard (1),
               controlCard (2)
              }
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "Specifies the type of the card to be contained in a specific slot" 
   ::= { mbsmSlotModuleMapEntry 2 }
   
mbsmSlotModuleStatus OBJECT-TYPE
       SYNTAX         RowStatus
       MAX-ACCESS     read-create
       STATUS         current
       DESCRIPTION
               "This object is used to create and delete rows in the
               mbsmSlotModuleMapTable."
       ::= { mbsmSlotModuleMapEntry 3 }

   
-- Chassis management module's Line card Type Table

mbsmLCTypeTable  OBJECT-TYPE 
   SYNTAX      SEQUENCE OF MbsmLCTypeEntry
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
       "This table contains different Line card Types supported in the 
	chassis system.."
   ::= { mbsmIssGroup 3 }

mbsmLCTypeEntry OBJECT-TYPE 
   SYNTAX      MbsmLCTypeEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
       "An entry appears in this table for each Line card type supported 
	in the chassis system.interface in the system." 
   INDEX { mbsmLCIndex }
   ::= { mbsmLCTypeTable 1 }
   
MbsmLCTypeEntry  ::= 
   SEQUENCE { 
      mbsmLCIndex  
         Integer32, 
      mbsmLCName 
         DisplayString, 
      mbsmLCMaxPorts
         Integer32,
      mbsmLCRowStatus
         RowStatus
  }

   mbsmLCIndex OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647) 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A unique value, greater than zero, for each Line card type
       supported in the chassis system."
      ::= { mbsmLCTypeEntry  1 }

   mbsmLCName OBJECT-TYPE 
   SYNTAX      DisplayString (SIZE(0..64))
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "Name of the Line card for this entry."
       ::= { mbsmLCTypeEntry 2 }

   mbsmLCMaxPorts OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647) 
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "Maximum number of ports available in this Line card. 
       This value should be less than or equal to mbsmMaxNumOfPortsPerLC"
       ::= { mbsmLCTypeEntry 3 }

   mbsmLCRowStatus OBJECT-TYPE
   SYNTAX         RowStatus
   MAX-ACCESS     read-create
   STATUS         current
   DESCRIPTION
       "This object is used to create and delete rows in the
        mbsmLCTypeTable."
       ::= { mbsmLCTypeEntry 4 }

-- Chassis management module's Line card Port Info Table 

mbsmLCPortInfoTable OBJECT-TYPE 
   SYNTAX      SEQUENCE OF MbsmLCPortInfoEntry 
   MAX-ACCESS  not-accessible
   STATUS      current 
   DESCRIPTION 
       "Information about ports of a Line card type."
   ::= { mbsmIssGroup 4 }

mbsmLCPortInfoEntry OBJECT-TYPE 
   SYNTAX      MbsmLCPortInfoEntry  
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
       "An entry appears in this table for each port
        in a Line card."
   INDEX { mbsmLCIndex, mbsmLCPortIndex }
   ::= { mbsmLCPortInfoTable 1 }
   
MbsmLCPortInfoEntry  ::= 
   SEQUENCE { 
	mbsmLCPortIndex 
         Integer32, 
	mbsmLCPortIfType
	  IANAifType,
	mbsmLCPortSpeed
         Gauge32,
	mbsmLCPortHighSpeed
     Gauge32
  }

mbsmLCPortIndex  OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647) 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
       "Port Index with respect to this line card"
   ::= { mbsmLCPortInfoEntry  1 }

mbsmLCPortIfType OBJECT-TYPE 
   SYNTAX       IANAifType
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION 
      "The type of interface.  Additional values for ifType
       are assigned by the Internet Assigned Numbers
       Authority (IANA), through updating the syntax of the
       IANAifType textual convention."
   ::= { mbsmLCPortInfoEntry  2 }

mbsmLCPortSpeed  OBJECT-TYPE 
   SYNTAX      Gauge32
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION
               "An estimate of the interface's current bandwidth in
               bits per second.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  If the bandwidth of the interface is
               greater than the maximum value reportable by this
               object then this object should report its maximum
               value (4,294,967,295) and ifHighSpeed must be used to
               report the interace's speed.  For a sub-layer which
               has no concept of bandwidth, this object should be
               zero. "
   ::= { mbsmLCPortInfoEntry  3 }

mbsmLCPortHighSpeed  OBJECT-TYPE 
   SYNTAX      Gauge32
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION
               "An estimate of the interface's current bandwidth in
               units of 1,000,000 bits per second.  If this object
               reports a value of `n' then the speed of the interface
               is somewhere in the range of `n-500,000' to
               `n+499,999'.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  For a sub-layer which has no concept of
               bandwidth, this object should be zero."
   ::= { mbsmLCPortInfoEntry  4 }


-- Chassis management module's Line card Config Table 

mbsmLCConfigTable OBJECT-TYPE 
   SYNTAX      SEQUENCE OF MbsmLCConfigEntry
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "Table containing the details of the Line card types on Line 
       card slots"
   ::= { mbsmIssGroup  5 }

mbsmLCConfigEntry OBJECT-TYPE 
   SYNTAX      MbsmLCConfigEntry
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "An entry appears in this table for each physical
       interface in the switch."
   INDEX { mbsmLCConfigSlotId }
   ::= { mbsmLCConfigTable 1 }
   
MbsmLCConfigEntry ::= 
   SEQUENCE { 
      mbsmLCConfigSlotId 
         Integer32, 
      mbsmLCConfigCardName  
         DisplayString, 
      mbsmLCConfigStatus
         INTEGER 
  }

mbsmLCConfigSlotId OBJECT-TYPE 
   SYNTAX      Integer32 (0..2147483647) 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "Slot Id of the chassis for which the configuration
       entry applies."
   ::= { mbsmLCConfigEntry 1 }
    
mbsmLCConfigCardName OBJECT-TYPE 
   SYNTAX      DisplayString 
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "Name of the Line card. There should be an entry in the 
       mbsmLCTypeTable"
   ::= { mbsmLCConfigEntry 2 }

mbsmLCConfigStatus  OBJECT-TYPE 
   SYNTAX      INTEGER {
                dynamic(0),
                static(1)
            }
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
       "This object is used to create and delete rows in the
        mbsmLCConfigTable."
   ::= { mbsmLCConfigEntry 3 }



-- MBSM SNMP Trap Configuration
    mbsmIssTrapGroup OBJECT IDENTIFIER ::=  { mbsmIssGroup 6 }

 mbsmConfigErrTrap NOTIFICATION-TYPE
        OBJECTS {
      mbsmSlotId, 
      mbsmSlotModuleType,
      mbsmSlotModuleStatus,
      mbsmLCConfigCardName
                }
        STATUS             current
        DESCRIPTION
         "Generated when any of the configuration results in a critical
          failure"
   ::= { mbsmIssTrapGroup 1 }

mbsmCardInsertedTrap NOTIFICATION-TYPE
        OBJECTS {
      mbsmSlotId 
                }
        STATUS             current
        DESCRIPTION
         "Generated when a card is inserted in a slot"
   ::= { mbsmIssTrapGroup 2 }

mbsmCardRemovedTrap NOTIFICATION-TYPE
        OBJECTS {
      mbsmSlotId
                }
        STATUS             current
        DESCRIPTION
         "Generated when a card is removed from a slot"
   ::= { mbsmIssTrapGroup 3 }
END

