[ovs-discuss] Queue of openvswitch running on openwrt
lin
linger_lilac at 163.com
Thu Aug 25 02:28:49 UTC 2016
problem description: data are still transmitted to queue 0 even when use set_queue:2
I created queues and then create flow by using "ovs-ofctl add-flow br0 actions=set_queue:2 --protocols=openflow13" , but no data are enqueued to queue 2, they are still enqueued
to queue 0. But if I use tc filter to set the rules, data could be transmitted to queue 2
I use the following command to create three queues:
ovs-vsctl -- set port br0 qos=@newqos \
-- --id=@newqos create qos type=linux-htb other-config:max-rate=40000000 queues=0=@q0,1=@q1,2=@q2 \
-- --id=@q0 create queue other-config:min-rate=10000000 other-config:max-rate=10000000 \
-- --id=@q1 create queue other-config:min-rate=20000000 other-config:max-rate=20000000 \
-- --id=@q2 create queue other-config:min-rate=30000000 other-config:max-rate=30000000
ovs-vsctl list qos:
-----------------------------
root at OpenWrt:~# ovs-vsctl list qos
_uuid : ab514b32-241f-4b9a-ad6e-5f755f9beb2a
external_ids : {}
other_config : {max-rate="40000000"}
queues : {0=17ecc2fe-e6d3-40cc-a6ea-ea6ae7a2ac57, 1=2b2b84f7-8bf0-405f-af5b-6dd6dc71d422, 2=56a4f14e-9ffd-4e1b-9d87-c0ddc39e975d}
type : linux-htb
--------------------------
ovs-vsctl list queue:
***************
root at OpenWrt:~# ovs-vsctl list queue
_uuid : 56a4f14e-9ffd-4e1b-9d87-c0ddc39e975d
dscp : []
external_ids : {}
other_config : {max-rate="30000000", min-rate="30000000"}
_uuid : 17ecc2fe-e6d3-40cc-a6ea-ea6ae7a2ac57
dscp : []
external_ids : {}
other_config : {max-rate="10000000", min-rate="10000000"}
_uuid : 2b2b84f7-8bf0-405f-af5b-6dd6dc71d422
dscp : []
external_ids : {}
other_config : {max-rate="20000000", min-rate="20000000"}
***************
tc results:
@@@@@@@@@@@@@@@
root at OpenWrt:~# tc -s class show dev br0
class htb 1:fffe root rate 40Mbit ceil 40Mbit burst 1495b cburst 1495b
Sent 32345529 bytes 248707 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 4480 ctokens: 4480
class htb 1:1 parent 1:fffe prio 0 rate 10Mbit ceil 10Mbit burst 1563b cburst 1563b
Sent 32345529 bytes 248707 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 248549 borrowed: 0 giants: 0
tokens: 18725 ctokens: 18725
class htb 1:2 parent 1:fffe prio 0 rate 20Mbit ceil 20Mbit burst 1562b cburst 1562b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 9775 ctokens: 9775
class htb 1:3 parent 1:fffe prio 0 rate 30Mbit ceil 30Mbit burst 1563b cburst 1563b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6516 ctokens: 6516
@@@@@@@@@@@@@@@
=====================
I use "ovs-ofctl add-flow br0 actions=set_queue:2 --protocols=openflow13" to enforce data to be transmitted to queue 2, but the data are still transmitted to queue 0:
OFPST_QUEUE reply (OF1.3) (xid=0x2): 3 queues
port LOCAL queue 0: bytes=32342937, pkts=248671, errors=0, duration=2987889752.3375967296s
port LOCAL queue 1: bytes=0, pkts=0, errors=0, duration=2987889752.3375967296s
port LOCAL queue 2: bytes=0, pkts=0, errors=0, duration=2987889752.3375967296s
====================
However, if I use tc filter to set the rules, data could be transmitted to queue 2:
--------------------
# tc filter add dev br0 parent 1: protocol ip prio 1 u32 match ip sport 80 0xffff flowid 1:1
# tc filter add dev br0 parent 1: protocol ip prio 9 u32 match u8 0 0 flowid 1:2
# tc filter add dev br0 parent 1: protocol ip prio 1 u32 match ip dport 25 0xffff flowid 1:3
# tc filter add dev br0 parent 1: protocol ip prio 1 u32 match ip dport 465 0xffff flowid 1:3
# ovs-ofctl queue-stats br0 --protocols=Openflow13
# tc filter add dev br0 parent 1: protocol ip prio 1 u32 match ip dport 6 0xffff flowid 1:3
root at OpenWrt:~# tc -s class show dev br0
class htb 1:fffe root rate 40Mbit ceil 40Mbit burst 1495b cburst 1495b
Sent 54297556 bytes 339175 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 4330 ctokens: 4330
class htb 1:1 parent 1:fffe prio 0 rate 10Mbit ceil 10Mbit burst 1563b cburst 1563b
Sent 33188566 bytes 196655 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 193180 borrowed: 0 giants: 0
tokens: 19025 ctokens: 19025
class htb 1:2 parent 1:fffe prio 0 rate 20Mbit ceil 20Mbit burst 1562b cburst 1562b
Sent 21108990 bytes 142520 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 138876 borrowed: 0 giants: 0
tokens: 9062 ctokens: 9062
class htb 1:3 parent 1:fffe prio 0 rate 30Mbit ceil 30Mbit burst 1563b cburst 1563b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6516 ctokens: 6516
--------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160825/0f8a34d6/attachment-0002.html>
More information about the discuss
mailing list