HP Switch (ProVision) QoS Guide

Coming from a Cisco QoS background, I wanted to get a good grasp on HP QoS with the ProVision switches, but there isn’t much information out there (besides the Advanced Traffic Management Guide by HP).  This post should should consolidate some of that information, and is based on the the Advanced Traffic Management Guide, various vendor HP interopability guides, and talks with some of the guys over at HP Networking.

HP QoS Basics:

The 4 components of HP ProVision QoS are:

  1. Enable QoS
  2. Decide how many traffic queues you need
  3. Assign guaranteed minimum bandwidth (GMB)/traffic servicing per queue
  4. Classify traffic and assign to 802.1p priority

These four steps can be achieved with a single command (almost like an Auto QoS). This command enables QoS, the 8 queue model, GMB, and DSCP-to-802.1p mappings of the primary DSCP values.

HP(config)# qos type-of-service diff-services

Now that QoS has been enabled, we can look at how HP maps 802.1p priorities to each queue:

HP# show qos queue-config
Egress Queue Configuration

Queue      802.1p Priority
——-          ————
1                1
2                2
3                0
4                3
5                4
6                5
7                6
8                7

As you can see, traffic goes into queue 3 by default (802.1p – 0), background or scavenger traffic would be assigned to 802.1 priority 1 or 2, and more important traffic assigned to priorities 3-7.  Now that we know where the traffic is going, let’s look at the bandwidth assigned to each queue:

HP# show bandwidth output 1

Outbound Guaranteed Minimum Bandwidth %
Port   Q1   Q2   Q3  Q4   Q5   Q6   Q7   Q8
——   —    —    —    —    —    —    —    —
1         2      3     30   10   10   10    15   20

Traffic with priority 1 or 2 gets the least amount of guaranteed bandwidth at 2% and 3%.  Default traffic is guaranteed 30%, and we see that the upper queue’s (7 and 8) get 15% and 20% respectively.  Note that this is just guaranteed minimum bandwidth (GMB), not shaping or policing.  If the other queues are not full, traffic can burst above their guaranteed rate.  If the default values do not fit your network needs, the values can be changed on a port-by-port basis:

HP(config)# interface 1 bandwidth-min output 1 1 10 1 5 1 1 80

HP# show bandwidth output 1

Outbound Guaranteed Minimum Bandwidth %
Port   Q1   Q2   Q3  Q4   Q5   Q6   Q7   Q8
——   —    —    —    —    —    —    —    —
1         1     1     10     1      5      1     1      80

HP also does time-slicing per queue, depending on the assigned GMB.  For example, by default, traffic in queue 3 (GMB=30%) will be serviced at 30% of the time window before servicing the next queues packets.  With the modified GMB properties directly above, queue 8 would be serviced at 80% of the time before moving to the next queues.

There are also memory buffers assigned to each queue, but those are platform dependent and not publicly available (they are also not configurable).

Finally, we can view the default DSCP-to-802.1p Priority mappings:

HP# show qos dscp-map
DSCP -> 802.p priority mappings
NOTE: ‘qos type-of-service diff-services’ must be configured before DSCP is honored on inbound traffic.

DSCP CodePoint    DSCP Value    802.1p tag      DSCP Policy name
————————    —————–    ————–       ——————————–
000000                      0                         0                       cs0
000001                      1                         No-override
000010                      2                         No-override
000011                      3                         No-override
000100                      4                         No-override
000101                      5                         No-override
000110                      6                         No-override
000111                      7                         No-override
001000                      8                         1                        cs1
001001                      9                         No-override
001010                      10                       1                        af11
001011                      11                       No-override
001100                      12                       1                        af12
001101                      13                       No-override
001110                      14                       2                        af13
001111                      15                       No-override
010000                      16                       2                        cs2
010001                      17                       No-override
010010                      18                       0                        af21
010011                      19                       No-override
010100                      20                       0                        af22
010101                      21                       No-override
010110                      22                       3                        af23
010111                      23                       No-override
011000                      24                       3                        cs3
011001                      25                       No-override
011010                      26                       4                        af31
011011                      27                       No-override
011100                      28                       4                        af32
011101                      29                       No-override
011110                      30                       5                        af33
011111                      31                       No-override
100000                      32                       4                        cs4
100001                      33                       No-override
100010                      34                       6                        af41
100011                      35                       No-override
100100                      36                       6                        af42
100101                      37                       No-override
100110                      38                       7                        af43
100111                      39                       No-override
101000                      40                       5                        cs5
101001                      41                       No-override
101010                      42                       No-override
101011                      43                       No-override
101100                      44                       No-override
101101                      45                       No-override
101110                      46                       7                        ef
101111                      47                       No-override
110000                      48                       6                        cs6
110001                      49                       No-override
110010                      50                       No-override
110011                      51                       No-override
110100                      52                       No-override
110101                      53                       No-override
110110                      54                       No-override
110111                      55                       No-override
111000                      56                       7                        cs7
111001                      57                       No-override
111010                      58                       No-override
111011                      59                       No-override
111100                      60                       No-override
111101                      61                       No-override
111110                      62                       No-override
111111                      63                       No-override

