Configuring LLDP, LLDP-MED, and Location Service

This chapter describes how to configure the Link Layer Discovery Protocol (LLDP), LLDP Media Endpoint Discovery (LLDP-MED), and Location Service on the Catalyst 4500 series switch.


Note For complete syntax and usage information for the commands used in this chapter, see the command reference for this release and the “System Management Commands” section in the Cisco IOS Configuration Fundamentals Command Reference, Release 12.4.


This chapter consists of these sections:

About LLDP, LLDP-MED, and Location Service

This section describes this information:

LLDP

The Cisco Discovery Protocol (CDP) is a device discovery protocol that runs over Layer 2 (the data link layer) on all Cisco-manufactured devices (routers, bridges, access servers, and switches). CDP allows network management applications to automatically discover and learn about other Cisco devices connected to the network.

To support non-Cisco devices and to allow for interoperability between other devices, the switch supports the IEEE 802.1AB LLDP. LLDP is a neighbor discovery protocol that is used for 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 supports a set of attributes that it uses to discover neighbor devices. These attributes contain type, length, and value descriptions and are referred to as TLVs. LLDP supported devices can use TLVs to receive and send information to their neighbors. Details such as configuration information, device capabilities, and device identity can be advertised using this protocol.

The switch supports the following basic management TLVs (which are optional):

  • Port description TLV
  • System name TLV
  • System description TLV
  • System capabilities TLV
  • Management address TLV
  • Power Management TLV

