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


-- /********************************************************************
--  *                                                                  *
--  * $RCSfile: fssnmp2.mib,v $                                         * 
--  *                                                                  *
--  * $Date: 2012/09/07 09:52:06 $                                     *
--  *                                                                  *
--  * $Revision: 1.5 $                                             *
--  *                                                                  *
--  *******************************************************************/

SUPERMICRO-SNMPv2-MIB DEFINITIONS ::= BEGIN

  IMPORTS
          MODULE-IDENTITY, OBJECT-TYPE, IpAddress,
	  enterprises, Integer32
              FROM SNMPv2-SMI
          TEXTUAL-CONVENTION, DisplayString
              FROM SNMPv2-TC;


  futuresnmp MODULE-IDENTITY
    LAST-UPDATED "201209050000Z"
    ORGANIZATION "Super Micro Computer Inc."
    CONTACT-INFO "support@Supermicro.com"
    DESCRIPTION
            "The MIB module is for managing SNMP."
    REVISION "201209050000Z"
    DESCRIPTION
            "The MIB module is for managing SNMP."
        ::=  { enterprises supermicro-computer-inc(10876) super-switch(101) basic(1) 50 }


-- TEXTUAL-CONVENTION:

EntryStatus ::=  TEXTUAL-CONVENTION
      STATUS     current
      DESCRIPTION "Enumerated integer data type"
      SYNTAX    INTEGER {
                         valid(1),
                         createRequest(2),
                         underCreation(3),
                         invalid(4)
                        }

-- SCALAR_TABLE_BEGIN

          snmpListenPort OBJECT-TYPE
              SYNTAX  Integer32 (0..65535) 
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION "Contains Port Number on which snmp
                           Agent listens."
              DEFVAL { 161 }
              ::=  { futuresnmp 1 }

          snmpListenTrapPort OBJECT-TYPE
              SYNTAX  Integer32 (0..65535)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION "Contains Port Number on which snmp trap
                           message are sent to manager."
              DEFVAL { 162 }
              ::=  { futuresnmp 2 }

-- SCALAR_TABLE_END

-- Community Table
-- Security implementation in SNMP is through Community names, which are
-- IP machine addresses. 
-- A community is assigned previliges and a user can have these priviliges 
-- if he uses the community name. Many IP addresses can be assigned can 
-- be given same Community name. 

	  snmpCommunityTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SnmpCommunityEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "The SNMP Community Table is used to store the 
				machine and it's priviliges."
              ::= { futuresnmp 3 }

          snmpCommunityEntry OBJECT-TYPE
              SYNTAX  SnmpCommunityEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Each entry contains one community entry information."
              INDEX   { snmpCommunityIndex }
              ::= { snmpCommunityTable 1 }

          SnmpCommunityEntry ::=
              SEQUENCE {
                  snmpCommunityIndex
		      Integer32,
                  snmpCommunityName
                      DisplayString,
                  snmpCommunityPrivilege
                      INTEGER,
                  snmpCommunityIpAddr
                      IpAddress,
                  snmpStatus
                      EntryStatus                  
              }


          snmpCommunityIndex OBJECT-TYPE
              SYNTAX  Integer32 (1..10)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Index to the community table."
              ::= { snmpCommunityEntry 1 }

          snmpCommunityName OBJECT-TYPE
              SYNTAX  DisplayString
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The Community name."
              ::= { snmpCommunityEntry 2 }


          snmpCommunityPrivilege OBJECT-TYPE
              SYNTAX  INTEGER {
                          readonly(1), -- the community can only read
                          readwrite(2) -- the community can read and write
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The previlige type."
              DEFVAL { readonly }
                  ::= { snmpCommunityEntry 3 }

          snmpCommunityIpAddr OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The IpAddress corresponding to the Community name."
              DEFVAL { '00000000'H }
              ::= { snmpCommunityEntry 4 }

          snmpStatus OBJECT-TYPE
             SYNTAX EntryStatus
             MAX-ACCESS read-create
             STATUS current
             DESCRIPTION 
                       " The Status of this snmpStatus entry "
              ::= { snmpCommunityEntry 5 }


-- Trap Table
-- Traps generated by the protocol units are passed to the Managers 
-- registered in the trap table. 

	snmpTrapTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SnmpTrapEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "The SNMP Trap Table is used to store the 
		      IP addr the managers willing to receive the traps from 
	              the device."
              ::= { futuresnmp 4 }

          snmpTrapEntry OBJECT-TYPE
              SYNTAX  SnmpTrapEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Each entry contains one Manager entry information."
              INDEX   { snmpTrapIndex }
              ::= { snmpTrapTable 1 }

          SnmpTrapEntry ::=
              SEQUENCE {
                  snmpTrapIndex
                      Integer32,
                  snmpTrapCommunityName
                      DisplayString,
                  snmpTrapIpAddr
                      IpAddress,
                  snmpTrapMgrType
                      INTEGER,
                  snmpTrapStatus
                      EntryStatus
              }

          snmpTrapIndex OBJECT-TYPE
              SYNTAX   Integer32 (1..10)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Index to the Trap table."
              ::= { snmpTrapEntry 1 }

          snmpTrapCommunityName OBJECT-TYPE
              SYNTAX  DisplayString
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The Trap Community name."
              DEFVAL { "PUBLIC" }
              ::= { snmpTrapEntry 2 }


          snmpTrapIpAddr OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The IpAddress corresponding to the Trap Community name."
              ::= { snmpTrapEntry 3 }
          
          snmpTrapMgrType OBJECT-TYPE
              SYNTAX  INTEGER {
                               v1(0),
                               v2(1),
                               v1v2(2)
                              }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "The Manager type."
              DEFVAL { v1v2 }
              ::= { snmpTrapEntry 4 }

           snmpTrapStatus OBJECT-TYPE
             SYNTAX EntryStatus
             MAX-ACCESS read-create
             STATUS current
             DESCRIPTION 
                       " The Status of this snmpTrapStatus entry "
              ::= { snmpTrapEntry 5 }

END
