{"id":38167316,"url":"https://github.com/cloudslab/cloudsimsdn.deprecated","last_synced_at":"2026-01-16T23:22:50.739Z","repository":{"id":78290874,"uuid":"131802729","full_name":"Cloudslab/cloudsimsdn.deprecated","owner":"Cloudslab","description":"Please note that CloudSimSDN project is moved to a new repository! This repository will be deleted in the end of 2018.","archived":false,"fork":false,"pushed_at":"2018-10-23T08:35:57.000Z","size":270,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-09-10T04:07:35.034Z","etag":null,"topics":["cloud","cloudsim","sdn","simulation"],"latest_commit_sha":null,"homepage":"https://github.com/Cloudslab/cloudsimsdn","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cloudslab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-05-02T05:33:13.000Z","updated_at":"2022-05-10T12:24:52.000Z","dependencies_parsed_at":"2023-07-24T04:30:30.091Z","dependency_job_id":null,"html_url":"https://github.com/Cloudslab/cloudsimsdn.deprecated","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Cloudslab/cloudsimsdn.deprecated","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudslab%2Fcloudsimsdn.deprecated","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudslab%2Fcloudsimsdn.deprecated/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudslab%2Fcloudsimsdn.deprecated/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudslab%2Fcloudsimsdn.deprecated/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cloudslab","download_url":"https://codeload.github.com/Cloudslab/cloudsimsdn.deprecated/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudslab%2Fcloudsimsdn.deprecated/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28487586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T22:54:02.790Z","status":"ssl_error","status_checked_at":"2026-01-16T22:50:10.344Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","cloudsim","sdn","simulation"],"created_at":"2026-01-16T23:22:49.865Z","updated_at":"2026-01-16T23:22:50.698Z","avatar_url":"https://github.com/Cloudslab.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CloudSimSDN\n\nCloudSimSDN: SDN extension of CloudSim project.\n\n## Introduction\n\n**CloudSimSDN** is to simulate utilization of hosts and networks, and response time of requests in SDN-enabled cloud data centers.\n**CloudSimSDN** is an add-on package to [CloudSim](http://www.cloudbus.org/cloudsim/), thus it is highly recommended to learn how to use CloudSim before using CloudSimSDN.\nCloudSimSDN supports calculating power consumption by both hosts and switches. For instance, network-aware VM placement policies can be evaluated using CloudSimSDN. As an example, we will present energy savings in SDN-enabled cloud data center via VM consolidation. If VMs are consolidated to the minimum number of hosts, the unused hosts and switches can be powered off to save more power. We will show two different VM placement policies: Best Fit (MFF, Most Full First) and Worst Fit (LFF, Least Full First).\n\n## Program dependencies\nYou have to download [CloudSim (cloudsim-3.0.3)](https://github.com/Cloudslab/cloudsim/releases/tag/cloudsim-3.0.3),\nenter the project's root directory and execute `mvn clean install` to install the jar packages into your local maven repository.\n\nOther dependencies are already included.\n\n## Package components\n1. org.cloudbus.cloudsim.sdn\n  Main components of CloudSimSDN. Core functions are implemented in this package source codes.\n2. org.cloudbus.cloudsim.example\n  Example program. SDNExample.java is the entry point of the example program. Please follow the code from SDNExample.java\n  This document is to describe the example program.\n3. org.cloudbus.cloudsim.exmaple.topogenerators\n  Example topology generators. Physical / Virtual topology files can be generated by using these generators with customizable parameters. Some distributions can be used within topology generators.\n\n## Input Data\nWe need to submit three input files to CloudSimSDN: data center configuration (physical topology), resource deployment request (virtual topology), and workloads for VMs.\n\n### Physical topology (Data center configuration)\nConfigurations of physical hosts, switches and links that consist of SDN-enabled cloud data center. This can input as JSON file.  Please look at sdn-example-physical.json file. \nIn this example, data center is configured to operate 100 hosts, 10 edge switches connecting 10 hosts each, and one core switch that connects all edge switches.\n\n* Host nodes\n  1. type: \"host\"\n  2. name: name of the host\n  3. pes, mips, ram, storage : the host specification\n  4. bw: connection bandwidth with the edge switch\n\n* Switch nodes\n  1. type: either \"core\", \"aggregate\" or \"edge\"\n  2. name: name of the switch\n  3. bw: maximum bandwidth support by switch\n\n* Links\n  1. source: the name of source node\n  2. destination: the name of destination node\n\n###Virtual topology (Resource deployment request)\nWhen customers send VM creation requests to the cloud data center, they provide virtual topology for their network QoS and SLA. Virtual topology consists of VM types and virtual links between VMs. This can input as JSON file. Please look at sdn-example-virtual.json file.\n\nThe resource deployment file includes 500 VM creation requests in which three to five VMs are grouped in a same virtual network to communicate with each other. \n\n* Nodes\n  1. type: \"vm\"\n  2. name: name of the vm\n  3. pes, mips, ram, size: the VM specification\n* Links\n  1. name: the name of the link that can be used in workloads. For default link, use \"default\"\n  2. source: the name of source VM\n  3. destination: the name of destination VM\n  4. bandwidth (optional): specifically requested bandwidth for the link\n\n###Workloads (workload.csv)\nAfter VMs are created in the data center, computation and network transmission workloads from end-users are passed to VMs to be processed. A workload consists of compute processing and network transmission. This can input as CSV file.\nPlease look at `sdn-example-workload-*.csv` files\n\nWorkload file has a long packet transmission between VMs in a same virtual network. Since we should measure power consumption of switches, data transmissions between VMs are necessary to let switches work for the experiment time. To make the experiment simple, we make VMs use network bandwidth in full during their lifetime, so that just one long packet transmission workload for each VM is given in the workload file.\n\n* CSV file structure\n  1. Submission time\n  2. Submission VM (VM1)\n  3. Packet size of the transmission to VM1 (use 0)\n  4. Computational workload for VM1\n  5. The name of virtual link to transfer packet to the next VM (VM2)\n  6. The next VM (VM2)\n  7. Packet size of the transmission to VM2\n  8. Computational workload for VM2\n  9. ... (repeat v ~ viii)\n\n## Simulation execution\nYou have to build the project using your IDE or typing `mvn clean install` at the project's root directory.\nAfter that, to execute the example, enter the project's `target` directory and use the following command:\n\n```\njava -cp cloudsimsdn-1.0-with-dependencies.jar org.cloudbus.cloudsim.sdn.example.SDNExample \u003cLFF|MFF\u003e [physical.json] [virtual.json] [workload1.csv] [workload2.csv] [...]\n```\n\n* ```\u003cLFF | MFF\u003e```: Choose VM placement policy. LFF(Least Full First) or MFF(Most Full First)\n* ```[physical.json]```: Filename of physical topology (data center configuration)\n* ```[virtual.json]```: Filename of virtual topology (VM creation and network request)\n* ```[workload1.csv] ...```: Filenames of workload files. Multiple files can be supplied.\n\n### EXAMPLE:\n```\njava -cp cloudsimsdn-1.0-with-dependencies.jar org.cloudbus.cloudsim.sdn.example.SDNExample MFF ../dataset-energy/energy-physical.json ../dataset-energy/energy-virtual.json ../dataset-energy/energy-workload.csv \u003e results.out\n```\n\nThis command will run the simulation using MFF algorithm, and the output is redirected to results.out file.\n\n## Simulation results\nThe results have five parts.\n\n* Part 1) Detailed result of workloads: shows computational time and transmission time of each workload components. It also shows total response time of each workload.\n* Part 2) Average result of workloads: shows the total number of workloads, average rate of all workload requests, and the average response time.\n* Part 3) Host power consumption and detailed utilization: shows total power consumption and detailed utilization history (in MIPS) for each host\n* Part 4) Switch power consumption and detailed utilization: shows total power consumption and detailed utilization history (in number of active ports) for each switch\n* Part 5) Total power consumption: shows total power consumption over the data center with the maximum hosts utilized at the same time\n\n### EXAMPLE:\n* Part 1 / 2) In our example, part 1 and 2 (for workload results) is not useful; because the workload is generated solely to make switches work for the whole lifetime of communicating VMs. \n* Part 3 / 4)\n```\nHost #0: 29653.168930555563\n0.0, 4000.0\n0.0, 16000.0\n0.0, 35200.0\n0.0, 51200.0\n2390.0, 55200.0\n2423.0, 59200.0\n...\nSwitch #103: 27511.461264316662\n22660.21001, 2\n90180.21001, 3\n502117.0, 2\n1458312.66651, 0\n```\nPart 3 and 4 shows the detailed power consumption and utilization level of each host or switch. \nFor Host #0, it consumed 29,653 Wh which hosted 4 VMs at the time 0. From the time 0 until 2390, the host utilized 51200 MIPS. \nFor Switch #103, it consumed 27,511 Wh for the whole experiment. No traffic was occurred until the time 22660, and 2 ports were active between 22660 and 90180 seconds.\n\n* Part 5)\n```\n========== TOTAL POWER CONSUMPTION ===========\nHost energy consumed: 1848038.3846250002\nSwitch energy consumed: 92493.37391543222\nTotal energy consumed: 1940531.7585404324\nSimultanously used hosts:30\n```\nPart 5 is the main result of this example. Using MFF policy, total energy consumption of the data center was 1,940,531Wh and at most 30 hosts were used at the same time.\n \nTo compare with the result of LFF policy, run the same program with 'LFF' parameter instead of 'MFF'. The result shows that 2,508,871Wh was consumed with LFF policy.\n \n## Generate different scenarios\n1. Use topology generators (org.cloudbus.cloudsim.sdn.example.topogenerators) to create more complex scenario in larger scale.\n2. Implement different VM allocation policy to test different VM placement algorithms\n3. Implement different NetworkOperatingSystem to test different network policies.\n\n## Publication\nPlease cite this paper:\n* Jungmin Son, Amir Vahid Dastjerdi, Rodrigo N. Calheiros, Xiaohui Ji, Young Yoon, and Rajkumar Buyya, [\"CloudSimSDN: Modeling and Simulation of Software-Defined Cloud Data Centers\"](http://ieeexplore.ieee.org/document/7152513/), Proceedings of the 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2015), Shenzhen, China, May 4-7, 2015. doi:10.1109/CCGrid.2015.87\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudslab%2Fcloudsimsdn.deprecated","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudslab%2Fcloudsimsdn.deprecated","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudslab%2Fcloudsimsdn.deprecated/lists"}