These organizationally specific LLDP TLVs are also advertised to support LLDP-MED:

  • Port VLAN ID TLV ((IEEE 802.1 specific TLVs)
  • MAC/PHY configuration/status TLV(IEEE 802.3 specific TLVs)

LLDP-MED

LLDP for Media Endpoint Devices (LLDP-MED) is an extension to LLDP that operates between endpoint devices such as IP phones and network devices such as switches. It specifically provides support for voice over IP (VoIP) applications and provides additional TLVs for capabilities discovery, network policy, power over Ethernet (PoE), inventory management, and location information. By default, all LLDP-MED TLVs are enabled.

LLDP-MED supports these TLVs:

  • LLDP-MED capabilities TLV

Allows LLDP-MED endpoints to determine the capabilities that the connected device supports and what capabilities the device has enabled.

For configuration details, see the For configuration details, see the “Configuring Network-Policy Profile” section.

  • Network policy profile

Allows both network connectivity devices and endpoints to advertise VLAN configurations and associated Layer 2 and Layer 3 attributes for the specific application on that port. For example, the switch can notify a phone of the VLAN number that it should use. The phone can connect into any switch, obtain its VLAN number, and then start communicating with the call control.

By defining a network-policy profile TLV, you can create a profile for voice and voice-signalling by specifying the values for VLAN, class of service (CoS), differentiated services code point (DSCP), and tagging mode. These profile attributes are then maintained centrally on the switch and propagated to the phone.

For configuration details, see the “Configuring Network-Policy Profile” section.

  • Power management TLV

Enables advanced power management between LLDP-MED endpoint and network connectivity devices. Allows switches and phones to convey power information, such as how the device is powered, power priority, and how much power the device needs.

For configuration details, see the “Configuring LLDP Power Negotiation” section.

  • Inventory management TLV

Allows an endpoint to send detailed inventory information about itself to the switch, including information hardware revision, firmware version, software version, serial number, manufacturer name, model name, and asset ID TLV.

  • Location TLV

Provides location information from the switch to the endpoint device. The location TLV can send this information:

Civic location information

Provides the civic address information and postal information. Examples of civic location information are street address, road name, and postal community name information.

ELIN location information

Provides the location information for a caller. The location is determined by the emergency location identifier number (ELIN), which is a phone number that routes an emergency call to the local public safety answering point (PSAP) and which the PSAP can use to call back the emergency caller.

For configuration details, see the “Configuring Location TLV and Location Service” section.


Note A switch cannot send LLDP and LLDP-MED simultaneously to an end-point device. By default, a network device sends only LLDP packets until it receives LLDP-MED packets from an end-point device. The network device then sends LLDP-MED packets until it receives only LLDP packets.


Location Service

The location service feature enables the switch to provide location and attachment tracking information for its connected devices to a Cisco Mobility Services Engine (MSE). The tracked device can be a wireless endpoint, a wired endpoint, or a wired switch or controller. The switch informs device link up and link-down events through Network Mobility Services Protocol (NMSP) location and attachment notifications to the MSE.

The MSE initiates the NMSP connection to the switch. When the MSE connects to the switch messages are exchanged to establish version compatibility, service exchange, and location information synchronization. After the connection is established, the switch sends location and attachment notifications periodically to the MSE. Any link-up event, link-down event, or location configuration change detected during the interval are aggregated and sent at the end of the interval using attachment or location notifications.

When the switch discovers the presence or absence of a device on a link-up or link-down event on a port, it obtains the client’s MAC address, IP address, and 802.1x username if applicable. If the device is LLDP-MED or CDP enabled, the switch continues to gather client-specific information such as the model number and software version.

Depending on the device capabilities, the switch obtains this client attachment information at link up:

  • Slot, port, and port-type
  • Client’s MAC address
  • Client’s IP address
  • 802.1X username if applicable
  • Device category is specified as a wired station
  • State is specified as Connected
  • Serial number, UDI
  • Model number
  • Software version
  • VLAN ID and VLAN name

Depending on the device capabilities, the switch obtains this client information at link down:

  • Slot and port that was disconnected
  • Client’s MAC address
  • Client’s IP address
  • 802.1X username if applicable
  • Device category is specified as a wired station
  • State is specified as Disconnected
  • Serial number, UDI
  • Model number
  • Software version
  • VLAN ID and VLAN name

If an administrator changes a location address at the switch, the information is reported to the MSE. The switch sends a NMSP location notification message that identifies the list of ports affected by the change and the changed address information.

Configuring LLDP and LLDP-MED, and Location Service

This section contains this configuration information:

Default LLDP Configuration

Table 1-1 shows the default LLDP configuration. To change the default settings, use the LLDP global configuration and LLDP interface configuration commands.

 

Table 1-1 Default LLDP Configuration

Feature
Default Setting

LLDP global state

Disabled

LLDP holdtime (before discarding)

120 seconds

LLDP timer (packet update frequency)

30 seconds

LLDP reinitialization delay

2 seconds

LLDP tlv-select

Enabled to send and receive all TLVs

LLDP interface state

Enabled

LLDP receive

Enabled

LLDP transmit

Enabled

LLDP med-tlv-select

Enabled to send all LLDP-MED TLVs

Configuring LLDP Characteristics

You can configure the frequency of LLDP updates, the amount of time to hold the information before discarding it, the initialization delay time. You can also select the LLDP and LLDP-MED TLVs for sending and receiving. The location service feature is available only when the switch is running the cryptographic (encrypted) software image.

To configure these characteristics, perform this task:


Note Steps 2 through 5 can be performed in any order.


 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# lldp holdtime seconds

(Optional) Specifies the amount of time a receiving device should hold the information sent by your device before discarding it.

The range is 0 to 65535 seconds; the default is 120 seconds.

Step 3

Switch(config)# lldp reinit

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

The range is 2 to 5 seconds; the default is 2 seconds.

Step 4

Switch(config)# lldp timer seconds

(Optional) Sets the transmission frequency of LLDP updates in seconds.

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

Step 5

Switch(config)# lldp tlv-select

(Optional) Specifies the LLDP TLVs to send or receive.

Step 6

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

Saves your entries in the configuration file.

Step 7

Switch(config)# lldp med-tlv-select

(Optional) Specifies the LLDP-MED TLVs to send or receive.


Note Use the no form of each of the LLDP commands to return to the default setting.


This example shows how to configure a holdtime of 120 seconds, a delay time of 2 seconds and an update frequency of 30:

Switch# configure terminal
Switch(config)# lldp holdtime 120
Switch(config)# lldp reinit 2
Switch(config)# lldp timer 30
Switch(config)# end
 

This example shows how to transmit only LLDP packets:

Switch# configure terminal
SWitch(config)# no lldp receive
Switch(config)# end
 

This example shows how to receive LLDP packets again:

Switch# configure terminal
Switch(config)# lldp receive
Switch(config)# end
 

For additional LLDP show commands, see the “Monitoring and Maintaining LLDP, LLDP-MED, and Location Service” section.

Disabling and Enabling LLDP Globally


Note LLDP is disabled by default.


To disable LLDP globally, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# no lldp run

Disables LLDP.

Step 3

Switch(config)# end

Returns to privileged EXEC mode.

To enable LLDP once it has been disabled, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# lldp run

Enables LLDP.

Step 3

Switch(config)# end

Returns to privileged EXEC mode.

This example shows how to globally disable LLDP:

Switch# configure terminal
Switch(config)# no lldp run
Switch(config)# end
 

This example shows how to globally enable LLDP:

Switch# configure terminal
Switch(config)# lldp run
Switch(config)# end

Disabling and Enabling LLDP on an Interface

LLDP is disabled globally on all supported interfaces. You must enable LLDP globally to allow a device to send LLDP packets. However, no changes are required at the interface level.

You can configure the interface to selectively not to send and receive LLDP packets with the
no lldp transmit and no lldp receive commands.


Note If the interface is configured as a tunnel port, LLDP is automatically disabled.


To disable LLDP on an interface, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# interface interface-id

Specifies the interface on which you are disabling LLDP, and enter interface configuration mode.

Step 3

Switch(config)# no lldp transmit

Disallows sending LLDP packets on the interface.

Step 4

Switch(config)# no lldp receive

Disallows receiving LLDP packets on the interface.

Step 5

Switch(config)# end

Returns to privileged EXEC mode.

Step 6

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

Saves your entries in the configuration file.

To enable LLDP on an interface once it has been disabled, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# interface interface-id

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

Step 3

Switch(config)# lldp transmit

Sends LLDP packets on the interface.

Step 4

Switch(config)# lldp receive

Receives LLDP packets on the interface.

Step 5

Switch(config)# end

Returns to privileged EXEC mode.

Step 6

Switch# copy running-config startup-config

Saves your entries in the configuration file.

This example shows how to enable LLDP on an interface:

Switch# configure terminal
Switch(config)# interface GigabitEthernet 1/1
Switch(config-if)# lldp transmit
Switch(config-if)# lldp receive
Switch(config-if)# end

Configuring LLDP-MED TLVs

By default, the switch only sends LLDP packets until it receives LLDP-MED packets from the end device. The switch continues to send LLDP-MED packets until it only receives LLDP packets.

By using the lldp interface configuration command, you can configure the interface not to send the TLVs listed in Table 1-2 .

 

Table 1-2 LLDP-MED TLVs

LLDP-MED TLV
Description

inventory-management

LLDP-MED inventory management TLV

location

LLDP-MED location TLV

network-policy

LLDP-MED network policy TLV

power-management

LLDP-MED power management TLV

To disable a TLV on an interface, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# interface interface-id

Specifies the interface on which you are configuring a LLDP-MED TLV, and enter interface configuration mode.

Step 3

Switch(config-if)# no lldp med-tlv-select tlv

Specifies the TLV to disable.

Step 4

Switch(config-if)# end

Returns to privileged EXEC mode.

Step 5

Switch# copy running-config startup-config

(Optional) Saves your entries in the configuration file.

To enable a TLV on an interface, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# interface interface-id

Specifies the interface on which you are configuring an LLDP-MED TLV, and enter interface configuration mode.

Step 3

Switch(config-if)# lldp med-tlv-select tlv

Specifies the TLV to enable.

Step 4

Switch(config-if)# end

Returns to privileged EXEC mode.

Step 5

Switch# copy running-config startup-config

(Optional) Saves your entries in the configuration file.

This example shows how to enable a TLV on an interface when it has been disabled:

Switch# configure terminal
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# lldp med-tlv-select inventory management
Switch(config-if)# end

Configuring Network-Policy Profile

To create a network-policy profile, configure the policy attributes, and apply it to an interface, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# network-policy profile profile number

Specifies the network-policy profile number, and enter network-policy configuration mode. The range is 1 to 4294967295.

Step 3

Switch(config-network-policy)# {voice | voice-signaling} vlan [ vlan-id {cos cvalue | dscp dvalue } ] | [[dot1p {cos cva lue | dscp dvalue }] | none | untagged]

Configures the policy attributes:

voice —Specifies the voice application type.

voice-signaling —Specifies the voice-signaling application type.

vlan —Specifies the native VLAN for voice traffic.

vlan-id —(Optional) Specifies the VLAN for voice traffic. The range is 1 to 4094.

cos cvalue —(Optional) Specifies the Layer 2 priority class of service (CoS) for the configured VLAN. The range is 0 to 7; the default is 0.

dscp dvalue —(Optional) Specifies the differentiated services code point (DSCP) value for the configured VLAN. The range is 0 to 63; the default is 0.

dot1p —(Optional) Configures the telephone to use IEEE 802.1p priority tagging and use VLAN 0 (the native VLAN).

none —(Optional) Do not instruct the IP telephone about the voice VLAN. The telephone uses the configuration from the telephone key pad.

untagged —(Optional) Configures the telephone to send untagged voice traffic (the default for the telephone).

Step 4

Switch(config)# exit

Returns to global configuration mode.

Step 5

Switch# configure terminal

Enters global configuration mode.

Step 6

Switch(config)# interface interface-id

Specifies the interface on which you are configuring a network-policy profile, and enter interface configuration mode.

Step 7

Switch(config-if)# network-policy profile number

Specifies the network-policy profile number.

Step 8

Switch(config-if)# lldp med-tlv-select network-policy

Specifies the network-policy TLV.

Step 9

Switch(config-if)# end

Returns to privileged EXEC mode.

Step 10

Switch# show network-policy profile

Verifies the configuration.

Step 11

Switch# copy running-config startup-config

(Optional) Saves your entries in the configuration file.

Use the no form of each command to return to the default setting.

This example shows how to configure VLAN 100 for voice application with CoS and to enable the network-policy profile and network-policy TLV on an interface:

Switch# configure terminal
Switch(config)# network-policy profile 1
Switch(config-network-policy)# voice vlan 100 cos 4
Switch(config)# exit
Switch# configure terminal
Switch# interface_id
Switch(config-if)# network-policy profile 1
Switch(config-if)# lldp med-tlv-select network-policy
 

This example shows how to configure the voice application type for the native VLAN with priority tagging:

Switch(config-network-policy)# voice vlan dot1p cos 4
Switch(config-network-policy)# voice vlan dot1p dscp 34

Note As of Cisco IOS Release 12.2(54)SG, the Catalyst 4500 series switch supports only 2 applications: voice and voice signaling. The default cos/dscp values for a voice application is 5/46 and for voice signaling is 3/24. You must configure the network policy profile and attach it to the interface if you need to override the default values. These values are sent as a part of the network-policy TLV in LLDP MED.


Configuring LLDP Power Negotiation

Starting with Cisco IOS Release 12.2(54)SG, Catalyst 4500 series switches can perform inline power negotiation using LLDP as specified in the IEEE 802.3at standard. (The LLDP TLV used is
DTE Power-via-MDI TLV.) With this feature, inline powered devices based on the IEEE standard can be powered in the PoE+ power range (12.95W to 25.5W at the device end) by the switch on PoE+ supported modules.


Note To verify inline power utilization negotiated by using LLDP using the LLDP-MED TLV, use the
show lldp neighbors detail command. To verify inline power utilization negotiated by using the IEEE 802.3at TLV, use the show power inline interface detail command. The show power inline interface detail command does not display power negotiated with LLDP.



Note When an inline powered device that performs power negotiation using multiple protocols (CDP/LLDP 802.3at/LLDP-MED) is connected to a switch, the switch locks to the first protocol packet (CDP or LLDP) that contains the power negotiation TLV. The LLDP 802.3at power negotiation TLV overrides the LLDP-MED power negotiation TLV if both are received by the switch. If you need to use any single protocol for power negotiation each time, you must administratively disable the other power negotiation protocols on the switch interface or the end device.


To enable LLDP power negotiation, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# interface interface-id

Specifies the interface on which you are configuring LLDP power negotiation.

Step 3

Switch(config-if)# lldp tlv-select power-management

Enables LLDP power negotiation.

Step 4

Switch(config-if)# end

Returns to privileged EXEC mode.

Step 5

Switch# copy running-config startup-config

(Optional) Saves your entries in the configuration file.

This example shows how to enable LLDP power negotiation on interface Gigabit Ethernet 3/1:

Switch# config t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# int gi 3/1
Switch(config-if)# lldp tlv-select power-management

Configuring Location TLV and Location Service

To configure location information for an end-point and to apply it to an interface, perform this task:

 

Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# location {admin-tag string | civic-location identifier id | elin-location string identifier id}

Specifies the location information for an endpoint.

  • admin-tag —Specify an administrative tag or site information.
  • civic-location —Specify civic location information.

Note The civic location identifier in the LLDP-MED TLV is limited to 250 bytes or less. To avoid receiving error messages regarding available buffer space during switch configuration, never allow the total length of all civic location information specified for each civic-location identifier to exceed 250 bytes.

  • elin-location —Specify emergency location information (ELIN).
  • identifier id— Specify the ID for the civic location.
  • string —Specify the site or location information in alphanumeric format.

Step 3

Switch(config-civic)# exit

Returns to global configuration mode.

Step 4

Switch(config)# interface interface-id

Specifies the interface on which you are configuring the location information, and enter interface configuration mode.

Step 5

Switch(config-if)# location {additional-location-information word | civic-location-id id | elin-location-id id}

Enters location information for an interface:

additional-location-information —Specifies additional information for a location or place.

civic-location-id —Specifies global civic location information for an interface.

elin-location-id —Specifies emergency location information for an interface.

id— Specifies the ID for the civic location or the ELIN location. The ID range is 1 to 4095.

word —Specifies a word or phrase that provides additional location information.

Step 6

Switch(config-if)# end

Returns to privileged EXEC mode.

Step 7

Switch# show location

Verifies the configuration.

Step 8

Switch# copy running-config startup-config

(Optional) Saves your entries in the configuration file.

Use the no form of each command to return to the default setting.

This example shows how to configure civic location information on the switch:

Switch# configure terminal
Switch(config)# location civic-location identifier 1
Switch(config-civic)# number 3550
Switch(config-civic)# primary-road-name "Cisco Way"
Switch(config-civic)# city "San Jose"
Switch(config-civic)# state CA
Switch(config-civic)# building 19
Switch(config-civic)# room C6
Switch(config-civic)# county "Santa Clara"
Switch(config-civic)# country US
Switch(config-civic)# end
 

To enable location service on the switch, perform this task:


Note Your switch must be running the cryptographic (encrypted) software image in order to enable the location service feature. Your Cisco Mobility Service Engine (MSE) must be running Heitz 6.0 or later software image to support wired location service


Command
Purpose

Step 1

Switch# configure terminal

Enters global configuration mode.

Step 2

Switch(config)# nmsp enable

Enables the NMSP features on the switch.

Step 3

Switch(config)# ip device tracking

Enables IP device tracking.

Step 4

Switch(config)# nmsp notification interval { attachment | location } interval-seconds

Specifies the NMSP notification interval.

attachment —Specify the attachment notification interval.

location— Specify the location notification interval.

interval-seconds— Duration in seconds before a switch sends the location or attachment updates to the MSE. The range is 1 to 30; the default is 30.

Step 5

Switch(config)# interface interface-id

Specifies the interface on which you want to prevent all learned attachment information from being sent to the MSE.

Step 6

Switch(config-if)# nmsp attachment suppress

Prevents the attachment information learned on this interface from being sent to the MSE.

Note Location service is intended for tracking end devices directly connected to the switch. Please apply this command on all trunk interfaces to avoid inaccurate tracking information.

Step 7

Switch# end

Returns to privileged EXEC mode.

Step 8

Switch# show nmsp notification

Verifies the notification interval configuration.

Step 9

Switch# show nmsp status

Verifies if NMSP is enabled.

Step 10

Switch# copy running-config startup-config

(Optional) Saves your entries in the configuration file.

This example shows how to enable NMSP on a switch and set the location notification time to 10 seconds:

Switch# configure terminal
Switch(config)# nmsp enable
Switch(config)# ip device tracking
Switch(config)# nmsp notification interval location 10
Switch(config)# end

Note Location service tracks IP devices only on Layer 2 and Layer 3 physical ports. IP devices that are connected through SVIs or port-channels are not tracked and reported to the MSE.


Monitoring and Maintaining LLDP, LLDP-MED, and Location Service

To monitor and maintain LLDP, LLDP-MED, and location service on your device, perform one or more of the following commands in privileged EXEC mode:

 

Command
Description
clear lldp counters

Resets the traffic and error counters to zero.

clear lldp table

Deletes the LLDP table of information about neighbors.

clear nmsp statistics

Clears the NMSP statistic counters.

show lldp

Displays global information, such as frequency of transmissions, the holdtime for packets being sent, and the delay time for LLDP to initialize on an interface.

show lldp entry entry-name

Displays information about a specific neighbor.

You can enter an asterisk (*) to display all neighbors, or you can enter the name of the neighbor about which you want information.

show lldp error s

Displays LLDP computational errors and overflows.

show lldp interface [interface-id]

Displays information about interfaces where LLDP is enabled.

You can limit the display to the interface about which you want information.

show lldp neighbors [interface-id] [ detail ]

Displays information about neighbors, including device type, interface type and number, holdtime settings, capabilities, and port ID.

You can limit the display to neighbors of a specific interface or expand the display to provide more detailed information.

show lldp traffic

Displays LLDP counters, including the number of packets sent and received, number of packets discarded, and number of unrecognized TLVs.

show location

Displays the location information for an endpoint.

show nmsp

Displays the NMSP information.

show power inline interface [detail]

Displays detailed information on the PoE status for the interface

show power inline module mod [detail]

Displays detailed information on the PoE consumption for the specified module.