Hey,
Back in the pre 1.3.0 release [0] we had a regression when migrating
domains in libxl (introduced by the reverted commit d2e5538b1).
The chosen solution to address this problem was to introduce a
capability to be used by the virDomainNetDefFormat() and
virDomainNetDefParseXML() routines. RFCv1 implemented this by "caching"
netprefix in the domain definition[1]; as suggested in the review[1] v2
implements it by adding the virCapsPtr to the relevant APIs and also
propagating the API change to all drivers. It is divided as follows:
Patch 1: Adds prefix to capabilites
Patch 2: Add prefix to NetDefParseXML
Patch 3,4: API changes to include virCapsPtr and netprefix (New)
Patch 5: set prefix on libxl (Acked)
Having this series and the reverted commit applied, I can
successfully migrate a domain without seeing the same interface
name on both source and destination node with libxl.
Note: I haven't been able to compile-test all drivers, specifically bhyve,
vz and hyperv. Testing was made with libxl.
Thanks!
Joao
[0]
https://www.redhat.com/archives/libvir-list/2015-December/msg00279.html
[1]
https://www.redhat.com/archives/libvir-list/2016-January/msg00886.html
Joao Martins (5):
conf: add net device prefix to capabilities
conf: add prefix in virDomainNetDefParseXML
conf: add caps to virDomainDefFormat*
conf: add caps to virDomainSaveConfig
libxl: set net device prefix
src/bhyve/bhyve_driver.c | 11 +++++++++--
src/conf/capabilities.c | 22 +++++++++++++++++++++
src/conf/capabilities.h | 4 ++++
src/conf/domain_conf.c | 42 +++++++++++++++++++++++++++-------------
src/conf/domain_conf.h | 4 ++++
src/conf/snapshot_conf.c | 2 +-
src/esx/esx_driver.c | 5 +++--
src/libvirt_private.syms | 1 +
src/libxl/libxl_conf.c | 3 +++
src/libxl/libxl_conf.h | 4 ++++
src/libxl/libxl_domain.c | 2 +-
src/libxl/libxl_driver.c | 24 +++++++++++++----------
src/libxl/libxl_migration.c | 2 +-
src/lxc/lxc_driver.c | 24 +++++++++++++----------
src/lxc/lxc_process.c | 12 ++++++------
src/network/bridge_driver.c | 4 ++--
src/openvz/openvz_driver.c | 5 +++--
src/phyp/phyp_driver.c | 2 +-
src/qemu/qemu_blockjob.c | 1 +
src/qemu/qemu_domain.c | 2 +-
src/qemu/qemu_driver.c | 47 +++++++++++++++++++++++++--------------------
src/qemu/qemu_migration.c | 3 ++-
src/qemu/qemu_process.c | 5 +++--
src/test/test_driver.c | 6 ++++--
src/uml/uml_driver.c | 4 ++--
src/vbox/vbox_common.c | 3 ++-
src/vmware/vmware_driver.c | 5 +++--
src/vz/vz_driver.c | 3 ++-
src/xen/xen_driver.c | 4 ++--
src/xenapi/xenapi_driver.c | 5 +++--
tests/lxcconf2xmltest.c | 2 +-
tests/openvzutilstest.c | 2 +-
tests/qemuargv2xmltest.c | 2 +-
tests/qemuhotplugtest.c | 3 ++-
tests/sexpr2xmltest.c | 2 +-
tests/testutils.c | 2 +-
tests/vmx2xmltest.c | 3 ++-
tests/xlconfigtest.c | 2 +-
tests/xmconfigtest.c | 2 +-
39 files changed, 184 insertions(+), 97 deletions(-)
--
2.1.4