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();
     }