Subject: [Roll] RPL Linux implementation

From: João Pedro Taveira <[email-masked]>
Date: Fri, 24 Jan 2014 10:54:32 +0000

Hi to all,

I've been working with linux and contiki in order to get beaglebones and
rpi communicating with contiki powered sensors.

I started using SimpleRPL but I notice that it didn't handle NUD, so I
started Linux RPL support.

I've been cleaning up the code to linux kernel best practices and I'm
trying to get some time to contact kernel network maintainers to know who
to get RPL in kernel.

I've been using RPL in linux with 6lowpan stack, but there some missing
fixes in beaglebone and rpi official kernels which requires to merge a lot
of patches from this and that repository to get everything working on my
project requirements.

Linux implementation worked pretty well with contiki implementation using
6lowpan stack. Notice that there's a lot of bugs and misbehavior
integrating systems, but since there wasn't any RPL implementation of RPL
in linux and integration of 6lowpan in linux with contki, by getting
anything working was a great starting point.

My rpl implementation supports namespaces which allow to test it with CORE
emulator. RPL kernel implementation watches for NUD and acts if required.
It's expected to allow multiple DODAGs. It also provides a OF API to allow
future OF implementations. I only implemented 0OF for now. The rpl kernel
implementation implements linux led trigger support to allow to bind
beaglebones and rpi leds to kind-of "joined to any dag" feedback.

To interact with RPL in linux, there's userland tool "rpl-ctl", which was
based on the great "iz" tool. Using the tool, the user may setup RPL
functionality, list internal state of RPL and trigger repairs. It's not
implemented yet, but I hope to get time to implement userland events
triggering based on what happens in RPL.

If someone would like to give it a try, kernel patches are available here:
https://github.com/joaopedrotaveira/linux-rpl

Since I've been working with several versions of kernels to several
features of RPi and BBW/B, it has been difficult to keep a single
repository with RPL and others features I need for my projects all together.

If you find any issue or have any question on how to get this working, feel
free to ask. If there's any process to test implementations features and
capabilities, let me know.

I'll try to give more time on sharing my work, but my time keeps not
stretching lately.

I hope my contribution be useful.

Best Regards,
João Pedro Taveira