In looking at your migration patches I realized we could tweak
things a little bit to allow the implementation of a new style
migration API which does not require the destination virConnectPtr
object. More importantly this could be used independantly of
the tunnelled migration. So the patch that follows takes the
public API bits of your migration code and adds a new flag
VIR_MIGRATE_PEER2PEER, and virDomainMigrateToURI method. It
implements it for the Xen driver.
For the QEMU driver you already have code which copes with the
combination of VIR_MIGRATE_PEER2PEER + VIR_MIGRATE_TUNNELLED.
We could easily adapt that to also cope with doing a migration
using VIR_MIGRATE_PEER2PEER on its own. ie, source libvirtd
opens connection to destination libvirtd, runs the existing
prepare method, then uses QEMU monitor todo a plain TCP migration
and then invokes the existing finish method.
This patch applies between the data streams code & your migration
code - it'll clash a little - it ought to cover everything you
have relating to the public API with exception of the new internal
method virDomainMigratePrepareTunnel
Regards,
Daniel