Bug 2060310
| Summary: | [RFE] Implement QoS minimum bandwidth rules | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux Fast Datapath | Reporter: | Rodolfo Alonso <ralonsoh> | |
| Component: | ovn22.03 | Assignee: | Ihar Hrachyshka <ihrachys> | |
| Status: | CLOSED ERRATA | QA Contact: | ying xu <yinxu> | |
| Severity: | medium | Docs Contact: | ||
| Priority: | medium | |||
| Version: | FDP 22.E | CC: | ctrautma, dalvarez, hakhande, ihrachys, jiji, ksundara, mheib, mmichels, shuali | |
| Target Milestone: | --- | Keywords: | FutureFeature, RFE | |
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | ovn22.03-22.03.0-74.el8fdp | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 2077681 (view as bug list) | Environment: | ||
| Last Closed: | 2022-10-11 12:21:17 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: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 2077681 | |||
|
Description
Rodolfo Alonso
2022-03-03 09:41:03 UTC
One important note is that, at the moment OVN is implementing QoS via netdev [0] and not using OVS meters when the parameters are applied to the LSP.options column [1] (instead of to the QoS table). If we want HW offload, since OVS meters are not yet supported we could take a similar approach using either netdev/iproute to allow for HW offload? [0] https://github.com/ovn-org/ovn/blob/5f7a985de0707539e4df1eab4c4150b24dbce622/controller/binding.c#L221 [1] https://github.com/ovn-org/ovn/blob/b988d5fa62d9dbecacb2c45defab8e7edde4c533/ovn-nb.xml#L1031-L1039 (In reply to Daniel Alvarez Sanchez from comment #1) > One important note is that, at the moment OVN is implementing QoS via netdev > [0] and not using OVS meters when the parameters are applied to the > LSP.options column [1] (instead of to the QoS table). > > If we want HW offload, since OVS meters are not yet supported we could take > a similar approach using either netdev/iproute to allow for HW offload? > > > [0] > https://github.com/ovn-org/ovn/blob/5f7a985de0707539e4df1eab4c4150b24dbce622/ > controller/binding.c#L221 > [1] > https://github.com/ovn-org/ovn/blob/b988d5fa62d9dbecacb2c45defab8e7edde4c533/ > ovn-nb.xml#L1031-L1039 This series should give us hw offload for ovs metering: https://patchwork.ozlabs.org/project/openvswitch/list/?series=293970 Minimalistic / backportable / no OVS metering implementation: https://patchwork.ozlabs.org/project/ovn/list/?series=297048 This is going to be included in upstream 22.06 release. ovn22.03 fast-datapath-rhel-9 clone created at https://bugzilla.redhat.com/show_bug.cgi?id=2115331 # rpm -qa|grep ovn
ovn22.03-central-22.03.0-95.el8fdp.x86_64
ovn22.03-host-22.03.0-95.el8fdp.x86_64
ovn22.03-22.03.0-95.el8fdp.x86_64
# ovn-nbctl show
switch 4e657969-0058-4761-943a-477fee48981c (s3)
port hv0_vm00_vnet1
addresses: ["00:de:ad:00:00:01 172.16.103.11"]
port hv0_vm01_vnet1
addresses: ["00:de:ad:00:01:01 172.16.103.12"]
port s3_r1
type: router
addresses: ["00:de:ad:ff:01:03 172.16.103.1"]
router-port: r1_s3
switch b69e3e01-6850-497b-8c73-b71cc9397b85 (public)
port public_r1
type: router
router-port: r1_public
port ln_p1
type: localnet
addresses: ["unknown"]
switch 16343f82-4ea6-4fc5-8dcd-564b098fba29 (s2)
port hv1_vm00_vnet1
addresses: ["00:de:ad:01:00:01 172.16.102.11"]
port hv1_vm01_vnet1
addresses: ["00:de:ad:01:01:01 172.16.102.12"]
port s2_r1
type: router
addresses: ["00:de:ad:ff:01:02 172.16.102.1"]
router-port: r1_s2
router e812e570-59d1-4260-b6a0-04738fb7e3d3 (r1)
port r1_s2
mac: "00:de:ad:ff:01:02"
networks: ["172.16.102.1/24"]
port r1_s3
mac: "00:de:ad:ff:01:03"
networks: ["172.16.103.1/24"]
port r1_public
mac: "40:44:00:00:00:03"
networks: ["172.16.104.1/24"]
gateway chassis: [hv1]
nat 299e7e7e-f916-447e-9d05-32d2a6ad99a0
external ip: "172.16.104.201"
logical ip: "172.16.103.11"
type: "dnat_and_snat"
nat 6d45b21e-f5c5-4ec4-b3ec-2dc3575acb91
external ip: "172.16.104.200"
logical ip: "172.16.102.11"
type: "dnat_and_snat"
:: [ 23:16:59 ] :: [ BEGIN ] :: Running 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_max_rate=2000000'
:: [ 23:16:59 ] :: [ PASS ] :: Command 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_max_rate=2000000' (Expected 0, got 0)
:: [ 23:16:59 ] :: [ BEGIN ] :: Running 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_min_rate=1000000'
:: [ 23:16:59 ] :: [ PASS ] :: Command 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_min_rate=1000000' (Expected 0, got 0)
:: [ 23:16:59 ] :: [ BEGIN ] :: Running 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_burst=2200000'
:: [ 23:16:59 ] :: [ PASS ] :: Command 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_burst=2200000' (Expected 0, got 0)
:: [ 23:16:59 ] :: [ BEGIN ] :: Running 'tc qdisc show | grep htb'
qdisc htb 1: dev ens3f0 root refcnt 65 r2q 10 default 0x1 direct_packets_stat 2 direct_qlen 1000
qdisc htb 1: dev ens3f1 root refcnt 65 r2q 10 default 0x1 direct_packets_stat 0 direct_qlen 1000
:: [ 23:16:59 ] :: [ PASS ] :: Command 'tc qdisc show | grep htb' (Expected 0, got 0)
:: [ 23:16:59 ] :: [ BEGIN ] :: Running 'tc class show dev ens3f1'
class htb 1:fffe root rate 10Gbit ceil 10Gbit burst 1250b cburst 1250b
class htb 1:2 parent 1:fffe prio 0 rate 1Mbit ceil 2Mbit burst 275000b cburst 275000b ---------------------------set success
:: [ 23:16:59 ] :: [ PASS ] :: Command 'tc class show dev ens3f1' (Expected 0, got 0)
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.16.104.201 () port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 14.00 2.06 --------------traffic shape
change qos set
:: [ 23:17:26 ] :: [ BEGIN ] :: Running 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_max_rate=20000000'
:: [ 23:17:26 ] :: [ PASS ] :: Command 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_max_rate=20000000' (Expected 0, got 0)
:: [ 23:17:26 ] :: [ BEGIN ] :: Running 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_burst=22000000'
:: [ 23:17:26 ] :: [ PASS ] :: Command 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_burst=22000000' (Expected 0, got 0)
:: [ 23:17:26 ] :: [ BEGIN ] :: Running 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_min_rate=10000000'
:: [ 23:17:26 ] :: [ PASS ] :: Command 'ovn-nbctl set Logical_Switch_Port ln_p1 options:qos_min_rate=10000000' (Expected 0, got 0)
:: [ 23:17:26 ] :: [ BEGIN ] :: Running 'tc qdisc show | grep htb'
qdisc htb 1: dev ens3f0 root refcnt 65 r2q 10 default 0x1 direct_packets_stat 15 direct_qlen 1000
qdisc htb 1: dev ens3f1 root refcnt 65 r2q 10 default 0x1 direct_packets_stat 7 direct_qlen 1000
:: [ 23:17:26 ] :: [ PASS ] :: Command 'tc qdisc show | grep htb' (Expected 0, got 0)
:: [ 23:17:27 ] :: [ BEGIN ] :: Running 'tc class show dev ens3f1'
class htb 1:fffe root rate 10Gbit ceil 10Gbit burst 1250b cburst 1250b
class htb 1:2 parent 1:fffe prio 0 rate 10Mbit ceil 20Mbit burst 2750000b cburst 2750000b -------------------change right
:: [ 23:17:27 ] :: [ PASS ] :: Command 'tc class show dev ens3f1' (Expected 0, got 0)
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.16.104.201 () port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 11.16 21.01 -------------traffic shape
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (ovn22.03 bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:6870 |