This patch series supports the forward mode='hostdev'. The functionality of this mode is the same as interface type='hostdev' but with the added benefit of using interface pools. The patch series also contains a patch to support use of interface names and PCI device addresses interchangeably in a network xml, and return the appropriate one in actualDevice when networkAllocateActualDevice is called. At the top level managed attribute can be specified with identical results as when it's specified for a hostdev. Currently forward mode='hostdev' does not support USB devices. Since the hostdev-hybrid patches are dependent on the hostdev patches, I have also included the support for interface-type="hostdev-hybrid" and forward mode="hostdev-hybrid" in this patch series. The hostdev-hybrid mode makes migration possible along with PCI-passthrough. I had posted a RFC on the hostdev-hybrid methodology earlier on the libvirt mailing list. The RFC can be found here: https://www.redhat.com/archives/libvir-list/2012-February/msg00309.html Shradha Shah (15): Prerequisite Patch. virDomainDevicePCIAddress and respective functions moved to a new file called conf/device_conf.ch Moved the code to create implicit interface pool from PF to a new function RNG updates, new xml parser/formatter code to support forward mode=hostdev Code to return interface name or pci_addr of the VF in actualDevice Forward Mode Hostdev network driver Implementation Forward Mode 'Hostdev' qemu driver implementation RNG updates, new xml parser/formatter code to support interface type=hostdev-hybrid RNG updates, new xml parser/formatter code to support forward mode=hostdev-hybrid Hostdev-hybrid mode requires a direct linkdev and direct mode. ActualParent is used to store the information about the NETDEV that contains HOSTDEV in hybrid case. Hybrid Hostdevs should be marked as ephemeral. Hostdev-hybrid network driver Implementation Hostdev-hybrid qemu driver implementation Using the Ephemeral Flag to prepare for Migration Support. Migration support for hostdev-hybrid. docs/formatdomain.html.in | 29 ++ docs/formatnetwork.html.in | 62 +++ docs/schemas/domaincommon.rng | 50 +++ docs/schemas/network.rng | 83 ++++- include/libvirt/libvirt.h.in | 1 + include/libvirt/virterror.h | 1 + src/Makefile.am | 6 +- src/conf/device_conf.c | 135 ++++++ src/conf/device_conf.h | 65 +++ src/conf/domain_conf.c | 286 +++++++----- src/conf/domain_conf.h | 33 +- src/conf/network_conf.c | 131 +++++- src/conf/network_conf.h | 30 ++- src/libvirt_private.syms | 11 +- src/network/bridge_driver.c | 463 ++++++++++++++++---- src/qemu/qemu_command.c | 99 ++++- src/qemu/qemu_domain.c | 6 +- src/qemu/qemu_domain.h | 3 +- src/qemu/qemu_driver.c | 6 +- src/qemu/qemu_hostdev.c | 97 +++-- src/qemu/qemu_hotplug.c | 35 ++- src/qemu/qemu_migration.c | 106 +++++- src/qemu/qemu_monitor.c | 14 +- src/qemu/qemu_monitor.h | 17 +- src/qemu/qemu_monitor_json.c | 14 +- src/qemu/qemu_monitor_json.h | 14 +- src/qemu/qemu_monitor_text.c | 16 +- src/qemu/qemu_monitor_text.h | 14 +- src/qemu/qemu_process.c | 3 +- src/uml/uml_conf.c | 5 + src/util/pci.c | 2 +- src/util/pci.h | 2 + src/util/virnetdev.c | 65 +++- src/util/virnetdev.h | 10 +- src/util/virterror.c | 3 +- src/xen/xend_internal.c | 3 +- src/xenxs/xen_sxpr.c | 1 + tests/networkxml2xmlin/hostdev-hybrid-pf.xml | 11 + tests/networkxml2xmlin/hostdev-hybrid.xml | 10 + tests/networkxml2xmlin/hostdev-pf.xml | 11 + tests/networkxml2xmlin/hostdev.xml | 10 + tests/networkxml2xmlout/hostdev-hybrid-pf.xml | 7 + tests/networkxml2xmlout/hostdev-hybrid.xml | 10 + tests/networkxml2xmlout/hostdev-pf.xml | 7 + tests/networkxml2xmlout/hostdev.xml | 10 + tests/networkxml2xmltest.c | 4 + .../qemuxml2argv-net-hostdevhybrid.args | 6 + .../qemuxml2argv-net-hostdevhybrid.xml | 35 ++ tests/qemuxml2xmltest.c | 1 + 49 files changed, 1675 insertions(+), 368 deletions(-) create mode 100644 src/conf/device_conf.c create mode 100644 src/conf/device_conf.h create mode 100644 tests/networkxml2xmlin/hostdev-hybrid-pf.xml create mode 100644 tests/networkxml2xmlin/hostdev-hybrid.xml create mode 100644 tests/networkxml2xmlin/hostdev-pf.xml create mode 100644 tests/networkxml2xmlin/hostdev.xml create mode 100644 tests/networkxml2xmlout/hostdev-hybrid-pf.xml create mode 100644 tests/networkxml2xmlout/hostdev-hybrid.xml create mode 100644 tests/networkxml2xmlout/hostdev-pf.xml create mode 100644 tests/networkxml2xmlout/hostdev.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-hostdevhybrid.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-hostdevhybrid.xml -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list