Configuring LLDP

This chapter describes how to configure the Link Layer Discovery Protocol (LLDP) in order to discover other devices on the local network.

This chapter contains the following sections:

About LLDP

The Cisco Discovery Protocol (CDP) is a device discovery protocol that allows network management applications to automatically discover and learn about other Cisco devices that are connected to the network.

To permit the discovery of non-Cisco devices, the switch also supports the Link Layer Discovery Protocol (LLDP), a vendor-neutral device discovery protocol that is defined in the IEEE 802.1ab standard. LLDP allows network devices to advertise information about themselves to other devices on the network. This protocol runs over the data-link layer, which allows two systems running different network layer protocols to learn about each other.

LLDP is a one-way protocol that transmits information about the capabilities and current status of a device and its interfaces. LLDP devices use the protocol to solicit information only from other LLDP devices.

LLDP supports a set of attributes that it uses to discover other devices. These attributes contain type, length, and value (TLV) descriptions. LLDP devices can use TLVs to send and receive information to other devices on the network. Details such as configuration information, device capabilities, and device identity can be advertised using this protocol.

LLDP advertises the following TLVs by default:

  • DCBXP

  • Management address

  • Port description

  • Port VLAN

  • System capabilities

  • System description

  • System name

About DCBXP

The Data Center Bridging Exchange Protocol (DCBXP) is an extension of LLDP. It is used to announce, exchange, and negotiate node parameters between peers. DCBXP parameters are packaged as DCBXP TLVs in the LLDP packet. If CEE is used, DCBXP will use an acknowledgment mechanism over LLDP. When the port comes up, DCBX TLVs are sent and any DCBX TLVs received are processed. By default, the DCBX protocol is set to auto-detect, and the latest protocol version supported by both the peers is used.

Features that need to exchange and negotiate parameters with peer nodes using DCBXP are as follows:

  • Priority-based Flow Control (PFC)—PFC is an enhancement to the existing Pause mechanism in Ethernet. It enables Pause based on user priorities or classes of service. A physical link that is divided into eight virtual links with PFC provides the capability to use Pause on a single virtual link without affecting traffic on the other virtual links. Enabling Pause on a per-user-priority basis allows administrators to create lossless links for traffic requiring no-drop service while retaining packet-drop congestion management for IP traffic.

  • Enhanced Transmission Selection (ETS)—ETS enables optimal bandwidth management of virtual links. ETS is also called priority grouping. It enables differentiated treatments within the same priority classes of PFC. ETS provides prioritized processing based on bandwidth allocation, low latency, or best effort, resulting in per-group traffic class allocation. For example, an Ethernet class of traffic may have a high-priority designation and a best effort within that same class. ETS allows differentiation between traffic of the same priority class, thus creating priority groups.

  • Application Priority Configuration—Carries information about the priorities that are assigned to specific protocols.

  • Priority to DSCP Mapping—The mapping of the DSCP and COS values configured in the QoS policy are sent in the Application Priority TLV.


Note


For information on the quality of service (QoS) features, see the Cisco Nexus 9000 Series NX-OS Quality of Service Configuration Guide.

DCBXP is enabled by default, provided LLDP is enabled. When LLDP is enabled, DCBXP can be enabled or disabled using the [no] lldp tlv-select dcbxp command. DCBXP is disabled on ports where LLDP transmit or receive is disabled.

Beginning with Cisco NX-OS Release 10.2(3)F, an additional command is introduced: [no] lldp tlv-select dcbxp egress-queuing. While the [no] lldp tlv-select dcbxp command sends input queuing parameters in the ETS information that is exchanged with the peer, the [no] lldp tlv-select dcbxp egress-queuing command sends output queuing parameters in the ETS information. Hence, the bandwidths and priority information are extracted from the output queuing policy and exchanged with the peer.

At a time, you can configure either egress queuing or ingress queuing by running either lldp tlv-select dcbxp egress-queuing or lldp tlv-select dcbxp command as they overwrite each other.

The no forms of both the commands stop the DCBXP exchange on all interfaces.

To view which of the above two commands is enabled, run the show lldp tlv-select command.

When the default input queuing policy at system level is detached, the DCBXP exchange on all interfaces will stop sending ETS configuration and recommendation TLVs. However, the default output queuing policy at the system level cannot be detached.

High Availability

The LLDP feature supports stateless and stateful restarts. After a reboot or supervisor switchover, the running configuration is applied.

For more information on high availability, see the Cisco Nexus 9000 Series NX-OS High Availability and Redundancy Guide.

Virtualization Support

