1-- *****************************************************************
2-- CISCO-BOOT-HWDIAGS-MIB.my
3--
4-- Copyright (c) 2009 by cisco Systems Inc.
5-- All rights reserved.
6--
7-- *****************************************************************
8
9CISCO-BOOT-HWDIAGS-MIB DEFINITIONS ::= BEGIN
10
11IMPORTS
12    MODULE-IDENTITY,
13    OBJECT-TYPE,
14    Unsigned32
15        FROM SNMPv2-SMI
16    MODULE-COMPLIANCE,
17    OBJECT-GROUP
18        FROM SNMPv2-CONF
19    DisplayString,
20    TruthValue
21        FROM SNMPv2-TC
22    ciscoMgmt
23        FROM CISCO-SMI;
24
25
26ciscoBootHwDiagsMIB MODULE-IDENTITY
27    LAST-UPDATED    "200905120000Z"
28    ORGANIZATION    "Cisco Systems, Inc."
29    CONTACT-INFO
30            "Cisco Systems
31            Customer Service
32
33            Postal: 170 W Tasman Drive
34            San Jose, CA  95134
35            USA
36
37            Tel: +1 800 553-NETS
38
39            E-mail: tac@cisco.com"
40    DESCRIPTION
41        "This MIB is used to configure those devices that support
42        boot-time hardware diagnostics.  It provides the reports
43        about the respective diagnostic tests executed by the
44        devices as well.
45
46        Boot-time diagnostics are run after the ROMMON has
47        transferred control to the start code of IOS and before
48        any IOS subsystem has started.
49
50        Such diagnostics may or may not include those that are
51        destructive to the operation of IOS or communications
52        links that are serviced by IOS and, as such, must be run
53        before IOS has completed booting and before any subsystem
54        has started.
55
56        During boot-up from either power-on or a reload, and
57        before IOS starts, a loop of all such diagnostics is executed
58        according to the following flow:
59
60             bank = current_bank
61             for index = 1 to number of diagnostics {
62                if diag[index] is configured AND armed for bank {
63                  call diagnostic_function[index];
64                  store results in memory = structure.bank.index;
65                }
66
67        After all the IOS subsystems have started, one can
68        use either the CLI or this MIB to query the status of the
69        diagnostic tests for each bank.
70
71        The diagnostic tests are tabulated on the CLI as
72        follows.
73
74               Information for Hardware Diagnostics Bank 0
75               (Current bank = 0)
76
77                                Last Boot         Next Boot
78                                -
79             Diagnostic         Ran? Pass/Failed? Configured? Armed?
80
81             EDAC test          YES  PASSED       YES         NO
82             EEPROM test        YES  PASSED       YES         NO
83             FPGA(s) test       YES  FAILED       YES         NO
84
85             FPGA Diags: FPGA1:F, FPGA2-REG:P, FPGA2-SRAM:P, FPGA3:F
86
87
88        In the table above, there are 3 diagnostic_function
89        categories:
90
91        EDAC, EEPROM, and FPGA(s).   The FPGA category has 4
92        subtests one associated with FPGA1, two with FPGA2, and one
93        with FPGA3.
94
95        The MIB shall be used to configure the diagnostic tests
96        to be run on each bank and read the results of the same.  The
97        selection of a particular bank to run the tests is hardware-
98        dependent.
99
100                            GLOSSARY
101        CLI    - Command Line Interface
102        diags  - abbreviation for diagnostics
103        EDAC   - Error Detection and Correction
104        EEPROM - Electrically Eraseable Programmable Read-Only Memory
105        FPGA   - Field Programmable Gate Array
106        IOS    - Internet Operating System
107        MIB    - Management Information Base
108        NVRAM  - Non-volatile Random Access Memory
109        SRAM   - Static Random Access Memory"
110    REVISION        "200905120000Z"
111    DESCRIPTION
112        "Initial version of this MIB module."
113    ::= { ciscoMgmt 696 }
114
115
116ciscoBootHwDiagsMIBNotifs  OBJECT IDENTIFIER
117    ::= { ciscoBootHwDiagsMIB 0 }
118
119ciscoBootHwDiagsMIBObjects  OBJECT IDENTIFIER
120    ::= { ciscoBootHwDiagsMIB 1 }
121
122ciscoBootHwDiagsMIBConform  OBJECT IDENTIFIER
123    ::= { ciscoBootHwDiagsMIB 2 }
124
125
126ciscoBootHwDiagsMIBCurrentBank OBJECT-TYPE
127    SYNTAX          Unsigned32 (0..1000)
128    MAX-ACCESS      read-only
129    STATUS          current
130    DESCRIPTION
131        "This object identifies the current bank the device has booted
132        with and executed the diagnostic tests."
133    ::= { ciscoBootHwDiagsMIBObjects 1 }
134
135ciscoBootHwDiagsMIBTestTable OBJECT-TYPE
136    SYNTAX          SEQUENCE OF CiscoBootHwDiagsMIBTestEntry
137    MAX-ACCESS      not-accessible
138    STATUS          current
139    DESCRIPTION
140        "This table gives the list of possible diagnostic test
141        'categories' that may be configured, armed, and run for
142        each bank.  The categories are the same for all banks.
143        In the CLI example given above, the categories are:
144        EDAC test, EEPROM test, and FGPA(s) test."
145    ::= { ciscoBootHwDiagsMIBObjects 2 }
146
147ciscoBootHwDiagsMIBTestEntry OBJECT-TYPE
148    SYNTAX          CiscoBootHwDiagsMIBTestEntry
149    MAX-ACCESS      not-accessible
150    STATUS          current
151    DESCRIPTION
152        "Each entry represents a  row in ciscoBootHwDiagsMIBTestTable
153        and corresponds to the information about the various
154        categories of diagnostic tests."
155    INDEX           { ciscoBootHwDiagsMIBTestIndex }
156    ::= { ciscoBootHwDiagsMIBTestTable 1 }
157
158CiscoBootHwDiagsMIBTestEntry ::= SEQUENCE {
159        ciscoBootHwDiagsMIBTestIndex Unsigned32,
160        ciscoBootHwDiagsMIBTestName  DisplayString
161}
162
163ciscoBootHwDiagsMIBTestIndex OBJECT-TYPE
164    SYNTAX          Unsigned32
165    MAX-ACCESS      not-accessible
166    STATUS          current
167    DESCRIPTION
168        "This object uniquely identifies the information about a
169        particular category of test."
170    ::= { ciscoBootHwDiagsMIBTestEntry 1 }
171
172ciscoBootHwDiagsMIBTestName OBJECT-TYPE
173    SYNTAX          DisplayString (SIZE  (3..255))
174    MAX-ACCESS      read-only
175    STATUS          current
176    DESCRIPTION
177        "This object represents the name of the diagnostic test."
178    ::= { ciscoBootHwDiagsMIBTestEntry 2 }
179
180
181
182ciscoBootHwDiagsMIBTable OBJECT-TYPE
183    SYNTAX          SEQUENCE OF CiscoBootHwDiagsMIBEntry
184    MAX-ACCESS      not-accessible
185    STATUS          current
186    DESCRIPTION
187        "The table lists the configuration and results of the tests run
188        on the banks. The results correspond to the execution of the
189        respective tests run at the most recent boot of the device."
190    ::= { ciscoBootHwDiagsMIBObjects 3 }
191
192ciscoBootHwDiagsMIBEntry OBJECT-TYPE
193    SYNTAX          CiscoBootHwDiagsMIBEntry
194    MAX-ACCESS      not-accessible
195    STATUS          current
196    DESCRIPTION
197        "Each entry represents a  row in ciscoBootHwDiagsMIBTable and
198        corresponds to the information about the diagnostic tests for a
199        particular
200        bank."
201    INDEX           {
202                        ciscoBootHwDiagsMIBBankIndex,
203                        ciscoBootHwDiagsMIBTestIndex
204                    }
205    ::= { ciscoBootHwDiagsMIBTable 1 }
206
207CiscoBootHwDiagsMIBEntry ::= SEQUENCE {
208        ciscoBootHwDiagsMIBBankIndex          Unsigned32,
209        ciscoBootHwDiagsMIBLastBootExecuted   TruthValue,
210        ciscoBootHwDiagsMIBLastBootPassed     TruthValue,
211        ciscoBootHwDiagsMIBNextBootConfigured TruthValue,
212        ciscoBootHwDiagsMIBNextBootArmed      TruthValue,
213        ciscoBootHwDiagsMIBConfigCode         Unsigned32,
214        ciscoBootHwDiagsMIBResultCode         Unsigned32
215}
216
217ciscoBootHwDiagsMIBBankIndex OBJECT-TYPE
218    SYNTAX          Unsigned32 (0..1000)
219    MAX-ACCESS      not-accessible
220    STATUS          current
221    DESCRIPTION
222        "This object, together with ciscoBootHwDiagsMIBTestIndex,
223        uniquely  identifies the information about a particular
224        diagnostic test."
225    ::= { ciscoBootHwDiagsMIBEntry 1 }
226
227ciscoBootHwDiagsMIBLastBootExecuted OBJECT-TYPE
228    SYNTAX          TruthValue
229    MAX-ACCESS      read-only
230    STATUS          current
231    DESCRIPTION
232        "This object represents the execution status of the test.  A
233        value of 'true' indicates that the test has been executed on
234        the most recent boot of the device.  A value of 'false'
235        indicates that the test has not been executed."
236    DEFVAL          { false }
237    ::= { ciscoBootHwDiagsMIBEntry 2 }
238
239ciscoBootHwDiagsMIBLastBootPassed OBJECT-TYPE
240    SYNTAX          TruthValue
241    MAX-ACCESS      read-only
242    STATUS          current
243    DESCRIPTION
244        "This object represents the result of the test on the most
245        recent boot of the device. A value of 'true' indicates that the
246        test passed.  A  value of 'false' indicates that the test
247        failed."
248    ::= { ciscoBootHwDiagsMIBEntry 3 }
249
250ciscoBootHwDiagsMIBNextBootConfigured OBJECT-TYPE
251    SYNTAX          TruthValue
252    MAX-ACCESS      read-write
253    STATUS          current
254    DESCRIPTION
255        "This object indicates the action to be taken on this bank at
256        the next boot.  A value of 'true' indicates that the test
257        identified by ciscoBootHwDiagsMIBTestName will be executed at
258        the next boot, provided  the device chooses this bank for
259        diagnosis."
260    DEFVAL          { false }
261    ::= { ciscoBootHwDiagsMIBEntry 4 }
262
263ciscoBootHwDiagsMIBNextBootArmed OBJECT-TYPE
264    SYNTAX          TruthValue
265    MAX-ACCESS      read-write
266    STATUS          current
267    DESCRIPTION
268        "A value of 'true' indicates that, for a particular numbered
269        bank, all the configured tests for that same numbered bank are
270        run."
271    DEFVAL          { false }
272    ::= { ciscoBootHwDiagsMIBEntry 5 }
273
274ciscoBootHwDiagsMIBConfigCode OBJECT-TYPE
275    SYNTAX          Unsigned32
276    MAX-ACCESS      read-write
277    STATUS          current
278    DESCRIPTION
279        "This object provides additional optional detailed configuration
280        options (sub-tests configurations) for a diagnostics test
281        category. The decoding of this unsigned 32-bit integer is
282        platform-specific and allows for many platform-specific
283        configurations.  For the CLI example above, a
284        ciscoBootHwDiagsMIBConfigCode for the FPGA(s) test category
285        will cause all FPGA tests to be disabled, whereas,
286        a ciscoBootHwDiagsMIBConfigCode of 1 will enable FPGA1 test.
287        A ciscoBootHwDiagsMIBConfigCode of 3 will enable FPGA1 AND
288        FPGA2-subtest1, and so forth (since there is only one test
289        for FPGA1, but two tests for FPGA2). Hence the encoding is
290        platform dependent and flexible."
291    DEFVAL          { 0 }
292    ::= { ciscoBootHwDiagsMIBEntry 6 }
293
294ciscoBootHwDiagsMIBResultCode OBJECT-TYPE
295    SYNTAX          Unsigned32
296    MAX-ACCESS      read-only
297    STATUS          current
298    DESCRIPTION
299        "This object represents a return code that may be mapped to
300        detailed testresults in an analogous way to how the
301        ciscoBootHwDiagsMIBConfigCode  is mapped to configurations.
302        That is, for the CLI example above, a
303        ciscoBootHwDiagsMIBResultCode of F (hex) indicates that all
304        FPGA tests passed. A ciscoBootHwDiagsMIBResultCode of
305        1 (hex), indicates that ONLY FPGA1 test passed. A
306        ciscoBootHwDiagsMIBResultCode of 3 (hex) indicates that only
307        FPGA1 AND FPGA2-subtest1 passed, and so forth (since there is
308        only one test for FPGA1, but two tests for FPGA2).  Hence the
309        encoding is platform dependent and flexible."
310    ::= { ciscoBootHwDiagsMIBEntry 7 }
311
312
313ciscoBootHwDiagsMIBCompliances  OBJECT IDENTIFIER
314    ::= { ciscoBootHwDiagsMIBConform 1 }
315
316ciscoBootHwDiagsMIBGroups  OBJECT IDENTIFIER
317    ::= { ciscoBootHwDiagsMIBConform 2 }
318
319
320ciscoBootHwDiagsMIBCompliance MODULE-COMPLIANCE
321    STATUS          current
322    DESCRIPTION
323        "The compliance statement for the entities that implement the
324        ciscoBootHwDiagsMIB module."
325    MODULE          -- this module
326    MANDATORY-GROUPS { ciscoBootHwDiagsMIBMainObjectGroup }
327    ::= { ciscoBootHwDiagsMIBCompliances 1 }
328
329-- Units of Conformance
330
331ciscoBootHwDiagsMIBMainObjectGroup OBJECT-GROUP
332    OBJECTS         {
333                        ciscoBootHwDiagsMIBCurrentBank,
334                        ciscoBootHwDiagsMIBTestName,
335                        ciscoBootHwDiagsMIBLastBootExecuted,
336                        ciscoBootHwDiagsMIBLastBootPassed,
337                        ciscoBootHwDiagsMIBNextBootConfigured,
338                        ciscoBootHwDiagsMIBNextBootArmed,
339                        ciscoBootHwDiagsMIBConfigCode,
340                        ciscoBootHwDiagsMIBResultCode
341                    }
342    STATUS          current
343    DESCRIPTION
344        "This group represents the information about the banks and the
345        diagnostic tests run on them."
346    ::= { ciscoBootHwDiagsMIBGroups 1 }
347
348END
349