You may have
encountered unidirectional links, namely, one-way audio, in networking. When a
unidirectional link occurs, the local device can receive packets from the peer
device through the link layer, but the peer device cannot receive packets from
the local device.
Unidirectional links can be divided into
two types: one is caused by fiber cross-connection, and the other is caused by a
fiber being not connected or being disconnected. The cross-connected fibers in Figure 1-1 refer to optical fibers which are connected inversely. The hollow lines in Figure 1-2 refer to fibers which are not connected or are broken.
Unidirectional links can cause many
problems, such as spanning tree protocol (STP) loop.
Device link detection protocol (DLDP) can
detect the link status of an optical fiber cable or copper twisted pair (such
as super category 5 twisted pair). If DLDP finds a unidirectional link, it
disables the related port automatically or prompts you to disable it manually according
to the configurations, to avoid network problems.

Figure 1-1 Fiber cross-connection

Figure 1-2 Fiber broken or not connected
DLDP provides the following features:
l
As a link layer protocol, it works together with
the physical layer protocols to monitor the link status of a device.
l
The auto-negotiation mechanism at the physical
layer detects physical signals and faults. DLDP identifies peer devices and
unidirectional links, and disables unreachable ports.
l
When auto-negotiation mechanism and DLDP are
enabled, they work together to detect and disable physical and logical
unidirectional links, and to prevent the failure of other protocols such as STP.
l
Even if both ends of links can work normally at
the physical layer, DLDP can detect whether these links are connected correctly
and whether packets can be exchanged normally at both ends. However, the
auto-negotiation mechanism cannot implement this detection.
I. DLDP status
A link can be in one of these DLDP states:
initial, inactive, active, advertisement, probe, disable, and delaydown.
Table 1-1 DLDP
status
|
Status
|
Description
|
|
Initial
|
Initial status before DLDP is enabled.
|
|
Inactive
|
DLDP is enabled but the corresponding
link is down
|
|
Active
|
DLDP is enabled, and the link is up or an
neighbor entry is cleared
|
|
Advertisement
|
All neighbors communicate normally in
both directions, or DLDP remains in active state for more than five seconds
and enters this status. It is a stable state where no unidirectional link is
found
|
|
Probe
|
DHCP sends packets to check whether the
link is a unidirectional. It enables the probe sending timer and an echo
waiting timer for each target neighbor.
|
|
Disable
|
DLDP detects a unidirectional link, or
finds (in enhanced mode) that a neighbor disappears. In this case, DLDP does
not receive or send DLDP packets.
|
|
Delaydown
|
When a device in the active,
advertisement, or probe DLDP state receives a port down message, it does not
removes the corresponding neighbor immediately, neither does it changes to
the inactive state. Instead, it changes to the delaydown state first.
When a device changes to the delaydown
state, the related DLDP neighbor information remains, and the Delaydown timer
is triggered.
|
II. DLDP timers
Table 1-2 DLDP
timers
|
Timer
|
Description
|
|
Advertisement sending timer
|
Interval between sending advertisement
packets, which can be configured on a command line interface.
By default, the timer length is 10
seconds.
|
|
Probe sending timer
|
The interval is 0.5 seconds. In the probe
state, DLDP sends two probe packets every second.
|
|
Echo waiting timer
|
It is enabled when DLDP enters the probe
state. The echo waiting timer length is 10 seconds.
If no echo packet is received from the
neighbor when the Echo waiting timer expires, the state of the local end is
set to unidirectional link (one-way audio) and the state machine turns into the
disable state. DLDP outputs log and tracking information, sends flush
packets. Depending on the user-defined DLDP down mode, DLDP disables the local
port automatically or prompts you to disable the port manually. At the same
time, DLDP deletes the neighbor entry.
|
|
Entry aging timer
|
When a new neighbor joins, a neighbor
entry is created and the corresponding entry aging timer is enabled
When an advertisement packet is received
from a neighbor, the neighbor entry is updated and the corresponding entry
aging timer is updated
In the normal mode, if no packet is
received from the neighbor when the entry aging timer expires, DLDP sends an
advertisement packet with an RSY tag, and deletes the neighbor entry.
In the enhanced mode, if no packet is
received from the neighbor when the entry aging timer expires, DLDP enables
the enhanced timer
The entry aging timer length is three
times the advertisement timer length.
|
|
Enhanced timer
|
In the enhanced mode, if no packet is
received from the neighbor when the entry aging timer expires, DLDP enables
the enhanced timer for the neighbor. The enhanced timer length is 10 seconds
The enhanced timer then sends one probe packet
every second and eight packets successively to the neighbor.
If no echo packet is received from the
neighbor when the enhanced timer expires, the state of the local end is set
to unidirectional communication state and the state machine turns into the disable
state. DLDP outputs log and tracking information and sends flush packets.
Depending on the user-defined DLDP down mode, DLDP disables the local port
automatically or prompts you to disable the port manually. Meanwhile, DLDP
deletes the neighbor entry.
|
|
Delaydown timer
|
When a device in the active,
advertisement, or probe DLDP state receives a port down message, it does not
removes the corresponding neighbor immediately, neither does it changes to
the inactive state. Instead, it changes to the delaydown state first.
When a device changes to the delaydown
state, the related DLDP neighbor information remains, and the Delaydown timer
is triggered. The Delaydown timer is configurable and ranges from 1 to 5
seconds.
A device in the delaydown state only responds
to port up messages.
A device in the delaydown state resumes
its original DLDP state if it receives a port up message before the delaydown
timer expires. Otherwise, it removes the DLDP neighbor information and changes
to the inactive state.
|
III. DLDP operating mode
DLDP can operate in two modes: normal and
enhanced.
Table 1-3 DLDP
operating mode and neighbor entry aging
|
DLDP operating mode
|
DLDP detects whether neighbors exist
or not when neighbor tables are aging
|
The entry aging timer is enabled or
not during neighbor entry aging
|
The enhanced timer is enabled or not when
the entry aging timer expires
|
|
Normal mode
|
No
|
Yes (The neighbor entry ages out after
the entry aging timer expires)
|
No
|
|
Enhanced mode
|
Yes
|
Yes (The enhanced timer is enabled after
the entry aging timer expires)
|
Yes (When the enhanced timer expires, the
state of the local end is set to unidirectional link, and the neighbor entry
is aged out.)
|
IV. DLDP implementation
1)
If the DLDP-enabled link is up, DLDP sends DLDP
packets to the peer device, and analyzes and processes the DLDP packets received
from the peer device. DLDP in different states sends different types of packets.
Table 1-4 Types
of packets sent by DLDP
|
DLDP state
|
Packet type
|
|
Active
|
Advertisement packets, including those
with or without an RSY tag
|
|
Advertisement
|
Advertisement packets
|
|
Probe
|
Probe packets
|
2)
DLDP analyzes and processes received packets
from the peer device as follows:
l
In authentication mode, DLDP authenticates the
packets, and discards those failing to pass the authentication.
l
DLDP processes the received DLDP packets.
Table 1-5 Process
received DLDP packets
|
Packet type
|
Processing procedure
|
|
Advertisement
packet
|
Extracts
neighbor information
|
If this
neighbor entry does not exist on the local device, DLDP creates the neighbor
entry, enables the entry aging timer, and switches to the probe state.
|
|
If the
neighbor entry already exists on the local device, DLDP updates the entry
aging timer.
|
|
Flush
packet
|
Deletes
the neighbor entry from the local device
|
|
Probe
packet
|
Sends echo
packets containing both neighbor and its own information to the peer
|
Creates
the neighbor entry if this neighbor entry does not exist on the local device.
|
|
If the
neighbor entry already exists on the local device, updates the entry aging
timer.
|
|
Echo
packet
|
Checks
whether the local device is in the probe state
|
No
|
Discards
this echo packet
|
|
Yes
|
Checks
whether neighbor information in the packet is the same as that on the local
device
|
No
|
Discards
this echo packet
|
|
Yes
|
Sets the
neighbor flag bit to bidirectional link
|
|
If all
neighbors are in the bidirectional link state, DLDP switches from the probe
state to the advertisement state, and sets the echo waiting timer to 0.
|
3)
If no echo packet is received from the neighbor,
DLDP performs the following processing:
Table 1-6 Processing
procedure when no echo packet is received from the neighbor
|
No echo packet received from the
neighbor
|
Processing procedure
|
|
In normal mode, no echo packet is
received when the echo waiting timer expires.
|
DLDP switches to the disable state,
outputs log and tracking information, and sends flush packets. Depending on
the user-defined DLDP down mode, DLDP disables the local port automatically
or prompts you to disable the port manually. DLDP sends an RSY message and
deletes the neighbor entry.
|
|
In enhanced mode, no echo packet is
received when the enhanced timer expires
|
l
DLDP works only when the link is up.
l
To ensure unidirectional links can be detected,
you must make sure that DLDP is enabled on both sides, and that the interval between
sending advertisement packets, authentication mode, and password are consistent
on both sides.
l
You can adjust the interval between sending advertisement
packets in different network circumstances so that DLDP can respond rapidly to
a link failure. The interval must be shorter than one-third of the STP
convergence time, which is generally 30 seconds. If too long an interval is
set, an STP loop may occur before DLDP shuts down unidirectional links. On the
contrary, if too short an interval is set, network traffic increases, and port
bandwidth is reduced.
l
DLDP does not process any LACP event, and treats
each link in the aggregation group as independent.
l
When connecting two DLDP-enabled devices, make
sure the software running on them is of the same version. Otherwise, DLDP may
operate improperly.
Table 1-7 DLDP
configuration tasks
|
Operation
|
Command
|
Description
|
|
Enter system view
|
system-view
|
—
|
|
Enable
DLDP
|
Enable
DLDP globally
|
dldp
enable
|
Required.
By default,
DLDP is disabled.
|
|
Enable DLDP on a port
|
Enter Ethernet port view
|
interface interface-type
interface-number
|
|
Enable DLDP on a port
|
dldp enable
|
|
Set the authentication mode and password
|
dldp authentication-mode { none | simple simple-password | md5 md5-password
}
|
Optional.
By default, the authentication mode is none.
|
|
Set the interval of sending DLDP packets
|
dldp interval timer-value
|
Optional.
By default, the interval is 10 seconds.
|
|
Set the delaydown timer
|
dldp delaydown-timer delaydown-time
|
Optional
By default, the delaydown timer expires
after 1 second it is triggered.
|
|
Set the DLDP handling mode when an
unidirectional link is detected
|
dldp unidirectional-shutdown { auto | manual }
|
Optional.
By default, the handling mode is auto.
|
|
Set the DLDP operating mode
|
dldp work-mode { enhance | normal }
|
Optional.
By default, DLDP works in normal mode and
does not detect unidirectional links.
|
|
Enter Ethernet port view
|
interface interface-type interface-number
|
—
|
|
Force the duplex attribute
|
duplex full
|
Required
|
|
Force the speed value
|
speed speed-value
|
Required
|
|
Display the configuration information
about the DLDP-enabled port
|
display dldp { unit-id | interface-type interface-number }
|
You can execute this command in any view.
|
l
When you use the dldp enable/dldp disable command
in system view to enable/disable DLDP on all optical ports of the switch, the
configuration takes effect on the existing optical ports, instead of those
added subsequently.
l
DLDP can operate normally only when the same
authentication mode and password are set on the local and peer ports.
l
When the DLDP protocol works in the normal mode,
the system can identify only one type of unidirectional link caused by fiber cross-connection.
l
When the DLDP protocol works in enhanced mode,
the system can identify two types of unidirectional links: one is caused by
fiber cross-connection and the other is caused by one fiber being not connected
or being broken.
l
When the device is busy with services and the
CPU utilization is high, DLDP may issue mistaken reports. You are recommended
to configure the operating mode of DLDP as manual after unidirectional links
are detected, so as to reduce the influence of mistaken reports.
After a port is down due to the detection of unidirectional link,
you can use the dldp reset command to restore the DLDP state to perform
DLDP detection.
Table 1-8 Reset
DLDP state
|
Operation
|
Command
|
Description
|
|
Enter
system view
|
system-view
|
—
|
|
Reset the DLDP state of the system
|
dldp reset
|
Optional
|
|
Enter Ethernet port view
|
interface interface-type interface-number
|
—
|
|
Reset the DLDP state of a port
|
dldp reset
|
Optional
|
Caution:
The dldp reset
command only applies to the ports in the DLDP down state.
I. Network requirements
As shown in Figure 1-3,
l
Switch A and Switch B are connected through two
pairs of fibers. Both of them support DLDP.
l
Suppose the fibers between Switch A and Switch B
are connected inversely. DLDP disconnects a unidirectional link after detecting
it.
l
When the network administrator connects the
fiber correctly, the port shut down by DLDP is restored.
II. Network diagram

