Sunday, 8 April 2012

Multicast Support for 6LoWPANs with the Contiki OS

A few months ago I started work on adding IPv6 multicast support to the Contiki Operating System. This effort has resulted in extensions to Contiki's core networking code and its RPL implementation. Additionally, I have implemented two multcast forwarding algorithms:
  • Multicast Forwarding with Trickle: This implements the multicast algorithm described in this internet draft.
  • Stateless Multicast RPL Forwarding (SMRF): The RPL routing protocol enters Mode of Operation (MOP) 3 and handles multicast group management as per the RPL documents. SMRF is a lightweight engine which handles datagram forwarding.
SMRF is described in detail in this paper, alongside a thorough comparison between the two algorithms in terms of performance, datagram loss rates and energy consumption.

The implementation is currently under review by the core Contiki developer team, awaiting their approval before I can push it upstream. Until that day, it is hosted on github (branch 'mcast-forward'), as a fork of the Contiki OS.

I have tested things with the Cooja simulator (msp430-gcc) as well as with cc2530/cc2430 devices (sdcc). I am especially interested in success/failure reports on devices relying on other toolchains, such as AVR-based nodes or econotags, since I don't have access to the hardware.

Feel free to have a stab!