Re: [RTG-DIR] Rtgdir telechat review of draft-ietf-babel-rfc6126bis-11

Juliusz Chroboczek <jch@irif.fr> Mon, 12 August 2019 21:19 UTC

Return-Path: <jch@irif.fr>
X-Original-To: rtg-dir@ietfa.amsl.com
Delivered-To: rtg-dir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 04C621209FB; Mon, 12 Aug 2019 14:19:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-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 T7l160ZX2Erm; Mon, 12 Aug 2019 14:19:22 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (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 4039112121A; Sun, 11 Aug 2019 22:20:05 -0700 (PDT)
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id x7C5K0YZ006374; Mon, 12 Aug 2019 07:20:00 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 019A139DD2; Mon, 12 Aug 2019 07:20:03 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id ovrjwgD6p1Wg; Mon, 12 Aug 2019 07:20:01 +0200 (CEST)
Received: from pirx.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 82E0D39DD0; Mon, 12 Aug 2019 07:20:01 +0200 (CEST)
Date: Mon, 12 Aug 2019 07:20:01 +0200
Message-ID: <87ftm7arjy.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: Yingzhen Qu <yingzhen.ietf@gmail.com>
Cc: rtg-dir@ietf.org, draft-ietf-babel-rfc6126bis.all@ietf.org, ietf@ietf.org, babel@ietf.org
In-Reply-To: <CABY-gONP+aCedc55nzrqzb08bhwFvm6-0NEVzPi6AxnZy48XBA@mail.gmail.com>
References: <156470236376.19191.1026181661457374790@ietfa.amsl.com> <87o918ou5d.wl-jch@irif.fr> <CABY-gONP+aCedc55nzrqzb08bhwFvm6-0NEVzPi6AxnZy48XBA@mail.gmail.com>
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Mon, 12 Aug 2019 07:20:00 +0200 (CEST)
X-Miltered: at korolev with ID 5D50F700.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 5D50F700.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@irif.fr>
X-j-chkmail-Score: MSGID : 5D50F700.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-dir/ZZ9-xQYjb2LdmX3xELQE-HKASjE>
Subject: Re: [RTG-DIR] Rtgdir telechat review of draft-ietf-babel-rfc6126bis-11
X-BeenThere: rtg-dir@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Routing Area Directorate <rtg-dir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-dir>, <mailto:rtg-dir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-dir/>
List-Post: <mailto:rtg-dir@ietf.org>
List-Help: <mailto:rtg-dir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-dir>, <mailto:rtg-dir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Aug 2019 21:19:24 -0000

Dear Ms. Qu,

Sorry for the delay, and thank you for your reminder.

>> The description about packet trailer is in RFC 7557 section 2.5, but
>> not included in the bis version.

>     The packet trailer is described in Section 4.2.

> [YQ]: In RFC 7557 section 2.5, there is a clear description about how the
> packet trailer length is calculated etc. Personally I feel it's more
> straightforward, but if you think section 4.2 is enough, I'm not going to
> insist.

I see.  Yes, I'll clarify that.
 
>> There are multiple places in the document about TLV/Sub-TLV being
>> “self-terminating”, but I didn’t find what it means. Maybe I’m missing
>> something here?

>     This is defined in Section 4.4.  I have checked that all uses of
>     self-terminating occur after its definition.

> [YQ]: in section 4.4, it says self-terminating can be used to determine the
> length of the TLV body without using the length field. This is clear, however
> what does it look like? how to detect it? maybe I'm missing something here.

For example, the router-id TLV is always 8 octets long.  It is
self-terminating.

The Pad1 TLV can have arbitrary length, and it is impossible to determine
its length without the explicit Length field.  It is not self-terminating.
 
>> Section 1.1
>> “unmanaged and wireless environment”, what does “unmanaged” mean here?

>     Not being actively managed by a human administrator.  This is a
>     non-normative
>     section.  Please let me know if I'm using this term badly.

> [YQ]: my understanding is unmanaged can mean anything, like no management at
> all. I don't think it's a good term, especially put together with wireless. 
> maybe try to add a bit more explanation?

This is a conceptual overview, unmanaged is used in a non-technical sense.

>> Section 3.2.3 The interface Hello seqno is changed to outing multicast
>> hello seqno, however there is no description about unicast hello at
>> all.

>     Unicast Hellos are per-neighbour, so they appear in Section 3.2.4 (Section
>     3.2.3 describes per-interface data structure while 3.2.4 describes
>     per-neighbour structures).  Both kinds of Hellos are described in more
>     detail in Section 3.4.1.

> [YQ]: there is nothing wrong with current text. I was thinking of adding
> unicast just for easy readability. same for the following three related
> questions.

The approach taken here is to define the data structures before explaining
the protocol.  The advantage is to have a clear reference for the
implementer; but of course it leads to a number of things that are not
entirely clear at this point.  It's a difficult tradeoff, I'm going to
leave it as is.

>> Section 3.8.1.1

>> After a node receives a route request, if the given prefix doesn’t
>> exist in its route table, it MUST send a retraction for that prefix. So
>> my question is whether a node is allowed to send multiple explicit
>> requests for a given prefix?

[...]

> [YQ] thanks for the explanation. I'm just wondering whether we should
> document it somewhere?

No, I don't think so.  This case is not specific -- for example, sending
multiple copies of updates is also not a good idea.
 
> [YQ]: My understanding is Babel uses a stateful parser, and TLVs in the packet
> trailer are not allowed to modify the state. So the text here is suggesting to
> implement a stateless parser for packet trailer. so the question is: will
> packet trailer to able to use/read the state? is the stateless parser suggested
> just for implementation simplicity?

None of the TLVs allowed in the packet trailer use or modify the state.
See also the last paragraph of the appendix "Considerations for protocol
extensions".
  
>> Section 4.5
>> 1674       parsing a TLV MUST update the parser state even if the TLV is
>> 1675       otherwise ignored due to an unknown mandatory sub-TLV.

>     I believe you may have forgotten to write your comment.

> [YQ]: is it correct that the parser state is updated by a TLV even if the TLV
> is ignored due to unknown sub-tlv? what about a TLV ignored due to other
> reasons?

You're right, I'll add a comment.

>> Section 4.6.5
>> 1805                 send a new scheduled Hello TLV with the same setting
>     of the
>> 1806                 Unicast flag.  If this is 0, then this Hello
>     represents an
>> I’d suggest changing the text to “the same setting of flags” instead of
>     “the
>> same setting of the Unicast flag”, considering the flags will be extended
>     later.

>     I disagree.  This paragraph is about the multicast/unicast dichotomy, not
>     about future flags of an informative nature.

> [YQ]: then I misunderstood it. I thought it was meant to copy the entire flag
> field.

>> Nits:

>> 1049       metric) from a neighbour neigh with a link cost value equal to
>     cost,
>> 1050       it checks whether it already has a route table entry indexed
>     by
>> [neighbour neigh] => [neighbour]

>     I disagree.  We're defining the variable neigh, which we use in the next
>     sequence.

> [YQ]: it seems that this is the only place using "neigh", so I thought it was a
> typo. I would suggest some clarification.

This has been removed.

-- Juliusz