Re: [Roll] AD Review of draft-ietf-roll-efficient-npdao-09

Rahul Arvind Jadhav <rahul.jadhav@huawei.com> Thu, 16 May 2019 08:38 UTC

Return-Path: <rahul.jadhav@huawei.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 14FF9120131; Thu, 16 May 2019 01:38:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=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 wT6xRhUjQgzt; Thu, 16 May 2019 01:38:00 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35365120059; Thu, 16 May 2019 01:38:00 -0700 (PDT)
Received: from lhreml704-cah.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 5E858C2810A354D446CC; Thu, 16 May 2019 09:37:58 +0100 (IST)
Received: from BLREML703-CAH.china.huawei.com (10.20.4.172) by lhreml704-cah.china.huawei.com (10.201.108.45) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 16 May 2019 09:37:57 +0100
Received: from BLREML503-MBX.china.huawei.com ([169.254.9.86]) by blreml703-cah.china.huawei.com ([::1]) with mapi id 14.03.0439.000; Thu, 16 May 2019 14:07:46 +0530
From: Rahul Arvind Jadhav <rahul.jadhav@huawei.com>
To: Routing Over Low power and Lossy networks <roll@ietf.org>, Alvaro Retana <aretana.ietf@gmail.com>
CC: roll-chairs <roll-chairs@ietf.org>, "draft-ietf-roll-efficient-npdao@ietf.org" <draft-ietf-roll-efficient-npdao@ietf.org>
Thread-Topic: AD Review of draft-ietf-roll-efficient-npdao-09
Thread-Index: AQHU8KtHi2al9xV9Bkeco/7i1KUlVaZQCpOAgBAPg4CAChXQ0IADQqJw
Date: Thu, 16 May 2019 08:37:46 +0000
Message-ID: <982B626E107E334DBE601D979F31785C5DEA5687@BLREML503-MBX.china.huawei.com>
References: <CAMMESsy11FvVEZ6VGRK7PYo4FXzVs8x=G-y-0U8C3bkgyK5R8A@mail.gmail.com> <CAO0Djp16zsnfq266Y5=5sw6HbWx3KDdGqQfoQZ9jJfyUahVAfw@mail.gmail.com> <CAMMESswxytDEfBbtFxM0-cd7QTZ-j5-JTrCF6pDSckZQVM5KrQ@mail.gmail.com> <982B626E107E334DBE601D979F31785C5DEA5543@BLREML503-MBX.china.huawei.com>
In-Reply-To: <982B626E107E334DBE601D979F31785C5DEA5543@BLREML503-MBX.china.huawei.com>
Accept-Language: en-IN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.18.157.44]
Content-Type: multipart/alternative; boundary="_000_982B626E107E334DBE601D979F31785C5DEA5687BLREML503MBXchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/pYO6R0a69bR9HuosdH3CATQqqco>
Subject: Re: [Roll] AD Review of draft-ietf-roll-efficient-npdao-09
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 16 May 2019 08:38:03 -0000

I missed one important point raised in Alvaro’s review:

498 4.4.1. Dependent Nodes invalidation

500 Current RPL [RFC6550] does not provide a mechanism for route
501 invalidation for dependent nodes. This document allows the dependent
502 nodes invalidation. Dependent nodes will generate their respective
503 DAOs to update their paths, and the previous route invalidation for
504 those nodes should work in the similar manner described for switching
505 node. The dependent node may set the I-bit in the transit
506 information option as part of regular DAO so as to request
507 invalidation of previous route from the common ancestor node.

[major] This part is underspecified. How do the dependent nodes know of
the switch? Is A (Figure 1) the common ancestor node mentioned above?

I found the same question being asked during WGLC, and the answer seems to
be: "the dependent nodes will always set the I-flag". Is that my correct
interpretation? The behavior needs to be reflected in the specification.

https://mailarchive.ietf.org/arch/msg/roll/LejLNET8Hk92wPWU3Xi6OaxCujg

[RJ] I have added a para to describe this more. Please check if it makes sense.

If the dependent node always sets the I bit, wouldn’t that result in constant invalidation (unless no route existed before)?  IOW, it seems like the setting of the I bit has to be conditional.  The mail archive talks about the DTSN incrementing — I’m assuming this will happen then the parent switches to a different parent…is that true?  If so, then I think that this piece of text still needs some work.

[RJ]  Actually this point has relation on how sub-dodag (rooted at 6LR switching the parent) routing state update happens in storing MOP. Unfortunately 6550 is not clear on this. We had made this observation in the rpl-observation draft.

If the sub-dodag has to be updated then there are two ways:

1.       Incrementing DTSN by the switching 6LR. When downstream child 6LRs see a new DTSN from their preferred parent, they also increment DTSN (as well as resetting trickle timer) and thus update the sub-dodag. This has control overhead implications but most easy to implement. If the network is not too deep/mobile and the MRHOF switching threshold is high enough then this works out great.

2.       Other option is that switching 6LR update the routing state on new path based on its own routing state. This has looping implications as Pascal mentioned in previous mail and also is not easy to implement because you can only stuff in x number of targets/transit options in a given DAO and then managing multiple DAOs is painful.

My implementation currently uses option 1. Thus I am tempted to follow option 1 and let I-flag be enabled only on identifying DTSN increment. But then I didn’t see any loss in keeping I-flag enabled always if target is interested in its invalidation. The invalidation only happens if the route entry is with different nexthop and the path sequence criteria is fulfilled on the ancestor node. In my implementation, I currently enable I-flag always (even though I could have enabled it on the basis of DTSN value). Having said that, if anyone else has any other opinion, I am open to changing the text and setting I-flag conditionally based on DTSN increment.

Or I could point out these possibilities as it is in the draft and let the implementers decide?