This simulator contains the updated ReSF (Recurrent Low-Latency Scheduling Function) implementation as described in:
Daneels, Glenn, Steven Latré, and Jeroen Famaey. "Efficient Recurrent Low-Latency Scheduling in IEEE 802.15. 4e TSCH Networks." 2019 IEEE International Black Sea Conference on Communications and Networking (BlackSeaCom). IEEE, 2019.
Paper can be found link.
Core Developers:
- Mališa Vučinić ([email protected])
- Yasuyuki Tanaka ([email protected]) - Sensei
- Keoma Brun-Laguna ([email protected])
Contributers:
- Thomas Watteyne ([email protected])
- Kazushi Muraoka ([email protected])
- Nicola Accettura ([email protected])
- Xavier Vilajosana ([email protected])
- Esteban Municio ([email protected])
- Glenn Daneels ([email protected])
6TiSCH is an active IETF standardization working group that defines mechanisms to build and maintain communication schedules in tomorrow's Internet of (Important) Things. This simulator allows you to measure the performance of those different mechanisms under different conditions.
What is simulated:
- protocols
- IEEE802.15.4e-2012 TSCH (https://doi.org/10.1109/IEEESTD.2012.6185525)
- RPL (RFC 6550) with downstream traffic using source routing
- 6top (draft-ietf-6tisch-6top-protocol-09)
- Minimal Scheduling Function (draft-chang-6tisch-msf-01)
- 6LoWPAN Fragmentation and Reassembly (RFC 4944)
- Fragment Forwarding (draft-watteyne-6lo-minimal-fragment-01)
- join process with initial synchronization to the first received Enhanced Beacon.
- the "Pister-hack" propagation model with collisions
- the energy consumption model taken from
- A Realistic Energy Consumption Model for TSCH Networks. Xavier Vilajosana, Qin Wang, Fabien Chraim, Thomas Watteyne, Tengfei Chang, Kris Pister. IEEE Sensors, Vol. 14, No. 2, February 2014.
More about 6TiSCH:
what | where |
---|---|
charter | http://tools.ietf.org/wg/6tisch/charters |
data tracker | http://tools.ietf.org/wg/6tisch/ |
mailing list | http://www.ietf.org/mail-archive/web/6tisch/current/maillist.html |
source | https://bitbucket.org/6tisch/ |
- Install Python 2.7
- Clone or download this repository
- To plot the graphs, you need Matplotlib and scipy. On Windows, Anaconda (http://continuum.io/downloads) is a good on-stop-shop.
-
Download the code:
$ git clone https://bitbucket.org/6tisch/simulator.git
-
Install the Python dependencies:
cd simulator
andpip install -r requirements.txt
-
Move down to
bin
directory:$ cd bin
-
Execute runSim.py:
$ python runSim.py
- You'll have raw output data under
bin/simData
directory. - You can specify configuration parameters such as slot length and application packet interval if you want.
$ python runSim.py --help
shows available options.
- You'll have raw output data under
-
Execute plot.py to see the results:
$ python plot.py
- You’ll have charts derived from the data under
bin/simPlots
directory. - You need to define your simulation scenarios and identify necessary parameter sets in order to have meaningful results or charts.
- You’ll have charts derived from the data under
bin/
: the scripts for you to runSimEngine/
: the simulatorMote.py
: Models a 6TiSCH mote running the different standards listed above.Propagation.py
: Wireless propagation model.SimEngine.py
: Event-driven simulation engine at the core of this simulator.SimSettings.py
: Data store for all simulation settings.SimStats.py
: Periodically collects statistics and writes those to a file.Topology.py
: creates a topology of the motes in the network.
SimGui/
: the graphical user interface to the simulator
- We follow the standard Git branching workflow: https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows
- The code should follow the PEP8 coding style: https://www.python.org/dev/peps/pep-0008/