-- *********************************************************************************
--
--               SAS Module for IBM BladeCenter(TM)
--       Management Information Base for SNMP Network Management
--
--  The IBM SAS Module Group
--  ========================
--  ibm                                                  1.3.6.1.4.1.2
--   ibmAgents                                           1.3.6.1.4.1.2.3
--    ibmSasModuleAgent                                  1.3.6.1.4.1.2.3.111
--
--     ** Scalar Objects **
--     ibmSasModuleProductId                             1.3.6.1.4.1.2.3.111.1.0
--     ibmSasModuleFirmwareVersion                       1.3.6.1.4.1.2.3.111.2.0
--     ibmSasModuleSasAddress                            1.3.6.1.4.1.2.3.111.3.0
--     ibmSasModulePhysicalPhyCount                      1.3.6.1.4.1.2.3.111.4.0
--     ibmSasModuleSspVirtualPhyEnabled                  1.3.6.1.4.1.2.3.111.5.0
--     ibmSasModuleSspVirtualPhySasAddress               1.3.6.1.4.1.2.3.111.6.0
--     ibmSasModuleMaxExpanderRouteIndices               1.3.6.1.4.1.2.3.111.7.0
--     ibmSasModuleRebootExpander                        1.3.6.1.4.1.2.3.111.8.0
--     ibmSasModuleGeneralStatus                         1.3.6.1.4.1.2.3.111.9.0
--     ibmSasModuleIpAddress                             1.3.6.1.4.1.2.3.111.10.0
--     ibmSasModuleMgmtModuleIpAddress                   1.3.6.1.4.1.2.3.111.11.0
--     ibmSasModuleSCMConfigManagerIpAddress             1.3.6.1.4.1.2.3.111.12.0
--
--     ** Table Objects **
--     ibmSasModulePhyTable                              1.3.6.1.4.1.2.3.111.13
--     ibmSasModulePhyEntry                              1.3.6.1.4.1.2.3.111.13.1
--     ibmSasModulePhyNum     (index)                    1.3.6.1.4.1.2.3.111.13.1.1.0-N
--     ibmSasModulePhyEnabled                            1.3.6.1.4.1.2.3.111.13.1.2.0-N
--     ibmSasModulePhyAttachedDeviceType                 1.3.6.1.4.1.2.3.111.13.1.3.0-N
--     ibmSasModulePhyAttachedSasAddress                 1.3.6.1.4.1.2.3.111.13.1.4.0-N
--     ibmSasModulePhyRoutingAttribute                   1.3.6.1.4.1.2.3.111.13.1.5.0-N
--     ibmSasModulePhyNegotiatedPhysicalLinkRate         1.3.6.1.4.1.2.3.111.13.1.6.0-N
--     ibmSasModulePhyProgrammedMinimumPhysicalLinkRate  1.3.6.1.4.1.2.3.111.13.1.7.0-N
--     ibmSasModulePhyProgrammedMaximumPhysicalLinkRate  1.3.6.1.4.1.2.3.111.13.1.8.0-N
--     ibmSasModulePhyHardwareMinimumPhysicalLinkRate    1.3.6.1.4.1.2.3.111.13.1.9.0-N
--     ibmSasModulePhyHardwareMaximumPhysicalLinkRate    1.3.6.1.4.1.2.3.111.13.1.10.0-N
--     ibmSasModuleLegacyPhyZones                        1.3.6.1.4.1.2.3.111.13.1.11.0-N
--
--     ** Generic Traps (RFC1157) **
--     coldStart                                         0
--     warmStart                                         1
--     linkUp                                            3
--     authenticationFailure                             4
--
--     ** Enterprise Specific Traps **
--     ibmSasModulePhyLinkReady                          11
--     ibmSasModulePhyNotLinkReady                       12
--
--  Change History
--  ==============
--  Date       Ver          
--  ---------- ------ 
--  2007/07/20 1.00   
--  
-- *********************************************************************************

IBM-SAS-MODULE-MIB DEFINITIONS ::= BEGIN

    IMPORTS
    enterprises, IpAddress    FROM RFC1155-SMI
    OBJECT-TYPE               FROM RFC-1212
    DisplayString             FROM RFC1213-MIB;


--
-- Textual Conventions
--
    EnabledValue     ::= INTEGER { disabled(0), enabled(1) }
    SasLinkRate      ::= INTEGER { unknown(0), disabled(1), failed(2), sataSpinup(3), rate-1-5GBPS(8), rate-3-0GBPS(9) }
    SasDeviceType    ::= INTEGER { noDevice(0), endDevice(1), edgeExpander(2), fanoutExpander(3) }
    RoutingAttribute ::= INTEGER { direct(0), subtractive(1), table(2) }


--
-- The IBM SAS Module Branch
--
    ibm               OBJECT IDENTIFIER ::= { enterprises 2 }
    ibmAgents         OBJECT IDENTIFIER ::= { ibm 3 }
    ibmSasModuleAgent OBJECT IDENTIFIER ::= { ibmAgents 111 }


