Link Layer Discovery Protocol

Link Layer Discovery Protocol (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.

Overview

The Cisco Discovery Protocol (CDP) and Link Layer Discovery Protocol (LLDP) are device discovery protocols that allow network management applications to automatically discover and learn about other devices connected to the network.

  • CDP is a Cisco proprietary protocol for device discovery on the network.

  • LLDP is a vendor-neutral protocol defined in IEEE 802.1ab, enabling discovery of non-Cisco devices.

  • LLDP uses Type, Length, and Value (TLV) attributes to advertise configuration information, device capabilities, and device identity.

LLDP Advertised TLVs

LLDP advertises the following TLVs by default:

  • DCBXP

  • Management address

  • Port description

  • Port VLAN

  • System capabilities

  • System description

  • System name

Data Center Bridging Exchange Protocol (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.

Supported Features

  • 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.

Default Settings

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

Guidelines and Limitations

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

  • LLDP is supported only on physical interfaces.

  • LLDP can discover up to one device per port.

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

  • DCBXP incompatibility messages might appear when you change the network QoS policy on a switch, if a physical cable loopback connection is present on the device. The incompatibility exists for only a short time and then resolves on its own.

  • PFC TLVs are sent when pause is enabled for at least one COS value in a network-qos policy and the priority-flow-control mode is set to auto at the interface level.

  • 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.

  • The system name in LLDP can also display the domain name if it is configured. If the management VRF has a domain-name configured, then that is given higher priority over the default VRF domain-name. If no domain-name exists for the management VRF, then we check for default VRF domain-name and use that if its configured.

Release Specific Guidelines

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

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.

  • 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.

  • PFC and ECN are supported on Cisco Nexus 9300-FX3 platform switches. On 9300-FX3 switches operating in FEX mode, DCBX 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 VLAN name TLV only has the first 32 characters of the VLAN name, per the standards. Only the names of 25 active VLANs are displayed.

Beginning with Cisco NX-OS Release 10.4(1)F

  • LLDP is supported on the following switches and line cards:

    • Cisco Nexus 9804 platform switch

    • Cisco Nexus X98900CD-A line card

    • Cisco Nexus X98900CD-A line card with Cisco Nexus 9808 and 9804 switches

Beginning with Cisco NX-OS Release 10.4(2)F

  • LLDP is supported on Cisco Nexus 9232E-B1 platform switch.

Beginning with Cisco NX-OS Release 10.6(1)F

  • LLDP is supported on Cisco N9336C-SE1 switch.

Platform Support for DCBXP

DCBXP is supported on the following platforms:

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

N9300 Series Smart Switch Guidelines

Beginning with NX-OS Release 10.6(2)F, LLDP is supported on N9324C-SE1U and N9348Y2C6D-SE1U Smart Switches.

Enable or Disable 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


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
	switch(config)#
					

Step 2

Enable or disable LLDP on the device using the command [ no ] feature lldp

Example:

switch(config)# feature lldp
					

LLDP is disabled by default.

Note

 

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

Step 3

Enable this command to indicate that the switch chassis MAC address must be advertised for all the ports using the command [ no ] lldp chassis-id switch

Example:

switch(config)# lldp chassis-id switch
					

This is an optional step. 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

Display the global LLDP configuration using the command show running-config lldp

Example:

switch(config)# show running-config lldp
					

This is an optional step. If LLDP is enabled, it shows "feature lldp." If LLDP is disabled, it shows an "Invalid command" error.

Step 5

Copy the running configuration to the startup configuration using the command copy running-config startup-config

Example:

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

This is an optional step.


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

What to do next

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.

Enable or Disable on an Interface

Use this task to enable or disable LLDP on a specific interface after it has been globally enabled on the device.

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.


Note


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

Before you begin

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

Procedure


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
	switch(config)#
					

Step 2

Specify the interface on which you are enabling LLDP and enters the interface configuration mode using the command interface interface slot / port

Example:

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

Step 3

Enable or disable the transmission of LLDP packets on an interface using the command [ no ] lldp transmit

Example:

switch(config-if)# lldp transmit
					

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

Step 4

Enable or disable the reception of LLDP packets on an interface using the command [ no ] lldp receive

Example:

switch(config-if)# lldp receive
					

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

Step 5

Display the LLDP configuration on the interface using the command show lldp interface interface slot / port

Example:

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

This is an optional step.

Step 6

Copy the running configuration to the startup configuration using the command copy running-config startup-config

Example:

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

This is an optional step.


Configure 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


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
                        switch(config)#
                    

Step 2

Enable DCBXP TLVs globally and starts sending input queuing parameters in the ETS information exchanged with the peer using the command lldp tlv-select dcbxp

Example:

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

Step 3

Enable DCBXP TLVs globally and starts sending output queuing parameters in the ETS information using the command lldp tlv-select dcbxp egress-queuing

Example:

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

This is an optional step.


Configure DCBXP Protocol Version

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

  • Nexus 9000 switches do not support auto-negotiating or hard coding DCBXP TLV using CIN version.

  • If the peers are not running the same version, DCBX parameters may not converge for the link. 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


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
                        switch(config)#
                    

Step 2

Enter interface configuration mode using the command interface interface slot / port

Example:

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

Step 3

Specify the protocol version mode sent using the command lldp dcbx version cee / ieee / auto

Example:

switch(config-if)#lldp dcbx version cee
                    
  • 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.


Enable or Disable Multi-Neighbor Support

Before you begin

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.


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


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
                        switch(config)#
                    

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

Disable DCBXP TLVs globally using the command no lldp tlv-select dcbxp

Example:

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

Step 3

Disable DCBXP TLVs globally using the command no lldp tlv-select dcbxp egress-queuing

Example:

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

Step 4

Enable or disable LLDP multi-neighbor support for all interfaces globally using the command [ no ] lldp multi-neighbor

Example:

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

Step 5

Specify the interface on which you will enable LLDP and enter the interface configuration mode using the command interface port / slot

Example:

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

Step 6

Disable (or enable) the transmission of LLDP packets on the interface using the command [ no ] lldp transmit

Example:

switch(config-if)# lldp transmit
                    

This is an optional step.

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

Disable (or enable) the reception of LLDP packets on the interface using the command [ no ] lldp receive

Example:

switch(config-if)# lldp receive
                    

This is an optional step.

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

Display the LLDP configuration on the interface using the command show lldp interface port / slot

Example:

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

This is an optional step.

Step 9

Copy the running configuration to the startup configuration using the command copy running-config startup-config

Example:

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

This is an optional step.


Enable or Disable Support on Port-Channel Interfaces

Use this procedure to enable or disable LLDP support on port-channel interfaces.

LLDP must be globally enabled before it can be configured on port-channel interfaces. Applying LLDP configuration commands to a port-channel does not affect its member interfaces. LLDP neighbors form between port-channels only when LLDP transmit and receive are configured on both sides. LLDP transmit and receive commands do not work on MCT, VPC, fex-fabric, FEX port-channels, or port-channel sub-interfaces.

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

  • If you enable the LLDP port-channel feature globally, the LLDP configuration is not applied to MCT, VPC, fex-fabric, FEX port-channels, or port-channel sub-interfaces. 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. To enable LLDP port-channel on the port-channels in question, configure lldp transmit and lldp receive for each port-channel.

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 ).

  • 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.

Procedure


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
            switch(config)#
          

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

Disable DCBXP TLVs globally using the command no lldp tlv-select dcbxp

Example:

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

Step 3

Disable DCBXP TLVs globally using the command no lldp tlv-select dcbxp egress-queuing

Example:

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

Step 4

Enable or disable LLDP transmit and receive for all port channels globally using the command [ no ] lldp port-channel

Example:

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

Step 5

Specify the interface port-channel on which you will enable LLDP and enter the interface configuration mode using the command 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 range on which you are enabling LLDP and enters the interface range configuration mode.

Step 6

Disable (or enable) the transmission of LLDP packets on the port-channel or range of port-channels using the command [ no ] lldp transmit

Example:

switch(config-if)# lldp transmit
          

This is an optional step.

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

Disable (or enable) the reception of LLDP packets on the port-channel or range of port-channels using the command [ no ] lldp receive

Example:

switch(config-if)# lldp receive
          

This is an optional step.

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

Display the LLDP configuration on the port-channel using the command show lldp interface port-channel l port-channel-number

Example:

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

This is an optional step.

Step 9

Copy the running configuration to the startup configuration using the command copy running-config startup-config

Example:

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

This is an optional step.


Configure Optional 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


Step 1

Enter global configuration mode using the command configure terminal

Example:

switch# configure terminal
	switch(config)#
					

Step 2

Specify the amount of time in seconds that a receiving device should hold the information that is sent by your device before discarding it using the command [ no ] lldp holdtime seconds

Example:

switch(config)# lldp holdtime 200
					

This is an optional step. The range is 10 to 255 seconds; the default is 120 seconds.

Step 3

Specify the delay time in seconds for LLDP to initialize on any interface using the command [ no ] lldp reinit seconds

Example:

switch(config)# lldp reinit 5
					

This is an optional step. The range is 1 to 10 seconds; the default is 2 seconds.

Step 4

Specify the transmission frequency of LLDP updates in seconds using the command [ no ] lldp timer seconds

Example:

switch(config)# lldp timer 50
					

This is an optional step. The range is 5 to 254 seconds; the default is 30 seconds.

Step 5

Display the LLDP hold time, delay time, and update frequency configuration using the command show lldp timers

Example:

switch(config)# show lldp timers
					

This is an optional step.

Step 6

Specify the TLVs to send and receive in LLDP packets using the command [ no ] lldp tlv-select tlv

Example:

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

This is an optional step. 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

Display the LLDP TLV configuration using the command show lldp tlv-select

Example:

switch(config)# show lldp tlv-select
					

This is an optional step.

Step 8

Copy the running configuration to the startup configuration using the command copy running-config startup-config

Example:

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

This is an optional step.