GitHub user wilderrodrigues opened a pull request: https://github.com/apache/cloudstack/pull/292
CLOUDSTACK-8506 - Make ACS compliant with the RFC 3021 Hi @bhaisaab and @DaanHoogland Could you please have a look at this PR and also at the RFC 3021? It allows us to have something like this: // RFC 3021 - 31-Bit Prefixes on IPv4 Point-to-Point Links // GW Netmask Stat IP End IP // 192.168.24.0 - 255.255.255.254 - 192.168.24.0 - 192.168.24.1 // https://tools.ietf.org/html/rfc3021 Email thread: https://www.mail-archive.com/dev@cloudstack.apache.org/msg45035.html Manual tests: I created the following public networks successfully: GW - Netmask - Start IP - End IP 192.168.24.0 - 255.255.255.254 - 192.168.24.0 - 192.168.24.1 192.168.10.0 - 255.255.255.254 - 192.168.10.0 - 192.168.10.1  Automated tests: Environments: Centos7 + KVM + Qemu MySQL/MariaDB 5.5.41 Management Server running CentOS 7 Component/Smoke tests: https://github.com/apache/cloudstack (test/integration/component and smoke) Storage type: NFS shared Isolation method: VLAN Agent: 4.6.0 XenServer 62 MySQL/MariaDB 5.5.41 Management Server running CentOS 7 Component/Smoke tests: https://github.com/apache/cloudstack (test/integration/component and smoke) Storage type: NFS shared Isolation method: VLAN ================== KVM tests ================== Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS === ok Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS === ok Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS === ok Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS === ok Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS === ok Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS === ok Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS === ok Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS === ok Test migrate VM ... SKIP: At least two hosts should be present in the zone for migration Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 10 tests in 2672.003s OK (SKIP=1) /tmp//MarvinLogs/test_vm_life_cycle_CBBMBX/results.txt (END) Test router internal advanced zone ... === TestName: test_02_router_internal_adv | Status : SUCCESS === ok Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS === ok Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS === ok Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS === ok Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS === ok Test start router ... === TestName: test_08_start_router | Status : SUCCESS === ok Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 7 tests in 1738.326s OK /tmp//MarvinLogs/test_routers_E9IXI8/results.txt (END) Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS === ok Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS === ok Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 3 tests in 716.298s OK /tmp//MarvinLogs/test_service_offerings_TGBROS/results.txt (END) Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 1 test in 842.055s OK /tmp//MarvinLogs/test_reset_vm_on_reboot_P8SXD8/results.txt (END) ================== XenServer 6.2 tests ================== Test advanced zone router services ... === TestName: test_01_AdvancedZoneRouterServices | Status : SUCCESS === ok Test network garbage collection ... === TestName: test_02_NetworkGarbageCollection | Status : SUCCESS === ok Test router start on VM deploy ... === TestName: test_03_RouterStartOnVmDeploy | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 3 tests in 584.831s OK /tmp//MarvinLogs/test_routers_6N0F4X/results.txt (END) Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 1 test in 193.477s OK /tmp//MarvinLogs/test_reset_vm_on_reboot_QP4HWN/results.txt (END) Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS === ok Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS === ok Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 3 tests in 208.381s OK /tmp//MarvinLogs/test_service_offerings_TN84C8/results.txt (END) Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS === ok Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS === ok Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS === ok Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS === ok Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS === ok Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS === ok Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS === ok Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS === ok Test migrate VM ... SKIP: At least two hosts should be present in the zone for migration Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS === ok ---------------------------------------------------------------------- Ran 10 tests in 836.488s OK (SKIP=1) /tmp//MarvinLogs/test_vm_life_cycle_AI4BME/results.txt (END) You can merge this pull request into a Git repository by running: $ git pull https://github.com/schubergphilis/cloudstack improvement/RFC_3021_31_Bit_Prefixes Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cloudstack/pull/292.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #292 ---- commit 14863bbaffda55bf99bb96915f240db1605ce79c Author: wilderrodrigues <wrodrig...@schubergphilis.com> Date: 2015-05-22T16:17:16Z CLOUDSTACK-8506 - Added subnetUtils.setInclusiveHostCount(true) to NetUtils.isIpWithtInCidrRange() method. It makes the 31-bit prefixes work just fine - Added 3 unit tests to test valid and invalid ranges. commit a83f74d83e4d0699ad631d2efa4cd674bc53076b Author: wilderrodrigues <wrodrig...@schubergphilis.com> Date: 2015-05-22T18:08:09Z CLOUDSTACK-8506 - Changing the implementation of the NetUtils.ipRangesOverlap() a little bit in order to be compliant with RFC 3021 - 2 unit tests added - ranges from 0 to 255 covered by the tests, which also test the negative cases. ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---