--
-- Scalar Objects - SAS Module Common Objects
--
    ibmSasModuleProductId OBJECT-TYPE
        SYNTAX              DisplayString (SIZE(16))
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "An ASCII string that identifies the module."
        ::= { ibmSasModuleAgent 1 }

    ibmSasModuleFirmwareVersion OBJECT-TYPE
        SYNTAX              DisplayString (SIZE(5..6))
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "An ASCII string that identifies the module's
                            firmware revision."
        ::= { ibmSasModuleAgent 2 }

    ibmSasModuleSasAddress OBJECT-TYPE
        SYNTAX              DisplayString (SIZE(16))
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "The module's SAS Address (i.e. address of the
                             module's SMP engine. When setting the SAS Address
                             the module must be rebooted before the new SAS
                             Address takes effect. To reboot the module, set
                             the value of rebootExpander to enabled."
        ::= { ibmSasModuleAgent 3 }

   ibmSasModulePhysicalPhyCount OBJECT-TYPE
        SYNTAX              INTEGER
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "The number of phyical PHYs on the module."
        ::= { ibmSasModuleAgent 4 }

    ibmSasModuleSspVirtualPhyEnabled OBJECT-TYPE
        SYNTAX              EnabledValue
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Indicates whether or not the module's SSP engine
                             is enabled. When changing the enabled status of the
                             SSP engine, the module must be rebooted the new setting
                             takes effect. To reboot the module, set the value of
                             rebootExpander to enabled."
        ::= { ibmSasModuleAgent 5 }

    ibmSasModuleSspVirtualPhySasAddress OBJECT-TYPE
        SYNTAX              DisplayString (SIZE(16))
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "The SAS address of the SSP engine, if the SSP
                            engine is enabled. See sspVirtualPhyEnabled."
        ::= { ibmSasModuleAgent 6 }

    ibmSasModuleMaxExpanderRouteIndices OBJECT-TYPE
        SYNTAX              INTEGER
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "The maximum number of SAS route table entries
                            supported by the module."
        ::= { ibmSasModuleAgent 7 }

    ibmSasModuleRebootModule OBJECT-TYPE
        SYNTAX              EnabledValue
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Mechanism to reboot the module. Setting the value
                             equal to enabled causes the module to reboot."
        ::= { ibmSasModuleAgent 8 }

    ibmSasModulePOSTResult OBJECT-TYPE
        SYNTAX              DisplayString (SIZE(16))
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "A 64-bit hexadecimal string containing the results
                             of the Power On Self Tests (POST). Each bit in the
                             value represents a specific test result. For all tests,
                             a 1 in the bit for the test indicates that the given
                             test failed or there was an error.  A 0 for the test
                             indicates that the given test passed (or not tested).
                             A value of 0000000000000000 indicates a functional module.
                             See the 'Post Results' section of 'SAS MODULE XML INTERFACE'
                             document for a description of each test."
        ::= { ibmSasModuleAgent 9 }
        
    ibmSasModuleIpAddress OBJECT-TYPE
       SYNTAX              IpAddress
       ACCESS              read-only
       STATUS              mandatory
       DESCRIPTION         "The IP address of the module."
       ::= { ibmSasModuleAgent 10 }
 
    ibmSasModuleMgmtModuleIpAddress OBJECT-TYPE
       SYNTAX              DisplayString
       ACCESS              read-only
       STATUS              mandatory
       DESCRIPTION         "The URL of the default management module."
       ::= { ibmSasModuleAgent 11 } 

    ibmSasModuleSCMConfigManagerIpAddress OBJECT-TYPE
       SYNTAX              DisplayString
       ACCESS              read-only
       STATUS              mandatory
       DESCRIPTION         "The URL of the web server that is responsible
                            for configuration services."
       ::= { ibmSasModuleAgent 12 } 


