Re: [Roll] enrollment priority

Michael Richardson <mcr+ietf@sandelman.ca> Wed, 29 April 2020 12:40 UTC

Return-Path: <mcr+ietf@sandelman.ca>
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 C901B3A0E54 for <roll@ietfa.amsl.com>; Wed, 29 Apr 2020 05:40:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, 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 Qt8WwMQCYXeB for <roll@ietfa.amsl.com>; Wed, 29 Apr 2020 05:40:50 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C371B3A0E52 for <roll@ietf.org>; Wed, 29 Apr 2020 05:40:49 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id 92D213897C for <roll@ietf.org>; Wed, 29 Apr 2020 08:38:52 -0400 (EDT)
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id BC1B4781 for <roll@ietf.org>; Wed, 29 Apr 2020 08:40:45 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: Routing Over Low power and Lossy networks <roll@ietf.org>
In-Reply-To: <BM1PR01MB402069CD033662DD56D11B0BA9DF0@BM1PR01MB4020.INDPRD01.PROD.OUTLOOK.COM>
References: <CAO0Djp3p=oYLaUa03wp68Cr+9UxCuLZqykhiNo3kiHi1sqt2bA@mail.gmail.com>, <8722.1586555051@localhost> <BM1PR01MB402069CD033662DD56D11B0BA9DF0@BM1PR01MB4020.INDPRD01.PROD.OUTLOOK.COM>
X-Mailer: MH-E 8.6; nmh 1.7+dev; GNU Emacs 25.1.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Date: Wed, 29 Apr 2020 08:40:45 -0400
Message-ID: <16252.1588164045@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/9xygOT9IvxjGgEO_Pt_R2z4x0QA>
Subject: Re: [Roll] enrollment priority
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: Wed, 29 Apr 2020 12:40:55 -0000

{sorry, this email sat unsent for too long}

Rahul Jadhav <nyrahul@outlook.com> wrote:
    >> Consider the following scenario (the attached image will help explain):
    >> Node C's preferred parent is node B and alt parent is node A. What
    >> happens if the min-priority of node B changes to 127 after the node C
    >> has joined the network with B as a preferred parent? I am assuming
    >> that the min-priority impacts only the newly joining nodes i.e., once
    >> node B changes the priority to 127 then node C also changes the
    >> priority to 127 and thus no new nodes join. However, the change in
    >> node B's min-priority may not impact node C's decision to continue
    >> using node B as the preferred parent (?). What happens when node C has
    >> alternate parent node A whose priority is lesser than 127. Should node
    >> C switch to node A so as to allow new downstream nodes to join the
    >> network?

    mcr> First, I think that if node C had a MP of 127, then it would *NOT* advertise
    mcr> itself as a Join Proxy.

    RJ> Consider non-6tisch case, where the 6LR's resources are full and does
    RJ> not want any new nodes to connect to it. In this case, it still needs
    RJ> to advertise its DIO for all the existing nodes which have already
    RJ> joined through it. The new nodes will see MP=127 and hence won't
    RJ> join. But the gist is, Node C has to keep advertising for all its
    RJ> existing nodes. It cannot stop sending DIOs.

Okay, so I think that we have further confusion of Join (DODAG thing) vs
Enroll (onboarding thing) :-)
I have taken another pass through the document to make sure that all uses of
join, other than "Join Proxy" now say Enroll.

    mcr> So if it was sending Enhanced Beacons, then it
    mcr> would:
    mcr> a) set proxy prio to 0x7f.
    mcr> b) maybe even stop sending EBs [have to think about this]

    RJ> Not sure in case of 6tisch too if it can stop sending EBs? Since it
    RJ> may be needed for existing nodes who have already joined.

Yes, it probably needs to continue sending EBs.

    mcr> If node C *does* change to node A, then it would change it's priority.
    mcr> But it has to do that, and maybe there are reasons why A won't accept it.

    RJ> Sure node A might have its own reasons to not accept it, but the MP
    RJ> suggests that it is willing to accept node C. The problem is when
    RJ> node C switches to Node A, the whole sub-DODAG rooted at C switches
    RJ> and this may result in node A's MP to reach 127. Since node B is now
    RJ> free, it's MP value will decrease. This can result in oscillations in
    RJ> the network.

Agreed.
The fundamental problem is that the sub-DODAG needs to be split.
I don't think that we can do that in this option or in EBs.
It has to be done in DIOs and DAO-ACKs and...
I think that we have had proposals to deal with this before (what happened to
them?)

    > 6LRs that support this option, but whose parent does not send it SHOULD
    > assume a value of 0x40 as their base value.
    > The nodes adjust this base value based upon their observed congestion,
    > emitting their adjusted DIO value to their children.

    > (0x40 is my wet-finger-in-the-air, seat-of-the-pants guess)

    RJ> Consider that a 6LR who does not support MP gets a DIO with
    RJ> MP=127. The 6LR will ignore the MP field and sends it DIO without MP
    RJ> and the downstream nodes will assume an MP of 0x40! This may be a
    RJ> problem.

I added some analysis to my slides today to deal with this.
I am open to other values, but I think we need to pick some value. Maybe 0,
but I think not.  Maybe rank * VALUE.

    >> We tried working on a problem-statement in the past in LWIG [1] which
    >> talked about how to handle the case where some upstream nodes cache
    >> (routing/neighbor) is full and how would it stop the new downstream
    >> nodes to attach in that path. Enrollment priority was referenced as a
    >> possible solution.

    > Good.  Would more informative cross-references help?
    > Do you want to co-author?

    RJ> Yes, I would love to work on this problem statement.

https://github.com/roll-wg/draft-ietf-roll-enrollment-priority
I will unicast to get permissions right.

--
Michael Richardson <mcr+IETF@sandelman.ca>ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-