Configuring Online Diagnostics

This chapter describes how to configure the online diagnostics on the Catalyst 2960, 2960-S, or 2960-C switches.


Note Online Diagnostics is supported only on Catalyst 2960-S switches running the LAN base image.



Note For complete syntax and usage information for the commands used in this chapter, see the switch command reference for this release.


Understanding How Online Diagnostics Work

With online diagnostics, you can test and verify the hardware functionality of the switch while the switch is connected to a live network.

The online diagnostics contain packet switching tests that check different hardware components and verify the data path and the control signals.

The online diagnostics detect problems in these areas:

  • Hardware components
  • Interfaces (Ethernet ports and so forth)
  • Solder joints

Online diagnostics are categorized as on-demand, scheduled, or health-monitoring diagnostics. On-demand diagnostics run from the CLI; scheduled diagnostics run at user-designated intervals or at specified times when the switch is connected to a live network; and health-monitoring runs in the background.

Scheduling Online Diagnostics

You can schedule online diagnostics to run at a designated time of day or on a daily, weekly, or monthly basis for a specific switch. Use the no form of this command to remove the scheduling.

Beginning in global configuration mode, use this command to schedule online diagnostics:

 

Command
Purpose

diagnostic schedule switch num test { test_id | test_id_range | all | basic | non-disruptive } { daily hh : mm | on mm dd yyyy hh : mm } | weekly day_of_week hh : mm }

Schedule on-demand diagnostic tests for a specific date and time, how many times to run the test (iterations), and what action to take when errors are found.

This example shows how to schedule diagnostic testing on a specific date and time for a specific switch:

Switch(config)# diagnostic schedule switch 1 test 1,2,4-6 on january 3 2006 23:32
 

This example shows how to schedule diagnostic testing to occur weekly at a certain time for a specific switch:

Switch(config)# diagnostic schedule switch 1 test 1,2,4-6 weekly friday 09:23

Configuring Health-Monitoring Diagnostics

You can configure health-monitoring diagnostic testing on a specified switch while the switch is connected to a live network. You can configure the execution interval for each health-monitoring test, whether or not to generate a system message upon a test failure, or to enable or disable an individual test. Use the no form of this command to disable testing.

Beginning in global configuration mode, use these commands to configure health-monitoring diagnostics:

 

Command
Purpose

diagnostic monitor interval switch num test { test_id | test_id_range } hour:mm:ss milliseconds day

Configure the health-monitoring interval of the specified tests for the specified switch. By default, monitoring is disabled.

diagnostic monitor syslog

Enable the generation of a syslog message for health-monitoring test failures. By default, syslog is disabled.

diagnostic monitor threshold switch num test { test_id | test_id_range } failure count count

Set the failure threshold for monitoring tests. By default, monitoring is disabled.

Use the no diagnostic monitor interval switch { num } test { test-id | test-id-range | all } global configuration command to change the interval to the default value or to zero. Use the no diagnostic monitor syslog command to disable generation of syslog messages when a health-monitoring test fails. Use the diagnostic monitor threshold switch num test { test_id | test_id_range | all} failure count command to remove the failure threshold.

This example shows how to configure the specified test to run every 2 minutes:

Switch(config)# diagnostic monitor interval switch 1 test 1 00:02:00 0 1
 

This example shows how to set the failure threshold for test monitoring on a switch:

Switch(config)# diagnostic monitor threshold switch 1 test 1 failure count 50
 

This example shows how to enable the generation of a syslog message when any health monitoring test fails:

Switch(config)# diagnostic monitor syslog

Running Online Diagnostic Tests

After you configure online diagnostics, you can start diagnostic tests or display the test results. You can also see which tests are configured for each switch and what diagnostic tests have already run.

These sections describe how to run online diagnostic tests after they have been configured:

Starting Online Diagnostic Tests

After you configure diagnostic tests to run on the switch or on individual switches, you can use start to begin a diagnostic test.

Beginning in global configuration mode, use this command to start an online diagnostic test:

 

Command
Purpose

diagnostic start switch num test { test-id | test-id-range | all | basic | non-disruptive}

Start a diagnostic test on a specific switch.

This example shows how to start a diagnostic test on a specific switch:

Switch# diagnostic start switch 1 test 1
Switch#
06:27:50: %DIAG-6-TEST_RUNNING: Switch 1: Running TestPortAsicStackPortLoopback{ID=1}...
(switch-1)
06:27:51: %DIAG-6-TEST_OK: Switch 1: TestPortAsicStackPortLoopback{ID=1} has completed
successfully (switch-1)
Switch#
 

This example shows how to start diagnostics test 2 on a switch disrupting normal system operations, causing the switch to lose stack connectivity, and then to reload:

