Re: [Roll] updating DAO caches (was Re: Something to ADD)

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Tue, 17 November 2009 17:20 UTC

Return-Path: <pthubert@cisco.com>
X-Original-To: roll@core3.amsl.com
Delivered-To: roll@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3447728C153 for <roll@core3.amsl.com>; Tue, 17 Nov 2009 09:20:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.936
X-Spam-Level:
X-Spam-Status: No, score=-9.936 tagged_above=-999 required=5 tests=[AWL=0.663, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OFX6vT1loCau for <roll@core3.amsl.com>; Tue, 17 Nov 2009 09:20:30 -0800 (PST)
Received: from ams-iport-1.cisco.com (ams-iport-1.cisco.com [144.254.224.140]) by core3.amsl.com (Postfix) with ESMTP id 774EB28C166 for <roll@ietf.org>; Tue, 17 Nov 2009 09:20:29 -0800 (PST)
Authentication-Results: ams-iport-1.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AjwAANJpAkuQ/uCWe2dsb2JhbACcHgEBCwskBqNXmCSEOwSBbQ
X-IronPort-AV: E=Sophos;i="4.44,759,1249257600"; d="scan'208";a="54585849"
Received: from ams-core-1.cisco.com ([144.254.224.150]) by ams-iport-1.cisco.com with ESMTP; 17 Nov 2009 17:20:27 +0000
Received: from xbh-ams-201.cisco.com (xbh-ams-201.cisco.com [144.254.75.7]) by ams-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id nAHHKRWx016048; Tue, 17 Nov 2009 17:20:27 GMT
Received: from xmb-ams-107.cisco.com ([144.254.74.82]) by xbh-ams-201.cisco.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 17 Nov 2009 18:20:26 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 17 Nov 2009 18:20:20 +0100
Message-ID: <6A2A459175DABE4BB11DE2026AA50A5DAABD57@XMB-AMS-107.cisco.com>
In-Reply-To: <10F8F803-5EE2-4E71-8BF4-DB94D749DD62@archrock.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [Roll] updating DAO caches (was Re: Something to ADD)
Thread-Index: AcpnpGkyHNnkrazpRtG5TaM+FhLUOAAAaPeQ
References: <34039830-7A8C-488B-A080-04013FBFC769@cisco.com><874op2l1s2.fsf@kelsey-ws.hq.ember.com><B6DBCBF27DEB1047AD57F03F217B1061856EF0@XMB-AMS-113.cisco.com><87hbt22djo.fsf@kelsey-ws.hq.ember.com><B6DBCBF27DEB1047AD57F03F217B1061856FAD@XMB-AMS-113.cisco.com><87ljidpg45.fsf@kelsey-ws.hq.ember.com><10442.1257951943@marajade.sandelman.ca><87r5s31ly9.fsf@kelsey-ws.hq.ember.com><31012.1258061765@marajade.sandelman.ca><87my2q43mv.fsf@kelsey-ws.hq.ember.com><13293.1258166652@marajade.sandelman.ca><59CDC556-1C4E-4DE7-A3A2-30D6AA86F3A3@ekasystems.com><874oot3zcf.fsf@kelsey-ws.hq.ember.com> <10F8F803-5EE2-4E71-8BF4-DB94D749DD62@archrock.com>
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Jonathan Hui <jhui@archrock.com>, Richard Kelsey <richard.kelsey@ember.com>
X-OriginalArrivalTime: 17 Nov 2009 17:20:26.0616 (UTC) FILETIME=[4100E780:01CA67AA]
Cc: roll@ietf.org
Subject: Re: [Roll] updating DAO caches (was Re: Something to ADD)
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Tue, 17 Nov 2009 17:20:31 -0000

Hi Jonathan and Richard:

My thought process lead me to following (buy or not :) design, that is
what you find in the MANEMO implementations.

* Nodes that can store should if that's what the deployment requires
(that's policy). 

* Source route trace a path. It can be done on traffic, one every so
many messages with exponential backoff, using small messages that can be
extended for the purpose of LSRR.

* In particular when there are movements (churn) only a snapshot is
consistent. Assembling asynchronous pieces some of which might be out of
date into a routing header is doomed.

A node that cannot store states 

* needs *no* DAO support at all and the whole thing still works. Nodes
that do DAO cohabit with nodes that do without a problem.

* Announce in DIO but still silently absorb for the DAO if they come
nevertheless.

* But they forward and add to the source route. Adding to the source
route means add up the SR stack the information about the next hop. That
information is derived from the source of the packet. Then the node sets
its own address as the source of the packet so it is topologically
correct all the way.

A Node that supports DAO states 

* If the state matches the source route path then the node does not need
to add to the source route header. A state matches if the route to the
highest (newest) entry in the source route header is via the source of
the packet. This confirms that the associated routing state learnt from
DAO is still correct.

* The node does not need to store the source route either. Only the
endpoint does that. In our case the root could intercept and store.

* The node still updates the source of the packet with their own address
to keep it topologically correct and allow the next hop to record the
right thing if it needs.

* But if the states does not match the source route, then the states are
obsolete, and the node should add to the source route header and set the
source to self. 

When you run the MANEMO trilogy (tree discovery, nina (DAO) and RRH
(source route)), you see the source route RH2/4 grow upon movement and
quickly shrink again as the NINA (DAO) states are reestablished. 
When things are stable you only see as many entries as non DAO capable
nodes along the path. In my case, the source route is done on a MIP/NEMO
tunnel, so the RH states are stored in eth binding cache on the home
agent. But we could store that at the root with exactly the same
process.
I can demo that next time we meet if you wish.

http://tools.ietf.org/html/draft-thubert-nemo-reverse-routing-header
details the RRH, since there is not LSRR in IPv6.

Note that in our case, the information in the header should be locally
significant, like a label.

cheers

Pascal

>-----Original Message-----
>From: roll-bounces@ietf.org [mailto:roll-bounces@ietf.org] On Behalf Of
Jonathan Hui
>Sent: mardi 17 novembre 2009 17:38
>To: Richard Kelsey
>Cc: roll@ietf.org
>Subject: Re: [Roll] updating DAO caches (was Re: Something to ADD)
>
>
>On Nov 17, 2009, at 8:12 AM, Richard Kelsey wrote:
>
>>> From: Roger Alexander <roger.alexander@ekasystems.com>
>>> Date: Mon, 16 Nov 2009 15:33:33 -0800
>>>
>>> Not clear why there is a need to know who records DAOs. In response
>>> to
>>> a new child a parent that does maintain state will add itself to the
>>> path information from the child and pass that information to it's
>>> parent. That information will pass inward towards the root until a
>>> node is encountered that can store the path information and
>>> previously
>>> supported connectivity to the node at the same cost.
>>
>
>[nice example of what DAOs need to be sent]
>
>> In the first case a single DAO needs to be sent.  In the
>> second case D has to send two DAOs and the nodes in its
>> subdag, just E here, each need to send one.  If only the
>> root caches DAOs then the first case always applies.  If
>> other nodes may cache DAOs, then we have to assume that we
>> are in the second case after every move.
>
>I was in the process of creating a similar example.  All I'll add is
>that, intuitively, the more places state gets "replicated" within the
>network, the more costly it is to maintain that state and the more you
>have to deal with inconsistencies between replicated instances.  Of
>course, the hope in replicating this routing state is that it creates
>shorter paths and ultimately offsets the cost of maintaining that
state.
>
>I'll have to admit that I'm not yet convinced of the benefits in
>storing DAO state as it currently exists in the draft.  It seems like
>a mediocre attempt to optimize point-to-point routing and something
>that folks wanting P2P support aren't satisfied with.  If that is the
>end-goal, then we should be developing better mechanisms.  For now, we
>are focusing on one-to-many and many-to-one.  And, I see more benefits
>to simply maintaining state at the root.
>
>--
>Jonathan Hui
>
>_______________________________________________
>Roll mailing list
>Roll@ietf.org
>https://www.ietf.org/mailman/listinfo/roll