As you can see, by default, EF traffic is assigned a priority of 7, placed in queue 8, and therefore given a GMB of 20%.

If your traffic comes into the switch with DSCP values, then verify the default DSCP-to-priority mapping meets your application’s needs.  If not, you can assign the DSCP value to a different priority with the following command:

HP(config)# qos dscp-map af31 priority 5

If your application traffic does not come into the switch with a DSCP value, then you will need to classify the traffic and assign it a priority.  This can be done based off MAC address, IP address, VLAN ID, L3 Protocol, and L4 ports.  I’m not going to go through how to classify traffic with an access-list in this post, maybe in the future!

Here are a couple other interesting facts/suggestions related to ProVision QoS:

Only Egress queuing can be enabled.  There is no ingress queuing.  Egress queuing is most important, and even according to Cisco’s Medianet QoS 4.0 document, ingress queuing is not a requirement in an QoS implementation.

If you do not need to classify traffic into 8 queues, using the 4 queue model will increase the memory buffer available to each queue.  By default, the 4 queue model also has a higher GMB for EF traffic, which means EF traffic is serviced more frequently.

There is not a “strict priority queue” (like Cisco’s “Priority Queue Out”).  If you purely want a “strict priority queue” and do not care about other traffic, you can change the GMB and assign 100% of the bandwidth to the highest queue.

Daniel, I just need to implement QoS for ShoreTel VoIP and I don’t care about all this other stuff, what do I need to do? Just use the switch command “qos type-of-service diff-services” and you are set!  ShoreTel classifies voice traffic as EF and call control as AF31.  If you want to guarantee more bandwidth to ShoreTel, then I would also use the 4 queue model.

Supported Switches:  This guide is based off the HP 2920, 3800, 5400, and 8200 series of switches.

Advertisements

7 comments

  1. You say, “If you do not need to classify traffic into 8 queues, using the 4 queue model will increase the memory buffer available to each queue.”
    If the command “qos type-of-service diff-services” enables the 8-queue model, which command enables a 4-queue model?

    • Good point Craig! “qos type-of-service diff-services” is still required to enable qos, but the command “qos queue-config [2-queues | 4-queues | 8-queues]” will change the number of queues. Be careful, as this command will also perform a “write memory” followed by a switch reboot.

  2. Excellent article. Seems like I only need to turn on QoS with the one command as you stated in last paragraph, but don’t I need to set the QoS rule for the Voice VLAN? Such as qos dscp 101110?

    example…
    vlan 21
    name “Voice”
    tagged 2
    ip address x.x.x.x m.m.m.m
    qos dscp 101110
    exit

    • As long as your devices are correctly tagging traffic with DSCP/COS values, you do not need to manually set DSCP values for the entire VLAN. The command you referenced above would classify ALL traffic in that VLAN as EF, even if its just call control traffic, or TFTP traffic as the phones download new firmware.

  3. Great article, Thank you. Quick question does the “Voice” command enable any QoS settings on Provision? Or is the ” qos type-of-service diff-services” still needed when using a voice vlan. I was reading in the designated vlan explained guide for the 5400ZL and the following is mentioned which confuses me:
    Voice VLAN QoS Prioritizing (Optional), without configuring the switch to prioritize voice VLAN following conditions applies:
    If the ports in a voice VLAN are not tagged members then the switch forwards all traffic on that VLAN at “normal” priority.
    If the ports in a voice VLAN are tagged members then the switch forwards all traffic on that VLAN at whatever priority the traffic has when received inbound on the switch.

    Thank you

    • It’s been a while since I worked on Procurve switches, but based on your quote from the guide, my understanding is that “qos type-of-service diff-services” was needed to assign traffic queues and reserve bandwidth. Without it, the switch may still preserve DSCP values, but won’t take action on them.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s