{"id":17149818,"url":"https://github.com/keeferrourke/rhpman-sim","last_synced_at":"2025-04-13T11:51:52.234Z","repository":{"id":48478511,"uuid":"310698414","full_name":"keeferrourke/rhpman-sim","owner":"keeferrourke","description":"An attempt to reimplement the performance evaluation simulation as described by Shi and Chen in their 2014 paper for the RHPMAN data replication scheme.","archived":false,"fork":false,"pushed_at":"2021-07-23T15:49:01.000Z","size":40,"stargazers_count":4,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T03:03:14.029Z","etag":null,"topics":["data-replication","manet","mesh-networks","ns-3","ns3","simulation"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keeferrourke.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}},"created_at":"2020-11-06T20:24:26.000Z","updated_at":"2022-11-04T14:08:07.000Z","dependencies_parsed_at":"2022-08-24T03:00:42.500Z","dependency_job_id":null,"html_url":"https://github.com/keeferrourke/rhpman-sim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeferrourke%2Frhpman-sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeferrourke%2Frhpman-sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeferrourke%2Frhpman-sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeferrourke%2Frhpman-sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keeferrourke","download_url":"https://codeload.github.com/keeferrourke/rhpman-sim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710438,"owners_count":21149188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["data-replication","manet","mesh-networks","ns-3","ns3","simulation"],"created_at":"2024-10-14T21:34:11.197Z","updated_at":"2025-04-13T11:51:52.211Z","avatar_url":"https://github.com/keeferrourke.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rhpman-sim\n\nThis NS-3 scratch simulator code that attempts to implement the RHPMAN scheme\nand reproduce its performance evaluation as described by the following paper:\n\n\u003e K. Shi and H. Chen, \"RHPMAN: Replication in highly partitioned mobile\n\u003e ad hoc networks,\" International Journal of Distributed Sensor Networks\n\u003e Jul. 2014.\n\n## Motivation\n\nOur lab\u003csup\u003e[1]\u003c/sup\u003e is investigating ad-hoc mobile mesh networks (MANETs) and\ntheir properties with the hopes that we may inform development of quality mesh\nnetwork protocols and network applications.\nA challenge with MANETs is their inherently mobile nature.\nMuch research has been done to discover good algorithms for data distribution\nand replication within MANETs, however many of these studies are unreproducible\nas-is.\n\nHaving identified the RHPMAN scheme as described by Shi and Chen 2014 as a\npromising data replication scheme, this project was created to attempt to\nimplement it on the [ns-3 simulator](https://www.nsnam.org/), and run the scheme\nunder a similar setting as is described in the performance evaluation conducted\nby Shi and Chen.\n\n*Note*: Shi and Chen used the OPNET simulator for their study, however this\nsimulator does not appear to be widely available anymore. Hence, we have chosen\nto use the latest version of the popular ns-3 network simulator instead.\n\n## Building this project\n\nReproducibility is key in simulation studies, so here's how to build the\nproject!\n\n 1. Download and build copy of the ns-3.32 all-in-one distribution.\n\n    ```sh\n    wget https://www.nsnam.org/release/ns-allinone-3.32.tar.bz2\n    tar xjvf ns-allinone-3.32.tar.bz2\n    cd ns-allinone-3.32\n    python3 ./build.py --enable-examples\n    ```\n\n 2. Change directories to the `scratch/` folder of the ns-3.32 source\n    distribution.\n\n    ```sh\n    cd ns-3.32/scratch/\n    ```\n\n 3. Clone this repository.\n\n    ```sh\n    git clone git@github.com:keeferrourke/rhpman-sim.git rhpman\n    ```\n\n4. Change directory back to the `ns-3.32` folder of the source distribution\n   and run this simulation through the `waf` tool. This will compile the\n   simulation code and start executing the code.\n\n   ```sh\n   cd ..\n   ./waf --run 'scratch/rhpman/rhpman`\n   ```\n\n## Running the simulation\n\nIf you're familiar with ns-3, then you should know that the simulation is run\nvia the `waf` build tool. Arguments to this program *must* be part of the same\nstring that is passed to `./waf --run` (that's just how it works :shrug:).\n\nEvery parameter of the simulation is configurable. Run the following to see\nall the configurable parameters. The default values are as described in the\nRHPMAN paper cited at the top of this document.\n\n```\n./waf --run 'scratch/rhpman/rhpman --printHelp'  # \u003c-- mind the quotes!\n```\n\nYou can view an animation of the simulation using `NetAnim`, which is included\nwith the ns-3 all-in-one distribution. To do so, run the following:\n\n```\n./waf --run 'scratch/rhpman/rhpman --animation-xml=path/to/rhpman.xml\n```\n\nThis will generate an XML file at the specified path. You can then open this\nfile with `NetAnim` to view what happens during the simulation run.\n\n## Code style\n\nThis project is formatted according to the `.clang-format` file included in this\nrepository. It intentionally deviates from the code style used by the ns-3\nlibrary and simulator developers.\n\n## License\n\nWhile ns-3 is itself licensed under the GNU General Public License v2, the code\nin this repository is made available under the Internet Systems Consortium (ISC)\nLicense.\n\nA copy of this license is included in this repository, and embedded in the top\nof each source file.\n\n\u003c!-- links --\u003e\n\n[1]: https://danielgillis.wordpress.com/students/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeeferrourke%2Frhpman-sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeeferrourke%2Frhpman-sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeeferrourke%2Frhpman-sim/lists"}