Understanding LLDP, LLDP-MED, and Wired Location Service
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 Link Layer Discovery Protocol (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. This protocol can advertise details such as configuration information, device capabilities, and device identity.
The switch supports these basic management TLVs. These are mandatory LLDP TLVs.
-
Port description TLV
-
System name TLV
-
System description TLV
-
System capabilities TLV
-
Management address TLV
These organizationally specific LLDP TLVs are also advertised to support LLDP-MED.
-
Port VLAN ID TLV ((IEEE 802.1 organizationally specific TLVs)
-
MAC/PHY configuration/status TLV(IEEE 802.3 organizationally specific TLVs)
Note A switch stack appears as a single switch in the network. Therefore, LLDP discovers the switch stack, not the individual stack members.
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, 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 has enabled.
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 to 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.
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.
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.
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 of 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.
Wired Location Service
The switch uses the wired location service feature to send 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 notifies the MSE of device link up and link down events through the Network Mobility Services Protocol (NMSP) location and attachment notifications.
The MSE starts the NMSP connection to the switch, which opens a server port. When the MSE connects to the switch there are a set of message exchanges to establish version compatibility and service exchange information followed by location information synchronization. After connection, the switch periodically sends location and attachment notifications to the MSE. Any link up or link down events detected during an interval are aggregated and sent at the end of the interval.
When the switch determines the presence or absence of a device on a link-up or link-down event, it obtains the client-specific information such as the MAC address, IP address, and username. If the client is LLDP-MED- or CDP-capable, the switch obtains the serial number and UDI through the LLDP-MED location TLV or CDP.
Depending on the device capabilities, the switch obtains this client information at link up:
-
Slot and port specified in port connection
-
MAC address specified in the client MAC address
-
IP address specified in port connection
-
802.1X username if applicable
-
Device category is specified as a
wired station
-
State is specified as
new
-
Serial number, UDI
-
Model number
-
Time in seconds since the switch detected the association
Depending on the device capabilities, the switch obtains this client information at link down:
-
Slot and port that was disconnected
-
MAC address
-
IP address
-
802.1X username if applicable
-
Device category is specified as a
wired station
-
State is specified as
delete
-
Serial number, UDI
-
Time in seconds since the switch detected the disassociation
When the switch shuts down, it sends an attachment notification with the state
delete
and the IP address before closing the NMSP connection to the MSE. The MSE interprets this notification as disassociation for all the wired clients associated with the switch.
If you change a location address on the switch, the switch sends an NMSP location notification message that identifies the affected ports and the changed address information.
Configuring LLDP, LLDP-MED, and Wired Location Service
Default LLDP Configuration
Table 31-1 Default LLDP Configuration
|
|
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
|
Disabled to send and receive all TLVs
|
LLDP interface state
|
Disabled
|
LLDP receive
|
Disabled
|
LLDP transmit
|
Disabled
|
LLDP med-tlv-select
|
Disabled to send all LLDP-MED TLVs. When LLDP is globally enabled, LLDP-MED-TLV is also enabled.
|
Configuration Guidelines
-
If the interface is configured as a tunnel port, LLDP is automatically disabled.
-
If you first configure a network-policy profile on an interface, you cannot apply the
switchport voice vlan
command on the interface. If the
switchport voice vlan
vlan-id
is already configured on an interface, you can apply a network-policy profile on the interface. This way the interface has the voice or voice-signaling VLAN network-policy profile applied on the interface.
-
You cannot configure static secure MAC addresses on an interface that has a network-policy profile.
-
You cannot configure a network-policy profile on a private-VLAN port.
-
For wired location to function, you must first enter the
ip device tracking
global configuration command.
Enabling LLDP
Beginning in privileged EXEC mode, follow these steps to enable LLDP:
|
|
|
Step 1
|
configure terminal
|
Enter global configuration mode.
|
Step 2
|
lldp run
|
Enable LLDP globally on the switch.
|
Step 3
|
interface
interface-id
|
Specify the interface on which you are enabling LLDP, and enter interface configuration mode.
|
Step 4
|
lldp transmit
|
Enable the interface to send LLDP packets.
|
Step 5
|
lldp receive
|
Enable the interface to receive LLDP packets.
|
Step 6
|
end
|
Return to privileged EXEC mode.
|
Step 7
|
show lldp
|
Verify the configuration.
|
Step 8
|
copy running-config startup-config
|
(Optional) Save your entries in the configuration file.
|
To disable LLDP, use the
no
lldp run
global configuration command. To disable LLDP on an interface, use the
no lldp transmit
and the
no lldp receive
interface configuration commands.
This example shows how to globally enable LLDP.
Switch# configure terminal
This example shows how to enable LLDP on an interface.
Switch# configure terminal Switch(config)# interface gigabitethernet1/1 Switch(config-if)# lldp transmit Switch(config-if)# lldp receive
Configuring LLDP Characteristics
You can configure the frequency of LLDP updates, the amount of time to hold the information before discarding it, and the initialization delay time. You can also select the LLDP and LLDP-MED TLVs to send and receive.
Beginning in privileged EXEC mode, follow these steps to configure the LLDP characteristics.
Note Steps 2 through 5 are optional and can be performed in any order.
|
|
|
Step 1
|
configure terminal
|
Enter global configuration mode.
|
Step 2
|
lldp holdtime
seconds
|
(Optional) Specify the amount of time a receiving device should hold the information from your device before discarding it.
The range is 0 to 65535 seconds; the default is 120 seconds.
|
Step 3
|
lldp reinit
delay
|
(Optional) Specify the delay time in seconds for LLDP to initialize on an interface.
The range is 2 to 5 seconds; the default is 2 seconds.
|
Step 4
|
lldp timer
rate
|
(Optional) Set the sending frequency of LLDP updates in seconds.
The range is 5 to 65534 seconds; the default is 30 seconds.
|
Step 5
|
lldp tlv-select
|
(Optional) Specify the LLDP TLVs to send or receive.
|
Step 6
|
lldp med-tlv-select
|
(Optional) Specify the LLDP-MED TLVs to send or receive.
|
Step 7
|
end
|
Return to privileged EXEC mode.
|
Step 8
|
show lldp
|
Verify the configuration.
|
Step 9
|
copy running-config startup-config
|
(Optional) Save your entries in the configuration file.
|
Use the
no
form of each of the LLDP commands to return to the default setting.
This example shows how to configure LLDP characteristics.
Switch# configure terminal Switch(config)# lldp holdtime 120 Switch(config)# lldp reinit 2 Switch(config)# lldp timer 30
Configuring LLDP-MED TLVs
By default, the switch only sends LLDP packets until it receives LLDP-MED packets from the end device. It then sends LLDP packets with MED TLVs, as well. When the LLDP-MED entry has been aged out, it again only sends LLDP packets.
By using the lldp interface configuration command, you can configure the interface not to send the TLVs listed in
Table 31-2
.
Table 31-2 LLDP-MED TLVs
|
|
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
|
Beginning in privileged EXEC mode, follow these steps to enable a TLV on an interface:
|
|
|
Step 1
|
configure terminal
|
Enter global configuration mode.
|
Step 2
|
interface
interface-id
|
Specify the interface on which you are configuring an LLDP-MED TLV, and enter interface configuration mode.
|
Step 3
|
lldp med-tlv-select tlv
|
Specify the TLV to enable.
|
Step 4
|
end
|
Return to privileged EXEC mode.
|
Step 5
|
copy running-config startup-config
|
(Optional) Save your entries in the configuration file.
|
This example shows how to enable a TLV on an interface:
Switch# configure terminal Switch(config)# interface gigabitethernet1/1 Switch(config-if)# lldp med-tlv-select inventory-management
Configuring Network-Policy TLV
Beginning in privileged EXEC mode, follow these steps to create a network-policy profile, configure the policy attributes, and apply it to an interface.
|
|
|
Step 1
|
configure terminal
|
Enter global configuration mode.
|
Step 2
|
network-policy profile
profile number
|
Specify the network-policy profile number, and enter network-policy configuration mode. The range is 1 to 4294967295.
|
Step 3
|
{voice | voice-signaling} vlan [
vlan-id
{cos
cvalue
| dscp
dvalue
}
]
| [[dot1p {cos
cvalue
| dscp
dvalue
}] | none | untagged]
|
Configure the policy attributes:
voice
—Specify the voice application type.
voice-signaling
—Specify the voice-signaling application type.
vlan
—Specify the native VLAN for voice traffic.
vlan-id
—(Optional) Specify the VLAN for voice traffic. The range is 1 to 4094.
cos
cvalue
—(Optional) Specify 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) Specify the differentiated services code point (DSCP) value for the configured VLAN. The range is 0 to 63; the default is 0.
dot1p
—(Optional) Configure 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) Configure the telephone to send untagged voice traffic. This is the default for the telephone.
|
Step 4
|
exit
|
Return to global configuration mode.
|
Step 5
|
interface
interface-id
|
Specify the interface on which you are configuring a network-policy profile, and enter interface configuration mode.
|
Step 6
|
network-policy profile number
|
Specify the network-policy profile number.
|
Step 7
|
lldp med-tlv-select network-policy
|
Specify the network-policy TLV.
|
Step 8
|
end
|
Return to privileged EXEC mode.
|
Step 9
|
show network-policy profile
|
Verify the configuration.
|
Step 10
|
copy running-config startup-config
|
(Optional) Save 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-network-policy)# exit Switch(config)# interface gigabitethernet1/1 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
Configuring Location TLV and Wired Location Service
Beginning in privileged EXEC mode, follow these steps to configure location information for an endpoint and to apply it to an interface.
|
|
|
Step 1
|
configure terminal
|
Enter global configuration mode.
|
Step 2
|
location {admin-tag
string |
civic-location identifier
id |
elin-location
string
identifier
id}
|
Specify the location information for an endpoint.
-
admin-tag
—Specify an administrative tag or site information.
-
civic-location
—Specify civic location information.
-
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
|
exit
|
Return to global configuration mode.
|
Step 4
|
interface
interface-id
|
Specify the interface on which you are configuring the location information, and enter interface configuration mode.
|
Step 5
|
location {additional-location-information word |
civic-location-id
id
|
elin-location-id
id}
|
Enter location information for an interface:
additional-location-information
—Specify additional information for a location or place.
civic-location-id
—Specify global civic location information for an interface.
elin-location-id
—Specify emergency location information for an interface.
id—
Specify the ID for the civic location or the ELIN location. The ID range is 1 to 4095.
word
—Specify a word or phrase with additional location information.
|
Step 6
|
end
|
Return to privileged EXEC mode.
|
Step 7
|
show location admin-tag
string
or
show location civic-location identifier
id
or
show location elin-location identifier
id
|
Verify the configuration.
|
Step 8
|
copy running-config startup-config
|
(Optional) Save 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(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
Beginning in privileged EXEC mode, follow these steps to enable wired location service on the switch.
Note Your switch must be running the cryptographic (encrypted) software image to enable the nmsp global configuration commands.
|
|
|
Step 1
|
configure terminal
|
Enter global configuration mode.
|
Step 2
|
nmsp
enable
|
Enable the NMSP features on the switch.
|
Step 3
|
nmsp notification interval
{
attachment
|
location
} interval-seconds
|
Specify the NMSP notification interval.
attachment
—Specify the attachment notification interval.
location—
Specify the location notification interval.
interval-seconds—
Duration in seconds before the switch sends the MSE the location or attachment updates. The range is 1 to 30; the default is 30.
|
Step 4
|
end
|
Return to privileged EXEC mode.
|
Step 5
|
show network-policy profile
|
Verify the configuration.
|
Step 6
|
copy running-config startup-config
|
(Optional) Save your entries in the configuration file.
|
This example shows how to enable NMSP on a switch and to set the location notification time to 10 seconds:
Switch(config)# nmsp enable Switch(config)# nmsp notification interval location 10