You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/08/03 03:54:13 UTC
[7/30] git commit: VPC: CS-15821 - corrected mac address format for
vpc private network
VPC: CS-15821 - corrected mac address format for vpc private network
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/39485a4a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/39485a4a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/39485a4a
Branch: refs/heads/vpc
Commit: 39485a4a5669d179ad7de32ad2fa4feee17ed9f6
Parents: 25b75c1
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Thu Aug 2 14:51:28 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Thu Aug 2 18:07:15 2012 -0700
----------------------------------------------------------------------
.../src/com/cloud/network/NetworkManagerImpl.java | 2 +-
.../com/cloud/network/guru/PrivateNetworkGuru.java | 3 +-
.../VpcVirtualNetworkApplianceManagerImpl.java | 52 +++++++++------
.../com/cloud/network/vpc/PrivateIpAddress.java | 5 +-
4 files changed, 37 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/39485a4a/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index f60008b..0ad1e8c 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -4760,7 +4760,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
NetworkOffering ntwkOff = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
// For default userVm Default network and domR guest/public network, get rate information from the service
-// offering; for other situations get information
+ // offering; for other situations get information
// from the network offering
boolean isUserVmsDefaultNetwork = false;
boolean isDomRGuestOrPublicNetwork = false;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/39485a4a/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/PrivateNetworkGuru.java b/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
index c0d689c..25502d4 100644
--- a/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
@@ -183,7 +183,8 @@ public class PrivateNetworkGuru extends AdapterBase implements NetworkGuru {
PrivateIpVO ipVO = _privateIpDao.allocateIpAddress(network.getDataCenterId(), network.getId(), null);
String vlanTag = network.getBroadcastUri().getHost();
String netmask = NetUtils.getCidrNetmask(network.getCidr());
- PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, ipVO.getMacAddress());
+ PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask,
+ NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
nic.setIp4Address(ip.getIpAddress());
nic.setGateway(ip.getGateway());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/39485a4a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index 72dad34..af1c569 100644
--- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -814,7 +814,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
Network network = _networkDao.findById(guestNic.getNetworkId());
String vlanTag = network.getBroadcastUri().getHost();
String netmask = NetUtils.getCidrNetmask(network.getCidr());
- PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, ipVO.getMacAddress());
+ PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, guestNic.getMacAddress());
List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
privateIps.add(ip);
@@ -942,7 +942,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
Network network = _networkDao.findById(privateNic.getNetworkId());
String vlanTag = network.getBroadcastUri().getHost();
String netmask = NetUtils.getCidrNetmask(network.getCidr());
- PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, ipVO.getMacAddress());
+ PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, privateNic.getMacAddress());
List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
privateIps.add(ip);
@@ -1221,24 +1221,36 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
@DB
protected NicProfile createPrivateNicProfileForGateway(VpcGateway privateGateway) {
- Network network = _networkMgr.getNetwork(privateGateway.getNetworkId());
- PrivateIpVO ipVO = _privateIpDao.allocateIpAddress(network.getDataCenterId(), network.getId(), privateGateway.getIp4Address());
-
- NicProfile privateNic = new NicProfile();
- String vlanTag = network.getBroadcastUri().getHost();
- String netmask = NetUtils.getCidrNetmask(network.getCidr());
- PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, ipVO.getMacAddress());
-
- privateNic.setIp4Address(ip.getIpAddress());
- privateNic.setGateway(ip.getGateway());
- privateNic.setNetmask(ip.getNetmask());
- privateNic.setIsolationUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
- privateNic.setBroadcastUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
- privateNic.setBroadcastType(BroadcastDomainType.Vlan);
- privateNic.setFormat(AddressFormat.Ip4);
- privateNic.setReservationId(String.valueOf(ip.getVlanTag()));
- privateNic.setMacAddress(ip.getMacAddress());
- return privateNic;
+ Network privateNetwork = _networkMgr.getNetwork(privateGateway.getNetworkId());
+ PrivateIpVO ipVO = _privateIpDao.allocateIpAddress(privateNetwork.getDataCenterId(), privateNetwork.getId(), privateGateway.getIp4Address());
+ Nic privateNic = _nicDao.findByIp4AddressAndNetworkId(ipVO.getIpAddress(), privateNetwork.getId());
+
+ NicProfile privateNicProfile = new NicProfile();
+
+ if (privateNic != null) {
+ VirtualMachine vm = _vmDao.findById(privateNic.getId());
+ privateNicProfile = new NicProfile(privateNic, privateNetwork, privateNic.getBroadcastUri(), privateNic.getIsolationUri(),
+ _networkMgr.getNetworkRate(privateNetwork.getId(), vm.getId()),
+ _networkMgr.isSecurityGroupSupportedInNetwork(privateNetwork),
+ _networkMgr.getNetworkTag(vm.getHypervisorType(), privateNetwork));
+ } else {
+ String vlanTag = privateNetwork.getBroadcastUri().getHost();
+ String netmask = NetUtils.getCidrNetmask(privateNetwork.getCidr());
+ PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, privateNetwork.getGateway(), netmask,
+ NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
+
+ privateNicProfile.setIp4Address(ip.getIpAddress());
+ privateNicProfile.setGateway(ip.getGateway());
+ privateNicProfile.setNetmask(ip.getNetmask());
+ privateNicProfile.setIsolationUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
+ privateNicProfile.setBroadcastUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
+ privateNicProfile.setBroadcastType(BroadcastDomainType.Vlan);
+ privateNicProfile.setFormat(AddressFormat.Ip4);
+ privateNicProfile.setReservationId(String.valueOf(ip.getVlanTag()));
+ privateNicProfile.setMacAddress(ip.getMacAddress());
+ }
+
+ return privateNicProfile;
}
protected NicProfile createGuestNicProfileForVpcRouter(Network guestNetwork) {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/39485a4a/server/src/com/cloud/network/vpc/PrivateIpAddress.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/PrivateIpAddress.java b/server/src/com/cloud/network/vpc/PrivateIpAddress.java
index 1b01ed9..826bea2 100644
--- a/server/src/com/cloud/network/vpc/PrivateIpAddress.java
+++ b/server/src/com/cloud/network/vpc/PrivateIpAddress.java
@@ -16,7 +16,6 @@
// under the License.
package com.cloud.network.vpc;
-import com.cloud.utils.net.NetUtils;
public class PrivateIpAddress implements PrivateIp{
@@ -35,13 +34,13 @@ public class PrivateIpAddress implements PrivateIp{
* @param macAddress TODO
* @param physicalNetworkId TODO
*/
- public PrivateIpAddress(PrivateIpVO privateIp, String vlanTag, String gateway, String netmask, long macAddress) {
+ public PrivateIpAddress(PrivateIpVO privateIp, String vlanTag, String gateway, String netmask, String macAddress) {
super();
this.ipAddress = privateIp.getIpAddress();
this.vlanTag = vlanTag;
this.gateway = gateway;
this.netmask = netmask;
- this.macAddress = NetUtils.long2Mac(macAddress);
+ this.macAddress = macAddress;
this.networkId = privateIp.getNetworkId();
}