[libvirt] [PATCH 3/3] qemu_migration: Transport OVS per-port data during live migration
Laine Stump
laine at laine.org
Mon Oct 22 21:23:34 UTC 2012
On 10/01/2012 11:18 AM, Kyle Mestery wrote:
> Transport Open vSwitch per-port data during live
> migration by using the utility functions
> virNetDevOpenvswitchGetMigrateData() and
> virNetDevOpenvswitchSetMigrateData().
>
> Signed-off-by: Kyle Mestery <kmestery at cisco.com>
> ---
> src/qemu/qemu_migration.c | 23 ++++++++++++++++++++---
> 1 file changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index a17ccbd..b4ff3c5 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -311,7 +311,7 @@ qemuMigrationCookieNetworkAlloc(struct qemud_driver *driver ATTRIBUTE_UNUSED,
> {
> qemuMigrationCookieNetworkPtr mig;
> int i;
> - virDomainNetDefPtr netptr ATTRIBUTE_UNUSED;
> + virDomainNetDefPtr netptr;
>
> if (VIR_ALLOC(mig) < 0)
> goto no_memory;
> @@ -339,6 +339,13 @@ qemuMigrationCookieNetworkAlloc(struct qemud_driver *driver ATTRIBUTE_UNUSED,
> case VIR_NETDEV_VPORT_PROFILE_8021QBH:
> break;
> case VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH:
> + if (virNetDevOpenvswitchGetMigrateData(&mig->net[i]->portdata,
> + netptr->ifname) != 0) {
> + virReportSystemError(VIR_ERR_INTERNAL_ERROR,
> + _("Unable to run command to get OVS port data for "
> + "interface %s"), netptr->ifname);
> + goto error;
> + }
> break;
> default:
> mig->net[i]->portdata = NULL;
> @@ -347,6 +354,7 @@ qemuMigrationCookieNetworkAlloc(struct qemud_driver *driver ATTRIBUTE_UNUSED,
> }
> }
>
> +error:
> return mig;
>
> no_memory:
> @@ -1278,8 +1286,8 @@ qemuDomainMigrateOPDRelocate(struct qemud_driver *driver ATTRIBUTE_UNUSED,
> virDomainObjPtr vm,
> qemuMigrationCookiePtr cookie)
> {
> - virDomainNetDefPtr netptr ATTRIBUTE_UNUSED;
> - int ret = 0;
> + virDomainNetDefPtr netptr;
> + int ret = -1;
> int i;
>
> for (i = 0; i < cookie->network->nnets; i++) {
> @@ -1293,12 +1301,21 @@ qemuDomainMigrateOPDRelocate(struct qemud_driver *driver ATTRIBUTE_UNUSED,
> case VIR_NETDEV_VPORT_PROFILE_8021QBH:
> break;
> case VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH:
> + if (virNetDevOpenvswitchSetMigrateData(cookie->network->net[i]->portdata,
> + netptr->ifname) != 0) {
> + virReportSystemError(VIR_ERR_INTERNAL_ERROR,
> + _("Unable to run command to set OVS port data for "
> + "interface %s"), netptr->ifname);
> + goto cleanup;
> + }
> break;
> default:
> break;
> }
> }
>
> + ret = 0;
> +cleanup:
> return ret;
> }
>
Again, ACK, but I'm resubmitting it rebased + "net[i]->portdata" changed
to "net[i].portdata".
More information about the libvir-list
mailing list