Re: Robert Wilton's Discuss on draft-ietf-bfd-unsolicited-11: (with DISCUSS and COMMENT)

Jeffrey Haas <jhaas@pfrc.org> Fri, 16 December 2022 17:37 UTC

Return-Path: <jhaas@slice.pfrc.org>
X-Original-To: rtg-bfd@ietfa.amsl.com
Delivered-To: rtg-bfd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D7949C14CE44; Fri, 16 Dec 2022 09:37:50 -0800 (PST)
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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B0zO2u1AVHBC; Fri, 16 Dec 2022 09:37:46 -0800 (PST)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id C68C2C14CE42; Fri, 16 Dec 2022 09:37:45 -0800 (PST)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 36C891E370; Fri, 16 Dec 2022 12:37:43 -0500 (EST)
Date: Fri, 16 Dec 2022 12:37:43 -0500
From: Jeffrey Haas <jhaas@pfrc.org>
To: Robert Wilton <rwilton@cisco.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-bfd-unsolicited@ietf.org, bfd-chairs@ietf.org, rtg-bfd@ietf.org
Subject: Re: Robert Wilton's Discuss on draft-ietf-bfd-unsolicited-11: (with DISCUSS and COMMENT)
Message-ID: <20221216173742.GF23286@pfrc.org>
References: <167086459809.47152.7191645317039213428@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <167086459809.47152.7191645317039213428@ietfa.amsl.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/ebm0YZ5PmbkMgrMbQdTF6JMjerE>
X-BeenThere: rtg-bfd@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection DT" <rtg-bfd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-bfd/>
List-Post: <mailto:rtg-bfd@ietf.org>
List-Help: <mailto:rtg-bfd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Dec 2022 17:37:50 -0000

[Speaking as chair and shepherd, not an author]

Rob,

On Mon, Dec 12, 2022 at 09:03:18AM -0800, Robert Wilton via Datatracker wrote:
> DISCUSS:
[...]
> Please see my comments below for more details, but I'm balloting discuss on 3
> points: (1) The document is somewhat unclear as to whether the configuration is
> applied hierarchically (I presume that it is, if not then my second discuss
> point is not valid and can be ignored). (2) As specified, I don't think that
> the hierarchical configuration will work, because the interface level leaf
> "defaults" will override an explicit value configured globally.  I.e.,
> logically, the interface level leaf, if in scope, will always have a value.

Reshad has been more engaged in such YANG details of late so this may be
better addressed by him when he gets cycles again.

Yes, the intent is for there to be hierarchy.  I understand your concern
about the default, and perhaps I have a misunderstanding how defaults
manifest in YANG modules.

My impression had been that defaults are only relevant when the containing
element was manifested in the model.  So, if it was the case that:
- The global instance for BFD's ip-sh unsolicted container was created
- But that a specific instance of BFD's ip-sh per interface container was
  NOT created...
- There is no effective configuration state for the per-interface
  unsolicited container.  I.e. this is not a presence node.

I'm rusty in my YANG, so if this impression is incorrect a pointer to the
relevant point in the current YANG 1.1. RFC would be helpful.

> COMMENT:
> ----------------------------------------------------------------------
> 
> Moderate level comments:
> 
> (1) p 3, sec 2.  Procedures for Unsolicited BFD
> 
>    When the passive side receives a BFD Control packet from the active
>    side with 0 as "Your Discriminator" and does not find an existing BFD
>    session, the passive side MAY create a matching BFD session toward
>    the active side, if permitted by local configuration and policy.
> 
> I'm surprised that this is only a MAY and not a SHOULD or MUST.  I.e., if the
> local configuration & policy allows passive BFD sessions why would they not be
> created?

Basically, "because it wants to do it that way".  A SHALL implies that the
local system shouldn't get a choice about this.  Framed a different way, it
means the discussion on "policy" becomes a lot uglier about needing to
expose numerous implementation-specific internal details about why it would
or would not want to bring up a session. 

An example might be a limit on maximum number of sessions.

MAY provides the appropriate hint that this the desired behavior.  SHOULD
could be one steps stronger to imply "well, we're really discussing this in
the spec" and I don't think the text would be harmed by moving to that.

It absolutely couldn't be MUST.

> (6) p 3, sec 2.  Procedures for Unsolicited BFD
> 
>    Passive unsolicited BFD support MUST be disabled by default, and MUST
>    require explicit configuration to be enabled.  On the passive side,
>    the desired BFD parameters SHOULD be configurable.  The passive side
>    MAY also choose to use the parameters that the active side uses in
>    its BFD Control packets.  The "My Discriminator", however, MUST be
>    chosen to allow multiple unsolicited BFD sessions.
> 
> Rather then configured values on the passive side, did the authors consider
> setting minimum configuration limits?  E.g., rather than define desired
> send/receive limits, instead, configure lower bounds on what the minimum tx
> interval may be (to prevent DDOS attacks).

Any such values will be locally significant to the implementation.  

My analogy from within SNMP land, putting in such a recommendation in a
compliance statement simply means implementations get forced to try to ship
something that says "this was wrong, we're doing this other thing instead".


-- Jeff