I had previously sent patches adding these new controller types: pcie-root-port pcie-switch-upstream-port pcie-switch-downstream-port but there were issues with where the device name and guest-visible attributes should be stored in the XML: https://www.redhat.com/archives/libvir-list/2015-June/msg01084.html In the end, I *think* we all agreed with mkletzan's suggestion to use this: <controller type='pci' model='pcie-root-port'> <model type='ioh3420'/> <target chassis='5' port='0x18'/> ... </controller> so that is what I implemented this time around. (note that the stuff in <model> and <target> are almost always auto-generated by libvirt, just like PCI addresses, but need to remain stable to preserve guest ABI during migration) The first 4 patches of the original series (removing restrictions on attaching a PCI device to a PCIe port or vice versa) were ACKed and have already been pushed. In this series, there are new patches 1 - 3 which are completely new (2 is a bugfix, 1,3,4 are fixing up the code to make later additions cleaner), then 5-6 implementing <model>, 7-8 implementing <target>, and finally 9-17 which are V2's of 5-13 in the original posting. Laine Stump (17): conf: reorganize virNetworkDHCPDefParseXML conf: pay attention to bus minSlot/maxSlot when autoassigning PCI addresses qemu: reorganize loop in qemuDomainAssignPCIAddresses conf: add virDomainControllerDefNew() conf: add new <model> subelement with type attribute to <controller> qemu: implement <model> subelement to <controller> conf: add new <target> subelement with chassisNr attribute to <controller> qemu: implement <target chassisNr='n'/> subelement/attribute of <controller> qemu: add capabilities bit for device ioh3420 conf: new pci controller model "pcie-root-port" qemu: support new pci controller model "pcie-root-port" qemu: add capabilities bit for device x3130-upstream conf: new pci controller model "pcie-switch-upstream-port" qemu: support new pci controller model "pcie-switch-upstream-port" qemu: add capabilities bit for device xio3130-downstream conf: new pcie-controller model "pcie-switch-downstream-port" qemu: support new pci controller model "pcie-switch-downstream-port" docs/formatdomain.html.in | 84 +++++++- docs/schemas/domaincommon.rng | 42 ++++ src/conf/domain_addr.c | 97 +++++++--- src/conf/domain_addr.h | 12 +- src/conf/domain_conf.c | 148 +++++++++++--- src/conf/domain_conf.h | 23 +++ src/conf/network_conf.c | 36 ++-- src/qemu/qemu_capabilities.c | 8 +- src/qemu/qemu_capabilities.h | 5 +- src/qemu/qemu_command.c | 214 +++++++++++++++++++-- tests/qemucapabilitiesdata/caps_1.2.2-1.caps | 3 + tests/qemucapabilitiesdata/caps_1.3.1-1.caps | 3 + tests/qemucapabilitiesdata/caps_1.4.2-1.caps | 3 + tests/qemucapabilitiesdata/caps_1.5.3-1.caps | 3 + tests/qemucapabilitiesdata/caps_1.6.0-1.caps | 3 + tests/qemucapabilitiesdata/caps_1.6.50-1.caps | 3 + tests/qemucapabilitiesdata/caps_2.1.1-1.caps | 3 + tests/qemuhelptest.c | 10 +- .../qemuxml2argv-pcie-root-port.args | 10 + .../qemuxml2argv-pcie-root-port.xml | 36 ++++ .../qemuxml2argv-pcie-switch-downstream-port.args | 18 ++ .../qemuxml2argv-pcie-switch-downstream-port.xml | 44 +++++ .../qemuxml2argv-pcie-switch-upstream-port.args | 12 ++ .../qemuxml2argv-pcie-switch-upstream-port.xml | 37 ++++ tests/qemuxml2argvdata/qemuxml2argv-q35.args | 2 +- tests/qemuxml2argvdata/qemuxml2argv-q35.xml | 9 +- tests/qemuxml2argvtest.c | 25 +++ tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml | 9 +- tests/qemuxml2xmltest.c | 3 + 29 files changed, 809 insertions(+), 96 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pcie-root-port.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pcie-root-port.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pcie-switch-downstream-port.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pcie-switch-downstream-port.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pcie-switch-upstream-port.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pcie-switch-upstream-port.xml -- 2.1.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list