{"id":16392317,"url":"https://github.com/stefanbschneider/vim-emu","last_synced_at":"2026-06-13T01:33:26.407Z","repository":{"id":104388783,"uuid":"130047465","full_name":"stefanbschneider/vim-emu","owner":"stefanbschneider","description":"Slightly modified version of vim-emu using link delays to compute shortest paths","archived":false,"fork":false,"pushed_at":"2018-04-18T13:10:03.000Z","size":1281,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-22T22:28:39.413Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefanbschneider.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}},"created_at":"2018-04-18T10:45:02.000Z","updated_at":"2018-07-27T08:41:26.000Z","dependencies_parsed_at":"2023-03-08T07:30:47.836Z","dependency_job_id":null,"html_url":"https://github.com/stefanbschneider/vim-emu","commit_stats":{"total_commits":596,"total_committers":10,"mean_commits":59.6,"dds":0.4379194630872483,"last_synced_commit":"aacef8f694b996db8fea123024e9a91368f287d2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stefanbschneider/vim-emu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanbschneider%2Fvim-emu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanbschneider%2Fvim-emu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanbschneider%2Fvim-emu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanbschneider%2Fvim-emu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefanbschneider","download_url":"https://codeload.github.com/stefanbschneider/vim-emu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanbschneider%2Fvim-emu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34269364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-11T04:49:35.545Z","updated_at":"2026-06-13T01:33:26.387Z","avatar_url":"https://github.com/stefanbschneider.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n# Copyright (c) 2017 SONATA-NFV and Paderborn University\n# ALL RIGHTS RESERVED.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#    http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n# Neither the name of the SONATA-NFV, Paderborn University\n# nor the names of its contributors may be used to endorse or promote\n# products derived from this software without specific prior written\n# permission.\n#\n# This work has been performed in the framework of the SONATA project,\n# funded by the European Commission under Grant number 671517 through\n# the Horizon 2020 and 5G-PPP programmes. The authors would like to\n# acknowledge the contributions of their colleagues of the SONATA\n# partner consortium (www.sonata-nfv.eu).\n--\u003e\n\n*Note:* This is a private copy of vim-emu. Adjusted to properly use link delays for computing shortest paths.\n\nAdd with `git remote add gh git@github.com:StefanUPB/vim-emu.git`. Then use with `pull gh master` and `push gh`.\n\n\n# vim-emu: A NFV multi-PoP emulation platform\n\nThis emulation platform was created to support network service developers to locally prototype and test their network services in realistic end-to-end multi-PoP scenarios. It allows the execution of real network functions, packaged as Docker containers, in emulated network topologies running locally on the developer's machine. The emulation platform also offers OpenStack-like APIs for each emulated PoP so that it can integrate with MANO solutions, like OSM. The core of the emulation platform is based on [Containernet](https://containernet.github.io).\n\nThe emulation platform `vim-emu` is developed as part of OSM's DevOps MDG.\n\n### Acknowledgments\n\nThis software was originally developed by the [SONATA project](http://www.sonata-nfv.eu), funded by the European Commission under grant number 671517 through the Horizon 2020 and 5G-PPP programs.\n\n### Cite this work\n\nIf you use the emulation platform for your research and/or other publications, please cite the following paper to reference our work:\n\n* M. Peuster, H. Karl, and S. v. Rossem: [MeDICINE: Rapid Prototyping of Production-Ready Network Services in Multi-PoP Environments](http://ieeexplore.ieee.org/document/7919490/). IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Palo Alto, CA, USA, pp. 148-153. doi: 10.1109/NFV-SDN.2016.7919490. (2016)\n\n## Installation\n\nThere are multiple ways to install and use the emulation platform. The easiest way is the automated installation using the OSM installer. The bare-metal installation requires a freshly installed Ubuntu 16.04 LTS and is done by an ansible playbook. Another option is to use a nested Docker environment to run the emulator inside a Docker container.\n\n### Automated installation (recommended)\n\n```sh\n./install_osm.sh --lxdimages --vimemu\n```\n\nThis command will install OSM (as LXC containers) as well as the emulator (as a Docker container) on a local machine. It is recommended to use a machine with Ubuntu 16.04.\n\n### Manual installation\n\n#### Option 1: Bare-metal installation\n\n```sh\nsudo apt-get install ansible git aptitude\n```\n\n##### Step 1. Containernet installation\n\n```sh\ncd\ngit clone https://github.com/containernet/containernet.git\ncd ~/containernet/ansible\nsudo ansible-playbook -i \"localhost,\" -c local install.yml\n```\n\n##### Step 2. vim-emu installation\n\n```sh\ncd\ngit clone https://osm.etsi.org/gerrit/osm/vim-emu.git\ncd ~/vim-emu/ansible\nsudo ansible-playbook -i \"localhost,\" -c local install.yml\n```\n\n#### Option 2: Nested Docker Deployment\nThis option requires a Docker installation on the host machine on which the emulator should be deployed.\n\n```sh\ngit clone https://osm.etsi.org/gerrit/osm/vim-emu.git\u003c/code\u003e\ncd ~/vim-emu\u003c/code\u003e\n# build the container:\ndocker build -t vim-emu-img .\n# run the (interactive) container:\ndocker run --name vim-emu -it --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img /bin/bash\n```\n\n\n## Usage\n\n### Example\n\nThis simple example shows how to start the emulator with a simple topology (terminal 1) and how to start (terminal 2) some empty VNF containers in the emulated datacenters (PoPs) by using the vim-emu CLI.\n\n* First terminal (start the emulation platform):\n    * `sudo python examples/default_single_dc_topology.py`\n* Second terminal (use `docker exec vim-emu \u003ccommand\u003e` for nested Docker deployment):\n    * `vim-emu compute start -d dc1 -n vnf1`\n    * `vim-emu compute start -d dc1 -n vnf2`\n    * `vim-emu compute list`\n* First terminal:\n    * `containernet\u003e vnf1 ifconfig`\n    * `containernet\u003e vnf1 ping -c 2 vnf2`\n\nA more advanced example that includes OSM can be found in the [official vim-emu documentation in the OSM wiki](https://osm.etsi.org/wikipub/index.php/VIM_emulator).\n\n### Further documentation and useful links\n\n* [Official vim-emu documentation in the OSM wiki](https://osm.etsi.org/wikipub/index.php/VIM_emulator)\n* [Full CLI command documentation](https://github.com/sonata-nfv/son-emu/wiki/CLI-Command-Overview)\n* [Requirements for Docker containers executed by the emulator](https://github.com/sonata-nfv/son-emu/wiki/Container-Requirements)\n* [REST API](https://github.com/sonata-nfv/son-emu/wiki/APIs)\n* [Mininet](http://mininet.org)\n* [Containernet](https://containernet.github.io)\n* [Maxinet](https://maxinet.github.io)\n\n## Development\n\n### How to contribute?\n\nPlease check [this OSM wiki page](https://osm.etsi.org/wikipub/index.php/Workflow_with_OSM_tools) to learn how to contribute to a OSM module.\n\n### Testing\n\nTo run the unit tests do:\n\n* `cd ~/vim-emu`\n* `sudo py.test -v src/emuvim/test/unittests`\n(To force Python2: `python2 -m  pytest -v src/emuvim/test/unittests`)\n\n## Seed code contributors:\n\n### Lead:\n\n* Manuel Peuster (https://github.com/mpeuster)\n* Steven Van Rossem (https://github.com/stevenvanrossem)\n\n### Contributors\n\n* Hadi Razzaghi Kouchaksaraei (https://github.com/hadik3r)\n* Wouter Tavernier (https://github.com/wtaverni)\n* Geoffroy Chollon (https://github.com/cgeoffroy)\n* Eduard Maas (https://github.com/edmaas)\n* Malte Splietker (https://github.com/splietker)\n* Johannes Kampmeyer (https://github.com/xschlef)\n\n## License\n\nThe emulation platform is published under Apache 2.0 license. Please see the LICENSE file for more details.\n\n## Contact\n\nManuel Peuster (Paderborn University) \u003cmanuel@peuster.de\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanbschneider%2Fvim-emu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanbschneider%2Fvim-emu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanbschneider%2Fvim-emu/lists"}