[libvirt] [PATCHv2 00/17] Support for <interface type='hostdev'>

Laine Stump laine at laine.org
Tue Feb 28 20:37:16 UTC 2012

On 02/28/2012 03:14 PM, Laine Stump wrote:
> This series of patches enhances the <interface device to support a
> sort of "intelligent hostdev", i.e. PCI passthrough where device-type
> specific initialization is done prior to assigning the device to the
> guest, in particular to allow setting the MAC address and do 802.1QbX
> setup for network devices.
> The first posting of this patch only supported parsing and formatting
> of these devices. This version also supports them in persistent
> config, as well as hotplug (both persistent and live-only).
> The only piece that isn't in this patchset (because it is coming from
> another author) is the code that actually 

to finish this sentence:

...is the code that actually does the network device-specific
setup/teardown, i.e. setting and restoring the MAC address, and doing
virtualport associate/de-associate. That code is being tested now, so
should be along "soon".

> Rather than adding all of the device-type specific config to
> <hostdev>, this is accomplished through adding a new type of
> <interface> element, type='hostdev'. When an interface is
> type='hostdev' the following is changed:
>   * in the toplevel device, the managed attribute can be specified
>     (with identical results as when it's specified in a <hostdev>
>   * The <source> element can specify a pci address or usb address,
>     just as can be done in <hostdev>. One notable difference is that
>     the type of the address is specified directly in the source
>     <address> element, rather than as an attribute of the toplevel
>     device (that's how it's done for <hostdev>, but for <interface>,
>     the toplevel element's type attribute is already used).
> NB: a type=hostdev interface will reside in both the interface list
> (for configuration and memory management) and hostdev list (for PCI
> attach/detach, and tracking of which devices are assigned)).
> This entire series is available on gitorious:
>   git://gitorious.org/~laine/libvirt/laine-staging.git
> in the "passthrough8" branch.
> Patches 1-7, 9-12, and 15-16 are just setup for the new
> functionality - they reorder and refactor existing code to allow
> greater re-use of existing code and easier plugin of the new
> code. Those marked with "X" are unchanged from V1 (as far as my
> git logs tell me). Those marked "+" are new patches that weren't
> in V1.
> + [PATCH 01/17] conf: add missing device types to
>   [PATCH 02/17] conf: relocate virDomainDeviceDef and
> X [PATCH 03/17] conf: reorder static functions in domain_conf.c
> + [PATCH 04/17] qemu: rename virDomainDeviceInfoPtr variables to avoid
> + [PATCH 05/17] conf: add device pointer to args of
>   [PATCH 06/17] conf: make hostdev info a separate object
> X [PATCH 07/17] conf: HostdevDef parse/format helper functions
> + [PATCH 09/17] conf: put subsys part of virDomainHostdevDef into its
> + [PATCH 10/17] conf: hostdev utility functions
> + [PATCH 11/17] qemu: re-order functions in qemu_hotplug.c
> + [PATCH 12/17] qemu: refactor hotplug detach of hostdevs
> + [PATCH 15/17] conf: change virDomainNetRemove from static to global
> + [PATCH 16/17] qemu: use virDomainNetRemove instead of inline code
> Patch 8 is just a couple lines:
>  [PATCH 08/17] conf: give each hostdevdef a parent pointer
>   [PATCH 13/17] conf: parse/format type='hostdev' network interfaces
> + [PATCH 14/17] qemu: support type='hostdev' network devices at domain start
> + [PATCH 17/17] qemu: support type=hostdev network device live hotplug
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

More information about the libvir-list mailing list