Re: [v6ops] Erik Kline's Discuss on draft-ietf-v6ops-cpe-slaac-renum-05: (with DISCUSS and COMMENT)

Fernando Gont <> Thu, 11 February 2021 18:40 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D83D43A1847; Thu, 11 Feb 2021 10:40:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id xDoCIdXiAQyC; Thu, 11 Feb 2021 10:40:18 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B19493A1841; Thu, 11 Feb 2021 10:40:17 -0800 (PST)
Received: from [IPv6:2800:810:464:2b9:4181:442:5061:d73f] (unknown [IPv6:2800:810:464:2b9:4181:442:5061:d73f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 9048B283B32; Thu, 11 Feb 2021 18:40:10 +0000 (UTC)
To: Erik Kline <>
Cc: The IESG <>,, V6Ops Chairs <>, v6ops list <>, Owen DeLong <>
References: <> <> <>
From: Fernando Gont <>
Message-ID: <>
Date: Thu, 11 Feb 2021 15:31:58 -0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [v6ops] Erik Kline's Discuss on draft-ietf-v6ops-cpe-slaac-renum-05: (with DISCUSS and COMMENT)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: v6ops discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 11 Feb 2021 18:40:23 -0000

Hi, Erik,

I've posted our working copy of the upcoming -07 version at:

My comments below refer to further changes on such (upcoming) doc.


On 11/2/21 03:17, Erik Kline wrote:
> On Wed, Jan 27, 2021 at 6:10 PM Fernando Gont <> wrote:
>> Hi, Erik,
>> In-line...
>> On 22/10/20 02:37, Erik Kline via Datatracker wrote:
>>> ----------------------------------------------------------------------
>>> ----------------------------------------------------------------------
>>> [ section 3.2 ]
>>> * I absolutely agree in principle at these other lifetimes should be updated
>>>     to the shorter of the two applicable lifetimes, but I'm worried that this
>>>     text is not sufficiently precise.  Specifically, this recommendation only
>>>     applies to options that depend in any way on the change in the delegated
>>>     prefix, yes?  Perhaps just this qualifier is sufficient?
>> How about tweaking the first paragraph of Section 3.2 as:
>>     CE Routers SHOULD override the default lifetime values of Neighbor
>> Discovery options that depend in any way on the change delegated prefix,
>> and employ shorter lifetime values to improve the robustness to
>> renumbering events, while complying with the requirements from Section
>> 2.1 of this document and the recommendations in [RFC7772].
>> ?
> Something like this sounds good.  My main concern is that someone
> parachuting into this document looking for MUSTs and SHOULDs that they
> need to implement could miss the discussion in 3(.0) and 3.1 that sets
> the context of referring to lifetimes for options that depend on
> prefixes delegated from upstream (by any mechanism, actually).

I think I now see where you're going. So, how about tweaking L-16 from 
Section 3 as:

    o  L-16: CE routers SHOULD employ capped option lifetimes on the
       LAN-side for any SLAAC or DHCPv6 options that depend on any way
       on changes in the prefixes employed for automatic configuration,
       as specified in Section 3.4 of this document.

Note that the Section 3.4 of the upcoming -07 has already incorporated 
text in this respect.

> Locally assigned/generated prefixes, ULA or otherwise, do not need to
> adhere to these lifetime recommendations, although these are certainly
> quite reasonable default choices.  When I referenced ULA I was really
> meaning any locally generated/assigned prefix/option; the issue is
> about delegated vs locally-originated prefixes/options.

The text now has that qualifier.

Note: the crafted text I suggested above says "...depend on a change in 
the prefix employed for automatic configuration". This kind of makes it 
irrelevant on how you got the prefix or generated it --- if changing the 
prefix employed for automatic configuration, this would still apply.

Note that e.g. a CE Router with multiple lan-side networks that do not 
consistently locally-generate the same prefix for the same subnet (or 
that does not consistently DHCPv6-pD leases the same prefixes 
downstream) would also benefit from this.

> I certainly agree that the lifetime recommendations make some
> universal sense, but I think MUSTs can only be applied to delegated
> prefix/option information whereas all other cases only SHOULD really
> applies.

But we seem to be okay in that respect:
L-15 takes care of the option lifetimes not spanning past the remaining 
lifetimes from the upstream. (with a MUST)

L-16 talks about overriding the default lifetimes (with a SHOULD).

The only possible confusion would seem that L-16 talks about "remaining 
lifetime", which comes from L-15.  THat's why I was wondering if one 
might want to add a note that, when working with delegated prefixes, 
"remaining lifetime" means what you compute in L-15, whereas in other 
cases it simply means "whatever is the locally configured lifetime"

>>> [[ nits ]]
>>> [ section 3.3 ]
>>> * In the 2nd bullet's 2nd bullet (this might be easier if these lists were
>>>     numbered),
>> Change both lists (innet an outter) to numbered lists?
> Whatever you like.  My observation is that if it's something you think
> that an implementer will need to refer to, perhaps in documentation/a
> code comment/a commit message, then numbered/lettered lists are more
> useful for that purpose.
>      // Blarg the foobar so we can quux it later if we have to,
>      // per RFC XYZ section A.B.C, item 1.2 (b).
>      state_machine.blarg(foobar);  /* Fixes: #17 */

That's a good point. I believe the "RATONALE" bits can be left "as is", 
since they are mostly informational (you only need to go through it if 
you want to understand the motivation).  For Section 3.5, we should 
probably at least make it such that we have only one level of bullets.

(regarding numbered vs un-numbered, the reason why we used unnumbered 
bullets is that they don't convey "order" -- e.g., some of the bullets 
are essentially IF-THEN-ELSE clauses)

Fernando Gont
SI6 Networks
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492