-- MIB file created 29-Jun-2009 13:28:16, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-BOOT-HWDIAGS-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-BOOT-HWDIAGS-MIB.my"
-- Compile options "4 7 F H N O W 03 06 0B 0G 0N 0T"

IMPORTS
    DisplayString, TruthValue
            FROM SNMPv2-TC-v1
    ciscoMgmt
            FROM CISCO-SMI
    Gauge
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212;

ciscoBootHwDiagsMIB OBJECT IDENTIFIER ::= { ciscoMgmt 696 }
-- MODULE-IDENTITY
--  LastUpdated
--    200905120000Z
--  OrgName
--    Cisco Systems, Inc.
--  ContactInfo
--    Cisco Systems
--    Customer Service
--    
--    Postal: 170 W Tasman Drive
--    San Jose, CA  95134
--    USA
--    
--    Tel: +1 800 553-NETS
--    
--    E-mail: tac@cisco.com
--  Descr
--    This MIB is used to configure those devices that support
--    boot-time hardware diagnostics.  It provides the reports 
--    about the respective diagnostic tests executed by the 
--    devices as well. 
--    
--    Boot-time diagnostics are run after the ROMMON has 
--    transferred control to the start code of IOS and before 
--    any IOS subsystem has started. 
--    
--    Such diagnostics may or may not include those that are 
--    destructive to the operation of IOS or communications
--    links that are serviced by IOS and, as such, must be run
--    before IOS has completed booting and before any subsystem
--    has started. 
--    
--    During boot-up from either power-on or a reload, and
--    before IOS starts, a loop of all such diagnostics is executed
--    according to the following flow: 
--    
--         bank = current_bank 
--         for index = 1 to number of diagnostics { 
--            if diag[index] is configured AND armed for bank { 
--              call diagnostic_function[index]; 
--              store results in memory = structure.bank.index; 
--            } 
--    
--    After all the IOS subsystems have started, one can
--    use either the CLI or this MIB to query the status of the 
--    diagnostic tests for each bank. 
--    
--    The diagnostic tests are tabulated on the CLI as
--    follows. 
--    
--           Information for Hardware Diagnostics Bank 0 
--           (Current bank = 0) 
--    
--                            Last Boot         Next Boot 
--                            - 
--         Diagnostic         Ran? Pass/Failed? Configured? Armed?
--    
--         EDAC test          YES  PASSED       YES         NO 
--         EEPROM test        YES  PASSED       YES         NO 
--         FPGA(s) test       YES  FAILED       YES         NO 
--    
--         FPGA Diags: FPGA1:F, FPGA2-REG:P, FPGA2-SRAM:P, FPGA3:F
--    
--    
--    In the table above, there are 3 diagnostic_function 
--    categories: 
--    
--    EDAC, EEPROM, and FPGA(s).   The FPGA category has 4
--    subtests one associated with FPGA1, two with FPGA2, and one
--    with FPGA3. 
--    
--    The MIB shall be used to configure the diagnostic tests
--    to be run on each bank and read the results of the same.  The
--    selection of a particular bank to run the tests is hardware-
--    dependent.
--    
--                        GLOSSARY
--    CLI    - Command Line Interface
--    diags  - abbreviation for diagnostics
--    EDAC   - Error Detection and Correction
--    EEPROM - Electrically Eraseable Programmable Read-Only Memory
--    FPGA   - Field Programmable Gate Array
--    IOS    - Internet Operating System
--    MIB    - Management Information Base
--    NVRAM  - Non-volatile Random Access Memory
--    SRAM   - Static Random Access Memory
--  RevDate
--    200905120000Z
--  RevDescr
--    Initial version of this MIB module.

ciscoBootHwDiagsMIBNotifs OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIB 0 }
ciscoBootHwDiagsMIBObjects OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIB 1 }
ciscoBootHwDiagsMIBConform OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIB 2 }
ciscoBootHwDiagsMIBCompliances OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIBConform 1 }
ciscoBootHwDiagsMIBGroups OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIBConform 2 }

