Configuring Online Diagnostics

Information About Configuring Online Diagnostics

With online diagnostics, you can test and verify the hardware functionality of a device while the device is connected to a live network. Online diagnostics contains packet-switching tests that check different hardware components and verify the data path and control signals.

Online diagnostics detects 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 device is connected to a live network; and health-monitoring runs in the background with user-defined intervals. The health-monitoring test runs every 90, 100, or 150 seconds based on the test.

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

Generic Online Diagnostics (GOLD) Tests


Note


  • Before you enable online diagnostics tests, enable console logging to see all the warning messages.

  • While tests are running, all the ports are shut down because a stress test is being performed with looping ports internally, and external traffic might affect the test results. Reboot the switch to bring it to normal operation. When you run the command to reload a switch, the system will ask you if the configuration should be saved. Do not save the configuration.

  • If you are running tests on other modules, after a test is initiated and complete, you must reset the module.


The following sections provide information about GOLD tests.

TestGoldPktLoopback

This GOLD packet loopback test verifies the MAC-level loopback functionality. In this test, a GOLD packet is sent, for which Unified Access Data Plane (UADP) ASIC provides support in the hardware. The packet loops back at the MAC-level and is matched against the stored packet.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

Run this on-demand test as per requirement.

Default

Off.

Intitial release

Cisco IOS XE Everest 16.6.1.

Corrective action

Hardware support

Supervisors and linecards.

TestFantray

This test verifies if all the fan modules that have been inserted are working properly on the board.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive

Recommendation

Run this as a health-monitoring test in case you experience any problem with the fan module.

Default

On.

Intitial release

Cisco IOS XE Everest 16.6.1.

Corrective action

Hardware support

Supervisors.

TestPhyLoopback

This PHY loopback test verifies the PHY-level loopback functionality. In this test, a packet, which loops back at the PHY level and is matched against the stored packet, is sent. It cannot be run as a health-monitoring test.

Attribute

Description

Disruptive or Nondisruptive

Disruptive.

Recommendation

If the link to the external connector is down, run this on-demand test to check the health of the link.

Default

Off.

Intitial release

Cisco IOS XE Everest 16.6.1.

Corrective action

Hardware support

Supervisors and linecards.

TestThermal

This test verifies temperature reading from a device sensor.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive

Recommendation

Do not disable. Run this as an on-demand test, and as a health-monitoring test if the administrator is down.

Default

On.

Intitial release

Cisco IOS XE Everest 16.6.1.

Corrective action

Hardware support

Supervisors and linecards.

TestScratchRegister

This Scratch Register test monitors the health of ASICs by writing values into registers and reading back the values from these registers.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

Do not disable. Run this test if the task of writing values to the registers fails. This can be run as a health-monitoring test and also as an on-demand test.

Default

On.

Intitial release

Cisco IOS XE Everest 16.6.1.

Corrective action

Hardware support

Supervisors and linecards.

TestPoe

This test checks the PoE controller functionality.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

Run this as a PoE health-monitoring test.

Default

Off.

Intitial release

Cisco IOS XE Everest 16.6.1.

Corrective action

Hardware support

Linecards.

TestUnusedPortLoopback

This test verifies the PHY-level loopback functionality for admin-down ports. In this test, a packet is sent which loops back at PHY level and is matched against the stored packet.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

This can be run as a health-monitoring test and also as an on-demand test.

Default

Off.

Intitial release

Cisco IOS XE Fuji 16.9.1.

Corrective action

Displays a syslog message if the test fails for any port.

Hardware support

Supervisors and linecards.

TestPortTxMonitoring

This test monitors the transmit counters of a connected interface. It verifies if the connected port is able to send the packets or not. This test runs every 150 seconds.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

Do not disable. This can be run as a health-monitoring test and also as an on-demand test.

Default

On.

Intitial release

Cisco IOS XE Fuji 16.9.1.

Corrective action

Displays a syslog message if the test fails for any port.

Hardware support

Supervisors and linecards.

How to Configure Online Diagnostics

The following sections provide information about the various procedures that comprise the online diagnostics configuration.

Starting Online Diagnostic Tests

After you configure diagnostic tests to run on a device, use the diagnostic start privileged EXEC command to begin diagnostic testing.

After starting the tests, you cannot stop the testing process midway.

Use the diagnostic start switch privileged EXEC command to manually start online diagnostic testing:

Procedure

Command or Action Purpose

diagnostic start module number test {name | test-id | test-id-range | all | basic | complete | minimal | non-disruptive | per-port}

