Skip to content

Commit 07de751

Browse files
author
Jayapal
committed
Revert "CLOUDSTACK-4622:If a VM from guest network is added to network tier of VPC then IP reservation allows the CIDR to be a superset of Network CIDR for that VPC tier"
Reverting this commit as it is breaking vpc deployment, CLOUDSTACK-5652 This reverts commit ab4f095.
1 parent ec8610f commit 07de751

2 files changed

Lines changed: 2 additions & 36 deletions

File tree

utils/src/com/cloud/utils/net/NetUtils.java

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -837,32 +837,13 @@ public static supersetOrSubset isNetowrkASubsetOrSupersetOfNetworkB(String cidrA
837837
}
838838

839839
public static boolean isNetworkAWithinNetworkB(String cidrA, String cidrB) {
840-
// This utility returns true if IP range of cidrA is same or lies completely in cidrB
841-
// Returns true if networkA is same as networkB or networkA is a subset of networkB
842840
Long[] cidrALong = cidrToLong(cidrA);
843841
Long[] cidrBLong = cidrToLong(cidrB);
844842
if (cidrALong == null || cidrBLong == null) {
845843
return false;
846844
}
847-
if (isSameIpRange(cidrA, cidrB)) {
848-
return true;
849-
}
850-
String[] cidrPairFirst = cidrA.split("\\/");
851-
String[] cidrPairSecond = cidrB.split("\\/");
852-
853-
Long networkSizeFirst = Long.valueOf(cidrPairFirst[1]);
854-
Long networkSizeSecond = Long.valueOf(cidrPairSecond[1]);
855-
String ipRangeFirst [] = NetUtils.getIpRangeFromCidr(cidrPairFirst[0], networkSizeFirst);
856-
String ipRangeSecond [] = NetUtils.getIpRangeFromCidr(cidrPairFirst[0], networkSizeSecond);
857-
858-
long startIpFirst = NetUtils.ip2Long(ipRangeFirst[0]);
859-
long endIpFirst = NetUtils.ip2Long(ipRangeFirst[1]);
860-
long startIpSecond = NetUtils.ip2Long(ipRangeSecond[0]);
861-
long endIpSecond = NetUtils.ip2Long(ipRangeSecond[1]);
862-
863-
if((startIpFirst >= startIpSecond) && (endIpFirst <= endIpSecond))
864-
return true;
865-
return false;
845+
long shift = 32 - cidrBLong[1];
846+
return ((cidrALong[0] >> shift) == (cidrBLong[0] >> shift));
866847
}
867848

868849
public static Long[] cidrToLong(String cidr) {

utils/test/com/cloud/utils/net/NetUtilsTest.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,19 +174,4 @@ public void testMacGenerateion() {
174174
public void testGetLocalIPString() {
175175
assertNotNull(NetUtils.getLocalIPString());
176176
}
177-
178-
public void testSubnet() {
179-
//Test to check if a cidr is a part of another cidr
180-
//Test 2 same cidrs
181-
assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/25", "10.1.1.0/25"));
182-
//Tests when cidrA is smaller than cidrB
183-
assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/26", "10.1.1.0/25"));
184-
assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/25", "10.1.1.0/24"));
185-
assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/23", "10.1.1.0/22"));
186-
assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.0.0/16" , "192.168.0.0/15"));
187-
//Tests when cidrA is larger than cidrB
188-
assertFalse(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/26", "10.1.1.0/27"));
189-
assertFalse(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/24", "10.1.1.0/25"));
190-
assertFalse(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/22", "10.1.1.0/23"));
191-
}
192177
}

0 commit comments

Comments
 (0)