[ovs-discuss] QoS Queue Priority Range

Santhosh R P santhosh007ece at gmail.com
Mon Jan 9 18:56:11 UTC 2017


Hi,

In the ovs-vswitchd.conf.db.5 manual, the range for "other_config :
priority" in Queue table is mentioned as 0 to 4,294,967,295 (same as the
number of queues that can be created).
It is also mentioned that "Specific priority values are unimportant;
only relative
ordering matters."

The HTB qdisc, on the other hand, has queue priority ranging from 0 to 7. I
am not very sure if HFSC can be configured with priority values for queues.

So, essentially if I create 6 queues from OVS with priority 1000, 1001,
1002, 1003, 1004 and 1005, by relative ordering, in tc-htb, the priority
values must be 0 to 5 or 1 to 6.
If this is not possible, I can use the HTB range directly, instead of
choosing from a larger priority range.

What happens instead is, any priority value greater than 7 in OVS is
assigned as 7 when I check that using tc, regardless of the number of
queues created.

Is there an algorithm that provides the relative ordering for the priority?
Is there a reason behind this design principle, instead of letting the user
choose the range as in HTB?


Here are some examples:

Please ignore the gQos[x][x] for min and max rates.

ovs-vsctl set port eno1 qos=@newqos -- --id=@newqos create qos
type=linux-htb queues:1=@q1 queues:2=@q2 queues:3=@q3 queues:4=@q4
queues:5=@q5 queues:6=@q6 queues:7=@q7 queues:8=@q8 -- --id=@q1 create
queue other_config:*priority=10* other-config:min-rate=" + gQos[0][0] + "
other-config:max-rate=" + gQos[0][1] + " -- --id=@q2 create queue
other-config:*priority=20* other-config:min-rate=" + gQos[1][0] + "
other-config:max-rate=" + gQos[1][1] + " -- --id=@q3 create queue
other-config:*priority=30* other-config:min-rate=" + gQos[2][0] + "
other-config:max-rate=" + gQos[1][1] + " -- --id=@q4 create queue
other-config:*priority=40* other-config:min-rate=" + gQos[3][0] + "
other-config:max-rate=" + gQos[1][1] + " -- --id=@q5 create queue
other-config:priority=50 other-config:min-rate=" + gQos[4][0] + "
other-config:max-rate=" + gQos[4][1] + " -- --id=@q6 create queue
other-config:*priority=60* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q7 create queue
other-config:*priority=70* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q8 create queue
other-config:*priority=80* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1]

>From tc -s -d class show dev eno1

class htb 1:2 parent 1:fffe prio 7 quantum 200000 rate 524288Kbit ceil
1000Mbit burst 1507b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:3 parent 1:fffe prio 7 quantum 200000 rate 524288Kbit ceil
1000Mbit burst 1507b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:4 parent 1:fffe prio 7 quantum 200000 rate 419430Kbit ceil
1000Mbit burst 1520b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:5 parent 1:fffe prio 7 quantum 200000 rate 314573Kbit ceil
1000Mbit burst 1533b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:6 parent 1:fffe prio 7 quantum 200000 rate 209715Kbit ceil
1000Mbit burst 1546b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:7 parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:8 parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:9 parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0

-----------------------------------------------

ovs-vsctl set port eno1 qos=@newqos -- --id=@newqos create qos
type=linux-htb queues:1=@q1 queues:2=@q2 queues:3=@q3 queues:4=@q4
queues:5=@q5 queues:6=@q6 queues:7=@q7 queues:8=@q8 queues:9=@q9
queues:10=@q10 queues:11=@q11 queues:12=@q12 queues:13=@q13 -- --id=@q1
create queue other_config:*priority=1* other-config:min-rate=" + gQos[0][0]
+ " other-config:max-rate=" + gQos[0][1] + " -- --id=@q2 create queue
other-config:*priority=2* other-config:min-rate=" + gQos[1][0] + "
other-config:max-rate=" + gQos[1][1] + " -- --id=@q3 create queue
other-config:*priority=3* other-config:min-rate=" + gQos[2][0] + "
other-config:max-rate=" + gQos[1][1] + " -- --id=@q4 create queue
other-config:*priority=4* other-config:min-rate=" + gQos[3][0] + "
other-config:max-rate=" + gQos[1][1] + " -- --id=@q5 create queue
other-config:*priority=5* other-config:min-rate=" + gQos[4][0] + "
other-config:max-rate=" + gQos[4][1] + " -- --id=@q6 create queue
other-config:*priority=6* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q7 create queue
other-config:*priority=7* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q8 create queue
other-config:*priority=8* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q9 create queue
other-config:*priority=9* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q10 create queue
other-config:*priority=10* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q11 create queue
other-config:*priority=11* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q12 create queue
other-config:*priority=12* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1] + " -- --id=@q13 create queue
other-config:*priority=13* other-config:min-rate=" + gQos[5][0] + "
other-config:max-rate=" + gQos[5][1]
>From tc -s -d class show dev eno1

class htb 1:fffe root rate 1000Mbit ceil 1000Mbit burst 1375b/1 mpu 0b
overhead 0b cburst 1375b/1 mpu 0b overhead 0b level 7
class htb 1:1 parent 1:fffe prio 0 quantum 1500 rate 12000bit ceil 1000Mbit
burst 1563b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b level 0
class htb 1:2 parent 1:fffe prio 1 quantum 200000 rate 524288Kbit ceil
1000Mbit burst 1507b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:3 parent 1:fffe prio 2 quantum 200000 rate 524288Kbit ceil
1000Mbit burst 1507b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:4 parent 1:fffe prio 3 quantum 200000 rate 419430Kbit ceil
1000Mbit burst 1520b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:5 parent 1:fffe prio 4 quantum 200000 rate 314573Kbit ceil
1000Mbit burst 1533b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:6 parent 1:fffe prio 5 quantum 200000 rate 209715Kbit ceil
1000Mbit burst 1546b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:7 parent 1:fffe prio 6 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:8 parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:9 parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:a parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:b parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:c parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:d parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0
class htb 1:e parent 1:fffe prio 7 quantum 200000 rate 104858Kbit ceil
1000Mbit burst 1559b/1 mpu 0b overhead 0b cburst 1500b/1 mpu 0b overhead 0b
level 0

If I create 1000 queues with consecutive priorities from 1 to 1000, will
all queues from 8 to 1000 have the same priority as queue 8 in tc?
Or, am I missing something here to make it work?

Best Regards,
Santhosh.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20170109/46b7ba35/attachment.html>


More information about the discuss mailing list