-- *****************************************************************
-- MY-SYSTEM-MIB.mib:  My System MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

MY-SYSTEM-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        Unsigned32
                FROM SNMPv2-SMI
        DisplayString
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        myMgmt
                FROM MY-SMI;

mySystemMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
                " 
                Tel: $Telephone$ 

                E-mail: $E-mail$"
        DESCRIPTION
                "This module defines my system mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 1}

mySystemMIBObjects OBJECT IDENTIFIER ::= { mySystemMIB 1 }

mySystemHwVersion OBJECT-TYPE
        SYNTAX DisplayString(SIZE (1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the string of the Revision number of hardware resides
          on the FastSwitch."
        ::= { mySystemMIBObjects 1 }

mySystemSwVersion OBJECT-TYPE
        SYNTAX DisplayString(SIZE (1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the string of the Revision number of software resides
          on the FastSwitch."
        ::= { mySystemMIBObjects 2 }
        
mySystemBootVersion OBJECT-TYPE
        SYNTAX DisplayString(SIZE (1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the string of the Revision number of BOOT software resides
          on the FastSwitch."
        ::= { mySystemMIBObjects 3 }
        
mySystemSysCtrlVersion OBJECT-TYPE
        SYNTAX DisplayString(SIZE (1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the string of the Revision number of CTRL software resides
          on the FastSwitch."
        ::= { mySystemMIBObjects 4 }       

mySystemParametersSave OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Save all parameters changed in configuration by setting 
            this object to any value but 0, set its value to 0 will
            cause no action of agent, otherwise all changes of 
            prarameters will be saved for retrive when system is 
            reset, if parameter is changed but not saved all changes
            will come to their original value when system down and up
            again, when query always return value 0."
        ::= { mySystemMIBObjects 5 }

mySystemOutBandRate OBJECT-TYPE
   	  SYNTAX  INTEGER {
                baud9600  (1),
                baud19200 (2),
                baud38400 (3),
                baud57600 (4),
                baud115200 (5)
             }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
   		"Determine the console(OutBand) baud rate :
             9600 - 1,19200 - 2, 38300 - 3, 57600 - 4, 115200 - 5, 
             when the console baud rate is other value will return value 0."
   	     ::=  { mySystemMIBObjects 6 }
        
mySystemReset OBJECT-TYPE
        SYNTAX INTEGER 
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This Object allow perform soft reset of system by setting its
            value to none zero. if a soft resetis performed, after this 
            having completed a warm start trap will send to declare the state
            and when queried will always return 0."
        ::= { mySystemMIBObjects 7 }

mySwitchLayer OBJECT-TYPE
   	  SYNTAX  INTEGER {
                layer2 (1), -- Layer 2 Switch
                layer3 (2), -- Layer 3 Switch
                router(3)  -- Router
             }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
   		"Which layer's device the switch in system "
   	     ::=  { mySystemMIBObjects 8 }

mySystemHwPower OBJECT-TYPE
        SYNTAX INTEGER{
        	rpsNoLink(1),
        	rpsLinkAndNoPower(2),
        	rpsLinkAndReadyForPower(3),
        	rpsLinkAndPower(4)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "The state of power."
        ::= { mySystemMIBObjects 9 }

mySystemHwFan OBJECT-TYPE
        SYNTAX INTEGER{
        	work(1),
        	stop(2)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "The state of fan."
        ::= { mySystemMIBObjects 10 }

--The mySystemOutBandTimeout is obsoleted after 2007.9
mySystemOutBandTimeout OBJECT-TYPE
        SYNTAX     Integer32(0..3600)
        UNITS      "seconds"
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
          "The timeout of console.0 indicate that timeout function is disabled."
        ::= { mySystemMIBObjects 11 }

--The mySystemTelnetTimeout is obsoleted after 2007.9
mySystemTelnetTimeout OBJECT-TYPE
        SYNTAX     Integer32(0..3600)
        UNITS      "seconds"
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
          "The timeout of telnet.0 indicate that timeout function is disabled."
        ::= { mySystemMIBObjects 12 }
      
mySystemMainFile OBJECT-TYPE
        SYNTAX DisplayString(SIZE (1..255))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the string of the name of main file on the FastSwitch."
        ::= { mySystemMIBObjects 13 }
        
mySystemCurrentPower OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the current power of the FastSwitch."
        ::= { mySystemMIBObjects 14 }

mySystemRemainPower OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the remain power of the FastSwitch."
        ::= { mySystemMIBObjects 15 }

mySystemTemperature OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the temperature of the FastSwitch."
        ::= { mySystemMIBObjects 16 }

mySystemElectricalSourceNum OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the electrical source number of the FastSwitch."
        ::= { mySystemMIBObjects 17 }

mySystemElectricalSourceIsNormalTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MySystemElectricalSourceIsNormalEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of electrical source entries. Each object displays 
     whether different electrical sources are normal or not."
  ::= { mySystemMIBObjects 18 }

mySystemElectricalSourceIsNormalEntry OBJECT-TYPE
  SYNTAX      MySystemElectricalSourceIsNormalEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry displays whether different electrical sources are normal or not."
  INDEX { mySystemElectricalSourceIsNormalIndex }
  ::= { mySystemElectricalSourceIsNormalTable 1 }

MySystemElectricalSourceIsNormalEntry ::=
  SEQUENCE {
    mySystemElectricalSourceIsNormalIndex  Integer32,
    mySystemElectricalSourceIsNormal  INTEGER,
    mySystemElectricalSourceName   DisplayString
  }
    
mySystemElectricalSourceIsNormalIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a electrical source."
    ::= { mySystemElectricalSourceIsNormalEntry 1 }

mySystemElectricalSourceIsNormal OBJECT-TYPE
   	SYNTAX  INTEGER {
                noexist (1),          --no exist
                existnopower (2),     -- exist no power
                existreadypower (3),  --exist ready power
                normal (4),           --normal
                powerbutabnormal (5), --power but abnormal
                unknow (6)            --unknow
             }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object displays whether an electrical source is normal or not."
    ::= { mySystemElectricalSourceIsNormalEntry 2 }
    
mySystemElectricalSourceName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The name of electrical source"
    ::= { mySystemElectricalSourceIsNormalEntry 3 }  
    
mySystemCurrentVoltage OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the current voltage of the FastSwitch."
        ::= { mySystemMIBObjects 19 }
        
mySystemFanNUM OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the number of fan on the FastSwitch."
        ::= { mySystemMIBObjects 20 }  
        
mySystemFanIsNormalTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MySystemFanIsNormalEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of fan entries. Each object displays 
     whether different fans are normal or not."
  ::= { mySystemMIBObjects 21 }

mySystemFanIsNormalEntry OBJECT-TYPE
  SYNTAX      MySystemFanIsNormalEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry displays whether different fans are normal or not."
  INDEX { mySystemFanIsNormalIndex }
  ::= { mySystemFanIsNormalTable 1 }

MySystemFanIsNormalEntry ::=
  SEQUENCE {
    mySystemFanIsNormalIndex  Integer32,
    mySystemFanIsNormal  INTEGER,
    mySystemFanName   DisplayString
  }
    
mySystemFanIsNormalIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a fan."
    ::= { mySystemFanIsNormalEntry 1 }

mySystemFanIsNormal OBJECT-TYPE
   	SYNTAX  INTEGER {
                noexist (1),          --no exist
                existnopower (2),     -- exist no power
                existreadypower (3),  --exist ready power
                normal (4),           --normal
                powerbutabnormal (5), --power but abnormal
                unknow (6)            --unknow
             }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object displays whether an fan is normal or not."
    ::= { mySystemFanIsNormalEntry 2 }   
        
mySystemFanName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The name of fan"
    ::= { mySystemFanIsNormalEntry 3 }     
        
mySystemReloadTimeRemain OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the remain time of reloading on the FastSwitch."
        ::= { mySystemMIBObjects 22 }      
        
mySystemTemperatureTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MySystemTemperatureEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of temperature entries. Each object displays 
     the temperature information."
  ::= { mySystemMIBObjects 23 }

mySystemTemperatureEntry OBJECT-TYPE
  SYNTAX      MySystemTemperatureEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry displays the temperature information."
  INDEX { mySystemTemperatureIndex }
  ::= { mySystemTemperatureTable 1 }

MySystemTemperatureEntry ::=
  SEQUENCE {
    mySystemTemperatureIndex    Integer32,
    mySystemTemperatureName     DisplayString,
    mySystemTemperatureCurrent  Integer32,
    mySystemTemperatureWarningValue Integer32,
    mySystemTemperatureCritialValue Integer32
  }
    
mySystemTemperatureIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a device's temperature information."
    ::= { mySystemTemperatureEntry 1 }

mySystemTemperatureName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A textual name assigned to a temperature chip"
    ::= { mySystemTemperatureEntry 2 }          
                    
mySystemTemperatureCurrent OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Return the current temperature of the FastSwitch.The temperature display
         is not supported for the current temperature returns to 0."
    ::= { mySystemTemperatureEntry 3 }        
        
mySystemTemperatureWarningValue OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The first warning of temperature of FastSwitch."
    ::= { mySystemTemperatureEntry 4 }       
        
mySystemTemperatureCritialValue OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The second warning of temperature of FastSwitch."
    ::= { mySystemTemperatureEntry 5 }           
    
mySystemSerialno OBJECT-TYPE
        SYNTAX DisplayString 
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          "Return the string of the serial number resides
          on the FastSwitch."
        ::= { mySystemMIBObjects 24 }    
    
mySystemVersionTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MySystemVersionEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of system version entries. Each object displays 
     the system version information."
  ::= { mySystemMIBObjects 25 }

mySystemVersionEntry OBJECT-TYPE
  SYNTAX      MySystemVersionEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry displays the system version information."
  INDEX { mySystemVersionIndex }
  ::= { mySystemVersionTable 1 }

MySystemVersionEntry ::=
  SEQUENCE {
    mySystemVersionIndex    Unsigned32,
    mySystemVersionName     DisplayString,
    mySystemVersionSwBoot   DisplayString,
    mySystemVersionSwCtrl   DisplayString,
    mySystemVersionSwMain   DisplayString,
    mySystemVersionHw       DisplayString,
    mySystemVersionSerialno DisplayString
  }
    
mySystemVersionIndex OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a device's system version information."
    ::= { mySystemVersionEntry 1 }

mySystemVersionName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A textual name assigned to a system version chip"
    ::= { mySystemVersionEntry 2 }          
                    
mySystemVersionSwBoot OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Return the software boot system version of the FastSwitch."
    ::= { mySystemVersionEntry 3 }        
        
mySystemVersionSwCtrl OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Return the software ctrl system version of the FastSwitch."
    ::= { mySystemVersionEntry 4 }       
        
mySystemVersionSwMain OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Return the software main system version of the FastSwitch."
    ::= { mySystemVersionEntry 5 }      
        
mySystemVersionHw OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Return the hardware system version of the FastSwitch."
    ::= { mySystemVersionEntry 6 }      
                
mySystemVersionSerialno OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Return the serial number of the FastSwitch."
    ::= { mySystemVersionEntry 7 }               
        
mySystemMIBTraps OBJECT IDENTIFIER ::= { mySystemMIB 2 }

mySystemHardChangeDesc OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
          "The description of hard change"
        ::= { mySystemMIBTraps 1 }       
        
mySystemHardChangeDetected NOTIFICATION-TYPE
        OBJECTS   {mySystemHardChangeDesc}
        STATUS     current
        DESCRIPTION
                "System hardware has changed include number of devices or number of modules 
                 or the place or type of the module is change."
        ::= { mySystemMIBTraps 2 }
        
mySystemPowerStateChange NOTIFICATION-TYPE
        OBJECTS   {mySystemHwPower}
        STATUS     current
        DESCRIPTION
                "while the state of power changed, then this trap will be sent."
        ::= { mySystemMIBTraps 3 }
        
mySystemFanStateChange NOTIFICATION-TYPE
        OBJECTS   {mySystemHwFan}
        STATUS     current
        DESCRIPTION
                "while the state of fan changed, then this trap will be sent."
        ::= { mySystemMIBTraps 4 }                


mySystemMIBConformance OBJECT IDENTIFIER ::= { mySystemMIB 3 }
mySystemMIBCompliances OBJECT IDENTIFIER ::= { mySystemMIBConformance 1 }
mySystemMIBGroups      OBJECT IDENTIFIER ::= { mySystemMIBConformance 2 }


-- compliance statements

mySystemMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My System MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { mySystemMIBGroup
                 }
        ::= { mySystemMIBCompliances 1 }
                
-- units of conformance

mySystemMIBGroup OBJECT-GROUP
        OBJECTS {
               mySystemHwVersion, 
               mySystemSwVersion,
               mySystemBootVersion,
               mySystemSysCtrlVersion,
               mySystemParametersSave,
               mySystemReset,
               mySystemOutBandRate,
               mySwitchLayer 
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing system information and
                opertion to a My agent."
        ::= { mySystemMIBGroups 1 } 
  
END