Figure 1-3 Fiber cross-connection
III. Configuration procedure
1)
Configure Switch A
# Configure the ports to work in mandatory
full duplex mode at a rate of 1000 Mbps.
<H3CA> system-view
[H3CA] interface gigabitethernet 1/0/50
[H3CA-GigabitEthernet1/0/50] duplex
full
[H3CA-GigabitEthernet1/0/50] speed
1000
[H3CA-GigabitEthernet1/0/50] quit
[H3CA] interface gigabitethernet 1/0/51
[H3CA-GigabitEthernet1/0/51] duplex
full
[H3CA-GigabitEthernet1/0/51] speed
1000
[H3CA-GigabitEthernet1/0/51] quit
# Enable DLDP globally
[H3CA] dldp enable
# Set the interval between sending DLDP
packets to 15 seconds.
[H3CA] dldp interval 15
# Configure DLDP to work in enhanced mode
[H3CA] dldp work-mode enhance
# Set the DLDP handling mode for
unidirectional links to auto.
[H3CA] dldp unidirectional-shutdown
auto
# Display the DLDP state
[H3CA] display dldp 1
When two switches are connected through
fibers in a crossed way, two or three ports may be in the disable state, and
the rest in the inactive state.
When a fiber is connected to a device
correctly on one end with the other end connected to no device:
l
If the device operates in the normal DLDP mode,
the end that receives optical signals is in the advertisement state; the other
end is in the inactive state.
l
If the device operates in the enhance DLDP mode,
the end that receives optical signals is in the disable state; the other end is
in the inactive state.
# Restore the ports taken down by DLDP
[H3CA] dldp reset
2)
Configure Switch B
The configuration of Switch B is the same
to that of Switch A.
l
In order for DLDP to detect fiber disconnection
in one direction, you must configure the port to work in mandatory full duplex
mode at a mandatory rate.
l
When the port works in non-mandatory full duplex
mode at a non-mandatory rate, even if DLDP is enabled, it does not take effect
when the fiber in one direction is disconnected. In that case, the port is
down.