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@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to