Anda di halaman 1dari 5

ProCurve VoIP, LLDP-MED, and QoS

Posted by Jeff Brownell

LLDP-MED

Link Layer Discovery Protocol (LLDP) is an ieee standard protocol defined in 802.1AB. It's used
to discover directly attached devices (switches, routers, IP Phones, etc.). LLDP advertisements are
encapsulated in LLDP Data Units (LLDPDU) via Type Length Values (TLV). The standard defines two
types of TLVs: Standard and Optional.

LLDP devices must support the advertisement of Standard TLVs (Chassis ID, Port ID, TTL, etc.),
and may also include optional TLVs'. These optional TLVs' are where vendor specific advertisements
would be defined (model, firmware, PoE, QoS, etc.).

VLANs
Typically IP Phones have a single port that supports both a PC and the phone vlan. Generally the data
VLAN is left untagged and the voice VLAN is tagged. There are three ways that the IP telephone can
learn its voice VLAN:
1) Manually set it on the phone.
2) DHCP options The phone sends DHCP requests over the data VLAN, and the DHCP server offer
will include vendor specific DHCP options including the voice VLAN.
3) Use a discovery protocol LLDP-MED or CDPv2. Here, the phone will discover the voice VLAN
from the switch.
On Provision switches using LLDP-MED, you must first enable lldp globally and then set the
parameter voice in the vlan context for the switch to accept LLDP-MED TLV advertisements.
hp(config)# lldp run
hp(config)# vlan 100
hp(vlan-100) name "VOICE"
hp(vlan-100) tagged <interfaces >
hp(vlan-100) voice Use lldp-med TLVs sent from the phone
hp(vlan-100) exit
QoS

There are two commonly used QoS marking methods; ClassofService (CoS) at Layer 2 and
Differentiated Service Code Point (DSCP) at Layer 3.
CoS marking (also known as 802.1p) has 8 levels, numbered 07 which map to 8 priority queues
on the output (egress) of each Ethernet port. The CoS marking can be set in tagged frames only
since the priority field (802.1p) is part of the VLAN tag. Untagged frames are placed in the CoS
level 0 priority queue (or normal).
On most HP switches the CoS values 07 map to priority queues like so:
[1] [2] [0] [3] [4] [5] [6] [7]

Therefore, a CoS 0 priority will be mapped to hardware output queue Q3 and take precedence
over frames marked 1 & 2. Most HP edge switches have 8 output queues and is configurable to
have 4 or 2 if desired.
hp(config)# qos queue-config
2-queues
Set the number of egress queues for each port.
4-queues
Set the number of egress queues for each port.
8-queues
Set the number of egress queues for each port.
hp(config)# qos queue-config 4-queues
This command will modify the current running configuration,
execute 'write memory' to replace the startup configuration,
and then reboot.
Egress queues will be configured as follows:
4-queues
Do you want to save current configuration [y/n/^C]?

The default mapping of CoS values to output queues on an HP edge switch looks like this:

In voice deployments, generally the Ethernet switch port is configured to support 2 VLANs, one for
voice and one for data. LLDP is enabled on these Ethernet ports and can be configured to advertise
voice VLAN ID and QoS information using the Network Policy LLDP TLV.
Generally I set prioritization queues for voice, video, and switch control plane traffic on edge switches
as:
Priority Traffic
7
Control plane
6
Routing
5
IP voice
4
IP video
3
Voice signaling
0
Normal Data
1
http, bulk transfer, etc.
2
http, bulk transfer, etc.
The priority can either be set on the interface or the vlan. If you set the priority at the interface level,
the switch will not be able to distinguish normal data traffic from voice.
QoS can also be used to prioritize traffic globally on TCP/UDP port based traffic. This can be used on
soft phones since the switch doesnt know the difference between normal data traffic and soft phone
voice traffic.
VLAN based prioritization applies to the 802.1p flag in a tagged (trunked) packet. Therefore it will only
prioritize tagged traffic for the vlan it is set in. As such, the untagged vlan doesnt have the 802.1p
header and therefore will remain at normal priority (priority 0).

