PageRenderTime 37ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/README.md

https://bitbucket.org/twatteyne/twsimulator
Markdown | 100 lines | 80 code | 20 blank | 0 comment | 0 complexity | f8ce44c133de08d34edadcb63eae2600 MD5 | raw file
  1. # The 6TiSCH Simulator - [![Build Status](https://openwsn-builder.paris.inria.fr/buildStatus/icon?job=6TiSCH%20Simulator/master)](https://openwsn-builder.paris.inria.fr/job/6TiSCH%20Simulator/job/master/)
  2. Core Developers:
  3. * Mališa Vučinić (malisa.vucinic@inria.fr)
  4. * Yasuyuki Tanaka (yasuyuki.tanaka@inria.fr) - Sensei
  5. * Keoma Brun-Laguna (keoma.brun@inria.fr)
  6. * Thomas Watteyne (thomas.watteyne@inria.fr)
  7. Contributers:
  8. * Kazushi Muraoka (k-muraoka@eecs.berkeley.edu)
  9. * Nicola Accettura (nicola.accettura@eecs.berkeley.edu)
  10. * Xavier Vilajosana (xvilajosana@eecs.berkeley.edu)
  11. * Esteban Municio (esteban.municio@uantwerpen.be)
  12. * Glenn Daneels (glenn.daneels@uantwerpen.be)
  13. ## Scope
  14. 6TiSCH is an IETF standardization working group that defines a complete protocol stack for ultra reliable ultra low-power wireless mesh networks.
  15. This simulator implements the 6TiSCH protocol stack, exactly as it is standardized.
  16. It allows you to measure the performance of a 6TiSCH network under different conditions.
  17. Simulated protocol stack
  18. | | |
  19. |--------------------------------------------------------------------------------------------------------------|------------------------------------------|
  20. | [RFC6550](https://tools.ietf.org/html/rfc6550) | RPL, non-storing mode |
  21. | [draft-watteyne-6lo-minimal-fragment-01](https://tools.ietf.org/html/draft-watteyne-6lo-minimal-fragment-01) | 6LoWPAN Fragment Forwarding |
  22. | [RFC6282](https://tools.ietf.org/html/rfc6282), [RFC4944](https://tools.ietf.org/html/rfc4944) | 6LoWPAN |
  23. | [draft-chang-6tisch-msf-01](https://tools.ietf.org/html/draft-chang-6tisch-msf-01) | 6TiSCH Minimal Scheduling Function (MSF) |
  24. | [draft-ietf-6tisch-minimal-security-05](https://tools.ietf.org/html/draft-ietf-6tisch-minimal-security-05) | 6TiSCH Minimal Security (join process) |
  25. | [draft-ietf-6tisch-6top-protocol-11](https://tools.ietf.org/html/draft-ietf-6tisch-6top-protocol-11) | 6TiSCH 6top Protocol (6P) |
  26. | [IEEE802.15.4-2015](https://ieeexplore.ieee.org/document/7460875/) | IEEE802.15.4 TSCH |
  27. * propagation models
  28. * Pister-hack
  29. * k7: trace-based propagation
  30. * miscellaneous
  31. * Energy Consumption model taken from
  32. * [A Realistic Energy Consumption Model for TSCH Networks](http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6627960&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel7%2F7361%2F4427201%2F06627960.pdf%3Farnumber%3D6627960). Xavier Vilajosana, Qin Wang, Fabien Chraim, Thomas Watteyne, Tengfei Chang, Kris Pister. IEEE Sensors, Vol. 14, No. 2, February 2014.
  33. ## Installation
  34. * Install Python 2.7
  35. * Clone or download this repository
  36. * To plot the graphs, you need Matplotlib and scipy. On Windows, Anaconda (http://continuum.io/downloads) is a good one-stop-shop.
  37. ## Getting Started
  38. 1. Download the code:
  39. ```
  40. $ git clone https://bitbucket.org/6tisch/simulator.git
  41. ```
  42. 1. Install the Python dependencies:
  43. `cd simulator` and `pip install -r requirements.txt`
  44. 1. Move down to `bin` directory:
  45. ```
  46. $ cd bin
  47. ```
  48. 1. Execute runSim.py:
  49. ```
  50. $ python runSim.py
  51. ```
  52. * raw output data is in `bin/simData/`.
  53. * raw charts are in `bin/simPlots/`.
  54. 1. Take a look at `bin/config.json` to see the configuration of the simulations you just ran.
  55. ## Code Organization
  56. * `bin/`: the scripts for you to run
  57. * `example/`: example plots, shown in the documentation
  58. * `SimEngine/`: the simulator
  59. * `Mote.py`: Models a 6TiSCH mote running the different standards listed above.
  60. * `Propagation.py`: Wireless propagation model.
  61. * `sf.py`: The scheduling function.
  62. * `SimConfig.py`: The overall configuration of running a simulation campaign.
  63. * `SimEngine.py`: Event-driven simulation engine at the core of this simulator.
  64. * `SimSettings.py`: The settings of a single simulation, part of a simulation campaign.
  65. * `SimStats.py`: Periodically collects statistics and writes those to a file.
  66. * `Topology.py`: creates a topology of the motes in the network.
  67. * `SimGui/`: the graphical user interface to the simulator
  68. * `tests/`: the unit tests, run using `pytest`
  69. * `traces/`: example `k7` connectivity traces
  70. ## About 6TiSCH
  71. | what | where |
  72. |--------------|----------------------------------------------------------------------------------------------------------------------------------------|
  73. | charter | [http://tools.ietf.org/wg/6tisch/charters](http://tools.ietf.org/wg/6tisch/charters) |
  74. | data tracker | [http://tools.ietf.org/wg/6tisch/](http://tools.ietf.org/wg/6tisch/) |
  75. | mailing list | [http://www.ietf.org/mail-archive/web/6tisch/current/maillist.html](http://www.ietf.org/mail-archive/web/6tisch/current/maillist.html) |
  76. | source | [https://bitbucket.org/6tisch/](https://bitbucket.org/6tisch/) |
  77. ## Gallery
  78. | | | |
  79. |--|--|--|
  80. | ![](https://bytebucket.org/6tisch/simulator/raw/master/examples/run_0_topology.png) | ![](https://bytebucket.org/6tisch/simulator/raw/master/examples/run_0_timelines.png) | ![](https://bytebucket.org/6tisch/simulator/raw/master/examples/gui.png) |