Re: [Roll] Looking for Linux implementation of RPL for interop testing

João Pedro Taveira <joao.p.taveira@gmail.com> Fri, 17 April 2015 20:57 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 2423B1A86EF for <roll@ietfa.amsl.com>; Fri, 17 Apr 2015 13:57:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.2
X-Spam-Level:
X-Spam-Status: No, score=0.2 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, 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 2VeiJO-lBjk9 for <roll@ietfa.amsl.com>; Fri, 17 Apr 2015 13:57:06 -0700 (PDT)
Received: from mail-la0-x235.google.com (mail-la0-x235.google.com [IPv6:2a00:1450:4010:c03::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A946D1A701A for <roll@ietf.org>; Fri, 17 Apr 2015 13:57:05 -0700 (PDT)
Received: by laat2 with SMTP id t2so89368575laa.1 for <roll@ietf.org>; Fri, 17 Apr 2015 13:57:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-type; bh=MtI6exMTdTdwRa0dg9kpm9Q6fJgAT9dnfdsq9DA9/UY=; b=zyvzWfIl/3zN9k6TnElUATygJrdZOEKrlrnB3zRwOLwS3pAedguzfvunhpPUlboceT a0bQWRvx0ESQ3E/eSm5iR4keqdVtz9T66hpE/KIfW+WzJBV9nX4VuvRLx+q+gL4zrt0b KvIoRImgwJwV+Su3LRopMMPCrjc2hEcG1xihPenwkFliI6iHCaAmupeT9j1vwgPG6lEL skcYBawiUwclvo/8v1H7QsfH3BL3aAucfPUgr6PP1P+bVxD7ZL6m/1f+psLKt1woOmgg qmvXKuHJE2IizpsoQ4cIEWGW//Vi0i+dTWGWxQypZfoaR/53kRmyRzF9SzEGjalKL4bN Rnmg==
X-Received: by 10.112.8.101 with SMTP id q5mr5936697lba.19.1429304224132; Fri, 17 Apr 2015 13:57:04 -0700 (PDT)
MIME-Version: 1.0
References: <DC67D807-BCFD-4447-A58E-D6D1E30F2DE7@cisco.com> <21995.1428000041@sandelman.ca> <20150402203416.GA18697@omega> <557AE653-44F3-49E9-887E-7C55CE8295B9@gmail.com> <551EE07F.8030909@mulligan.com>
In-Reply-To: <551EE07F.8030909@mulligan.com>
From: João Pedro Taveira <joao.p.taveira@gmail.com>
Date: Fri, 17 Apr 2015 20:57:03 +0000
Message-ID: <CAJ018wDvs7n4q=Qhmzwsr5NjF7h3btSft9S8VGVVdmzB64_WvQ@mail.gmail.com>
To: Routing Over Low power and Lossy networks <roll@ietf.org>
Content-Type: multipart/alternative; boundary="001a1134df968e333c0513f1d2a6"
Archived-At: <http://mailarchive.ietf.org/arch/msg/roll/8iMghghZN757FIebiSlJHsx_6z0>
Subject: Re: [Roll] Looking for Linux implementation of RPL for interop testing
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, 17 Apr 2015 20:57:08 -0000

Hi to all,

I'm glad to know that there's some interested on my RPL linux
implementation.

Since september 2014, I had no opportunity to work on RPL on linux.

When I started this implementation, I thought on possible roadmap:
1. RFC 6206 trickle
2. RFC 6550 RPL
3. RFC 6552 OF0
4. Root Node mode
5. Router Node mode
6. userland tools
7. OF0 Integration tests Linux/Linux
8. OF0 Integration tests with Linux/contiki
9. Tests with Linux/at86rf23x + contiki/atmega128rfa1
10. Tests with Linux/xbee + contiki/m1284p+xbee
11. RFC 6719 MRHOF
12. RFC 6551 Routing Metrics
...

I also tested rpl linux implementation using CORE (
http://www.nrl.navy.mil/itd/ncs/products/core). Using kernel namespaces,
it's easy to test the implementation.

I stop on issues 11. and 12. I got stuck when I start to get MRHOF, ETX and
metrics working. I had to dive on linux netstack to figure out how to get
ETX without breaking (or breaking too much) abstraction layers on netstack.

Since RPL Linux implementation worked very well with 0OF and contiki, I
just tried to make some use of linux nodes with very basic network support
on a small mesh with contiki and linux nodes. The results could be better.
I faced too many basic issues, with very simple resolutions but that would
require some free time to fix that I hadn't.
Regarding to contiki, there's nothing to say since RPL it's quite solid. I
simply needed more ram for the IP buffer since it was only 400bytes long
(there wos no more free space). About RPL implementation, it took too long
to react on mesh changes. At least, multi-hop worked. About linux nodes
within the mesh, I tried to fly to high and I can say that ssh really want
the minimum of ipv6 max MTU. Connecting one of the linux nodes to internet
as gw, the network basic protocols seam to work without problems like DNS,
ICMP6 and CoAP.

Still on MRHOF, I contact linux-zigbee/linux-wpan group to get some
information about roadmap about MAC802154 and I was told that it was too
soon to know what and how things would be. I think there was a merge from
linux zigbee to linux-wpan, but in the meanwhile, it was agreed between
linux groups to merge wpan with bluetooth.

As last resort on ETX and MRHOF on linux and to see it working, I just
tried to use nd6 timers as indication on link quality on linux side.
Basically, when some neighbour moved to state REACHABLE would count as a
good packet delivered. When a neighbour moved to state FAILED would count
as several non-acked packets. Assuming that nodes wouldn't send too many
packets, neighbours would move frequently to IDLE state. On each packet
exchange this would make state to move to REACHABLE and count as good
packet. Using RPL linux as root, this metric would be more or less
acceptable but I didn't like the idea of different metrics. Anyway, I was
able to get correct behaviour from MRHOF from linux nodes (even with a
strange metric).

Since 4thQ 2014, I had no time available to work on this. I think I already
know how to get ETX working. I'll see linux-wpan/linux-bluebooth current
status and I hope to continue what I was doing back then.

About the blog which talks about tests to RPL Linux implementation, I just
want to say that I wasn't contact about it before the post.

Best Regards,
João Pedro Taveira