# 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
--- | --- | --- | --- | --- | ---
virConnectClose | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectGetCapabilities | 0.2.1 | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0
virConnectGetHostname | 0.3.0 | ≥ 0.3.0 | ≥ 0.3.3 | ≥ 0.3.3 | ≥ 0.3.0
virConnectGetMaxVcpus | 0.2.1 | ≥ 0.2.1 | x | x | ≥ 0.3.0
virConnectGetType | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectGetURI | 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0
virConnectGetVersion | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectListDefinedDomains | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectListDomains | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectNumOfDefinedDomains | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectNumOfDomains | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectOpen | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virConnectOpenAuth |  |  |  |  |
virConnectOpenReadOnly | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainAttachDevice | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0
virDomainBlockPeek | 0.4.3 | 0.4.3 | 0.4.3 | 0.4.3 | x
virDomainBlockStats | 0.3.2 | ≥ 0.3.2 | x | x | ≥ 0.3.2
virDomainCoreDump | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0
virDomainCreate | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainCreateLinux | All | ≥ 0.0.5 | x | x | ≥ 0.3.0
virDomainDefineXML | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainDestroy | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainDetachDevice | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0
virDomainFree | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainGetAutostart | 0.2.1 | x | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0
virDomainGetConnect | 0.3.0 | not a HV function
virDomainGetID | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainGetInfo | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainGetMaxMemory | All | All | x | x | ≥ 0.3.0
virDomainGetMaxVcpus | 0.2.1 | ≥ 0.2.1 | x | x | ≥ 0.3.0
virDomainGetName | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainGetOSType | All | All | x | x | ≥ 0.3.0
virDomainGetSchedulerParameters | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0
virDomainGetSchedulerType | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0
virDomainGetUUID | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainGetUUIDString | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainGetVcpus | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0
virDomainInterfaceStats | 0.3.2 | ≥ 0.3.2 | x | x | ≥ 0.3.2
virDomainGetXMLDesc | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainLookupByID | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainLookupByName | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainLookupByUUID | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainLookupByUUIDString | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainMigrate | 0.3.2 | ≥ 0.3.2 | x | x | 0.3.2
virDomainPinVcpu | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0
virDomainReboot | 0.1.0 | ≥ 0.1.0 | x | x | ≥ 0.3.0
virDomainRestore | All | All | x | ≥ 0.3.2 | ≥ 0.3.0
virDomainResume | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainSave | All | All | x | ≥ 0.3.2 | ≥ 0.3.0
virDomainSetAutostart | 0.2.1 | x | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0
virDomainSetMaxMemory | All | All | x | x | ≥ 0.3.0
virDomainSetMemory | 0.1.1 | ≥ 0.1.1 | x | x | ≥ 0.3.0
virDomainSetSchedulerParameters | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0
virDomainSetVcpus | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0
virDomainShutdown | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainSuspend | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virDomainUndefine | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
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
virNodeGetInfo | 0.1.0 | ≥ 0.1.0 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0
virNodeGetFreeMemory | 0.3.3 | ≥ 0.3.3 | x | x | x
virNodeGetCellsFreeMemory | 0.3.3 | ≥ 0.3.3 | 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