This KB article describes a situation where a Juniper device is connected point-to-point with a Cisco Catalyst device, however, the connection remains down due to a "UDLD neighbor mismatch" error displayed on the Cisco side.
Symptoms
In this case, we have a Juniper device using xe-0/0/1 connected to a Cisco device via Ethernet1/12, both configured as trunk ports. Despite the configurations being correct on both sides, the ports are not coming up. Here is the configuration for each interface:
Juniper
user@# show interfaces xe-0/0/1
unit 0 {
family ethernet-switching {
interface-mode trunk;
vlan {
members [ 10 20 ];
Cisco
user# sh run int et1/12
interface Ethernet1/12
switchport
switchport mode trunk
switchport trunk allowed vlan 10,20
no shutdown
When checking the Juniper side, we don't see any errors on the interface, but we do observe a "LINK, LOCAL-FAULT":
user@> show interfaces xe-0/0/1 extensive
Physical interface: xe-0/0/1, Enabled, Physical link is Down
Interface index: 757, SNMP ifIndex: 667, Generation: 250
Link-level type: Ethernet, MTU: 1514, LAN-PHY mode, Speed: 10Gbps, BPDU Error: None, Loop Detect PDU Error: None, Ethernet-Switching Error: None, MAC-REWRITE Error: None,
Loopback: Disabled, Source filtering: Disabled, Flow control: Disabled, Media type: Fiber
Device flags : Present Running Down
Interface flags: Hardware-Down SNMP-Traps Internal: 0x4000
Link flags : None
CoS queues : 12 supported, 12 maximum usable queues
Hold-times : Up 0 ms, Down 0 ms
Current address: c8:13:37:7b:83:ed, Hardware address: c8:13:37:7b:9a:3a
Last flapped : 2025-05-04 08:49:50 MDT (1d 23:08 ago)
Statistics last cleared: Never
Errors: 0, Drops: 0, Framing errors: 0, Runts: 0, Policed discards: 0, L3 incompletes: 0, L2 channel errors: 0, L2 mismatch timeouts: 0, FIFO errors: 0, Resource errors: 0
Output errors:
Carrier transitions: 1, Errors: 0, Drops: 0, Collisions: 0, Aged packets: 0, FIFO errors: 0, HS link CRC errors: 0, MTU errors: 0, Resource errors: 0
Active alarms : LINK
Active defects : LINK, LOCAL-FAULT
However, when checking the Cisco side we can see "UDLD neighbor mismatch":
user# sh int Ethernet1/12
Ethernet1/12 is down (UDLD neighbor mismatch)
admin state is up, Dedicated Interface
Hardware: 100/1000/10000/25000 Ethernet, address: 7079.b38e.a3e3 (bia 7079.b38e.a3e3)
MTU 1500 bytes, BW 25000000 Kbit , DLY 10 usec
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, medium is broadcast
Port mode is trunk
auto-duplex, auto-speed, media type is 10G
Beacon is turned off
Auto-Negotiation is turned on FEC mode is Auto
Input flow-control is off, output flow-control is off
Auto-mdix is turned off
Unidirectional Link Detection (UDLD) is a proprietary feature on Cisco Catalyst switches that helps detect unidirectional links at Layer 2. It allows actions such as disabling the port or sending alarms when such a condition is detected. Both link partners are configured for UDLD and exchange protocol packets at Layer 2 by looping each other's packets back to the partner. This ensures that both ends are active and transmitting packets. UDLD helps prevent miswiring with fiber cabling and detects faulty hardware. However, since we cannot configure UDLD on Juniper, the interfaces will remain down due to a mismatch detected on the Cisco side.
Disable UDLD on the Cisco device, as it is not supported on Juniper and will prevent the interface from becoming active. Below is the output from the configuration that brought up the link on both ends:
udld disable
You can use OAM instead, which is an open protocol and simulates UDLD link failure detection if you still want to use a link detection feature. Please check the following link:
https://supportportal.juniper.net/s/article/802-3ah-OAM-Link-fault-management-feature-and-simulating-Cisco-UDLD-with-EX-series-Switches