Problem is just creating network does not create bridge apparently on XenServer
as the comments on 'enableXenServerNetwork' method indicate. So when
findOrCreateTunnelNetwork is called to see if the network exists, since network
object is present across cluster function just returns but bridge is not
created.
Trick is to create bridge explicitly. Below diff worked for me, but did not
have time to test it and submit. Will look into it tomorrow.
diff --git
a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
index cf5c6d6..a935d3f 100644
---
a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
+++
b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
@@ -900,8 +900,16 @@ public abstract class CitrixResourceBase implements
ServerResource, HypervisorRe
dom0vif = VIF.create(conn, vifr);
}
// At this stage we surely have a VIF
- dom0vif.plug(conn);
- dom0vif.unplug(conn);
+ try {
+ dom0vif.plug(conn);
+ } catch (Exception e) {
+ // ignore fake exception
+ }
+ try {
+ dom0vif.unplug(conn);
+ } catch (Exception e) {
+ // ignore fake exception
+ }
synchronized (_tmpDom0Vif) {
_tmpDom0Vif.add(dom0vif);
}
@@ -923,8 +931,8 @@ public abstract class CitrixResourceBase implements
ServerResource, HypervisorRe
} else {
vswitchNw = networks.iterator().next();
}
- if (!is_xcp())
- enableXenServerNetwork(conn, vswitchNw, "vswitch",
"vswitch network");
+
+ enableXenServerNetwork(conn, vswitchNw, "vswitch", "vswitch
network");
_host.vswitchNetwork = vswitchNw;
}
return _host.vswitchNetwork;
@@ -963,6 +971,7 @@ public abstract class CitrixResourceBase implements
ServerResource, HypervisorRe
s_logger.debug("### Xen Server network for tunnels created:" +
nwName);
} else {
nw = networks.iterator().next();
+ enableXenServerNetwork(conn, nw, nwName, "tunnel network for
account " + key);
s_logger.debug("Xen Server network for tunnels found:" +
nwName);
}
return nw;
From: Nguyen Anh Tu <[email protected]<mailto:[email protected]>>
Date: Saturday, 22 February 2014 12:32 AM
To: "[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>
Cc: Murali Reddy <[email protected]<mailto:[email protected]>>
Subject: [Discuss] GRE Tunnel issue on XenServer 6.2
Hi guys,
Some people (Florin and Benoit) complain about the GRE tunnel issue on
XenServer 6.2. Actually it has not been fixed completely, although Murali
submitted a patch to bypass without any exception. Personally I stuck in how
can we make XenServer 6.2 HOSTs recognize the GRE network created by an another
HOST in one cluster. I confirm the "enableXenServer" (the tricky) method
doesn't work in that case.
Anyone can help?
Thanks,
--Tuna