On 11/1/21 8:52 AM, jx8zjs wrote:
> Fix bug 1826168: bridge type network with ovs bridge can start with Qos
> setting which do not take any effect
> 
> Resolves:https://bugzilla.redhat.com/show_bug.cgi?id=1826168
> Signed-off-by: jx8zjs <jx8...@126.com>
> ---
>  tools/virsh-domain.c | 34 +++++++++++++++++++++++++++++++---
>  1 file changed, 31 insertions(+), 3 deletions(-)

I don't think this is right. The bug is about setting QoS on the bridge
itself not TAP devices plugged into it. From the bug, this is the QoS
setting:

 <bandwidth> 
   <inbound average='1000' peak='5000' burst='5120'/>
   <outbound average='128' peak='256' burst='256'/>
 </bandwidth>

And this is the resulting tc setting:

# tc qdisc show dev virbr0 
qdisc htb 1: root refcnt 2 r2q 10 default 0x2 direct_packets_stat 0 direct_qlen 
1000
qdisc sfq 2: parent 1:2 limit 127p quantum 1514b depth 127 divisor 1024 perturb 
10sec 
qdisc ingress ffff: parent ffff:fff1 ---------------- 

# tc class show dev virbr0 
class htb 1:1 root rate 8Mbit ceil 40Mbit burst 1600b cburst 1600b 
class htb 1:2 parent 1:1 leaf 2: prio 0 rate 8Mbit ceil 40Mbit burst 5Mb cburst 
1600b 

# tc filter show dev virbr0 
filter parent 1: protocol all pref 1 fw chain 0 
filter parent 1: protocol all pref 1 fw chain 0 handle 0x1 classid :1

# tc filter show dev virbr0 ingress
filter parent ffff: protocol all pref 49152 u32 chain 0 
filter parent ffff: protocol all pref 49152 u32 chain 0 fh 800: ht divisor 1 
filter parent ffff: protocol all pref 49152 u32 chain 0 fh 800::800 order 2048 
key ht 800 bkt 0 flowid :1 not_in_hw 
  match 00000000/00000000 at 0
 police 0x1 rate 1024Kbit burst 256Kb mtu 64Kb action drop overhead 0b 
        ref 1 bind 1


what this does is when there's an <interface/> from this network
(without its own QoS) in a guest, it is rate limited by default.
Moreover, if there are two interfaces, with no QoS set, then they share
the same rate, which means in this case that they both share 1mbps
bandwidth. It does NOT mean that each <interface/> has its own 1mbps
bandwidth to spare. The only way to achieve this behaviour is to set QoS
on the bridge itself and not individual interfaces.

Michal

Reply via email to