interconnecting the iot
play

Interconnecting the IoT IEEE World Forum on IoT Limerick, Ireland - PowerPoint PPT Presentation

Interconnecting the IoT IEEE World Forum on IoT Limerick, Ireland Cenk Gndoan cenk.guendogan@haw-hamburg.de On Behalf of the RIOT Community April 17, 2019 The Internet 10 billion devices by 2020, 22 billion devices by 2025 The Internet


  1. Interconnecting the IoT IEEE World Forum on IoT Limerick, Ireland Cenk Gündoğan cenk.guendogan@haw-hamburg.de On Behalf of the RIOT Community April 17, 2019

  2. The Internet 10 billion devices by 2020, 22 billion devices by 2025

  3. The Internet 10 billion devices by 2020, 22 billion devices by 2025 Foster a transparent, robust, secure IoT: Software big bang & reusable components

  4. The Internet 10 billion devices by 2020, 22 billion devices by 2025 Milliwatt instead of Watt Megahertz instead of Gigahertz Kilobytes instead of Gigabytes

  5. The Internet 10 billion devices by 2020, 22 billion devices by 2025 If you can’t run Linux ...

  6. The Internet 10 billion devices by 2020, 22 billion devices by 2025 ...run

  7. RIOT—The Friendly Operating System for the IoT ◮ Free, open source operating system for the IoT ◮ Small memory footprint ( ≈ 1 . 5 kB RAM, ≈ 5 kB ROM) ◮ Hardware abstraction ◮ Full featured, expendable network stacks Design Principles ◮ Adaptive: High modularity and easy tailoring ◮ Robust: Module-level error handling ◮ Energy efficient: Tickless scheduler ◮ Instinctive: Preemptive multi-threading & powerful IPC ◮ Real-time capable: Deterministic O ( 1 ) scheduling ◮ Reactive: Low latency interrupt handling 9 / 37

  8. Supported Platforms ◮ Vendor independent support: TI, NXP, STM, Nordic, Ateml, Silicon Labs, ESP ◮ Runs on various 8-bit, 16-bit, 32-bit platforms ◮ 8-bit: AVR8 ◮ 16-bit: MSP430 ◮ 32-bit: MIPS, PIC32, ARM7, x86, Cortex-M, RISC-V, ESP ◮ Over 130 boards supported 10 / 37

  9. Supported Connectivity Technologies ◮ Wireless Personal Area Networks (WPANs) ◮ IEEE 802.15.4(e) ◮ Bluetooth Low Energy (BLE) ◮ Near Field Communication (NFC) ◮ Local Area Networks (LANs) ◮ Ethernet ◮ Wi-Fi ◮ CAN Bus ◮ Cellular Technologies (ongoing) ◮ 2G, 3G, 4G ◮ NB-IoT & LTE-M ◮ Long-range Technologies ◮ LoRa ◮ SigFox LE 11 / 37

  10. History of RIOT FeuerWhere Project Branding of RIOT RIOT Community Summits 2009 2013 2014 2015 2017 2019 2008 2010 2011 2012 2016 2018 F ireKernel 2013.08 2014.01 2015.09 2017.01 2019.01 2016.04 2018.01 2014.05 2015.12 2016.07 2017.04 2018.04 2019.04 2014.12 2017.07 2019.07 2016.10 2018.07 2017.10 2019.10 2018.10 Releases RIOT 12 / 37

  11. Open Source Community ◮ RIOT core distributed with non-viral copyleft license (LGPLv2.1) ◮ Source code and community maintenance on GitHub ◮ Maintainer team of ≈ 30 people, larger number of contributors ◮ 210 contributors worldwide from academia, industry, hobbyist background ◮ More than 1200 forks & over 20000 commits in code base ◮ ≈ 170 new pull requests per month ◮ Self-organizing community with rough consensus decision-making (c.f. IETF) ◮ Bazaar 1 model: development and discussions in public 1 The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary, Eric S. Raymond 13 / 37

  12. Github Statistics—Contributions Activity ◮ Increased contributions activity since 2013 ◮ Fast-paced progression for 6 years without interruptions 14 / 37

  13. Github Statistics—Views & Unique Visitors 15 / 37

  14. Easy Development & Code Portability ◮ Compliant to widely used POSIX features, such as pthread and sockets ◮ Standard development & debugging tools, such as gcc, clang, gdb, valgrind ◮ Fast feedback & rapid iteration: deploy RIOT as a Linux process ◮ Recommended programming language: ANSI-C ◮ Support for C++, Arduino Sketches, partial support for scripting languages struct sockaddr_in6 dst = { .sin6_family = AF_INET6 }; 1 uint16_t port = 8888; 2 int s; 3 ... 4 s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); 5 sendto(s, data, data_len, 0, (struct sockaddr *)&dst, sizeof(dst)) 6 ... 7 16 / 37

  15. Hardware & Software Abstraction Application Application Application S ystem Libraries External Packages Network Stack Kernel Drivers Device & Peripheral Drivers CPU Implementation Board Implementation Hardware Hardware Hardware 17 / 37

  16. Hardware & Software Abstraction Application Application Application S ystem Libraries External Packages Network Stack Kernel Drivers Device & Peripheral Drivers CPU Implementation Board Implementation Hardware Hardware Hardware 18 / 37

  17. Hardware & Software Abstraction Application Application Application S ystem Libraries External Packages Network Stack Kernel Drivers Device & Peripheral Drivers CPU Implementation Board Implementation Hardware Hardware Hardware 19 / 37

  18. IoT Network Stack MQTT-SN CoAP ◮ Open-access protocols ◮ Support for IETF network stacks ◮ GNRC for IPv6/6LoWPAN (default) UDP ◮ lwIP for IPv4 & IPv6/6LoWPAN ◮ emb6 for 6LoWPAN RPL ◮ OpenWSN for 6LoWPAN & 802.15.4e IPv6 ND ◮ Support for non-IETF network stacks ◮ OpenThread for Thread 6LoWPAN ◮ LoRaWAN for LoRa deployments ◮ CCN-lite & NDN-lite for Dispatch Fragment Compress Information-centric Networking IEEE 802.15.4, BLE, LoRa,... 20 / 37

  19. Loosely Coupled Network Stack Architecture Application / Library Network Stack Driver Driver Driver Hardware 21 / 37

  20. Loosely Coupled Network Stack Architecture Application / Library sock_udp sock_tcp sock sock_ip Network Stack Driver Driver Driver Hardware 22 / 37

  21. Loosely Coupled Network Stack Architecture Application / Library sock_udp sock_tcp sock sock_ip Network Stack netdev Driver Driver Driver Hardware 23 / 37

  22. Loosely Coupled Network Stack Architecture Application / Library sock_udp sock_tcp sock sock_ip GNRC (Default IPv6/6LoWPAN Stack) netdev Driver Driver Driver Hardware 24 / 37

  23. Loosely Coupled Network Stack Architecture Application / Library sock_udp sock_tcp sock sock_ip gnrc_tcp gnrc_udp gnrc_ip gnrc_6lo netdev Driver Driver Driver Hardware 25 / 37

  24. Loosely Coupled Network Stack Architecture Application / Library sock_udp sock_tcp sock sock_ip gnrc_tcp gnrc_udp IPC IPC gnrc_ip IPC gnrc_6lo netdev Driver Driver Driver Hardware 26 / 37

  25. Goodput Comparison for RIOT vs Linux in a IEEE 802.15.4 Network 200 150 Goodput [kBit/s] 100 Theoretical Bound 50 RIOT TX w/o CSMA, ACK RIOT TX Raspberry Pi TX 0 0 200 400 600 800 1000 1200 UDP Payload [Bytes] 27 / 37

  26. Multi-Interface & IoT Gateway Setups ◮ Allows multiple interfaces simultaneously Internet LoRa ◮ Supports gateway functionalities Ethernet IPv6 IEEE 802.15.4 Gateway 6LoWPAN 28 / 37

  27. Multi-Interface & IoT Gateway Setups ◮ Allows multiple interfaces simultaneously Internet LoRa ◮ Supports gateway functionalities Ethernet IPv6 IEEE 802.15.4 Gateway 6LoWPAN 29 / 37

  28. Open Source Impact 30 / 37

  29. Open Source Impact Wireshark: Contribution of P2P-RPL dissector 31 / 37

  30. Open Source Impact Linux: Interop. testing, contribute discussions and fixes 32 / 37

  31. Open Source Impact OpenOCD: Threading support for RIOT in GDB 33 / 37

  32. Open Source Impact IETF: Participation in discussions Authoring of IoT related documents 34 / 37

  33. Current Hot Topics of Interest ◮ Hardware-in-the-loop (HIL) testing infrastructure ◮ Automated network tests, including interoperability & regression ◮ LoRa PHY & MAC layer integration ◮ NB-IoT & LTE-M transceiver integration ◮ IoT semantic & hypermedia interop. (T2TRG/IETF) ◮ Exploration of secure firmware update mechanisms for the IoT (SUIT/IETF) 35 / 37

  34. We Care About our Community

  35. T hank You! ↸ www.riot-os.org � riot@riot-os.org � @RIOT_OS � riot-os@freenode

Recommend


More recommend