Emulation-Driven testing of IoT deployments with RIOT

riot

The past few years have seen a large growth in the Internet of Things (IoT) industry. Reports predict up to 50 billion of connected devices in 2020 [1]. Typical IoT devices are low power-boards with constrained RAM, CPU and battery life, which communicates over a wireless channel (typically IEEE 802.15.4). The specific characteristics of IoT networks (constrained devices with low duty-cycle, wireless communications in interference-heavy environment) have prompted the development of new stacks of protocols at all OSI layers, such as the IETF standardization of 6LoWPAN+RPL+COAP. Several approaches are used to evaluates these protocols:

Simulation tools that provide a flexible approach with a variety of network topologies, conditions and simplified logging but require to reimplement every protocol in simulation software such as ns3 [3] or Omnet++ [4] (which have a steep learning-curve and a sometimes unfriendly API). Real-life experimentation, for instance by implementing the protocol stack in a modern IoT-OS such as RIOT-OS [2] and deploying it on an IoT network. This approach is costly and not very flexible, as deployment-topologies are often fixed. Furthermore, the constrained memory on typical IoT boards makes logging and event-handling relatively complicated.

In this project, we aim at taking the best of both worlds by enabling the large-scale emulation of IoT-networks with RIOT. More specifically, we would like to make it possible to test and experiment with applications developed in RIOT without an actual testbed and with minimal overhead.

Objective

RIOT (http://riot-os.org) is an open-source operating system developed specifically for the Internet of Things. Its goal is to allow fast and efficient development for sensors and constrained devices that are not powerful enough to run Linux. As such, it is compatible with numerous sensor boards and has the necessary tools to allow C programmers to write code (almost) out of the box. RIOT code can also be natively compiled as a Linux process, a feature that makes emulation much easier: the goal of this project is to create a flexible platform to test/evaluate IoT deployments using the native mode of RIOT.

This platform should allow the emulation of large-scale IoT networks (several thousands nodes) on a single server. Features would include: 802.15.4 link emulation, mobility handling, simple and efficient logging mechanism, etc. Candidate tools that can be leveraged for this goal include:

  • Already existing network simulator/emulator (e.g., ns3/omnet++/lurch, but this is not an exhaustive list and the candidate is free to explore other options.)
  •  In-house project: basic bridge in user land based on tap interfaces developed in C providing loss probability and multicast delivery

Given the above gaols, a good knowledge of C/C++ is required, and basic understanding of wireless network specific features (broadcast link, MAC protocols, etc.) are welcome.

References

[1] D. Evans. The Internet of Things, How the Next Evolution of the Internet is Changing Everything. Cisco White Paper. 2011
[2] Baccelli, Emmanuel, et al. “RIOT OS: Towards an OS for the Internet of Things.” Computer Communications Workshops (INFOCOM WKSHPS), 2013 IEEE Conference on. IEEE, 2013.
[3] Henderson, Thomas R., et al. “Network simulations with the ns-3 simulator.” SIGCOMM demonstration 15 (2008): 17.
[4] Varga, András. “The OMNeT++ discrete event simulation system.” Proceedings of the European simulation multiconference (ESM’2001). Vol. 9. No. S 185. sn, 2001.

Contacts

Marcel Enguehard (Cisco Systems, mengueha@cisco.com), Dario Rossi (Telecom ParisTech, dario.rossi@telecom-paristech.fr), Jiazi Yi (Ecole Polytechnique, jiazi.yi@polytechnique.edu)

Laboratory

The stage will be carried on at  the Laboratory of Information, Networking and Communication Sciences (LINCS). The LINCS was created on October 28th, 2010, by three French institutions of higher education and research: INRIA, Institut Telecom and UPMC. Later Alcatel-Lucent joined in February 2011 and SystemX (Cisco and Orange) in October 2013 as strategic partners. LINCS was officially launched by Mrs. Valérie Pécresse, the French Minister of Research, on May 2nd, 2011.

See here for further details about LINCS