One instance of LLDP is supported.

Guidelines and Limitations for LLDP

LLDP has the following configuration guidelines and limitations:

  • LLDP must be enabled on the device before you can enable or disable it on any interfaces.

  • LLDP is supported only on physical interfaces.

    Beginning with Release 10.1(1), multiple LLDP neighbors per physical interface are supported on the following platforms:

    • N9K-C93180YC-FX3S

    • N9K-C93108TC-FX3P

    • N9K-C93180YC-FX3

  • LLDP can discover up to one device per port.

  • DCBXP is supported on the following platforms:

    • Cisco Nexus 9200, 9300-EX, 9300-FX, and 9300-FX2 Series switches

    • Cisco Nexus 9332C, 9332PQ, 9364C, 9372PX, 9372PX-E, and 9396PX switches

    • Cisco Nexus 9504 and 9508 switches with X9432PQ, X9464PX, X9536PQ, X9564PX, X9636PQ, X9732C-EX, and X9736C-FX, line cards

  • The Cisco Nexus 3232C and 3264Q switches do not support DCBXP.

  • DCBXP incompatibility messages might appear when you change the network QoS policy if a physical loopback connection is in the device. The incompatibility exists for only a short time and then clears.

  • PFC TLV are sent when pause is enabled for at-least one COS value in network-qos policy and priority-flow-control mode should be auto in the Interface level.

  • Beginning with Cisco NX-OS Release 10.2(3)F, the [no] lldp tlv-select dcbxp egress-queuing command is introduced to provide you the option to advertise egress queuing configuration in the switch. This feature is supported on Cisco Nexus 9200, 9300-EX, and 9300-FX platform switches.

  • DCBX TLVs are sent when ingress queuing is applied if lldp tlv-select dcbxp command is used and when output queuing is applied if lldp tlv-select dcbxp egress-queuing is used.

  • Beginning with Cisco NX-OS Release 10.2(3)F, the Correctly Advertise LLDP Chassis-ID feature introduces a new global configuration command—lldp chassis-id switch —to advertise the switch chassis MAC address instead of the port MAC address, that is, all the ports will publish only the MAC address of the switch chassis. This feature is supported on all Cisco Nexus 9000 series platform switches.

  • Beginning with Cisco NX-OS Release 10.3(1)F, LLDP (Multi Neighbor and Port- channel) is supported on the Cisco Nexus 9808 platform switches.

  • Beginning with Cisco NX-OS Release 10.3(1)F, PFC, ECN, and DCBX are supported on Cisco Nexus 9300-FX3 platform switches. On 9300-FX3, DCBX as FEX is supported with ingress queuing.

  • Beginning with Cisco NX-OS Release 10.3(2)F, new optional parameters such as 802.1 link aggregation, 802.1 vlan name, and 802.3 max frame size are enabled by default for the lldp tlv-select command.

    The TLV name will only have the first 32 characters as specified by standards, even if the user configures more than 32 characters when creating vlans. Only the names of 25 active vlans are displayed.

  • Beginning with Cisco NX-OS Release 10.4(2)F, LLDP is supported on Cisco Nexus 9232E-B1 platform switch.

Default Settings for LLDP

This table lists the LLDP default settings.

Parameters Default
Global LLDP Disabled
LLDP on interfaces Enabled, after LLDP is enabled globally
LLDP hold time (before discarding) 120 seconds
LLDP reinitialization delay 2 seconds
LLDP timer (packet update frequency) 30 seconds
LLDP TLVs Enabled
LLDP receive Enabled, after LLDP is enabled globally
LLDP transmit Enabled, after LLDP is enabled globally
DCBXP Enabled, provided LLDP is enabled
DCBXP version Auto-detect

Configuring LLDP


Note


Cisco NX-OS commands for this feature may differ from Cisco IOS commands for a similar feature.

Enabling or Disabling LLDP Globally

You can enable or disable LLDP globally on a device. You must enable LLDP globally to allow a device to send and receive LLDP packets.

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

[no] feature lldp

Example:

switch(config)# feature lldp

Enables or disables LLDP on the device. LLDP is disabled by default.

Note

 

When this command is enabled, by default, the switch advertises the port MAC address per port.

Step 3

(Optional) [no] lldp chassis-id switch

Example:

switch(config)# lldp chassis-id switch
(Optional)

Enable this command to indicate that the switch chassis MAC address must be advertised for all the ports.

Use the no form of this command to revert to advertising the port MAC address per port.

Note

 

Use the show vdc detail command to view the switch chassis MAC address.

Step 4

(Optional) show running-config lldp