Example:



Device# diagnostic start module 2 test basic

Starts the diagnostic tests.

You can specify the tests by using one of these options:

  • name : Enters the name of the test.

  • test-id : Enters the ID number of the test.

  • test-id-range : Enters the range of test IDs by using integers separated by a comma and a hyphen.

  • all : Starts all of the tests.

  • basic : Starts the basic test suite.

  • complete : Starts the complete test suite.

  • minimal : Starts the minimal bootup test suite.

  • non-disruptive : Starts the nondisruptive test suite.

  • per-port : Starts the per-port test suite.

Configuring Online Diagnostics

You must configure the failure threshold and the interval between tests before enabling diagnostic monitoring.

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 device. Use the no form of the diagnostic schedule switch command to remove the scheduling.

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

Device #configure terminal

Enters global configuration mode.

Step 2

diagnostic schedule module number test {name | test-id | test-id-range | all | basic | complete | minimal | non-disruptive | per-port} {daily | on mm dd yyyy hh:mm | port inter-port-number port-number-list | weekly day-of-week hh:mm}

Example:


Device(config)# diagnostic schedule module 3 test 1-5 on July 3 2013 23:10

Schedules on-demand diagnostic test for a specific day and time.

When specifying the test to be scheduled, use these options:

  • name : Name of the test that appears in the show diagnostic content command output.

  • test-id : ID number of the test that appears in the show diagnostic content command output.

  • test-id-range : ID numbers of the tests that appear in the show diagnostic content command output.

  • all : All test IDs.

  • basic : Starts the basic on-demand diagnostic tests.

  • complete : Starts the complete test suite.

  • minimal : Starts the minimal bootup test suite.

  • non-disruptive : Starts the nondisruptive test suite.

  • per-port : Starts the per-port test suite.

You can schedule the tests as follows:

  • Daily: Use the daily hh:mm parameter.

  • Specific day and time: Use the on mm dd yyyy hh:mm parameter.

  • Weekly: Use the weekly day-of-week hh:mm parameter.

Configuring Health-Monitoring Diagnostics

You can configure health-monitoring diagnostic testing on a device while it is connected to a live network. You can configure the execution interval for each health-monitoring test, enable the device to generate a syslog message because of a test failure, and enable a specific test.

Use the no form of this command to disable testing.

By default, health monitoring is enabled only for a few tests, and the device generates a syslog message when a test fails.

Follow these steps to configure and enable the health-monitoring diagnostic tests:

Procedure

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

Enter your password, if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

diagnostic monitor interval modulenumber test {name | test-id | test-id-range | all} hh:mm:ss milliseconds day

Example:


Device(config)# 
diagnostic monitor interval module 2 test 1 12:30:00 750 5

Configures the health-monitoring interval of the specified test.

When specifying a test, use one of these parameters:

  • name : Name of the test that appears in the show diagnostic content command output.

  • test-id : ID number of the test that appears in the show diagnostic content command output.

  • test-id-range : ID numbers of the tests that appear in the show diagnostic content command output.

  • all : All the diagnostic tests.

When specifying the interval, set these parameters:

  • hh:mm:ss : Monitoring interval, in hours, minutes, and seconds. The range for hh is 0 to 24, and the range for mm and ss is 0 to 60.

  • milliseconds : Monitoring interval, in milliseconds (ms). The range is from 0 to 999.

  • day : Monitoring interval, in number of days. The range is from 0 to 20.

Step 4

diagnostic monitor syslog

Example:


Device(config)# diagnostic monitor syslog

(Optional) Configures the switch to generate a syslog message when a health-monitoring test fails.

Step 5

diagnostic monitor threshold module number number test {name | test-id | test-id-range | all} failure count count

Example:


Device(config)# diagnostic monitor threshold module 2 test 1 failure count 20

(Optional) Sets the failure threshold for the health-monitoring test.

When specifying the tests, use one of these parameters:

  • name : Name of the test that appears in the show diagnostic content command output.

  • test-id : ID number of the test that appears in the show diagnostic content command output.

  • test-id-range : ID numbers of the tests that appear in the show diagnostic content command output.

  • all : All the diagnostic tests.

The range for the failure threshold count is 0 to 99.

Step 6

diagnostic monitor modulenumber test {name | test-id | test-id-range | all}

Example:


Device(config)# diagnostic monitor module 2 test 1

Enables the specified health-monitoring tests.

The switch number keyword is supported only on stacking switches.

