-
Notifications
You must be signed in to change notification settings - Fork 0
My Bachelor's dissertation, in which I implemented an emulation of ILNP enabled devices, and compared their performance in mobile and multipath scenarios to that of emulated IPv6 devices
License
BSD-3-Clause and 2 other licenses found
Licenses found
BSD-3-Clause
3Clause_BSD_License.txt
BSD-3-Clause
psutil_LICENSE.txt
MIT
pyYAML_LICENSE.txt
danielvallance/ILNP_Emulation
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository comprises an emulation of ILNP enabled IoT devices, with a management plane implementation and an API which can be used to build applications over the emulation. It also contains some example scenario applications, and a dataset. Licensing: The file get_yaml_dict.py makes use of the pyYAML library, and so it uses the MIT license that the pyYAML library uses. This license can be found at the top of get_yaml_dict.py, in the pyYAML_LICENSE.txt file, and at the pyYAML repository at https://github.com/yaml/pyyaml/ The file resource_getters.py makes use of the psutil library, and so it uses the 3-Clause BSD license that the psutil library uses. This license can be found at the top of resource_getters.py, in the psutil_LICENSE.txt file, and at the psutil repository at https://github.com/giampaolo/psutil/ The rest of the files submitted as part of this project were written by me and so are licensed under the 3-Clause BSD license in the "3Clause_BSD_License.txt" file with accreditation to Daniel Vallance As a reminder it is put at the top of all source files (apart from the 2 files mentioned above), however it also applies to the data files and the .png files which it could not be placed at the top of Library links: psutil: https://github.com/giampaolo/psutil/ pyYAML: https://github.com/yaml/pyyaml/ Code Manifest: In root project folder: requirements.txt: Contains Python dependencies required to run emulation management server and API run_tmux_server.sh: Ensures the emulation management server is running on a tmux session on the localhost refresh_tmux_servers.sh: SSHs into the specified machines and runs run_tmux_server.sh pyYAML_LICENSE.txt: License for pyYAML library psutil_LICENSE.txt: License for psutil library hostnames: List of hosts which could be passed to refresh_tmux_servers.sh 3Clause_BSD_License.txt 3-Clause BSD license for the code Daniel Vallance wrote UserManual.pdf: Installation and running instructions In src/ folder: utilities.py: Utility methods UnackedLU.py: Object representing locator update awaiting acknowledgement resource_getters.py: Methods which use the psutil library to get resource usage RemoteLocEntry.py: Object used to represent locator data in remote I-LV regular_coroutines: Coroutines the emulated IoT regularly performs ReceivedAppData: Object that wraps received application data with source metadata OwnLocEntry.py: Object used to represent locator data of emulated IoT's own locator mgmt_utilities.py: Methods to handle API calls main.py: Main file containing emulated IoT's logic ipv4_control_utilities.py: Utility methods relevant to the API control plane ILNPReceiverProtocol: Protocol which define callbacks for DatagramEndpoint events get_yaml_dict.py: Contains method which uses pyYAML library to return dictionary storing YAML file's parameters ForwardingEntry.py: Object representing an entry in the forwarding table of an emulated IoT EmulationSever.py: Object representing the emulation management server emulation_api.py: Contains the API for creating applications over the emulation emulated_iot.service: Unit file which can be used to run the emulation management server as a systemd service constants.py: Constants config.yml: Configuration file AvailableRouterEntry.py: Object which represents a router which the emulated IoT has recently received an advertisement from In src/experiments folder: BaseIoT.py: Object representing an emulated IoT containing some methods which are common across the experiments In src/experiments/tsn folder: config.yml: Application configuration file topology.yml: Initial topology file tsn_constants.py: Application constants tsn_utilities.py: Application utilities run_experiment.py: Runs the temperature sensor network and writes data to files Gradient.py: Object representing a sink's interest in a temperature range Sensor.py: Object representing IoT temperature sensor Sink.py: Object representing IoT temperature sensor network sink In src/experiments/emergency_comms: config.yml: Application configuration file topology.yml: Initial topology file emergency_comms_constants.py: Application constants emergency_comms_utilities.py: Application utilities run_experiment.py: Runs the emergency communication network and writes data to files Mobile.py: Represents mobile in emergency communication network In src/experiments/animal_tracker: config.yml: Application configuration file topology.yml: Initial topology file animal_tracker_constants.py: Application constants animal_tracker_utilities.py: Application utilities run_experiment.py: Runs the animal tracker network and writes data to files Router.py Represents the routers in the animal tracker network Animal.py Represents the animal IoT in the animal tracker network Sink.py: Represents the sink in the animal tracker network The data/ directory has a folder for each experimental scenario application. Each of these folders has a folder containing raw data (data/), graphs (graphs/) and gnuplot scripts (gnuplot/) The file UserManual.pdf contains installation and running instructions.
About
My Bachelor's dissertation, in which I implemented an emulation of ILNP enabled devices, and compared their performance in mobile and multipath scenarios to that of emulated IPv6 devices
Resources
License
BSD-3-Clause and 2 other licenses found
Licenses found
BSD-3-Clause
3Clause_BSD_License.txt
BSD-3-Clause
psutil_LICENSE.txt
MIT
pyYAML_LICENSE.txt
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published