Bug 1628108

Summary: Qos linxu-htb does not work for ovs dpdk case
Product: Red Hat Enterprise Linux 7 Reporter: liting <tli>
Component: openvswitchAssignee: Eelco Chaudron <echaudro>
Status: CLOSED NOTABUG QA Contact: liting <tli>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.6CC: atragler, ctrautma, echaudro, haili, qding
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-09-18 11:00:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description liting 2018-09-12 09:00:13 UTC
Description of problem:
configure qos linux-htb policy, and found the it does not work for dpdk case

Version-Release number of selected component (if applicable):
dpdk-17.11-7.el7.x86_64.rpm
dpdk-tools-17.11-7.el7.x86_64.rpm
openvswitch-2.9.0-55.el7fdp.x86_64.rpm

How reproducible:


Steps to Reproduce:
1. Add ovs bridge
ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev

2. Add dpdk0 port to ovs bridge
ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:04:00.0

3. Add two guest port to ovs bridge  
 ovs-vsctl add-port ovsbr0 vhost0 -- set interface vhost0 type=dpdkvhostuser ofport_request=5
 ovs-vsctl add-port ovsbr0 vhost1 -- set interface vhost1 type=dpdkvhostuser ofport_request=6

4. Configure the htb policy on the guest port
ovs-vsctl set port dpdk0 qos=@newqos -- --id=@newqos create qos type=linux-htb other-config:max-rate=200000000 other-config:min-rate=100000000 queues:123=@vhost0queue queues:234=@vhost1queue -- --id=@vhost0queue create queue other-config:max-rate=20000000 other-config:min-rate=10000000 -- --id=@vhost1queue create queue other-config:max-rate=40000000 other-config:min-rate=20000000

5. Configure the openflow
ovs-ofctl add-flow ovsbr0 in_port=5,actions=set_queue:123,normal
ovs-ofctl add-flow ovsbr0 in_port=6,actions=set_queue:234,normal
ovs-ofctl add-flow ovsbr0 actions=NORMAL


6. start guest1 and guest2.
guest1 start netperf server, guest2 do the netperf testing.

Actual results:
When enable linux-htb policy on dpdk0, the result was same with without linux-htb policy.

Expected results:
The linux-htb policy should work for ovs dpdk case.max-rate, min-rate should be take effect.

Additional info:

Comment 2 Eelco Chaudron 2018-09-18 11:00:06 UTC
The linux-* types are for the Linux datapath only. For the DPDK datapath you need the egress-policer type, which is the only support one for DPDK.