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