Example:

switch(config)# show running-config lldp
(Optional)

Displays the global LLDP configuration. If LLDP is enabled, it shows "feature lldp." If LLDP is disabled, it shows an "Invalid command" error.

Step 5

(Optional) copy running-config startup-config

Example:

switch(config)# copy running-config startup-config
(Optional)

Copies the running configuration to the startup configuration.

Enabling or Disabling LLDP on an Interface

After you globally enable LLDP, it is enabled on all supported interfaces by default. However, you can enable or disable LLDP on individual interfaces or selectively configure an interface to only send or only receive LLDP packets.

Before you begin

Make sure that you have globally enabled LLDP on the device.

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface interface slot/port

Example:

switch(config)# interface ethernet 7/1
switch(config-if)#

Specifies the interface on which you are enabling LLDP and enters the interface configuration mode.

Step 3

[no] lldp transmit

Example:

switch(config-if)# lldp transmit

Enables or disables the transmission of LLDP packets on an interface. After you globally enable LLDP, it is enabled on all supported interfaces by default.

Step 4

[no] lldp receive

Example:

switch(config-if)# lldp receive

Enables or disables the reception of LLDP packets on an interface. After you globally enable LLDP, it is enabled on all supported interfaces by default.

Step 5

(Optional) show lldp interface interface slot/port

Example:

switch(config-if)# show lldp interface ethernet 7/1
(Optional)

Displays the LLDP configuration on the interface.

Step 6

(Optional) copy running-config startup-config

Example:

switch(config)# copy running-config startup-config
(Optional)

Copies the running configuration to the startup configuration.

Configuring DCBXP Egress Queuing

Use the following procedure to configure DCBXP egress queuing.

Before you begin

  • Make sure that you have globally enabled LLDP on the device (global configuration command feature lldp) .


    Note


    After you globally enable LLDP, it is enabled on all supported interfaces by default.


Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

lldp tlv-select dcbxp

Example:

switch(config)# lldp tlv-select dcbxp
switch(config)#

Enables DCBXP TLVs globally and starts sending input queuing parameters in the ETS information exchanged with the peer.

Step 3

(Optional) lldp tlv-select dcbxp egress-queuing

Example:

switch(config)# lldp tlv-select dcbxp egress-queuing
switch(config)#
(Optional)

Enables DCBXP TLVs globally and starts sending output queuing parameters in the ETS information.

Configuring the DCBXP Protocol Version

You can specify the protocol version in which the DCBX TLVs are sent.


Note


If the peers are not running the same version, DCBX parameters may not converge for the link. You may need to reset the link for the new protocol version to take effect.

Before you begin

Make sure that you have globally enabled LLDP on the device.

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface interface slot/port

Example:

switch(config)# interface ethernet 1/25
switch(config-if)#

Enters interface configuration mode.

Step 3

lldp dcbx version cee/ieee/auto

Example:

switch(config-if)#lldp dcbx version cee

Specifies the protocol version mode sent.

  • The cee variable sets the port to only send TLVs in Converged Enhanced Ethernet (CEE) protocol version.

  • The ieee variable sets the port to only sent TLVs in IEEE 802.1Qaz protocol version.

  • The auto variable sets the port to send TLVs in the latest protocol version supported by both the peers.

The default is set to auto.

Note

 

Devices that do not support IEEE 802.1Qaz may not properly respond to auto-negotiation attempts and may require the interface to be manually configured for lldp dcbx version cee.

Multiple LLDP Neighbors Per Physical Interface

Often times a network device sends multiple LLDP packets, out of which one is from the actual host. If a Cisco Nexus switch is communicating with the device but can only manage a single LLDP neighbor per interface, there is a good chance that becoming a neighbor with the actual required host will fail. To minimize this, Cisco Nexus switch interfaces can support multiple LLDP neighbors creating a better opportunity of becoming an LLDP neighbor with the correct device.

Support for multiple LLDP neighbors over the same interface requires LLDP multi-neighbor support to be configured globally.


Note


You must disable DCBX globally before configuring LLDP multi-neighbor support. Failure to do so invokes an error message.


Enabling or Disabling LLDP Multi-Neighbor Support

Before you begin

Consider the following before enabling LLDP multi-neighbor support on the interfaces:

  • Make sure that you have globally enabled LLDP on the device (global configuration command feature lldp ).


    Note


    After you globally enable LLDP, it is enabled on all supported interfaces by default.


  • A maximum of three (3) neighbors are supported on an interface.

  • LLDP multi-neighbor is not supported on FEX interfaces.

