<?xml version="1.0"?>
<html>
  <body>
    <h1>Driver support matrix</h1>
    <p>
This page documents which <a href="html/">libvirt calls</a> work on
which libvirt drivers / hypervisors, and which version the API appeared
in.
</p>
    <p>
This information changes frequently.  This page was last checked or
updated on <i>2008-06-05</i>.
</p>
    <h3>Domain functions</h3>
    <p> x = not supported; empty cell means no information </p>
    <table class="top_table">
      <tr>
        <th> Function </th>
        <th> Since </th>
        <th><a href="drvxen.html">Xen</a></th>
        <th><a href="drvqemu.html">QEMU</a></th>
        <th><a href="drvkvm.html">KVM</a></th>
        <th><a href="remote.html">Remote</a></th>
        <th><a href="drvvbox.html">VirtualBox</a></th>
        <th><a href="drvone.html">ONE</a></th>
      </tr>
      <tr>
        <td> virConnectClose </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectGetCapabilities </td>
        <td> 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectGetHostname </td>
        <td> 0.3.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.3.3 </td>
        <td> &#x2265; 0.3.3 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virConnectGetMaxVcpus </td>
        <td> 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>	
      </tr>
      <tr>
        <td> virConnectGetType </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectGetURI </td>
        <td> 0.3.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectGetVersion </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectListDefinedDomains </td>
        <td> 0.1.5 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectListDomains </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectNumOfDefinedDomains </td>
        <td> 0.1.5 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectNumOfDomains </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectOpen </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virConnectOpenAuth </td>
        <td>  </td>
        <td>  </td>
        <td>  </td>
        <td>  </td>
        <td>  </td>
        <td>  </td>
        <td>  </td>
      </tr>
      <tr>
        <td> virConnectOpenReadOnly </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainAttachDevice </td>
        <td> 0.1.9 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainBlockPeek </td>
        <td> 0.4.3 </td>
        <td> 0.4.3 </td>
        <td> 0.4.3 </td>
        <td> 0.4.3 </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainBlockStats </td>
        <td> 0.3.2 </td>
        <td> &#x2265; 0.3.2 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.2 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainCoreDump </td>
        <td> 0.1.9 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainCreate </td>
        <td> 0.1.5 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainCreateLinux </td>
        <td> All </td>
        <td> &#x2265; 0.0.5 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainDefineXML </td>
        <td> 0.1.5 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainDestroy </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainDetachDevice </td>
        <td> 0.1.9 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainFree </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetAutostart </td>
        <td> 0.2.1 </td>
        <td> x </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainGetConnect </td>
        <td> 0.3.0 </td>
        <td colspan="6"> not a HV function </td>
      </tr>
      <tr>
        <td> virDomainGetID </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetInfo </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetMaxMemory </td>
        <td> All </td>
        <td> All </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainGetMaxVcpus </td>
        <td> 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainGetName </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetOSType </td>
        <td> All </td>
        <td> All </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetSchedulerParameters </td>
        <td> 0.2.3 </td>
        <td> &#x2265; 0.2.3 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainGetSchedulerType </td>
        <td> 0.2.3 </td>
        <td> &#x2265; 0.2.3 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainGetUUID </td>
        <td> 0.1.10 </td>
        <td> &#x2265; 0.1.10 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetUUIDString </td>
        <td> 0.1.10 </td>
        <td> &#x2265; 0.1.10 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainGetVcpus </td>
        <td> 0.1.4 </td>
        <td> &#x2265; 0.1.4 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainInterfaceStats </td>
        <td> 0.3.2 </td>
        <td> &#x2265; 0.3.2 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.2 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainGetXMLDesc </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainLookupByID </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainLookupByName </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainLookupByUUID </td>
        <td> 0.1.10 </td>
        <td> &#x2265; 0.1.10 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainLookupByUUIDString </td>
        <td> 0.1.10 </td>
        <td> &#x2265; 0.1.10 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainMigrate </td>
        <td> 0.3.2 </td>
        <td> &#x2265; 0.3.2 </td>
        <td> x </td>
        <td> x </td>
        <td> 0.3.2 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainPinVcpu </td>
        <td> 0.1.4 </td>
        <td> &#x2265; 0.1.4 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainReboot </td>
        <td> 0.1.0 </td>
        <td> &#x2265; 0.1.0 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainRestore </td>
        <td> All </td>
        <td> All </td>
        <td> x </td>
        <td> &#x2265; 0.3.2 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>

      </tr>
      <tr>
        <td> virDomainResume </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainSave </td>
        <td> All </td>
        <td> All </td>
        <td> x </td>
        <td> &#x2265; 0.3.2 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainSetAutostart </td>
        <td> 0.2.1 </td>
        <td> x </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.2.1 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainSetMaxMemory </td>
        <td> All </td>
        <td> All </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainSetMemory </td>
        <td> 0.1.1 </td>
        <td> &#x2265; 0.1.1 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainSetSchedulerParameters </td>
        <td> 0.2.3 </td>
        <td> &#x2265; 0.2.3 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainSetVcpus </td>
        <td> 0.1.4 </td>
        <td> &#x2265; 0.1.4 </td>
        <td> x </td>
        <td> x </td>
        <td> &#x2265; 0.3.0 </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virDomainShutdown </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainSuspend </td>
        <td> All </td>
        <td> All </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virDomainUndefine </td>
        <td> 0.1.5 </td>
        <td> &#x2265; 0.1.9 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> &#x2265; 0.6.4 </td>
      </tr>
      <tr>
        <td> virGetVersion </td>
        <td> All </td>
        <td> All </td>
        <td colspan="5"> Returns -1 if HV unsupported. </td>
      </tr>
      <tr>
        <td> virInitialize </td>
        <td> 0.1.0 </td>
        <td colspan="6"> not a HV function </td>
      </tr>
      <tr>
        <td> virDomainMemoryPeek </td>
        <td> 0.4.3 </td>
        <td> x </td>
        <td> 0.4.3 </td>
        <td> 0.4.3 </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virNodeGetInfo </td>
        <td> 0.1.0 </td>
        <td> &#x2265; 0.1.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.2.0 </td>
        <td> &#x2265; 0.3.0 </td>
        <td> &#x2265; 0.6.3 </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virNodeGetFreeMemory </td>
        <td> 0.3.3 </td>
        <td> &#x2265; 0.3.3 </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
      </tr>
      <tr>
        <td> virNodeGetCellsFreeMemory </td>
        <td> 0.3.3 </td>
        <td> &#x2265; 0.3.3 </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
        <td> x </td>
      </tr>
    </table>
    <h3>Network functions</h3>
    <p>
Network functions are not hypervisor-specific.They require the libvirtd
daemon to be running. Most network functions first appeared in libvirt 0.2.0.
</p>
    <table class="top_table">
      <tr>
        <th> Function </th>
        <th> Since </th>
      </tr>
      <tr>
        <td> virConnectNumOfNetworks </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virConnectListNetworks </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virConnectNumOfDefinedNetworks </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virConnectListDefinedNetworks </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkCreate </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkCreateXML </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkDefineXML </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkDestroy </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkFree </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkGetAutostart </td>
        <td> 0.2.1 </td>
      </tr>
      <tr>
        <td> virNetworkGetConnect </td>
        <td> 0.3.0 </td>
      </tr>
      <tr>
        <td> virNetworkGetBridgeName </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkGetName </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkGetUUID </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkGetUUIDString </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkGetXMLDesc </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkLookupByName </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkLookupByUUID </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkLookupByUUIDString </td>
        <td> 0.2.0 </td>
      </tr>
      <tr>
        <td> virNetworkSetAutostart </td>
        <td> 0.2.1 </td>
      </tr>
      <tr>
        <td> virNetworkUndefine </td>
        <td> 0.2.0 </td>
      </tr>
    </table>
  </body>
</html>