[Roll] RPL Linux implementation
João Pedro Taveira <joao.p.taveira@gmail.com> Fri, 24 January 2014 10:54 UTC
Return-Path: <joao.p.taveira@gmail.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 676031A0283 for <roll@ietfa.amsl.com>; Fri, 24 Jan 2014 02:54:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.699
X-Spam-Level:
X-Spam-Status: No, score=-1.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7cqjX-h2i4Yf for <roll@ietfa.amsl.com>; Fri, 24 Jan 2014 02:54:33 -0800 (PST)
Received: from mail-pd0-x234.google.com (mail-pd0-x234.google.com [IPv6:2607:f8b0:400e:c02::234]) by ietfa.amsl.com (Postfix) with ESMTP id BAE951A01D1 for <roll@ietf.org>; Fri, 24 Jan 2014 02:54:33 -0800 (PST)
Received: by mail-pd0-f180.google.com with SMTP id x10so2999733pdj.25 for <roll@ietf.org>; Fri, 24 Jan 2014 02:54:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=Ls2NLM5qP89nPzWEy5abminuME7jdS7xM4fjrRlHkF8=; b=slSE1KQr5xes9xD/tefZuQbI6xzcFcSPSVx+Omhhj/RKasogx/0iUvCObd5+ye7lrU JH90NBJjv+G6fGwQfUoJJnfx4G9qXGOmOyHBP18j0sDU/n5s3e+PUi1F6l+wqvPpX3fy fQMXRvT9JTIv6r61TltTpjfvczNEIJEIxssAx3yqZp4QjdvyZkgBS+ejWrc5N0+UTnEZ q3Pv1kN9dHrcDbuZ4aFBGlFqP4kR7ebjqXGnq9LUR8BTnwLEpACDuEdHqyccPOBxGsDG F3Rz3pvluqNMIDVgqOuzZrNkZbQkpoLSH5aC/Q1LZeArSTHZGa8jiYF6PLDi9bL8knR3 kGrQ==
MIME-Version: 1.0
X-Received: by 10.66.141.231 with SMTP id rr7mr13123587pab.41.1390560872794; Fri, 24 Jan 2014 02:54:32 -0800 (PST)
Received: by 10.67.24.4 with HTTP; Fri, 24 Jan 2014 02:54:32 -0800 (PST)
Date: Fri, 24 Jan 2014 10:54:32 +0000
Message-ID: <CAJ018wAmmvhOadVRZTJJ0eRWxxp-RLTP6_+Qv9n-Aab52=wfZg@mail.gmail.com>
From: João Pedro Taveira <joao.p.taveira@gmail.com>
To: roll@ietf.org, João Pedro Taveira <joao.silva@inov.pt>
Content-Type: multipart/alternative; boundary="001a11331298dc8ea404f0b52e27"
Subject: [Roll] RPL Linux implementation
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Routing Over Low power and Lossy networks <roll@ietf.org>
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/roll/>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 24 Jan 2014 10:54:35 -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
- [Roll] RPL Linux implementation João Pedro Taveira