Procedure
  Command or Action Purpose

Step 1

configure terminal

Example:
switch# configure terminal
switch(config)#

Enters global configuration mode.

Note

 

If the output of the show lldp tlv-select command shows dcbxp, then perform step 2 and skip step 3. If the output shows dcbxp egress-queuing then skip step 2 and perform step 3.

This is required to avoid invoking an error message when you configure LLDP multi-neighbor support.

Step 2

no lldp tlv-select dcbxp

Example:
switch(config)# no lldp tlv-select dcbxp
switch(config)#

Disables DCBXP TLVs globally.

Step 3

no lldp tlv-select dcbxp egress-queuing

Example:
switch(config)# no lldp tlv-select dcbxp egress-queuing
switch(config)#

Disables DCBXP TLVs globally.

Step 4

[no] lldp multi-neighbor

Example:
switch(config)# lldp multi-neighbor
switch(config)#

Enables or disables LLDP multi-neighbor support for all interfaces globally.

Step 5

interface port / slot

Example:
switch(config)# interface 1/1
switch(config-if)#

Specifies the interface on which you are enabling LLDP and enters the interface configuration mode.

Step 6

(Optional) [no] lldp transmit

Example:
switch(config-if)# lldp transmit
(Optional)

Disables (or enables) the transmission of LLDP packets on the interface.

Note

 

The transmission of LLDP packets on this interface was enabled using the global feature lldp command. This option is to disable the feature for this specific interface.

Step 7

(Optional) [no] lldp receive

Example:
switch(config-if)# lldp receive
(Optional)

Disables (or enables) the reception of LLDP packets on the interface.

Note

 

The reception of LLDP packets on this interface was enabled using the global feature lldp command. This option is to disable the feature for this specific interface.

Step 8

(Optional) show lldp interface port / slot

Example:
switch(config-if)# show lldp interface 1/1
(Optional)

Displays the LLDP configuration on the interface.

Step 9

(Optional) copy running-config startup-config

Example:
switch(config)# copy running-config startup-config
(Optional)

Copies the running configuration to the startup configuration.

Enabling or Disabling LLDP Support on Port-Channel Interfaces

Before you begin

Consider the following before enabling LLDP support on port-channels:

  • Make sure that you have globally enabled LLDP on the device (global configuration command feature lldp ).


    Note


    After you globally enable LLDP, it is enabled on all supported interfaces by default.


  • Applying the lldp transmit and lldp receive configuration commands to a port-channel does not affect the configuration for the members of the port-channel.

  • LLDP neighbors form between the port-channels only when LLDP transmit and receive is configured on both sides of the port-channel.

  • The LLDP transmit and receive commands do not work on MCT, VPC, fex-fabric, FEX port-channels, and port-channel sub-interfaces.


    Note


    If you enable the LLDP port-channel feature globally, the LLDP configuration is not applied to any of these port types. If the configuration is removed from the port-channels or the port type feature is disabled globally, you cannot use the lldp port-channel command to enable it on the newly supported port-channels. The command was already issued. To enable LLDP port-channel on the port-channels in question, configure lldp transmit and lldp receive for each port-channel (see steps 4, 5, and 6 in the following procedure).


Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Note

 

If the output of the show lldp tlv-select command shows dcbxp, then perform step 2 and skip step 3. If the output shows dcbxp egress-queuing then skip step 2 and perform step 3.

This is required before configuring LLDP on port-channels.

Step 2

no lldp tlv-select dcbxp

Example:

switch(config)# no lldp tlv-select dcbxp
switch(config)#

Disables DCBXP TLVs globally.

Step 3

no lldp tlv-select dcbxp egress-queuing

Example:

switch(config)# no lldp tlv-select dcbxp egress-queuing
switch(config)#

Disables DCBXP TLVs globally.

Step 4

[no] lldp port-channel

Example:

switch(config)# lldp port-channel
switch(config)#

Enables or disables LLDP transmit and receive for all port channels globally.

Step 5

interface port-channel [port-channel-number | port-channel-range]

Example:

switch(config)# interface port-channel 3
switch(config-if)#

Example:

Enter a range of port-channel numbers if you are configuring LLDP over more than one port-channel:

switch(config)# interface port-channel 1-3
switch(config-if-range)#

Specifies the interface port-channel on which you are enabling LLDP and enters the interface configuration mode.

Specifies the interface port-channel range on which you are enabling LLDP and enters the interface range configuration mode.

Step 6

(Optional) [no] lldp transmit

Example:

switch(config-if)# lldp transmit
(Optional)

