# Driver support matrix

This page documents which libvirt calls work on which libvirt drivers / hypervisors, and which version the API appeared in.

This information changes frequently. This page was last checked or updated on 2008-06-05.

### Domain functions

x = not supported; empty cell means no information

Function | Since | Xen | QEMU | KVM | Remote | VirtualBox
--- | --- | --- | --- | --- | --- | ---
virConnectClose | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectGetCapabilities | 0.2.1 | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0 | ≥ 0.6.3
virConnectGetHostname | 0.3.0 | ≥ 0.3.0 | ≥ 0.3.3 | ≥ 0.3.3 | ≥ 0.3.0 | ≥ 0.6.3
virConnectGetMaxVcpus | 0.2.1 | ≥ 0.2.1 | x | x | ≥ 0.3.0 | x
virConnectGetType | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectGetURI | 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectGetVersion | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectListDefinedDomains | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectListDomains | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectNumOfDefinedDomains | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectNumOfDomains | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectOpen | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virConnectOpenAuth |  |  |  |  |  |
virConnectOpenReadOnly | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | x
virDomainAttachDevice | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainBlockPeek | 0.4.3 | 0.4.3 | 0.4.3 | 0.4.3 | x | x
virDomainBlockStats | 0.3.2 | ≥ 0.3.2 | x | x | ≥ 0.3.2 | x
virDomainCoreDump | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0 | x
virDomainCreate | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainCreateLinux | All | ≥ 0.0.5 | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainDefineXML | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainDestroy | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainDetachDevice | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainFree | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetAutostart | 0.2.1 | x | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0 | x
virDomainGetConnect | 0.3.0 | not a HV function
virDomainGetID | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetInfo | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetMaxMemory | All | All | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetMaxVcpus | 0.2.1 | ≥ 0.2.1 | x | x | ≥ 0.3.0 | x
virDomainGetName | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetOSType | All | All | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetSchedulerParameters | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0 | x
virDomainGetSchedulerType | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0 | x
virDomainGetUUID | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetUUIDString | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainGetVcpus | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0 | x
virDomainInterfaceStats | 0.3.2 | ≥ 0.3.2 | x | x | ≥ 0.3.2 | x
virDomainGetXMLDesc | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainLookupByID | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainLookupByName | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainLookupByUUID | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainLookupByUUIDString | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainMigrate | 0.3.2 | ≥ 0.3.2 | x | x | 0.3.2 | x
virDomainPinVcpu | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0 | x
virDomainReboot | 0.1.0 | ≥ 0.1.0 | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainRestore | All | All | x | ≥ 0.3.2 | ≥ 0.3.0 | x
virDomainResume | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainSave | All | All | x | ≥ 0.3.2 | ≥ 0.3.0 | ≥ 0.6.3
virDomainSetAutostart | 0.2.1 | x | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0 | x
virDomainSetMaxMemory | All | All | x | x | ≥ 0.3.0
virDomainSetMemory | 0.1.1 | ≥ 0.1.1 | x | x | ≥ 0.3.0 | ≥ 0.6.3
virDomainSetSchedulerParameters | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0 | x
virDomainSetVcpus | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0 | x
virDomainShutdown | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainSuspend | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virDomainUndefine | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virGetVersion | All | All | Returns -1 if HV unsupported.
virInitialize | 0.1.0 | not a HV function
virDomainMemoryPeek | 0.4.3 | x | 0.4.3 | 0.4.3 | x | x
virNodeGetInfo | 0.1.0 | ≥ 0.1.0 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3
virNodeGetFreeMemory | 0.3.3 | ≥ 0.3.3 | x | x | x | x
virNodeGetCellsFreeMemory | 0.3.3 | ≥ 0.3.3 | x | x | x | x

### Network functions

Network functions are not hypervisor-specific.They require the libvirtd daemon to be running. Most network functions first appeared in libvirt 0.2.0.

Function | Since
--- | ---
virConnectNumOfNetworks | 0.2.0
virConnectListNetworks | 0.2.0
virConnectNumOfDefinedNetworks | 0.2.0
virConnectListDefinedNetworks | 0.2.0
virNetworkCreate | 0.2.0
virNetworkCreateXML | 0.2.0
virNetworkDefineXML | 0.2.0
virNetworkDestroy | 0.2.0
virNetworkFree | 0.2.0
virNetworkGetAutostart | 0.2.1
virNetworkGetConnect | 0.3.0
virNetworkGetBridgeName | 0.2.0
virNetworkGetName | 0.2.0
virNetworkGetUUID | 0.2.0
virNetworkGetUUIDString | 0.2.0
virNetworkGetXMLDesc | 0.2.0
virNetworkLookupByName | 0.2.0
virNetworkLookupByUUID | 0.2.0
virNetworkLookupByUUIDString | 0.2.0
virNetworkSetAutostart | 0.2.1
virNetworkUndefine | 0.2.0