Re: [libvirt] [PATCH 00/27] network: refactor to decouple virt drivers from network driver
On 12/24/18 3:58 PM, Daniel P. Berrangé wrote: > 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 + >
Re: [libvirt] [PATCH 00/27] network: refactor to decouple virt drivers from network driver
Hi, This series was run against 'syntax-check' test by patchew.org, which failed, please find the details below: Message-id: 20181224145915.8700-1-berra...@redhat.com Subject: [libvirt] [PATCH 00/27] network: refactor to decouple virt drivers from network driver Type: series === TEST SCRIPT BEGIN === #!/bin/bash # Testing script will be invoked under the git checkout with # HEAD pointing to a commit that has the patches applied on top of "base" # branch time bash -c './autogen.sh && make syntax-check' === TEST SCRIPT END === Updating bcb55ab053bc79561b55d0394490f4b64e0f2d01 Switched to a new branch 'test' 6ff9157 conf: switch over to use network port APIs for virt drivers 09db5a1 network: add implementation of network port APIs a9302df conf: support recording ports against virNetworkObjPtr f07a12d virsh: add support for network port APIs 5cf732b remote: add support for new network port APIs cd0c580 access: add permissions for network port objects b7f01ee network: add public APIs for network port object a24767a network: introduce networkReleasePort a07f0c2 network: introduce networkNotifyPort ca0d7e1 network: introduce networkAllocatePort 81869c3 network: convert hook script to take a network port XML f6a273a network: convert networkReleaseActualDevice to virNetworkPortDef 0892c21 network: convert networkNotifyActualDevice to virNetworkPortDef 78e836d network: convert networkAllocateActualDevice to virNetworkPortDef be6c472 conf: add APIs to convert virDomainNetDef to virNetworkPortDef 658ce38 util: add API for copying virtual port profile data e418f23 network: make networkLogAllocation independent of domain conf 4df9034 network: stop passing virDomainNetDefPtr into bandwidth functions 588f5e2 conf: introduce virNetworkPortDefPtr struct and XML support 47cf653 network: unconditionally merge port profiles f784aeb virt drivers: don't handle type=network after resolving actual network type 4b80e83 network: use 'bridge' as actual type instead of 'network' 3734f38 network: add missing bandwidth limits for bridge forward type 0611b44 conf: simplify link from hostdev back to network device 42cf25f network: pass a virNetworkPtr to port management APIs 097cf5b network: restrict usage of port management APIs 280f627 conf: make virPCIDeviceAddressFormat void === OUTPUT BEGIN === Updating submodules... Submodule 'gnulib' (https://git.savannah.gnu.org/git/gnulib.git/) registered for path '.gnulib' Submodule 'keycodemapdb' (https://gitlab.com/keycodemap/keycodemapdb.git) registered for path 'src/keycodemapdb' Cloning into '.gnulib'... Submodule path '.gnulib': checked out '4652c7bafa60332145f1e05a7de5f48e1bc56226' Cloning into 'src/keycodemapdb'... Submodule path 'src/keycodemapdb': checked out '16e5b0787687d8904dad2c026107409eb9bfcb95' Running bootstrap... ./bootstrap: Bootstrapping from checked-out libvirt sources... ./bootstrap: consider installing git-merge-changelog from gnulib ./bootstrap: getting gnulib files... running: libtoolize --install --copy libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'. libtoolize: copying file `build-aux/config.guess' libtoolize: copying file `build-aux/config.sub' libtoolize: copying file `build-aux/install-sh' libtoolize: copying file `build-aux/ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' ./bootstrap: .gnulib/gnulib-tool--no-changelog --aux-dir=build-aux --doc-base=doc --lib=libgnu --m4-base=m4/ --source-base=gnulib/lib/ --tests-base=gnulib/tests --local-dir=gnulib/local--lgpl=2 --with-tests --makefile-name=gnulib.mk --avoid=pt_chown --avoid=lock-tests --libtool --import ... Module list with included dependencies (indented): absolute-header accept accept-tests alloca alloca-opt alloca-opt-tests allocator areadlink areadlink-tests arpa_inet arpa_inet-tests assure autobuild base64 base64-tests binary-io binary-io-tests bind bind-tests bitrotate bitrotate-tests btowc btowc-tests builtin-expect byteswap byteswap-tests c-ctype c-ctype-tests c-strcase c-strcase-tests c-strcasestr c-strcasestr-tests calloc-posix canonicalize-lgpl canonicalize-lgpl-tests careadlinkat chown chown-tests clock-time cloexec cloexec-tests close close-tests configmake connect connect-tests count-leading-zeros count-leading-zeros-tests count-one-bits count-one-bits-tests ctype ctype-tests dirname-lgpl dosname double-slash-root dup dup-tests dup2 dup2-tests environ environ-tests errno errno-tests error execinfo exitfail extensions extern-inline fatal-signal fclose fc
[libvirt] [PATCH 00/27] network: refactor to decouple virt drivers from network driver
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