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 includes the following sections:
- About LLDP, on page 1
- Guidelines and Limitations for LLDP, on page 3
- Default Settings for LLDP, on page 3
- Configuring LLDP, on page 4
- Verifying the LLDP Configuration, on page 11
- Configuration Example for LLDP, on page 11
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.
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:
- 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.
- LLDP can discover Linux servers, provided they are not using a converged network adapter (CNA). LLDP cannot discover other types of servers.
- DCBXP is not supported for LLDP until Cisco NX-OS Release 7.0(3)I3(1).
- DCBXP is supported on the following platforms:
- Cisco Nexus 9200 and 9300-EX Series switches, beginning with Cisco NX-OS Release 7.0(3)I5(1)
- Cisco Nexus 9332PQ, 9372PX, 9372PX-E, and 9396PX switches
- Cisco Nexus 9504 and 9508 switches with X9432PQ, X9464PX, X9536PQ, X9564PX, and X9636PQ line cards
- Note: Only front-panel fixed ports are supported with DCBXP. FEX ports are not supported.
- 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.
- The Cisco Nexus 3232C and 3264Q switches do not support DCBXP.
- DCBX TLVs are sent only when the input queuing is configured and applied at the system level.
- The mapping of the DSCP and COS values configured in the QOS policy are sent in the Application TLV.
- 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.
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
- Step 1: Enter global configuration mode.
Command or Action:configure terminal
Example:switch# configure terminal
switch (config)#
- Step 2: Enable or disable LLDP on the device. LLDP is disabled by default.
Command or Action:[no] feature lldp
Example:switch (config)# feature lldp
- Step 3: Display the global LLDP configuration. If LLDP is enabled, it shows "feature lldp." If LLDP is disabled, it shows an "Invalid command" error.
Command or Action:(Optional) show running-config lldp
Example:switch(config)# show running-config lldp
- Step 4: Copy the running configuration to the startup configuration.
Command or Action:(Optional) copy running-config startup-config
Example:switch(config)# copy running-config startup-config
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
- Step 1: Enter global configuration mode.
Command or Action: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.
Command or Action:interface interface slot/port
Example:switch(config)# interface ethernet 7/1
switch(config-if)#
- Step 3: 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.
Command or Action:[no] lldp transmit
Example:switch(config-if)# lldp transmit
- Step 4: 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.
Command or Action:[no] lldp receive
Example:switch(config-if)# lldp receive
- Step 5: Displays the LLDP configuration on the interface.
Command or Action:(Optional) show lldp interface interface slot/port
Example:switch(config-if)# show lldp interface ethernet 7/1
- Step 6: Copies the running configuration to the startup configuration.
Command or Action:(Optional) copy running-config startup-config
Example:switch(config)# copy running-config startup-config
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
- Step 1: Enters global configuration mode.
Command or Action:configure terminal
Example:switch# configure terminal
switch (config)#
- Step 2: Disables DCBXP TLVs globally. This command must be entered to avoid invoking an error message once LLDP multi-neighbor support is configured.
Command or Action:Required: no lldp tlv-select dcbxp
Example:switch (config)# no lldp tlv-select dcbxp
switch(config)#
- Step 3: Enables or disables LLDP multi-neighbor support for all interfaces globally.
Command or Action:Required: [no] lldp multi-neighbor
Example:switch(config) % lldp multi-neighbor
switch(config)#
- Step 4: Specifies the interface on which you are enabling LLDP and enters the interface configuration mode.
Command or Action:interface port / slot
Example:switch(config)# interface 1/1
switch(config-if)#
- Step 5: Disables (or enables) the transmission of LLDP packets on the interface.
Command or Action:(Optional) [no] lldp transmit
Example:switch(config-if)# lldp transmit
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 6: Disables (or enables) the reception of LLDP packets on the interface.
Command or Action:(Optional) [no] lldp receive
Example:switch(config-if)# lldp receive
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 7: Displays the LLDP configuration on the interface.
Command or Action:(Optional) show lldp interface port / slot
Example:switch (config-if)# show lldp interface 1/1
- Step 8: Copies the running configuration to the startup configuration.
Command or Action:(Optional) copy running-config startup-config
Example:switch(config)# copy running-config startup-config
Enabling or Disabling LLDP Support on Port-Channel Interfaces
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
andlldp 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, configurelldp transmit
andlldp receive
for each port-channel (see steps 4, 5, and 6 in the following procedure).
Procedure
- Step 1: Enters global configuration mode.
Command or Action:configure terminal
Example:switch# configure terminal
switch (config)#
- Step 2: Disables DCBXP TLVs globally. You must enter this command before configuring LLDP on port-channels.
Command or Action:Required: no lldp tlv-select dcbxp
Example:switch (config)# no lldp tlv-select dcbxp
switch (config)#
- Step 3: Enables or disables LLDP transmit and receive for all port channels globally.
Command or Action:Required: [no] lldp port-channel
Example:switch(config) % lldp port-channel
switch(config)#
- Step 4: Specifies the interface port-channel on which you are enabling LLDP and enters the interface configuration mode. Specifies the interface port-channel range or which you are enabling LLDP and enters the interface range configuration mode.
Command or Action: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) #
- Step 5: Disables (or enables) the transmission of LLDP packets on the port-channel or range of port-channels.
Command or Action:(Optional) [no] lldp transmit
Example:switch(config-if)# lldp transmit
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 6: Disables (or enables) the reception of LLDP packets on the port-channel or range of port-channels.
Command or Action:(Optional) [no] lldp receive
Example:switch(config-if)# lldp receive
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 7: Displays the LLDP configuration on the port-channel.
Command or Action:(Optional) show lldp interface port-channel | port-channel-number
Example:switch(config-if)# show lldp interface port-channel 3
- Step 8: Copies the running configuration to the startup configuration.
Command or Action:(Optional) copy running-config startup-config
Example:
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
- Step 1: Enters global configuration mode.
Command or Action:configure terminal
Example:switch# configure terminal
switch (config)#
- Step 2: 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.
Command or Action:(Optional) [no] lldp holdtime seconds
Example:switch(config) % lldp holdtime 200
- Step 3: 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.
Command or Action:(Optional) [no] lldp reinit seconds
Example:switch (config)# lldp reinit 5
- Step 4: Specifies the transmission frequency of LLDP updates in seconds. The range is 5 to 254 seconds; the default is 30 seconds.
Command or Action:(Optional) [no] lldp timer seconds
Example:switch (config) % lldp timer 50
- Step 5: Displays the LLDP hold time, delay time, and update frequency configuration.
Command or Action:(Optional) show lldp timers
Example:switch (config)# lldp timers
- Step 6: Specifies the TLVs to send and receive in LLDP packets. The available TLVs are dcbxp, management-address, port-description, port-vlan, system-capabilities, system-description, and system-name. All available TLVs are enabled by default.
Command or Action:(Optional) [no] lldp tlv-select tlv
Example:switch (config) % lldp tlv-select system-name
- Step 7: Displays the LLDP TLV configuration.
Command or Action:(Optional) show lldp tlv-select
Example: - Step 8: Copies the running configuration to the startup configuration.
Command or Action:(Optional) copy running-config startup-config
Example:switch (config)# copy running-config startup-config
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 all |
Displays the LLDP DCBXP, transmit and receive configuration for all interfaces. |
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 dcbx interface interface slot/port |
Displays DCBXP TLV information for a specific interface. |
show lldp neighbors {detail | interface interface slot/port} |
Displays the LLDP neighbor device status. |
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. |
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