Disables (or enables) the transmission of LLDP packets on the port-channel or range of port-channels.

Note

 

The transmission of LLDP packets on this port-channel was enabled using the global lldp port-channel command in step 3. This option is to disable the feature for this specific port-channel.

Step 7

(Optional) [no] lldp receive

Example:

switch(config-if)# lldp receive
(Optional)

Disables (or enables) the reception of LLDP packets on the port-channel or range of port-channels.

Note

 

The reception of LLDP packets on this port-channel was enabled using the global lldp port-channel command in step 3. This option is to disable the feature for this specific port-channel.

Step 8

(Optional) show lldp interface port-channell port-channel-number

Example:

switch(config-if)# show lldp interface port-channel 3
(Optional)

Displays the LLDP configuration on the port-channel.

Step 9

(Optional) copy running-config startup-config

Example:

switch(config)# copy running-config startup-config
(Optional)

Copies the running configuration to the startup configuration.

Configuring Optional LLDP Parameters

You can configure the frequency of LLDP updates, the amount of time for a receiving device to hold the information before discarding it, and the initialization delay time. You can also select the TLVs to include in LLDP packets.

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

(Optional) [no] lldp holdtime seconds

Example:

switch(config)# lldp holdtime 200
(Optional)

Specifies the amount of time in seconds that a receiving device should hold the information that is sent by your device before discarding it.

The range is 10 to 255 seconds; the default is 120 seconds.

Step 3

(Optional) [no] lldp reinit seconds

Example:

switch(config)# lldp reinit 5
(Optional)

Specifies the delay time in seconds for LLDP to initialize on any interface.

The range is 1 to 10 seconds; the default is 2 seconds.

Step 4

(Optional) [no] lldp timer seconds

Example:

switch(config)# lldp timer 50
(Optional)

Specifies the transmission frequency of LLDP updates in seconds.

The range is 5 to 254 seconds; the default is 30 seconds.

Step 5

(Optional) show lldp timers

Example:

switch(config)# show lldp timers
(Optional)

Displays the LLDP hold time, delay time, and update frequency configuration.

Step 6

(Optional) [no] lldp tlv-select tlv

Example:

switch(config)# lldp tlv-select system-name
switch(config)# lldp tlv-select port link-aggregation
(Optional)

Specifies the TLVs to send and receive in LLDP packets. The available TLVs are management-address, port-description, port-vlan, system-capabilities, system-description, port vlan-name, port link-aggregation, port max-framesize, and system-name. All available TLVs are enabled by default.

Use the no form of the command to disable the TLV.

Step 7

(Optional) show lldp tlv-select

Example:

switch(config)# show lldp tlv-select
(Optional)

Displays the LLDP TLV configuration.

Step 8

(Optional) copy running-config startup-config

Example:

switch(config)# copy running-config startup-config
(Optional)

Copies the running configuration to the startup configuration.

Verifying the LLDP Configuration

To display the LLDP configuration, perform one of the following tasks:

Command Purpose
show running-config lldp Displays the global LLDP configuration.
show lldp interface interface slot/port Displays the LLDP interface configuration.
show lldp timers Displays the LLDP hold time, delay time, and update frequency configuration.
show lldp tlv-select Displays the LLDP TLV configuration.
show lldp neighbors {detail | interface interface slot/port} Displays the LLDP neighbor device status.

Note

 

If the neighboring switch advertises switch MAC, then this show command displays the switch MAC and if it advertises the port MAC, the show command will display the port MAC.

show lldp traffic Displays the LLDP counters, including the number of LLDP packets sent and received by the device, the number of discarded packets, and the number of unrecognized TLVs.
show lldp traffic interface interface slot/port Displays the number of LLDP packets sent and received on the interface.
show qos dcbxp interface slot/port

Displays DCBXP information for a specific interface.

Use the clear lldp counters command to clear the LLDP statistics.

Configuration Example for LLDP

This example shows how to enable LLDP on a device; disable LLDP on some interfaces; configure optional parameters such as hold time, delay time, and update frequency; and disable several LLDP TLVs:

switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)# feature lldp
switch(config)# interface ethernet 7/9
switch(config-if)# no lldp transmit
switch(config-if)# no lldp receive
switch(config-if)# exit
switch(config)# interface ethernet 7/10
switch(config-if)# no lldp transmit
switch(config-if)# no lldp receive
switch(config-if)# exit
switch(config)# lldp holdtime 200
switch(config)# lldp reinit 5
switch(config)# lldp timer 50
switch(config)# no lldp tlv-select port-vlan
switch(config)# no lldp tlv-select system-name