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

Alvaro Retana <aretana.ietf@gmail.com> Thu, 08 August 2019 20:01 UTC

Return-Path: <aretana.ietf@gmail.com>
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 6C1251200A3; Thu, 8 Aug 2019 13:01:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.493
X-Spam-Level:
X-Spam-Status: No, score=-0.493 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, HTML_OBFUSCATE_05_10=0.26, NORMAL_HTTP_TO_IP=0.001, NUMERIC_HTTP_ADDR=1.242, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 TV0En2OATIQU; Thu, 8 Aug 2019 13:01:48 -0700 (PDT)
Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9600D1200E7; Thu, 8 Aug 2019 13:01:47 -0700 (PDT)
Received: by mail-ed1-x542.google.com with SMTP id h8so4081080edv.7; Thu, 08 Aug 2019 13:01:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=r96OOLfUm4hgLPOUwnYdHfJTQWyfVfXkI1SPhI95pAQ=; b=Jdm2xD/501XSlZ64tL/11FUynynQgjLYeKHYapIKIFOgfPDLu6yHbjPOM79d0r1fkY kOQxGJPXKy0Bf8nEPwZU7GOWwFYZL9xfU+ZiCwYLfaoemDfUWqFqh1XXDmSYy3QpnYyn jje4IDR5mpuBAVCxhlt2sBTkke0JdvErCi6l64h8omGyOVXF/Pph+EK5mjCgo6jV0wz1 5f3Knkoq4vm+haF58+0BOIbrk2ry0EqihQ6fxWan7d9UL9cwiRrifmMAgu/SQaSaqhEn jEEeF4apGE/W59PFzFJNKI329LExqrMGKhl7Rk7Oe/im7sJId1lRmsDL/mhYbitMkCXD 6ecA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=r96OOLfUm4hgLPOUwnYdHfJTQWyfVfXkI1SPhI95pAQ=; b=ubPzMcnjvAxVDRtNujVikKg9SHCD7/+KxlPr9CchG/IscTNj5R7igLThvb2jlIzxC4 JlN9mCIf0eBPgPjwQvRxmsxUiFWSGcf6YjRW76ezpoobnJipdKOnFLf96DvvNanLLniY m592QOn6dazTCjatKCykFIhckmP4bunTza+b3e8LOfRvdvScGysVTtENT1fXbpwCr2iX Gwp8WUEx25eKqehHwJUGtLMJfaxdwNOONwFV+daCB1lXgRXgAUoDwNKP879KiXoHuaiR LRsE7XKo2ooGT11fEC902XTwQkOpscy1DiZuOQw20n8rIrl9/vaNkUe+w72DidZL7Kje sJqQ==
X-Gm-Message-State: APjAAAWFkn47oZ5OYnYlt/l/9Y06UsDvlKHDDs/uiahkUxhdo2e5Rh9U VIhRPirQvvaKMfWHfCEZK4wrXgEbSN17GxM/0yg=
X-Google-Smtp-Source: APXvYqxaNSezLflMLCiEUPzYhYUVo3TYrpc5WkaYedECCs86xDqObpFI6g4Be5CwfXFck48cxsuEggVy5N35IpFbozc=
X-Received: by 2002:a50:86bb:: with SMTP id r56mr7201220eda.217.1565294506153; Thu, 08 Aug 2019 13:01:46 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 8 Aug 2019 13:01:44 -0700
From: Alvaro Retana <aretana.ietf@gmail.com>
In-Reply-To: <87y303x17h.wl-jch@irif.fr>
References: <156518456148.8400.6644665367614468260.idtracker@ietfa.amsl.com> <87y303x17h.wl-jch@irif.fr>
MIME-Version: 1.0
Date: Thu, 08 Aug 2019 13:01:44 -0700
Message-ID: <CAMMESszr+AC3-dhxKS0YhWJwADHVLSeQnUbYQ6Bz_QVN4yB-Qw@mail.gmail.com>
To: Juliusz Chroboczek <jch@irif.fr>
Cc: babel-chairs@ietf.org, babel@ietf.org, Donald Eastlake <d3e3e3@gmail.com>, The IESG <iesg@ietf.org>, draft-ietf-babel-rfc6126bis@ietf.org
Content-Type: multipart/alternative; boundary="000000000000021ac2058fa087db"
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/TCaLVBR1UT2BHDgdtN-erS3erm8>
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 20:01:51 -0000

On August 8, 2019 at 8:59:16 AM, Juliusz Chroboczek (jch@irif.fr) wrote:

Juliusz:

Hi!

Thank you for being so responsive!

In some cases below you’re indicating actions you’ve taken (clarified,
merged the text, etc.).  I’ll wait for the updated document. :-)

> (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.

Unparseable (as in unreadable, unrecognized, etc.) TLVs are not the same as
what I’m pointing to here.  The case I’m pointing out is where the behavior
is not as expected: the text mandates something, but the receiver gets
something else.


...

> - §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.

Ahh…I see.  The increase MUST NOT be more than 1 per request.  That part
was not clear to me.



> - §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.

Well, if the received TTL > 1 then the receiver knows something is wrong.

Please take a look at rfc5082 and consider using that mechanism instead.


...

> - §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.

What do you mean by “no clarification is necessary”?

I understand why the values are 0.  What I’m asking for is what should the
receiver do if AE = 0 and Plen = n (any number other than 0)?


> - §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.

Silly doesn’t mean that someone won’t try it…and may end up filling up
someone else’s table with garbage.  I think this is a vulnerability.

As a point of reference, OSPFv3 doesn’t allow the advertisement of
link-local addresses as destinations.  I strongly suggest Babel do the same
thing.


> (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?

No…I think the references to draft-chroboczek-babel-diversity-routing (and
the other drafts) can be Informative.


> 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.

This was not clear to me either…thanks for clarifying!

Because the use of the bit is explained as a bit then my interpretation was
that any sub-TLV could set the bit…

I think it would be better if in §4.4 the text described a mandatory
sub-TLV, not just a mandatory bit.  Perhaps:

   The most-significant bit of the sub-TLV type (the bit with value 80

   hexadecimal), called the mandatory bit, determines if the sub-TLV is

   mandatory or not.  An unknown sub-TLV MUST be silently ignored, and the
rest

   of the TLV is processed normally.  If an unknown mandatory sub-TLV is

   received, then the whole enclosing TLV MUST be silently ignored (except
for

   updating the parser state by a Router-Id, Next-Hop or Update TLV, see

   Section 4.6.7, Section 4.6.8, and Section 4.6.9).

Also, please label the registry so that it is easier for everyone going
forward to identify the range for mandatory sub-TLVs.  I know you’re the
Designated Expert in the registry…but better to cover all the bases. ;-)

Thanks!

Alvaro.