Switch# diagnostic start switch 1 test 2
Switch 1: Running test(s) 2 will cause the switch under test to reload after completion of
the test list.
Switch 1: Running test(s) 2 may disrupt normal system operation
Do you want to continue? [no]: y
Switch#
16:43:29: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 2 Switch 2 has changed to state DOWN
16:43:30: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 1 Switch 9 has changed to state DOWN
16:43:30: %STACKMGR-4-SWITCH_REMOVED: Switch 1 has been REMOVED from the stack
Switch#
16:44:35: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 1 Switch 2 has changed to state UP
16:44:37: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 2 Switch 2 has changed to state UP
16:44:45: %STACKMGR-4-SWITCH_ADDED: Switch 1 has been ADDED to the stack
16:45:00: %STACKMGR-5-SWITCH_READY: Switch 1 is READY
16:45:00: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 1 Switch 1 has changed to state UP
16:45:00: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 2 Switch 1 has changed to state UP
00:00:20: %STACKMGR-4-SWITCH_ADDED: Switch 1 has been ADDED to the stack (Switch-1)
00:00:20: %STACKMGR-4-SWITCH_ADDED: Switch 2 has been ADDED to the stack (Switch-1)
00:00:25: %SPANTREE-5-EXTENDED_SYSID: Extended SysId enabled for type vlan (Switch-1)
00:00:29: %SYS-5-CONFIG_I: Configured from memory by console (Switch-1)
00:00:29: %STACKMGR-5-SWITCH_READY: Switch 2 is READY (Switch-1)
00:00:29: %STACKMGR-5-MASTER_READY: Master Switch 2 is READY (Switch-1)
00:00:30: %STACKMGR-5-SWITCH_READY: Switch 1 is READY (Switch-1)
00:00:30: %DIAG-6-TEST_RUNNING: Switch 1: Running TestPortAsicLoopback{ID=2}...
(Switch-1)
00:00:30: %DIAG-6-TEST_OK: Switch 1: TestPortAsicLoopback{ID=2} has completed successfully
(Switch-1)
 

You see this message if the test will cause a stack partition:

Switch 6: Running test(s) 2 will cause the switch under test to reload after completion of
the test list.
Switch 6: Running test(s) 2 will partition stack
Switch 6: Running test(s) 2 may disrupt normal system operation
Do you want to continue? [no]:

Displaying Online Diagnostic Tests and Test Results

You can display the online diagnostic tests that are configured for specific switches and check the results of the tests using the show commands.

To display the diagnostic tests that are configured for a switch and the test results, use these privileged EXEC commands:

 

Table 40-1 show diagnostic Commands

Command
Purpose

show diagnostic content switch [num | all ]

Display the online diagnostics configured for a switch.

show diagnostic status

Display whether a switch is running a test.

show diagnostic result switch [num | all] detail

show diagnostic result switch [num | all] test [test_id | test_id_range | all] [detail]

Display the online diagnostics test results.

show diagnostic schedule switch [num | all]

Display the online diagnostics test schedule.

show diagnostic post

Display the results of POST. (The same as the show post command.)

This example shows how to display the online diagnostics that are configured on a switch:

Switch# show diagnostic content switch 3
Switch 3:
Diagnostics test suite attributes:
B/* - Basic ondemand test / NA
P/V/* - Per port test / Per device test / NA
D/N/* - Disruptive test / Non-disruptive test / NA
S/* - Only applicable to standby unit / NA
X/* - Not a health monitoring test / NA
F/* - Fixed monitoring interval test / NA
E/* - Always enabled monitoring test / NA
A/I - Monitoring is active / Monitoring is inactive
R/* - Switch will reload after test list completion / NA
P/* - will partition stack / NA
Test Interval Thre-
ID Test Name attributes day hh:mm:ss.ms shold
==== ================================== ============ =============== =====
1) TestPortAsicStackPortLoopback B*N****A** 000 00:01:00.00 n/a
2) TestPortAsicLoopback B*D*X**IR* not configured n/a
3) TestPortAsicCam B*D*X**IR* not configured n/a
4) TestPortAsicRingLoopback B*D*X**IR* not configured n/a
5) TestMicRingLoopback B*D*X**IR* not configured n/a
6) TestPortAsicMem B*D*X**IR* not configured n/a
 

This example shows how to display the online diagnostic results for a switch:

Switch# show diagnostic result
Switch 1: SerialNo :
Overall diagnostic result: PASS
Test results: (. = Pass, F = Fail, U = Untested)
1) TestPortAsicStackPortLoopback --->.
2) TestPortAsicLoopback ------------>.
3) TestPortAsicCam ----------------->.
4) TestPortAsicRingLoopback -------->.
5) TestMicRingLoopback ------------->.
6) TestPortAsicMem ----------------->.
 

This example shows how to display the online diagnostic test status:

Switch# show diagnostic status
<BU> - Bootup Diagnostics, <HM> - Health Monitoring Diagnostics,
<OD> - OnDemand Diagnostics, <SCH> - Scheduled Diagnostics
====== ================================= =============================== ======
Card Description Current Running Test Run by
------ --------------------------------- --------------------- ------
1 N/A N/A
2 TestPortAsicStackPortLoopback <OD>
TestPortAsicLoopback <OD>
TestPortAsicCam <OD>
TestPortAsicRingLoopback <OD>
TestMicRingLoopback <OD>
TestPortAsicMem <OD>
3 N/A N/A
4 N/A N/A
====== ====
============================= =============================== ======
Switch#
 

This example shows how to display the online diagnostic test schedule for a switch:

Switch# show diagnostic schedule switch 1
Current Time = 14:39:49 PST Tue Jul 5 2005
Diagnostic for Switch 1:
Schedule #1:
To be run daily 12:00
Test ID(s) to be executed: 1.