- Preface
- Installing UCS NID Controller
- Configuration Management
- Administering the Cisco ME 1200 NID
- Configuring Notifications
- Zero Touch Provisioning
- Auto Discovery of Cisco ME 1200 NIDs
- Configuring Synchronous Ethernet
- Configuring Ethernet Virtual Connections
- Configuring Switch Ports
- Configuring Spanning-Tree Protocol
- Configuring Link Aggregation Control Protocol (LACP)
- Provisioning Link Layer Discovery Protocol
- Configuring SNMP
- Configuring PTP
- Configuring ACLs
- Configuring Quality of Service (QoS)
- Configuring Ethernet OAM, Link OAM, and CFM
- Configuring Performance Monitoring
- Configuring EPS
- Configuring ERPS
- Configuring L2CP
- Configuring MAC Security
- Configuring NTP
- Configuring Storm Control
- Configuring Syslog
- Configuring SPAN
- Configuring RSPAN
- Configuring RFC 2544
- Configuring sFlow
- Configuring UDLD
- Configuring LST
- Configuring Flex Links
- Configuring Y.1564
- Configuring Bulk Provisioning
- Template Management
Configuring UDLD
This document describes the Unidirectional Link Detection (UDLD) feature and configuration steps to implement UDLD.
- Prerequisites for Configuring UDLD
- Restrictions for Configuring UDLD
- Information About UDLD
- How to Provision UDLD
- Verifying UDLD
- Additional References
Prerequisites for Configuring UDLD
Restrictions for Configuring UDLD
Information About UDLD
UDLD is a Layer 2 protocol that enables devices connected through Ethernet cables to monitor the physical configuration and detect presence of a unidirectional link. A unidirectional link occurs when traffic sent by a local device is received by its neighbor but traffic coming from the neighboring device is not received by the local device. When a unidirectional link is detected, the affected port is disabled and user is alerted. This can help prevent spanning tree topology loops.
-
Normal—In this mode, UDLD detects a unidirectional link due to misconnected fibers on a fiber-optic link that is not detected by Layer 1 mechanisms. 
Note
If port connections are correct and traffic is one way, UDLD does not detect the unidirectional link. In this case, no action is taken and link is considered undetermined.
-
Aggressive—In this mode, unidirectional link due to one-way traffic on fiber-optic and twisted pair links, and misconnected ports on fiber-optic links can be detected. Specifically, if one end of the link cannot send or receive traffic, or one of the ports is down and the other is up, the unidirectional link can be detected. Using the loss of hello packets as indication to detect bi-directional link that cannot be re-established, UDLD disables the affected port.
In addition, UDLD can detect the identities of neighbors by caching the information contained in UDLD hello packet.
How to Provision UDLD
Enabling UDLD Mode Globally
Configuration Example
-
The example shows how to enable UDLD globally in normal mode:
UCS# UDLDPortType UCS(UDLDPortType)# setGlobalUDLDConfig udldGlobalConfig mode normal enable UCS(UDLDPortType)# setGlobalUDLDConfig udldGlobalConfig message-interval 10 UCS(UDLDPortType)# setGlobalUDLDConfig review
Commands in queue: setGlobalUDLDConfig udldGlobalConfig mode normal enable setGlobalUDLDConfig udldGlobalConfig message_interval 10UCS(UDLDPortType)# setGlobalUDLDConfig commit
SetGlobalUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
This enables UDLD on all ports of ME 1200 NID with a time interval of 10 seconds.
Disabling UDLD Mode Globally
Configuration Example
-
The example shows how to disable UDLD globally in normal mode:
UCS# UDLDPortType UCS(UDLDPortType)# setGlobalUDLDConfig udldGlobalConfig mode normal disable UCS(UDLDPortType)# setGlobalUDLDConfig review
Commands in queue: setGlobalUDLDConfig udldGlobalConfig mode normal disableUCS(UDLDPortType)# setGlobalUDLDConfig commit
SetGlobalUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
This disables UDLD on all ports of ME 1200 NID.
Enabling UDLD Mode on a Port
Configuration Example
-
The example shows how to enable UDLD on a specific port in an aggressive mode:
UCS# UDLDPortType UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig mode aggressive enable UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig message_interval 20 UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig port 3 UCS(UDLDPortType)# setIntfUDLDConfig review
Commands in queue: UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig mode aggressive enable UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig message_interval 20 UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig port 3UCS(UDLDPortType)# setIntfUDLDConfig commit
SetIntfUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
This enables UDLD in aggressive mode only on port 3 of ME 1200 NID with a time interval of 20 seconds.
Disabling UDLD Mode on a Port
Configuration Example
-
The example shows how to disable UDLD on a specific port in an aggressive mode:
UCS# UDLDPortType UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig port 3 UCS(UDLDPortType)# setIntfUDLDConfig udldInterfaceConfig mode aggressive disable UCS(UDLDPortType)# setIntfUDLDConfig review
Commands in queue: setIntfUDLDConfig udldInterfaceConfig port 3 setIntfUDLDConfig udldInterfaceConfig mode aggressive disableUCS(UDLDPortType)# setIntfUDLDConfig commit
SetIntfUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
This disables UDLD in an aggressive mode on port 3 of ME 1200 NID.
Getting Current Global UDLD Values
Configuration Example
-
The example shows how to get current global UDLD values:
UCS# UDLDPortType UCS(UDLDPortType)# getGlobalUDLDConfig getGlobalUDLDConfReq UCS(UDLDPortType)# getGlobalUDLDConfig review
Commands in queue: getGlobalUDLDConfig getGlobalUDLDConfReqUCS(UDLDPortType)# getGlobalUDLDConfig commit
GetGlobalUDLDConfig_Output.udldGlobalConfig.mode.t = 1 GetGlobalUDLDConfig_Output.udldGlobalConfig.mode.u.normal = false GetGlobalUDLDConfig_Output.udldGlobalConfig.message_interval = 7 GetGlobalUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
The following is a sample output on the NID.
Decoding of Request message was successful Decoded record: GetGlobalUDLDConfig_Input.getGlobalUDLDConfReq = '0' Set UDLD global to defaultsEncoding of Response message was successful Encoded record: GetGlobalUDLDConfig_Output.udldGlobalConfig.mode.t = 1 GetGlobalUDLDConfig_Output.udldGlobalConfig.mode.u.normal = false GetGlobalUDLDConfig_Output.udldGlobalConfig.message_interval = 7 GetGlobalUDLDConfig_Output.xmlns:ns0 = "http://new.webservice.namespace" GetGlobalUDLDConfig_Output.xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/" GetGlobalUDLDConfig_Output.xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/" GetGlobalUDLDConfig_Output.xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/" GetGlobalUDLDConfig_Output.xmlns:soapenc = "http://schemas.xmlsoap.org/soap/encoding/" GetGlobalUDLDConfig_Output.xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"
Getting Current Port Specific UDLD Values
Configuration Example
-
The example shows how to get current port specific UDLD values when UDLD is disabled:
UCS# UDLDPortType UCS(UDLDPortType)# getIntfUDLDConfig udldPhyPort 3 UCS(UDLDPortType)# getIntfUDLDConfig review
Commands in queue: getIntfUDLDConfig udldPhyPort 3UCS(UDLDPortType)# getIntfUDLDConfig commit
GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.t = 1 GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.u.enable = false GetIntfUDLDConfig_Output.udldInterfaceConfig.message_interval = 7 GetIntfUDLDConfig_Output.udldInterfaceConfig.port = 3 GetIntfUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
The following is a sample output on the NID.
# Decoding of Request message was successful Decoded record: GetIntfUDLDConfig-Input.udldPhyPort = 3 Set UDLD intf to defaultsEncoding of Response message was successful Encoded record: GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.t = 1 GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.u.enable = false GetIntfUDLDConfig_Output.udldInterfaceConfig.message_interval = 7 GetIntfUDLDConfig_Output.udldInterfaceConfig.port = 3 GetIntfUDLDConfig_Output.xmlns:ns0 = "http://new.webservice.namespace" GetIntfUDLDConfig_Output.xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/" GetIntfUDLDConfig_Output.xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/" GetIntfUDLDConfig_Output.xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/" GetIntfUDLDConfig_Output.xmlns:soapenc = "http://schemas.xmlsoap.org/soap/encoding/" GetIntfUDLDConfig_Output.xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"
-
The example shows how to get current port specific UDLD values when UDLD is enabled:
UCS# UDLDPortType UCS(UDLDPortType)# getIntfUDLDConfig udldPhyPort 3 UCS(UDLDPortType)# getIntfUDLDConfig review
Commands in queue: getIntfUDLDConfig udldPhyPort 3UCS(UDLDPortType)# getIntfUDLDConfig commit
GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.t = 1 GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.u.enable = true GetIntfUDLDConfig_Output.udldInterfaceConfig.message_interval = 7 GetIntfUDLDConfig_Output.udldInterfaceConfig.port = 3 GetIntfUDLDConfig Commit Success!!!
UCS(UDLDPortType)# exit
The following is a sample output on the NID.
# Decoding of Request message was successful Decoded record: GetIntfUDLDConfig-Input.udldPhyPort = 3 Set UDLD intf to defaultsEncoding of Response message was successful Encoded record: GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.t = 1 GetIntfUDLDConfig_Output.udldInterfaceConfig.mode.u.enable = true GetIntfUDLDConfig_Output.udldInterfaceConfig.message_interval = 7 GetIntfUDLDConfig_Output.udldInterfaceConfig.port = 3 GetIntfUDLDConfig_Output.xmlns:ns0 = "http://new.webservice.namespace" GetIntfUDLDConfig_Output.xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/" GetIntfUDLDConfig_Output.xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/" GetIntfUDLDConfig_Output.xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/" GetIntfUDLDConfig_Output.xmlns:soapenc = "http://schemas.xmlsoap.org/soap/encoding/" GetIntfUDLDConfig_Output.xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"
Verifying UDLD
Use the following command to verify the UDLD status on the UCS controller.
-
showUDLDStatusReq
This command displays the UDLD configuration status on the NID. The following is a sample output from the command:
ucs(config-controller-UDLDPortType)# showUDLDStatus showUDLDStatusReq
ucs(config-controller-UDLDPortType)# showUDLDStatus review
Commands in queue: showUDLDStatus showUDLDStatusReq
ucs(config-controller-UDLDPortType)# showUDLDStatus commit
ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].port = 1 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].mode = 'Disable' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].messageInterval = 7 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].adminState = false ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].localDeviceId = 'B8-38-61-68-7B-BC' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].localDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].bidirState = 'Indeterminant' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].nbrPortID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].nbrDeviceID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].nbrDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[0].nbrLinkState = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].port = 2 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].mode = 'Disable' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].messageInterval = 7 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].adminState = false ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].localDeviceId = 'B8-38-61-68-7B-BC' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].localDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].bidirState = 'Indeterminant' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].nbrPortID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].nbrDeviceID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].nbrDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[1].nbrLinkState = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].port = 3 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].mode = 'Normal' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].messageInterval = 10 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].adminState = true ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].localDeviceId = 'B8-38-61-68-7B-BC' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].localDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].bidirState = 'Indeterminant' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].nbrPortID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].nbrDeviceID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].nbrDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[2].nbrLinkState = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].port = 4 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].mode = 'Normal' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].messageInterval = 10 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].adminState = true ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].localDeviceId = 'B8-38-61-68-7B-BC' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].localDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].bidirState = 'Indeterminant' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].nbrPortID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].nbrDeviceID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].nbrDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[3].nbrLinkState = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].port = 5 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].mode = 'Normal' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].messageInterval = 10 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].adminState = true ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].localDeviceId = 'B8-38-61-68-7B-BC' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].localDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].bidirState = 'Indeterminant' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].nbrPortID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].nbrDeviceID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].nbrDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[4].nbrLinkState = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].port = 6 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].mode = 'Disable' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].messageInterval = 7 ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].adminState = false ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].localDeviceId = 'B8-38-61-68-7B-BC' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].localDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].bidirState = 'Indeterminant' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].nbrPortID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].nbrDeviceID = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].nbrDeviceName = '' ShowUDLDStatus_Output.showUDLDStatusResp.udldStatusList[5].nbrLinkState = ''
Additional References
Related Documents
| Related Topic | Document Title |
|---|---|
Cisco ME 3800x and ME 3600x Switches Software Configuration Guide, Cisco IOS Release 15.4(1)S |
MIBs
| MIB | MIBs Link |
|---|---|
MIBs Supporting Cisco IOS |
To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL: |
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. |
Feedback