Feature pages are design documents that developers have created while collaborating on oVirt.

Most of them are outdated, but provide historical design context.

They are not user documentation and should not be treated as such.

Documentation is available here.

Network QoS - detailed design


Network Quality of Service feature will be added to oVirt from version 3.3 and will support cluster version 3.3 or higher. The feature will allow the user to limit the inbound and outbound network traffic in virtual NIC level. In order to define more natural coupling of the QoS to a VNIC we define a new concept called VNIC Profile. The VNIC profile will be applied in oVirt 3.3 to all clusters and will wrap few of the properties currently defined directly on the VNIC. see /Features/Network_QoS for detailed description of the feature


  • Name: Ofri Masad (omasad)

Current status

  • Status: design
  • patchset

Design and Implementation

The Network QoS feature includes two main parts:

  • VNIC level QoS
  • VNIC Profiles

The two parts will be developed in parallel



see : QoS Feature overview


We define a new entity called “NetworkQoS” - the QoS properties will be contained in this object. A NetworkQoS object will be added as a property of the VnicProfile entity.

Classes**’ - new entity with fields: inboundAverage(Integer), inboundPeak(Integer), inboundBurst(Integer), outboundAverage(Integer), outboundPeak(Integer), outboundBurst(Integer) **’’ - new Dao - add support to the NetworkQoS field

DB Change

Add network_qos table with 7 columns.

Column Name Column Type Null? / Default
id UUID  
inbound_average Integer Null
inbound_peak Integer Null
inbound_burst Integer Null
outbound_average Integer Null
outbound_peak Integer Null
outbound_burst Integer Null


Not supported in this version


libvirt version 1.0.1 or higher is required to enable the QoS feature (vdsm 3.3 will use higher version).

  • Add support of QoS properties in VDSM API: run VM, hot plug and update VM device verbs (update in schema)
  • Add support in the vnic object and the vnic to_xml()

VNIC Profiles

GUI (VNIC Profiles)

see : QoS Feature overview


Classes - new class holding the VNIC profile properties**’’ - add fields: vnicProfile(VnicProfile) **’’ - add fields: nnicProfile(VnicProfile) engine.core.vdsbroker.vdsbroker.VmInfoBuilder**’’ - add support to the QoS properties **engine.core.utils.ovf.OvfWriter’ - add support to the QoS properties engine.core.utils.ovf.OvfReader**’ - add support to the QoS properties **’’ - new Dao**’’ - add support to the VnicProfile field **’’ - add support to the VnicProfile field

DB Change

Add vnic_profiles table with 7 columns.

Column Name Column Type Null? / Default comments
id UUID key  
name String Not Null  
network_id UUID Not Null  
qos_id UUID Null  
port_mirroring Boolean Null moved from network_interface
custom_properties String Null  
Add network_profile_id(UUID null) to the vm_interface table - Represents the properties of the virtual NIC.


Not supported in this version


Expected unit-tests

Special considerations

Affected ovirt projects:

  • API
  • backend
  • Webadmin
  • User Portal


  • vdsm

Documentation / External references