Trust vs. Non-Trust QoS Modeling


Trust Model
In TRUST model, the edge switch accepts (or trusts) the phones QoS markings without modifying the
priority. Procurve switches default setting is trust.
If the frame is routed, the MAC header is stripped before routing the packet to its destination. To keep
the priority across routers use DSCP. To prevent users over-riding priority settings, use strict priority
provisioning with CoS and/or DSCP as well.
Non-Trusted Model
In most environments the trust model is fine. Otherwise you can strictly provision COS priority per
interface or vlan. You can also globally prioritize traffic based on TCP/UDP port numbers. Additionally
you can create a Classifier base QoS Policy to prioritize traffic.

LLDP and QoS example


The following example shows the use of LLDP-MED and strict QoS provisioning to modify the default
settings. The VoIP VLAN is set through LLDP-MED and qos is set via DSCP:

Enable LLDP globally


2920(config)# lldp run
Enable Differential Code Services proritization
2920(config)# qos type-of-service diff-services
Create and configure the telephony VLAN where all of the telephony equipment will run
2920(config)# vlan 10
2920 (vlan-10)# name VOICE_SIGNALING
2920 (vlan-10)# qos dscp 011000
(802.1p pri 3)
Create and configure the voice VLAN
2920(config)# vlan 20
2920 (vlan-20)# name VOICE
2920 (vlan-20)# qos dscp 011110
2920 (vlan-20)# voice
Create and configure the VIDEO VLAN
2920(config)# vlan 30
2920 (vlan-30)# name VIDEO
2920 (vlan-30)# qos dscp 011100

(802.1p pri 5)
Accept lldp-med TLV's

(802.1p pri 4)

Create and configure the data VLAN.


2920(config)# vlan 40
2920 (vlan-40)# name DATA
2920 (vlan-40)# qos dscp 010010

(802.1p pri 0 - Normal)

Advanced QoS on Provision


In some cases you may want to reduce the number of hardware queues to 4 or 2. This would allow
resources that are by default shared across 8 queues to be shared across 4 or 2 queues. Example:
hp(config)# qos queue-config 4-queues

This changes the switch to only use 4 queues (needs a reboot to take affect). You use the show qos
queue to verify
hp# show qos queue-config
802.1p
Queue Pri
Memory %
----- ---------1
12
10
2
0,3
70
3
45
10
4
67
10
The amount of packet buffer memory allocated to the queues is pre-defined and not user configurable.

However, the user can change the amount of Guaranteed Minimum Bandwidth (GMB) allocated to
each queue. The default GMB queue settings are:

These defaults can be viewed with the following command:


hp# show bandwidth output 1-5
Outbound Guaranteed Minimum Bandwidth %
Port
-----1
2
3
4
5

Q1
--2
2
2
2
2

Q2
--3
3
3
3
3

Q3
--30
30
30
30
30

Q4
--10
10
10
10
10

Q5
--10
10
10
10
10

Q6
--10
10
10
10
10

Q7
--15
15
15
15
15

Q8
--20
20
20
20
20

These GMB values can be changed on interfaces. This command is for interface 1 through to 5:
hp(config)# int 1-5 bandwidth-min output 2 3 30 10 20 15 10 10
TThis is for 8-queues, if you had the switch set to 4-queues then then only 4 GMB values is used. The
percentages allowed to the queues should add up to 100%. In the above example GMB for Q5 (video)
and Q6 (voice) pulls bandwidth from the default settings of Q7 (routing traffic) and Q8 (net mgmt).
hp(config)# show bandwidth output 1-5
Outbound Guaranteed Minimum Bandwidth %

Port
-----1
2
3
4
5

Q1
--2
2
2
2
2

Q2
--3
3
3
3
3

Q3
--30
30
30
30
30

Q4
--10
10
10
10
10

Q5
--20
20
20
20
20

Q6
--15
15
15
15
15

Q7
--10
10
10
10
10

Q8
--10
10
10
10
10