For an Ubuntu 12.04 server and KVM/libvirt 1.0.0 with an Intel 82599 network chip:
following these docs: http://wiki.libvirt.org/page/Networking#Assignment_from_a_pool_of_SRIOV_VFs_in_a_libvirt_.3Cnetwork.3E_definition
I can get a single pool of SRIOV networks on one PF ( eth0 for example) but when I try to get four pools, or a pool with four PFs, I get an error. "Duplicate ID 'hostdev0' for device" ... (I am able to get four PFs for each VM via manually specifying using the hostdev stanza in the create xml file.)
My temp network xml is:
<network>
<name>passthrough_eth0</name>
<forward mode='hostdev' managed='yes'>
<pf dev='eth0'/>
</forward>
</network>
And it seems that I need to name the hostdevs 0..3 but I don't see how?
The documentation states that you need libvirt 0.10.0 for this feature, but Ubuntu 12.04 LTS contains 0.9.8. You will need to upgrade to use this feature.
It's a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1001881
I did search the bugzilla list, but not well enough. Fixed In Version: libvirt-0.10.2-29.el6