ovirt-engine icon indicating copy to clipboard operation
ovirt-engine copied to clipboard

Changing vlan on network with QOS remains unused tc classes and filters

Open mwperina opened this issue 2 years ago • 1 comments

reated attachment 1899425 [details] qos

Steps to Reproduce:

  1. Create non-bridged vlan network with qos params: no_br_100, vlan 100, qos_30_50_10 (qos.png), and attach this network to host interface. You will see these tc parameters:

tc qdisc show dev enp7s0

qdisc hfsc 1389: root refcnt 2 default 1388 qdisc fq_codel 64: parent 1389:64 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 1388: parent 1389:1388 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc ingress ffff: parent ffff:fff1 ----------------

tc class show dev enp7s0

class hfsc 1389: root class hfsc 1389:1388 parent 1389: leaf 1388: ls m1 0bit d 0us m2 240bit class hfsc 1389:64 parent 1389: leaf 64: rt m1 0bit d 0us m2 10Mbit ls m1 0bit d 0us m2 240bit ul m1 0bit d 0us m2 50Mbit

tc filter show dev enp7s0

filter parent 1389: protocol all pref 100 basic chain 0 filter parent 1389: protocol all pref 100 basic chain 0 handle 0x1 flowid 1389:64 meta(vlan eq 100)

filter parent 1389: protocol all pref 5000 u32 chain 0 filter parent 1389: protocol all pref 5000 u32 chain 0 fh 800: ht divisor 1 filter parent 1389: protocol all pref 5000 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid :1388 not_in_hw match 00000000/00000000 at 0

2.Change network vlan to 101, and You will see these parameters (Actual results):

tc qdisc show dev enp7s0

qdisc hfsc 1389: root refcnt 2 default 1388 qdisc fq_codel 64: parent 1389:64 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 1388: parent 1389:1388 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 65: parent 1389:65 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc ingress ffff: parent ffff:fff1 ----------------

tc class show dev enp7s0

class hfsc 1389: root class hfsc 1389:1388 parent 1389: leaf 1388: ls m1 0bit d 0us m2 240bit class hfsc 1389:64 parent 1389: leaf 64: rt m1 0bit d 0us m2 10Mbit ls m1 0bit d 0us m2 240bit ul m1 0bit d 0us m2 50Mbit class hfsc 1389:65 parent 1389: leaf 65: rt m1 0bit d 0us m2 10Mbit ls m1 0bit d 0us m2 240bit ul m1 0bit d 0us m2 50Mbit

tc filter show dev enp7s0

filter parent 1389: protocol all pref 100 basic chain 0 filter parent 1389: protocol all pref 100 basic chain 0 handle 0x1 flowid 1389:64 meta(vlan eq 100)

filter parent 1389: protocol all pref 101 basic chain 0 filter parent 1389: protocol all pref 101 basic chain 0 handle 0x1 flowid 1389:65 meta(vlan eq 101)

filter parent 1389: protocol all pref 5000 u32 chain 0 filter parent 1389: protocol all pref 5000 u32 chain 0 fh 800: ht divisor 1 filter parent 1389: protocol all pref 5000 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid :1388 not_in_hw match 00000000/00000000 at 0

Expected results:

tc qdisc show dev enp7s0

qdisc hfsc 1389: root refcnt 2 default 1388 qdisc fq_codel 1388: parent 1389:1388 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 65: parent 1389:65 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc ingress ffff: parent ffff:fff1 ----------------

tc class show dev enp7s0

class hfsc 1389: root class hfsc 1389:1388 parent 1389: leaf 1388: ls m1 0bit d 0us m2 240bit class hfsc 1389:65 parent 1389: leaf 65: rt m1 0bit d 0us m2 10Mbit ls m1 0bit d 0us m2 240bit ul m1 0bit d 0us m2 50Mbit

tc filter show dev enp7s0

filter parent 1389: protocol all pref 101 basic chain 0 filter parent 1389: protocol all pref 101 basic chain 0 handle 0x1 flowid 1389:65 meta(vlan eq 101)

filter parent 1389: protocol all pref 5000 u32 chain 0 filter parent 1389: protocol all pref 5000 u32 chain 0 fh 800: ht divisor 1 filter parent 1389: protocol all pref 5000 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid :1388 not_in_hw match 00000000/00000000 at 0

So you see that filters and classes for vlan 100 remain, if you will change vlan again and again the tc classes and filters from previous vlans remain.

Created from https://bugzilla.redhat.com/show_bug.cgi?id=2111062

mwperina avatar Oct 11 '22 10:10 mwperina

Ovirt version 4.50.0.12

xtron avatar Feb 27 '23 13:02 xtron