Re: [PATCH] 8021Qbh: use preassociate-rr during the migration prepare stage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/22/2011 03:03 PM, Roopa Prabhu wrote:
From: Roopa Prabhu<roprabhu@xxxxxxxxx>

This patch introduces PREASSOCIATE-RR during incoming VM migration on the
destination host. This is similar to the usage of PREASSOCIATE during
migration in 8021qbg libvirt code today. PREASSOCIATE-RR is a VDP operation.
With the latest at IEEE, 8021qbh will need to support VDP operations.
A corresponding enic driver patch to support PREASSOCIATE-RR for 8021qbh
will be posted for net-next-2.6 inclusion soon.

Signed-off-by: Roopa Prabhu<roprabhu@xxxxxxxxx>
Signed-off-by: David Wang<dwang2@xxxxxxxxx>
Signed-off-by: Christian Benvenuti<benve@xxxxxxxxx>
---
  src/util/macvtap.c |   15 ++++++++++-----
  1 files changed, 10 insertions(+), 5 deletions(-)


diff --git a/src/util/macvtap.c b/src/util/macvtap.c
index 2d3ff87..346eaf6 100644
--- a/src/util/macvtap.c
+++ b/src/util/macvtap.c
@@ -87,6 +87,7 @@ enum virVirtualPortOp {
      ASSOCIATE = 0x1,
      DISASSOCIATE = 0x2,
      PREASSOCIATE = 0x3,
+    PREASSOCIATE_RR = 0x4,
  };


@@ -1452,6 +1453,7 @@ doPortProfileOp8021Qbh(const char *ifname,
      }

      switch (virtPortOp) {
+    case PREASSOCIATE_RR:
      case ASSOCIATE:
          rc = virGetHostUUID(hostuuid);
          if (rc)
@@ -1465,7 +1467,9 @@ doPortProfileOp8021Qbh(const char *ifname,
                                     vm_uuid,
                                     hostuuid,
                                     vf,
-                                   PORT_REQUEST_ASSOCIATE);
+                                   (virtPortOp == PREASSOCIATE_RR) ?
+                                    PORT_REQUEST_PREASSOCIATE_RR
+                                    : PORT_REQUEST_ASSOCIATE);
          if (rc == -ETIMEDOUT)
              /* Association timed out, disassociate */
              doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
@@ -1553,10 +1557,11 @@ vpAssociatePortProfileId(const char *macvtap_ifname,
          break;

      case VIR_VIRTUALPORT_8021QBH:
-        /* avoid associating twice */
-        if (vmOp != VIR_VM_OP_MIGRATE_IN_FINISH)
-            rc = doPortProfileOp8021Qbh(linkdev, macvtap_macaddr,
-                                        virtPort, vmuuid, ASSOCIATE);
+        rc = doPortProfileOp8021Qbh(linkdev, macvtap_macaddr,
+                                    virtPort, vmuuid,
+                                    (vmOp == VIR_VM_OP_MIGRATE_IN_START)
+                                      ? PREASSOCIATE_RR
+                                      : ASSOCIATE);
          if (vmOp != VIR_VM_OP_MIGRATE_IN_START&&  !rc)
              ifaceUp(linkdev);
          break;

ACK

   Stefan

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]