ciscoBootHwDiagsMIBCurrentBank OBJECT-TYPE
    SYNTAX Gauge(0..1000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object identifies the current bank the device has booted
        with and executed the diagnostic tests."
    ::= { ciscoBootHwDiagsMIBObjects 1 }

ciscoBootHwDiagsMIBTestTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CiscoBootHwDiagsMIBTestEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table gives the list of possible diagnostic test
        'categories' that may be configured, armed, and run for
        each bank.  The categories are the same for all banks.
        In the CLI example given above, the categories are:
        EDAC test, EEPROM test, and FGPA(s) test."
    ::= { ciscoBootHwDiagsMIBObjects 2 }

ciscoBootHwDiagsMIBTestEntry OBJECT-TYPE
    SYNTAX CiscoBootHwDiagsMIBTestEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Each entry represents a  row in ciscoBootHwDiagsMIBTestTable
        and corresponds to the information about the various 
        categories of diagnostic tests."
    INDEX { ciscoBootHwDiagsMIBTestIndex }
    ::= { ciscoBootHwDiagsMIBTestTable 1 }

CiscoBootHwDiagsMIBTestEntry ::= SEQUENCE {
    ciscoBootHwDiagsMIBTestIndex Gauge,
    ciscoBootHwDiagsMIBTestName DisplayString
    }

ciscoBootHwDiagsMIBTestIndex OBJECT-TYPE
    SYNTAX Gauge
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object uniquely identifies the information about a
        particular category of test."
    ::= { ciscoBootHwDiagsMIBTestEntry 1 }

ciscoBootHwDiagsMIBTestName OBJECT-TYPE
    SYNTAX DisplayString(SIZE(3..255))
--    Rsyntax OCTET STRING(SIZE(3..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object represents the name of the diagnostic test."
    ::= { ciscoBootHwDiagsMIBTestEntry 2 }

ciscoBootHwDiagsMIBTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CiscoBootHwDiagsMIBEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The table lists the configuration and results of the tests run
        on the banks. The results correspond to the execution of the 
        respective tests run at the most recent boot of the device."
    ::= { ciscoBootHwDiagsMIBObjects 3 }

ciscoBootHwDiagsMIBEntry OBJECT-TYPE
    SYNTAX CiscoBootHwDiagsMIBEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Each entry represents a  row in ciscoBootHwDiagsMIBTable and
        corresponds to the information about the diagnostic tests for a
        particular
        bank."
    INDEX { ciscoBootHwDiagsMIBBankIndex, ciscoBootHwDiagsMIBTestIndex }
    ::= { ciscoBootHwDiagsMIBTable 1 }

CiscoBootHwDiagsMIBEntry ::= SEQUENCE {
    ciscoBootHwDiagsMIBBankIndex Gauge,
    ciscoBootHwDiagsMIBLastBootExecuted TruthValue,
    ciscoBootHwDiagsMIBLastBootPassed TruthValue,
    ciscoBootHwDiagsMIBNextBootConfigured TruthValue,
    ciscoBootHwDiagsMIBNextBootArmed TruthValue,
    ciscoBootHwDiagsMIBConfigCode Gauge,
    ciscoBootHwDiagsMIBResultCode Gauge
    }

ciscoBootHwDiagsMIBBankIndex OBJECT-TYPE
    SYNTAX Gauge(0..1000)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object, together with ciscoBootHwDiagsMIBTestIndex,
        uniquely  identifies the information about a particular 
        diagnostic test."
    ::= { ciscoBootHwDiagsMIBEntry 1 }

ciscoBootHwDiagsMIBLastBootExecuted OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object represents the execution status of the test.  A
        value of 'true' indicates that the test has been executed on
        the most recent boot of the device.  A value of 'false' 
        indicates that the test has not been executed."
    DEFVAL { false }
    ::= { ciscoBootHwDiagsMIBEntry 2 }

ciscoBootHwDiagsMIBLastBootPassed OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object represents the result of the test on the most
        recent boot of the device. A value of 'true' indicates that the 
        test passed.  A  value of 'false' indicates that the test 
        failed."
    ::= { ciscoBootHwDiagsMIBEntry 3 }

ciscoBootHwDiagsMIBNextBootConfigured OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the action to be taken on this bank at
        the next boot.  A value of 'true' indicates that the test
        identified by ciscoBootHwDiagsMIBTestName will be executed at
        the next boot, provided  the device chooses this bank for 
        diagnosis."
    DEFVAL { false }
    ::= { ciscoBootHwDiagsMIBEntry 4 }

ciscoBootHwDiagsMIBNextBootArmed OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "A value of 'true' indicates that, for a particular numbered
        bank, all the configured tests for that same numbered bank are
        run."
    DEFVAL { false }
    ::= { ciscoBootHwDiagsMIBEntry 5 }

ciscoBootHwDiagsMIBConfigCode OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object provides additional optional detailed configuration
        options (sub-tests configurations) for a diagnostics test
        category. The decoding of this unsigned 32-bit integer is 
        platform-specific and allows for many platform-specific
        configurations.  For the CLI example above, a
        ciscoBootHwDiagsMIBConfigCode for the FPGA(s) test category
        will cause all FPGA tests to be disabled, whereas, 
        a ciscoBootHwDiagsMIBConfigCode of 1 will enable FPGA1 test.
        A ciscoBootHwDiagsMIBConfigCode of 3 will enable FPGA1 AND
        FPGA2-subtest1, and so forth (since there is only one test
        for FPGA1, but two tests for FPGA2). Hence the encoding is
        platform dependent and flexible."
    DEFVAL { 0 }
    ::= { ciscoBootHwDiagsMIBEntry 6 }

ciscoBootHwDiagsMIBResultCode OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object represents a return code that may be mapped to
        detailed testresults in an analogous way to how the 
        ciscoBootHwDiagsMIBConfigCode  is mapped to configurations.  
        That is, for the CLI example above, a 
        ciscoBootHwDiagsMIBResultCode of F (hex) indicates that all
        FPGA tests passed. A ciscoBootHwDiagsMIBResultCode of 
        1 (hex), indicates that ONLY FPGA1 test passed. A 
        ciscoBootHwDiagsMIBResultCode of 3 (hex) indicates that only
        FPGA1 AND FPGA2-subtest1 passed, and so forth (since there is
        only one test for FPGA1, but two tests for FPGA2).  Hence the
        encoding is platform dependent and flexible."
    ::= { ciscoBootHwDiagsMIBEntry 7 }

ciscoBootHwDiagsMIBMainObjectGroup OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group represents the information about the banks and the
--    diagnostic tests run on them.
--  objects
--    ciscoBootHwDiagsMIBCurrentBank, ciscoBootHwDiagsMIBTestName, 
--    ciscoBootHwDiagsMIBLastBootExecuted, 
--    ciscoBootHwDiagsMIBLastBootPassed, 
--    ciscoBootHwDiagsMIBNextBootConfigured, 
--    ciscoBootHwDiagsMIBNextBootArmed, 
--    ciscoBootHwDiagsMIBConfigCode, ciscoBootHwDiagsMIBResultCode

ciscoBootHwDiagsMIBCompliance OBJECT IDENTIFIER ::= { ciscoBootHwDiagsMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for the entities that implement the
--    ciscoBootHwDiagsMIB module.
--  Module
--    >>current<<
--   MandGroup
--    ciscoBootHwDiagsMIBMainObjectGroup


END

