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