Configuring Online Diagnostics

Information About Configuring 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. 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 device is connected to a live network; and health-monitoring runs in the background with user-defined intervals. The health-monitoring test runs for 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 or switch stack and the diagnostic tests that have already run.

Generic Online Diagnostics (GOLD)


Note


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

  • While tests are running, all ports are shut down as a stress test is being performed with looping ports internally and external traffic might affect the test results. The switch must be rebooted to bring the switch to normal operation. When you issue the command to reload the switch, the system will ask you if the configuration should be saved.

  • Do not save the configuration.

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


TestPortTxMonitoring

This test periodically monitors data-path traffic in transmitted direction of each network port that are physically connected to a device with the status as UP, and completes within a millisecond per port. This test also monitors the transmit counters at ASIC level to verify that the ports are not stuck. The test displays syslog messages and users can take corrective actions using the IOS Embedded Event Manager (EEM). Configure the time interval and threshold by entering the diagnostic monitor interval and diagnostic monitor threshold commands, respectively. The test leverages the Cisco Discovery Protocol (CDP) protocol that transmits packets. The test runs every 75 seconds, and the failure threshold is set to five by default.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

Do not disable.

Default

On.

Intitial Release

IOS XE Everest 16.9.1.

Corrective action

Display a syslog message indicating the port(s) that failed.

Hardware support

All modules including supervisor engines.

TestUnusedPortLoopback

This test periodically verifies the data path between the supervisor module and network ports of a module during runtime to determine if any incoming network interface ports are locked. In this test, a Layer 2 packet is flooded onto the VLAN associated with the test port and the inband port of the supervisor engine. The packet loops back into the test port and returns to the supervisor engine on the same VLAN. This test runs only on unused (admin down, that is, the ports are shut down) network ports irrespective of whether a cable is connected or not, and completes within a millisecond per port. This test substitutes the lack of a nondisruptive loopback test in current ASICs. This test runs every 60 seconds.

Attribute

Description

Disruptive or Nondisruptive

Nondisruptive.

Recommendation

Do not disable. This test is automatically disabled during CPU-usage spikes to maintain accuracy.

Default

On.

Intitial Release

IOS XE Everest 16.9.1.

Corrective action

Displays a syslog message indicating the port(s) that failed. For modules other than supervisor engines, if all port groups fail (for example, at least one port per port ASIC fails more than the failure threshold for all port ASICs), the default action is to reset the module and power down the module after two resets.

Hardware support

All modules including supervisor engines.

How to Configure Online Diagnostics

Starting Online Diagnostic Tests

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

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

Use this privileged EXEC command to manually start online diagnostic testing:

SUMMARY STEPS

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

DETAILED STEPS

Command or Action Purpose

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

Example:



Device# diagnostic start  2 test basic

Starts the diagnostic tests.

The switch number keyword is supported only on stacking Device.

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 non-disruptive 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 this command to remove the scheduling.

SUMMARY STEPS

  1. configure terminal
  2. diagnostic schedule 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}

DETAILED STEPS

  Command or Action Purpose

Step 1

configure terminal

Example:


Device# configure terminal

Enters the global configuration mode.

Step 2

diagnostic schedule 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  3 test 1-5 on July 3 2013 23:10

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

The switch number keyword is supported only on stacking switches.

When specifying the tests 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 non-disruptive 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 disabled, but the Device generates a syslog message when a test fails.

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

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. diagnostic monitor interval number test {name | test-id | test-id-range | all} hh:mm:ss milliseconds day
  4. diagnostic monitor syslog
  5. diagnostic monitor threshold number number test {name | test-id | test-id-range | all} failure count count
  6. diagnostic monitor number test {name | test-id | test-id-range | all}
  7. end
  8. show diagnostic { content | post | result | schedule | status | }
  9. show running-config
  10. copy running-config startup-config

DETAILED STEPS

  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 the global configuration mode.

Step 3

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

Example:


Device(config)# 

Configures the health-monitoring interval of the specified tests.

The switch number keyword is supported only on stacking switches. The range is from 1 to 9.

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 of 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 the 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 number number test {name | test-id | test-id-range | all} failure count count

Example:


Device(config)# 

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

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 of the diagnostic tests.

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

Step 6

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

Example:


Device(config)# 

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 of the diagnostic tests.

Step 7

end

Example:


Device(config)# end

Returns to privileged EXEC mode.

Step 8

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

Display the online diagnostic test results and the supported test suites.

Step 9

show running-config

Example:


Device# show running-config 

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

Configuration Examples for Online Diagnostic Tests

Examples: Start Diagnostic Tests

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


Device# diagnostic start switch 2 test DiagPOETest



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


Device# diagnostic start switch 1 test all

Example: Configure a Health Monitoring Test

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


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

Examples: Schedule Diagnostic Test

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

Device(config)# diagnostic schedule test DiagThermalTest on June 3 2013  22:25

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

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

Examples: 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 switch 1 test all

DiagGoldPktTest : 
        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.

DiagThermalTest : 
        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.

DiagFanTest : 
        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.

DiagPhyLoopbackTest : 
        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.

DiagScratchRegisterTest : 
        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.

DiagPoETest : 
        This test checks the PoE controller functionality. This is a disruptive test
        and should not be performed during normal switch operation.

DiagStackCableTest : 
        This test verifies the stack ring loopback functionality
        in the stacking environment. It is a disruptive test and
        cannot be run as a health monitoring test.


Device#

 

Additional References for Online Diagnostics

Related Documents

Related Topic Document Title

System management commands

Command Reference (Catalyst 9200 Series Switches)

MIBs

MIB MIBs Link

All supported MIBs for this release.

To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs

Technical Assistance

Description Link

The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

http://www.cisco.com/support

Feature Information 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 Fuji 16.9.2

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.