Currently the network driver registers a set of callbacks with the virt driver in order to handle allocating/releasing network ports associated with guest NICs. This series introduces a virNetworkPortPtr object and associated XML that describes a network port. The virt drivers now call public APIs associated with this new object to create/delete ports for guest NICs. There are some parts that are not yet addressed by this series - The live updating of bandwidth limits on network ports - The old code would re-connect VIFs to bridges, and/or change bridges during startup. This code is deleted right now as it doesn't belong in the network driver. It needs to move to the virt drivers in some (to be determined) manner. Daniel P. Berrangé (27): conf: make virPCIDeviceAddressFormat void network: restrict usage of port management APIs network: pass a virNetworkPtr to port management APIs conf: simplify link from hostdev back to network device network: add missing bandwidth limits for bridge forward type network: use 'bridge' as actual type instead of 'network' virt drivers: don't handle type=network after resolving actual network type network: unconditionally merge port profiles conf: introduce virNetworkPortDefPtr struct and XML support network: stop passing virDomainNetDefPtr into bandwidth functions network: make networkLogAllocation independent of domain conf util: add API for copying virtual port profile data conf: add APIs to convert virDomainNetDef to virNetworkPortDef network: convert networkAllocateActualDevice to virNetworkPortDef network: convert networkNotifyActualDevice to virNetworkPortDef network: convert networkReleaseActualDevice to virNetworkPortDef network: convert hook script to take a network port XML network: introduce networkAllocatePort network: introduce networkNotifyPort network: introduce networkReleasePort network: add public APIs for network port object access: add permissions for network port objects remote: add support for new network port APIs virsh: add support for network port APIs conf: support recording ports against virNetworkObjPtr network: add implementation of network port APIs conf: switch over to use network port APIs for virt drivers include/libvirt/libvirt-network.h | 49 + include/libvirt/virterror.h | 3 + src/access/genpolkit.pl | 2 +- src/access/viraccessdriver.h | 6 + src/access/viraccessdrivernop.c | 11 + src/access/viraccessdriverpolkit.c | 26 + src/access/viraccessdriverstack.c | 25 + src/access/viraccessmanager.c | 16 + src/access/viraccessmanager.h | 6 + src/access/viraccessperm.c | 8 +- src/access/viraccessperm.h | 38 + src/conf/Makefile.inc.am | 2 + src/conf/device_conf.c | 3 +- src/conf/device_conf.h | 6 +- src/conf/domain_conf.c | 413 ++++++- src/conf/domain_conf.h | 46 +- src/conf/network_conf.c | 7 +- src/conf/storage_adapter_conf.c | 4 +- src/conf/virnetworkobj.c | 303 +++++ src/conf/virnetworkobj.h | 30 + src/conf/virnetworkportdef.c | 497 ++++++++ src/conf/virnetworkportdef.h | 112 ++ src/datatypes.c | 60 + src/datatypes.h | 41 + src/driver-network.h | 27 + src/libvirt-network.c | 351 ++++++ src/libvirt_private.syms | 21 + src/libvirt_public.syms | 14 + src/libxl/libxl_conf.c | 21 +- src/libxl/libxl_domain.c | 28 +- src/libxl/libxl_driver.c | 27 +- src/lxc/lxc_driver.c | 37 +- src/lxc/lxc_process.c | 21 +- src/network/bridge_driver.c | 1069 +++++++++-------- src/qemu/qemu_command.c | 11 +- src/qemu/qemu_domain_address.c | 4 +- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_hotplug.c | 84 +- src/qemu/qemu_hotplug.h | 2 +- src/qemu/qemu_interface.c | 12 +- src/qemu/qemu_process.c | 32 +- src/remote/remote_daemon_dispatch.c | 25 + src/remote/remote_driver.c | 28 + src/remote/remote_protocol.x | 89 +- src/remote_protocol-structs | 47 + src/rpc/gendispatch.pl | 18 +- src/util/virerror.c | 9 + src/util/virhook.c | 4 +- src/util/virhook.h | 4 +- src/util/virhostdev.c | 17 +- src/util/virnetdevvportprofile.c | 16 + src/util/virnetdevvportprofile.h | 2 + tests/Makefile.am | 7 + .../plug-bridge-mactbl.xml | 9 + .../virnetworkportxml2xmldata/plug-bridge.xml | 9 + .../virnetworkportxml2xmldata/plug-direct.xml | 12 + .../plug-hostdev-pci.xml | 12 + tests/virnetworkportxml2xmldata/plug-none.xml | 8 + tests/virnetworkportxml2xmltest.c | 104 ++ tools/virsh-completer.c | 51 + tools/virsh-completer.h | 4 + tools/virsh-network.c | 399 +++++- tools/virsh-network.h | 5 + 63 files changed, 3681 insertions(+), 675 deletions(-) create mode 100644 src/conf/virnetworkportdef.c create mode 100644 src/conf/virnetworkportdef.h create mode 100644 tests/virnetworkportxml2xmldata/plug-bridge-mactbl.xml create mode 100644 tests/virnetworkportxml2xmldata/plug-bridge.xml create mode 100644 tests/virnetworkportxml2xmldata/plug-direct.xml create mode 100644 tests/virnetworkportxml2xmldata/plug-hostdev-pci.xml create mode 100644 tests/virnetworkportxml2xmldata/plug-none.xml create mode 100644 tests/virnetworkportxml2xmltest.c -- 2.19.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list