Now libvirt use tc rules to manage interface's qos. But when a interface
is created by ovs, there is no qos setting result in ovs database. Therefore,
qos of ovs port should be set via ovs management command.
We add a function to tell whether a port definition is an ovs managed virtual
port. Change default qdisc rules, which return 0 directly if the port is ovs
managed(When the ovs port is set noqueue, qos config on this port will not
work). Add ovs management function of setting and cleaning qos. Then check if
the port is an ovs managed port during its life cycle, and call the ovs
management function to set or clean qos settings.
zhangjl02 (4):
qemu: interface: add qemuDomainDefIsOvsport
qemu: interface: add virNetDevOpenvswitchInterfaceSetQos and
virNetDevOpenvswitchInterfaceClearQos
qemu: interface: remove setting noqueue for ovs port
qemu: interface: check and use ovs command to set qos of ovs managed
port
src/libvirt_private.syms | 2 +
src/qemu/qemu_command.c | 10 +-
src/qemu/qemu_domain.c | 15 ++
src/qemu/qemu_domain.h | 3 +
src/qemu/qemu_driver.c | 21 ++-
src/qemu/qemu_hotplug.c | 39 +++--
src/qemu/qemu_process.c | 11 +-
src/util/virnetdevopenvswitch.c | 269 ++++++++++++++++++++++++++++++++
src/util/virnetdevopenvswitch.h | 11 ++
9 files changed, 365 insertions(+), 16 deletions(-)
--
2.30.2.windows.1