--
-- Table Objects - PHY Specific Objects
--
    ibmSasModulePhyTable OBJECT-TYPE
        SYNTAX              SEQUENCE OF PhyEntry
        ACCESS              not-accessible
        STATUS              mandatory
        DESCRIPTION         "Conceptual table of phy attributes."
        ::= { ibmSasModuleAgent 13 }

    ibmSasModulePhyEntry OBJECT-TYPE
        SYNTAX              PhyEntry
        ACCESS              not-accessible
        STATUS              mandatory
        DESCRIPTION         "Conceptual table row of phy attributes for a given phy."
        INDEX               { ibmSasModulePhyNum }
        ::= { ibmSasModulePhyTable 1 }

    PhyEntry ::= SEQUENCE {
        ibmSasModulePhyNum                               INTEGER,
        ibmSasModulePhyEnabled                           EnabledValue,
        ibmSasModulePhyAttachedDeviceType                SasDeviceType,
        ibmSasModulePhyAttachedSasAddress                DisplayString,
        ibmSasModulePhyRoutingAttribute                  RoutingAttribute,
        ibmSasModulePhyNegotiatedPhysicalLinkRate        SasLinkRate,
        ibmSasModulePhyProgrammedMinimumPhysicalLinkRate SasLinkRate,
        ibmSasModulePhyProgrammedMaximumPhysicalLinkRate SasLinkRate,
        ibmSasModulePhyHardwareMinimumPhysicalLinkRate   SasLinkRate,
        ibmSasModulePhyHardwareMaximumPhysicalLinkRate   SasLinkRate,
        ibmSasModuleLegacyPhyZones                       DisplayString
    }

    ibmSasModulePhyNum OBJECT-TYPE
        SYNTAX              INTEGER
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "Uniquely identifies the phy."
        ::= { ibmSasModulePhyEntry 1 }

    ibmSasModulePhyEnabled OBJECT-TYPE
        SYNTAX              EnabledValue
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Indicates whether or not the phy is currently enabled.
                             Setting phyEnabled to enabled causes the phy to be 
                             enabled. Setting phyEnabled to disabled causes the phy
                             to be disabled."
        ::= { ibmSasModulePhyEntry 2 }

    ibmSasModulePhyAttachedDeviceType OBJECT-TYPE
        SYNTAX              SasDeviceType
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "Indicates the type of SAS device attached to the phy."
        ::= { ibmSasModulePhyEntry 3 }

    ibmSasModulePhyAttachedSasAddress OBJECT-TYPE
        SYNTAX              DisplayString (SIZE(16))
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "The SAS address of the SAS device attached to the phy."
        ::= { ibmSasModulePhyEntry 4 }

    ibmSasModulePhyRoutingAttribute OBJECT-TYPE
        SYNTAX              RoutingAttribute
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Indicates how Open Address Frames are routed by the phy.
                             When changing phyRoutingAttribute, the phy must first
                             be disabled. See phyEnabled."
        ::= { ibmSasModulePhyEntry 5 }

    ibmSasModulePhyNegotiatedPhysicalLinkRate OBJECT-TYPE
        SYNTAX              SasLinkRate
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "The actual SAS link rate negotiated during the link
                             reset sequence."
        ::= { ibmSasModulePhyEntry 6 }

    ibmSasModulePhyProgrammedMinimumPhysicalLinkRate OBJECT-TYPE
        SYNTAX              SasLinkRate
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Indicates the minimum SAS link rate currently programmed
                             by the host. When changing phyProgrammedMinimumPhysicalLinkRate,
                             the phy must first be disabled. See phyEnabled."
        ::= { ibmSasModulePhyEntry 7 }

    ibmSasModulePhyProgrammedMaximumPhysicalLinkRate OBJECT-TYPE
        SYNTAX              SasLinkRate
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Indicates the maximum SAS link rate currently programmed
                             by the host. When changing phyProgrammedMaximumPhysicalLinkRate,
                             the phy must first be disabled. See phyEnabled."
        ::= { ibmSasModulePhyEntry 8 }

    ibmSasModulePhyHardwareMinimumPhysicalLinkRate OBJECT-TYPE
        SYNTAX              SasLinkRate
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "Indicates the minimum SAS link rate supported by the
                             module."
        ::= { ibmSasModulePhyEntry 9 }

    ibmSasModulePhyHardwareMaximumPhysicalLinkRate OBJECT-TYPE
        SYNTAX              SasLinkRate
        ACCESS              read-only
        STATUS              mandatory
        DESCRIPTION         "Indicates the maximum SAS link rate supported by the
                             module."
        ::= { ibmSasModulePhyEntry 10 }

    ibmSasModuleLegacyPhyZones OBJECT-TYPE
        SYNTAX              DisplayString
        ACCESS              read-write
        STATUS              mandatory
        DESCRIPTION         "Indicates the zones (0-9) to which this phy belongs.
                             Zone numbers are separated by commas, (e.g. 0,4,5,9).
                             When changing Zones, the phy must first be disabled.
                             See phyEnabled."
        ::= { ibmSasModulePhyEntry 11 }
        
        
--
-- Traps - Enterprise specific
--
    ibmSasModulePhyLinkReady TRAP-TYPE
        ENTERPRISE          ibmSasModuleAgent
        VARIABLES           {
                                ibmSasModulePhyNum,
                                ibmSasModulePhyAttachedDeviceType,
                                ibmSasModulePhyAttachedSasAddress
                            }
        DESCRIPTION         "Indicates that the specified phy has gone link ready."
        ::= 10

    ibmSasModulePhyNotLinkReady TRAP-TYPE
        ENTERPRISE          ibmSasModuleAgent
        VARIABLES           {
                                ibmSasModulePhyNum
                            }
        DESCRIPTION         "Indicates that the specified phy is not link ready."
        ::= 11

END

