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

Alvaro Retana <aretana.ietf@gmail.com> Tue, 20 August 2019 20:54 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 598E3120086; Tue, 20 Aug 2019 13:54:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.736
X-Spam-Level:
X-Spam-Status: No, score=-1.736 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, 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 ZyVZbDX4eZiC; Tue, 20 Aug 2019 13:54:50 -0700 (PDT)
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) (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 C5F9712016E; Tue, 20 Aug 2019 13:54:49 -0700 (PDT)
Received: by mail-ed1-x52b.google.com with SMTP id t50so315546edd.2; Tue, 20 Aug 2019 13:54:49 -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=BBpf1bNmW98cP3mrRrHAGKI5gTGtxWeB0DwBCaEhy9E=; b=jgAsdn4ooIxlGQ+ZaJa4+jODuFS5k2IafgyG6ldnqwetOwFQBsTnkMBS56BstGSLFW /+WJ4m/qhaUyGTs/7ic/yTgKD/s1OA1tWZQnSNppJtax4Pd5Ta/GcRUc1i9XXXJcaR1J WKeut+45UCLuO1nR96BJ+DO6dJbt1imuVg8rQXLoX/HKKRHFIpw5+nB5X30+NxX1P6Ej 3UDIaDJctPetV1RNqpsClkH5g/X90+r67Y1p13f0aOe/CfYhSY4Kz4lVCJv23bDFEnkl pYrr6KS3rUGrvikWn75LyxvW+6PQpTJCnj4ypGHDmSQC84e3cmdwRouDoPOcVMoQT0lm vIgg==
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=BBpf1bNmW98cP3mrRrHAGKI5gTGtxWeB0DwBCaEhy9E=; b=OXGrqLEjCZK9kwGedIP0X9k1vusA5+k2lifz61HtTRso2W+Ijd8FOsUAiyViOXBs4m WQk/5dAAbmv9behIyuQcJvSTI5bZR07wScaRiMdKf13c+S8JrZMZNUBlerKPBHv6Q6hp YqcRnkStiSsbqCITLE5qeXzbWshmvgcq+tLg4dxpvlyVrkEtNNhlQ2e2QT7X0e8X9wUG TzCA3VYPcYzqbhu1zTMD9ZG24N/LJUy8jemDzur/9u4PT1hjuwZPHYvwTmoMMqqdpn+q AI5HU5PqXYc99ToYo4+VMmFsNU1R0yO2CALhukqJ/nCjk9Ogb+zagBP+fLwCOL6hjWkg f++w==
X-Gm-Message-State: APjAAAU/njq3oT44TlqSHceQYoVgH7rdOYpwnqya+CDwzQqQI/bvx1Ps Z/kKeTJWS8/yVYqZhS6SYlD3VMyYF2Rjm99ewWs=
X-Google-Smtp-Source: APXvYqwyjgFCTpK6viSOHXwZuuz4y5OJWz3HjpZ9Y2I5hmmweU5I6269xA93F0Om9CcKrkxD4OSfoo9aa+2qajbSgiA=
X-Received: by 2002:aa7:c35a:: with SMTP id j26mr29570009edr.270.1566334488298; Tue, 20 Aug 2019 13:54:48 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Tue, 20 Aug 2019 13:54:47 -0700
From: Alvaro Retana <aretana.ietf@gmail.com>
In-Reply-To: <875zn685ne.wl-jch@irif.fr>
References: <156518456148.8400.6644665367614468260.idtracker@ietfa.amsl.com> <875zn685ne.wl-jch@irif.fr>
MIME-Version: 1.0
Date: Tue, 20 Aug 2019 13:54:47 -0700
Message-ID: <CAMMESsyGX+L7+d6mLmh=xBiXvkcev8DPgVTBf5zLeo3mjKRfBg@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="000000000000c64a97059092aa2b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/d9r2BnIhtUcI3hP9oBhVZmNiKUE>
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: Tue, 20 Aug 2019 20:54:54 -0000

On August 9, 2019 at 4:07:03 PM, Juliusz Chroboczek (jch@irif.fr) wrote:

Juliusz:

Hi!  Sorry for the delay in getting back to you...


> (A) Clear Defaults and Operational Guidance

> While I appreciate Babel's flexibility in terms of the ability to use
> different strategies, I believe that both defaults and clear guidance
> should be provided. Given that "not all...strategies will give good
> results" and that in most cases these are listed as possible choices,
> I don't think that this document "has resolved known design choices"
> [BCP9/rfc7127]. The cost/metric computation and route selection
> specially concern me because I believe that a robust/clear specification
> is at the heart of any routing protocol.

After thinking it over very carefully, it is with utmost sadness that
I must disagree with you on this latter point.

It also makes me sad that we’re not agreeing.


 This document does three things:

- it makes normative requirements where the issues are well-understood
(e.g. strict monotnicity of the metric);
- in all cases, it suggests algorithms that are known to work well;
- it gives a statement of caution to the adventurous implementer.

This gives enough information to the implementer to implement something
that works, while not unduly restricting the possibilities of future
experimentation.

Specification doesn’t necessarily preclude experimentation…or deviation
from the defaults.

Without a clear specification I’m afraid that the text still reads like an
Experimental document to me.


Compare this with RFC 4271, which proudly states:

BGP can support any policy conforming to the destination-based
forwarding paradigm.

Yes, but it also specifies a clear Decision Process to guarantee that "BGP
speakers within an AS do not make conflicting decisions regarding route
selection that would cause forwarding loops to occur.” (§9.1.2).
Flexibility is build in, even allowing a Custom Decision Process [1], but
defining what the base behavior should be to guarantee consistency.  BGP
speakers can have their own policies, but within a clear set of rules
starting from a base behavior: we all know from rfc4271 what the default is.

[1] https://tools.ietf.org/html/draft-ietf-idr-custom-decision

even though many such policies will cause persistent oscillations. (By no
fault of theirs -- determining statically if a given set of BGP route
policies gives rise to oscillations is an open research problem.)

[Aside: Still inside an AS, the persistent oscillations [rfc3345] are the
result of constrained information from route reflectors [rfc4456] or
confederations [rfc5065]…which are extensions to the base.]


I think that BGP is in fact a good example of what I am asking for:  There
are all kinds of options and variations that individual ASes can decide to
implement…but rfc4271 clearly defines what the default behavior is.



...

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------

...


> (e) §3.7.2

> Finally, a node MAY send a triggered update when the metric for a
> given prefix changes in a significant manner, due to a received
> update, because a link's cost has changed, or because a different
> next hop has been selected. A node SHOULD NOT send triggered updates
> for other reasons, such as when there is a minor fluctuation in a
> route's metric, when the selected next hop changes, or to propagate a
> new sequence number (except to satisfy a request, as specified in
> Section 3.8).

> How much is "a significant manner"? What about "a minor fluctuation"?
> Are the modifiers (next hop change, for example) the only conditions to
> take into account, or are they just examples of when these
> significant/minor changes may occur?

I'm not sure what you're aiming for here. This enumeration lists a set of
events for which an implementer might be tempted to send a triggered
update, and states that it's a bad idea.

> How can these terms be Normatively enforced?

In order to comply, an implementation:

- doesn't send an update when the metric changes by 1 and nothing else
changes;
- doesn't send an update when NH changes and nothing else changes;
- doesn't send an update when seqno changes and nothing else changes.

The boundary between minor and major fluctuation is left to the
implementation, which is okay, since in any case that's only a MAY. The
intent being that it's reasonable to send a triggered update when the
metric fluctuation is large enough to indicate that the route has probably
become unusable. If the implementation doesn't follow the MAY, then the
fluctuation will be propagated by the next periodic update.

The reason I’m asking these questions is because rfc2119 says that the
keywords defined there "MUST only be used where it is actually required for
interoperation or to limit behavior which has potential for causing harm”.
By using “MAY” (in this specific case) I assume that the document is trying
to define a behavior that can be expected across implementations…but the
explanation indicates the opposite: the intent is not to define a common
behavior.  IMO, you then shouldn’t use rfc2119 keywords in these cases.


Thanks!

Alvaro.