[PATCHv2 0/6] virDomain: fix problems when setting qos on ovs managed

jx8zjs jx8zjs at 126.com
Tue Aug 17 04:38:10 UTC 2021


diff to v1:
  - Modify commit message to no longer then 80 characters.
  - Split patch into several commits
  - Add notes on some function and defination
  - Extract common code block to a single function
Thanks to Pavel Hrdina for helping to review these patches.

Two problems are found and fixed below:
1. Ingress rules is not clean on previous version of 
2. If errors occurs when removing inbound qos on multi interfaces vm, some
rules may not be delete as aspected.

Fix by:
1.Instead of cleaning all qos rules each time new qos is set, tx and rx's qos
are set or cleaned respectively.
2.Replace virReportError with VIR_WARN to let the cleaning process continue 
when error occurs.
3.Add ifname into ovs querying statements, which will reduce failure of 
removing qos on the other interfaces of the same vm.

Test virNetDevOpenvswitchInterfaceSetQos and 
virNetDevOpenvswitchInterfaceClearQos with dryrun method.
Since commands in tests are not actually run, it is difficult to emulate 
some complex senario, such as set and then update qos. So basic tests are
 added in patches.

Jinsheng Zhang (6):
  virnetdevovs: Add vmuuid notes on virNetDevOpenvswitchInterfaceSetQos
  virnetdevovs: Extract conversion parameters between virNetDevBandwidth
    and ovs
  virnetdevovs: Extract common code block to a single function
  virnetdevovs: Introduce virNetDevOpenvswitchInterfaceClearTxQos and
  virnetdevovs: Fix qos cleaning residual on multi interfaces
  tests: add test on virNetDevOpenvswitchInterfaceSetQos and

 src/libvirt_private.syms         |   2 +
 src/util/virnetdevopenvswitch.c  | 142 ++++++++++++++--------
 src/util/virnetdevopenvswitch.h  |  14 +++
 tests/virnetdevopenvswitchtest.c | 196 ++++++++++++++++++++++++++++++-
 4 files changed, 302 insertions(+), 52 deletions(-)


More information about the libvir-list mailing list