When specifying the tests, use one of these parameters:

  • name : Name of the test that appears in the show diagnostic content command output.

  • test-id : ID number of the test that appears in the show diagnostic content command output.

  • test-id-range : ID numbers of the tests that appear in the show diagnostic content command output.

  • all : All the diagnostic tests.

Step 7

end

Example:


Device(config)# end

Returns to privileged EXEC mode.

Step 8

show diagnostic { content | post | result | schedule | status | switch }

(Optional) Display the online diagnostic test results and the supported test suites.

Step 9

show running-config

Example:


Device# show running-config 

(Optional) Verifies your entries.

Step 10

copy running-config startup-config

Example:


Device# copy running-config startup-config 

(Optional) Saves your entries in the configuration file.

Monitoring and Maintaining Online Diagnostics

You can display the online diagnostic tests that are configured for a device or a device stack and check the test results by using the privileged EXEC show commands in this table:

Table 1. Commands for Diagnostic Test Configuration and Results

Command

Purpose

show diagnostic content module [number | all]

Displays the online diagnostics configured for a switch.

show diagnostic status

Displays the diagnostic tests that are running currently. .

show diagnostic result module [number | all] [detail | test {name | test-id | test-id-range | all} [detail]]

Displays the online diagnostics test results.

show diagnostic schedule [number | all]

Displays the online diagnostics test schedule.

show diagnostic post

Displays the POST results. (The output is the same as the show post command output.)

show diagnostic events {event-type | module}

Displays diagnostic events such as error, information, or warning based on the test result.

show diagnostic description module [number] test { name | test-id | all }

Displays the short description of the results from an individual test or all the tests.

Configuration Examples for Online Diagnostics

The following sections provide examples of online diagnostics configurations.

Examples: Start Diagnostic Tests

This example shows how to start a diagnostic test by using the test name:


Device# 

diagnostic start module 3 test DiagFanTest

This example shows how to start all of the basic diagnostic tests:


Device# diagnostic start module 3 test all

Example: Configure a Health-Monitoring Test

This example shows how to configure a health-monitoring test:


Device(config)# diagnostic monitor threshold module 1 test 1 failure count 50
Device(config)# diagnostic monitor interval module 1 test TestPortAsicStackPortLoopback

Example: Schedule Diagnostic Test

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

Device(config)# schedule module 3 test TestThermal on October 2 2018 23:00 

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

Device(config)# diagnostic schedule module 3 test 1,2,4-6 weekly saturday 10:30

Example: Displaying Online Diagnostics

This example shows how to display on-demand diagnostic settings:

Device# show diagnostic ondemand settings

Test iterations = 1
Action on test failure = continue

This example shows how to display diagnostic events for errors:


Device# show diagnostic events event-type error

Diagnostic events (storage for 500 events, 0 events recorded)
Number of events matching above criteria = 0

No diagnostic log entry exists.

This example shows how to display the description for a diagnostic test:

   Device# show diagnostic description module 3 test all 
TestGoldPktLoopback : 
	The GOLD packet Loopback test verifies the MAC level loopback
	functionality. In this test, a GOLD packet, for which doppler
	provides the support in hardware, is sent. The packet loops back
	at MAC level and is matched against the stored packet. It is a
	non-disruptive test.

TestFantray : 
	This test verifies all fan modules have been inserted and working
	properly on the board. It is a non-disruptive test and can be
	run as a health monitoring test.

TestPhyLoopback : 
	The PHY Loopback test verifies the PHY level loopback
	functionality. In this test, a packet is sent which loops back
	at PHY level and is matched against the stored packet. It is a 
	disruptive test and cannot be run as a health monitoring test.

TestThermal : 
	This test verifies the temperature reading from the sensor is
	below the yellow temperature threshold. It is a non-disruptive
	test and can be run as a health monitoring test.

TestScratchRegister : 
	The Scratch Register test monitors the health of
	application-specific integrated circuits (ASICs) by writing values
	into registers and reading back the values from these registers.
	It is a non-disruptive test and can be run as a health monitoring
	test.

  

Additional References for Online Diagnostics

Related Documents

Related Topic Document Title

For complete syntax and usage information for the commands used in this chapter.

Command Reference (Catalyst 9400 Series Switches)

Feature History for Configuring Online Diagnostics

This table provides release and related information for features explained in this module.

These features are available on all releases subsequent to the one they were introduced in, unless noted otherwise.

Release

Feature

Feature Information

Cisco IOS XE Everest 16.6.1

Online Diagnostics

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

Use Cisco Feature Navigator to find information about platform and software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn.