Re: [Roll] [manet] Understanding RPL [was: Working group re-charter ideas]

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Fri, 03 April 2015 08:51 UTC

Return-Path: <pthubert@cisco.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 1AF661A1A97; Fri, 3 Apr 2015 01:51:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.21
X-Spam-Level:
X-Spam-Status: No, score=-14.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
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 uzZiZCJI0zEq; Fri, 3 Apr 2015 01:51:08 -0700 (PDT)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 083B51A1AB8; Fri, 3 Apr 2015 01:51:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=13668; q=dns/txt; s=iport; t=1428051067; x=1429260667; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=wgzVv6AkODcB2nvkvxfhuUF7r7KJeKnPxWq7pTrMkV0=; b=hwMk3xW8u7DHzSj3fcTB4wOI2EZrNjxytlT9wgFu+SseI9barXCvJWlo W+QY7Kwaiu+IxqyUREdiBJkXjYBphgab/VAjpDZsVowE4fs3D1xnCN7Aa 2sU342URqHabHxTiJ1IEwXSxCOZTZNDvJNM5PVx5qdFvyrMEi3XXsW40c E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0B3CADIUx5V/5tdJa1cgwtSXMMwgjYBCYV9AoErTAEBAQEBAX6EHwEBBAEBAWsLEAIBCD8HIQYLFBECBA4FG4gAAxENxwcNhTIBAQEBAQEBAQEBAQEBAQEBAQEBAQETBIoqf4JHgi4EB4MXgRYFinGFeYN1gQdhP4IXgU2BHYYVhmqGLyKCAxyBUG8BAQGBASSBGwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,516,1422921600"; d="scan'208,217";a="408921930"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-3.cisco.com with ESMTP; 03 Apr 2015 08:51:06 +0000
Received: from xhc-rcd-x01.cisco.com (xhc-rcd-x01.cisco.com [173.37.183.75]) by rcdn-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t338p5Nq009789 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 3 Apr 2015 08:51:05 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.104]) by xhc-rcd-x01.cisco.com ([173.37.183.75]) with mapi id 14.03.0195.001; Fri, 3 Apr 2015 03:51:04 -0500
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Cenk Gündogan <cnkgndgn@gmail.com>
Thread-Topic: [manet] [Roll] Understanding RPL [was: Working group re-charter ideas]
Thread-Index: AQHQbdWN0AgUGz00DUugxuEkjZWsNZ06+vex
Date: Fri, 03 Apr 2015 08:51:04 +0000
Message-ID: <7F8D39C7-E757-43F2-BD04-AB2B602B133D@cisco.com>
References: <CA+-pDCe1jMFaBJH5Ynss6Kf7mtxoLC8DYjz6N9d0Zu10o0WRuQ@mail.gmail.com> <CAGnRvuqzehpwW11XvhYQXZAjMiOvfexG0ygH4pnp6PyeD_Yq_Q@mail.gmail.com> <87pp7mlmf7.wl-jch@pps.univ-paris-diderot.fr> <E045AECD98228444A58C61C200AE1BD849D983BB@xmb-rcd-x01.cisco.com> <87fv8i85dq.wl-jch@pps.univ-paris-diderot.fr>,<551E2FE1.4000509@gmail.com>
In-Reply-To: <551E2FE1.4000509@gmail.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Content-Type: multipart/alternative; boundary="_000_7F8D39C7E75743F2BD04AB2B602B133Dciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/roll/k852-ZrAMTkJhW-sdplbEFdluDA>
Cc: Routing Over Low power and Lossy networks <roll@ietf.org>, "manet@ietf.org" <manet@ietf.org>
Subject: Re: [Roll] [manet] Understanding RPL [was: Working group re-charter ideas]
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, 03 Apr 2015 08:51:11 -0000

You pretty much have it all, Cenk, I thank you for this great explanation.

Let me observe a few things:

One is that poisoning gives you only half of the value of detaching since detaching maintains connectivity within the detached DODAG, which is a useful consideration in A MANET situation. This mode is an inheritance from MANEMO where we were looking for the minimal topological awareness so as to ensure maximum resilience to swarming in a highly mobile situation.

Second is that both RPL methods derive from the desire of getting a similar service as the diffusion algorithm  in DUAL/EIGRP, but in a MANET situation where connectivity is uncertain and the real diffusion algorithm is doomed to fail.

We had to adapt to the real world and its statistical behavior, and had to cover for the exception, which RPL does as you describe. So DUAL was replaced with a trickle-based diffusion, and the packets were instrumented beyond hop count to detect and fix the anomalies.

There was ample simulation work that showed the value for traffic continuity vs. plain black holing (till the next sequence is advertised). Same goes for the stretch to the feasibility condition.

Now if you disable those functionalities - arguably in a rather fast and stable network - , and you make one mop0 DODAG per router in one instance, you get something that is highly similar to BABEL - and that is no magic. And in that, BABEL is less than EIGRP, but arguably, for that same reason, EIGRP is not applicable to MANET.

If you make that 2 instances, you can select the Homenet multi homed GW without the need for source/destination routing.

If you add the option of P2P RPL you probably get a reactive DV in the close family of AODV.

RPL aggregated the quintessence of classical DV with the best knowledge of people applying DV to mobility (MANEMO/ NINA), and of those applying it to sensors (such as CTP and multiple proprietary solutions from WSN vendors).

At the same time, RPL kept out anything specific to a particular type of use case - metrics, logic, policies. One really creates a solution by choosing his own objective function. It can be said that RFC 6550 is generic and that the application of an OF creates an instance which is the real routing protocol.

The text is arguably hard to read.

Part of that came from the aggregation process over 19 rounds of the draft. I'm afraid that if we pass the BABEL RFC through the WG process, one will hardly recognize it in the end, even if we manage to preserve the basic operations.

Another reason is that we had to strip all the why's and focus on specifying observable behaviors. That is certainly not how one would write a book or a paper. I'm afraid that what makes BABEL such a great read today will be lost if the same process is applied.

Cheers,

Pascal

Le 3 avr. 2015 à 08:15, Cenk Gündogan <cnkgndgn@gmail.com<mailto:cnkgndgn@gmail.com>> a écrit :

Hello Juliusz,

On 03.04.2015 01:41, Juliusz Chroboczek wrote:

Local repair is done by either poisoning or detaching, sections
8.2.2.5.


I don't see how that can be implemented.

Suppose A is B's parent.  A advertises INFINITE_RANK.  A's retraction
("poison") is lost.  B has no reason to change parents, so B has a parent
with infinite rank.  Oops, B is just violating the MUST NOT in 8.2.2.5.2.

Are you assuming the network is reliable?  Or am I missing some mechanism
that prevents that from happening?


I also did struggle with this scenario for quite some time.
However, there are several places in the RFC that specifically deal (directly or indirectly) with this issue.


8.2.2.5<https://tools.ietf.org/html/rfc6550#section-8.2.2.5>.  Poisoning


   1.  A node poisons routes by advertising a Rank of INFINITE_RANK.

   2.  A node MUST NOT have any nodes with a Rank of INFINITE_RANK in
       its parent set.



My interpretation of these bullet points is that DIOs advertising INFINITE_RANK are sent out periodically
(probably in a decaying fashion via Trickle), in order to reduce the chance that these DIOs stay unnoticed.
However, this might not be a complete solution, as all DIOs from A to B can become lost thus leading to the same problem,
but then the RFC states that links should be guaranteed to be symmetric anyways, e.g. by using NUD [1] or other alternatives.

Something else I want to mention is that RPL utilizes a few lifetime counters (e.g. for the dodag or route),
which would also help in this scenario (We wouldn't refresh the lifetime of a node with INFINITE_RANK, would we?),
but admittedly, depending on the specified lifetime values, in a very sluggish way.

At last, it is important to remember that RPL uses data-path validation to reduce the chattiness of control packets,
described in [2] and most likely realized by using [3].
In that case A can reset its Trickle timer when encountering inconsistencies and start e.g. another poisoning routine
by sending out another set of INFINITE_RANK DIOs.

Best,
Cenk

[1] Neighbor Unreachability Detection (https://tools.ietf.org/html/rfc2461#page-66)
[2] https://tools.ietf.org/html/rfc6550#section-3.2.7
[3] https://tools.ietf.org/html/rfc6553
_______________________________________________
manet mailing list
manet@ietf.org<mailto:manet@ietf.org>
https://www.ietf.org/mailman/listinfo/manet