Re: [babel] Alvaro Retana's Discuss on draft-ietf-babel-rfc6126bis-12: (with DISCUSS and COMMENT)

Juliusz Chroboczek <jch@irif.fr> Thu, 08 August 2019 12:59 UTC

Return-Path: <jch@irif.fr>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3DA6412017C; Thu, 8 Aug 2019 05:59:20 -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 9V0nGwDf9eLw; Thu, 8 Aug 2019 05:59:18 -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 13C1E12016C; Thu, 8 Aug 2019 05:59:17 -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 x78CxCXO005522; Thu, 8 Aug 2019 14:59:12 +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 E6E622EA76; Thu, 8 Aug 2019 14:59:15 +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 xx69QVuQ6Wdp; Thu, 8 Aug 2019 14:59:14 +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 BBBE42EA74; Thu, 8 Aug 2019 14:59:14 +0200 (CEST)
Date: Thu, 08 Aug 2019 14:59:14 +0200
Message-ID: <87y303x17h.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: Alvaro Retana <aretana.ietf@gmail.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-babel-rfc6126bis@ietf.org, Donald Eastlake <d3e3e3@gmail.com>, babel-chairs@ietf.org, babel@ietf.org
In-Reply-To: <156518456148.8400.6644665367614468260.idtracker@ietfa.amsl.com>
References: <156518456148.8400.6644665367614468260.idtracker@ietfa.amsl.com>
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="ISO-8859-1"
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]); Thu, 08 Aug 2019 14:59:12 +0200 (CEST)
X-Miltered: at korolev with ID 5D4C1CA0.002 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 5D4C1CA0.002 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 : 5D4C1CA0.002 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/babel/n5p6Qj5kX2wIVAE0Bp5FKjFmWVk>
Subject: Re: [babel] Alvaro Retana's Discuss on draft-ietf-babel-rfc6126bis-12: (with DISCUSS and COMMENT)
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Aug 2019 12:59:21 -0000

Dear Alvaro,

This mail deals with your Discuss points (B) and (C).  I haven't decided
what to do about (A) yet.

> (B) Error Handling

> Many sections of the document describe functionality, or even Normatively
> mandate it, but there is no discussion about Error Handling.

In most cases, no explicit check is necessary, or even possible.  In other
cases, the TLV is ignored, which is the general approach taken in Babel
with unparseable TLVs.  I've added explicit error handling in cases where
I find it suitable.

> (B1) Router-Id Setting

> §4.5:
>    o  the current router-id; this is undefined at the start of the
>       packet, and is updated by each Router-ID TLV (Section 4.6.7) and
>       by each Update TLV with Router-Id flag set.

> It took me some time to figure out the reason for being able to carry the
> router-id in two different places inside the same packet,

[...]

> Did I understand correctly?  ...it is all simply implied.

You appear to have missed Section 3.5.3 "Encoding of updates", which
probably indicates that it was at the wrong sport.  I have now expanded
this section, merged it into Section 4.5 "Parser state", and added
backward references at suitable points.

> What should happen if no Router-Id has been defined?

Clarified requirement to ignore the Update TLV.

> (B2) Default Prefix

As above.

> (B3) Next Hop

As above.

> (B4) For the Normative behavior listed here (I may have missed other
> instances), I have basically the same question: what should a receiver
> do if it is not the case?

Most of these require no check on the receiver side, in may cases
a receiver-side check is impossible.

> - §3.8.1.2: "A node MUST NOT increase its sequence number by more than 1 in
> response to a seqno request."

This is a requirement for the sender.  When the receiver notices that the
seqno has increased, it cannot possibly know how many requests the sender
has reaceived in the meantime.

> - §4: "A Babel packet MUST be sent as the body of a UDP datagram, with
> network-layer hop count set to 1..."

This is a requirement for the sender.  No receiver side check is required
or even possible.

> - §4.6.9: "If the metric is finite, AE MUST NOT be 0.  If the metric is
> infinite and AE is 0, Plen and Omitted MUST both be 0."

Added requirement to drop the Update TLV if violated.

> - §4.6.10: "...if AE is 0 (in which case Plen MUST be 0 and Prefix is of
> length 0)."

No clarification is necessary here, just like no clarification is
necessary that for an IPv4 address, plen <= 32.

> - §4.6.10/§4.6.11: Is AE 3 a valid value in a request?  I assume it isn't. 
> What should a receiver do if AE = 3.

This case is allowed -- there's nothing in the protocol that disallows
announcing routes within fe80::/64.  Of course, it would be silly to do so.

> (C) Mandatory Bit

> §4.4: "The most-significant bit of the sub-TLV, called the mandatory bit..." 
> The most significant bit of which part of the sub-TLV?  As written, that bit
> would be the first one in the Type, which corresponds to the text in the IANA
> section.  Please be specific.

This was a typo, noticed by Éric Vyncke.  The most-significant bit of the
sub-TLV *Type*.

The sub-TLV value consists of the whole 8 bits.  TLV numbers 0 through 127
are non-mandatory, 128 through 255 are mandatory.

> In the IANA considerations section, please include the whole registry in the
> table to avoid confusion.

I'm confused.  Wouldn't that force me to do a number of downrefs?

> Note that because of the mandatory bit, the 128-239 range should be
> Reserved...but it is currently marked as Unassigned.

No, this range is unassigned.  Mandatory but unassigned.

> Even worse, value 128 is assigned already [draft-ietf-babel-source-specific].

That is correct.  The source prefix is a mandatory TLV.  Value 128 has
nothing to do with Pad1, which has value 0.

-- Juliusz