[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