Re: [yang-doctors] Dealing with BFD RFC 9127 client-cfg-parms for PIM, OSPF, ISIS and other BFD clients on some platforms

Martin Björklund <mbj+ietf@4668.se> Wed, 10 November 2021 08:18 UTC

Return-Path: <mbj+ietf@4668.se>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 978D23A13B9; Wed, 10 Nov 2021 00:18:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.12
X-Spam-Level:
X-Spam-Status: No, score=-2.12 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-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=4668.se header.b=rVNpMX2c; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=HYrI0+sd
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 aiaUR4hHMnS1; Wed, 10 Nov 2021 00:18:20 -0800 (PST)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D98B3A13B3; Wed, 10 Nov 2021 00:18:18 -0800 (PST)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 70F655C01C4; Wed, 10 Nov 2021 03:18:17 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Wed, 10 Nov 2021 03:18:17 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=4668.se; h=date :message-id:to:cc:subject:from:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=fm3; bh= vE/aIWlLaw8pzphaBDK7fwsdiUV8KP6WWvSoILNx+6E=; b=rVNpMX2cREIFgZJQ bemH/ZzHUtdZyJGwXkI7GGEIHMIDl9+9IFgdkct1if6wReuOBpFO/L0mICLr450S Vw1Rb9UYY+oSjzSTwbSEKp6/n0Fi2KfA2shDoMzZp8xlcFystcdDJQQ4XsRu8KR6 Xfgx0L1eam2BaNbkSBZ01DHIrO3aofAcncDpFjvoMOvw+wHpw+FijC1ajlDz6tvu pBmxmCC673plHtb+B3lql6qFiAOBrF6NRV1bqPMhDPAsbBM9i05jRjyKNAi/QDpi pCXCbslp2hQNpBBnfFxVjRXAq0/OAN16/GN13mdarWg3rQGC4dBQHbir6ghrLg+m UNtF3g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=vE/aIWlLaw8pzphaBDK7fwsdiUV8KP6WWvSoILNx+ 6E=; b=HYrI0+sdChKVsa4DOwnfJ95+sn9ZAwxnPydXiApCHpmfFPX2dwdcDIFpa iKxMG+wVEKFxBSwgO3qwABDfJX6Is77yrhZPSXZ5Rqo+IJvPUTk3CLRvvqcTzKP6 n7NPTMxC3JmerU1wsBwKlKQgv26IIR9VzbVV150oNGf70d+aynVihIqXzDONZEQI DptvMPFIfshBwb1tjvO2rpNkpuSqgLym0MoQiOGsQvS8s83jEQG5ga2ND6I4PCnm arij/R504gcZlrRuWqc1bs8J4VW66nw4k1vUkGsEzF0QeFMyuBnOrTONTcHX/nf2 y3qD5fhPpeKztKw9rvj7CWr81ETsQ==
X-ME-Sender: <xms:SICLYSw9FnEJ0tT3ZtsSuTcspg6nLGOJcs49EZQN04nFy4XyAJbHMA> <xme:SICLYeSv8_Xll7wg7iIGcMDmWMtodVewlbSWE6V9z69YejmWV59FICpmrtnfR3xRz JxHqewfnnvibuT1HMI>
X-ME-Received: <xmr:SICLYUUUWX4iM5hbk2mRsg8O2LaHF-TKYa8hZOFhPemaiQWiK9d9QTvmetOGD5qleDpom6Kvq8mUdYDwtr6q4SS30ffweQQSxg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrudeigddtfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhfgjfhfogggtgfesthejre dtredtvdenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdoihgv thhfseegieeikedrshgvqeenucggtffrrghtthgvrhhnpedtgefgtdduudejkeelvedvie dvveehieegfeefteefgfeffeekheffvdefveffgfenucevlhhushhtvghrufhiiigvpedt necurfgrrhgrmhepmhgrihhlfhhrohhmpehmsghjodhivghtfhesgeeiieekrdhsvg
X-ME-Proxy: <xmx:SICLYYgLo56ZadS1ggeBrr6CPuPst5akACXXr_k3wx4oKA5jjVT6Xg> <xmx:SICLYUDda9XpYfSe5FYOaPDSMpsdl9S92DGmb5hNVMmT5I_912U55Q> <xmx:SICLYZJQm79TtQ4FrKqqCCYKcRpYz0gL5eNEqRW9W_8gTPxlFgxoqA> <xmx:SYCLYX9gn-5BWfMHiYGpFnl_Fw-QG_EiRpBYq3Ea-5LNMWC_RLvw7w>
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 10 Nov 2021 03:18:15 -0500 (EST)
Date: Wed, 10 Nov 2021 09:18:14 +0100
Message-Id: <20211110.091814.587439478003329736.id@4668.se>
To: jhaas@pfrc.org
Cc: rwilton=40cisco.com@dmarc.ietf.org, ladislav.lhotka@nic.cz, rtg-ads@ietf.org, yang-doctors@ietf.org, rrahman@cisco.com
From: Martin Björklund <mbj+ietf@4668.se>
In-Reply-To: <5336F4FE-BDF7-4439-B4C3-0D7B81966AC4@pfrc.org>
References: <BY5PR11MB4196E587238F741F8BD86C8CB58E9@BY5PR11MB4196.namprd11.prod.outlook.com> <f23789a7-561e-2211-f985-dfb570c1a6e9@nic.cz> <5336F4FE-BDF7-4439-B4C3-0D7B81966AC4@pfrc.org>
X-Mailer: Mew version 6.8 on Emacs 26.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/YB6p-X57TmbTks6Dh6t6IU2kGTg>
Subject: Re: [yang-doctors] Dealing with BFD RFC 9127 client-cfg-parms for PIM, OSPF, ISIS and other BFD clients on some platforms
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Nov 2021 08:18:28 -0000

Hi,

First I want to make sure that I understand the proposal correctly.

A. Is it correct that you want to do a bis of 9127 so that you don't have
to touch the three (?) documents that are in AUTH48?

or,

B. Is it ok to do modifications to the AUTH48-docs, as long as they
don't have to wait for a 9127-bis?


If B is ok, you could modify the docs like this, without touching
RFC 9127:

       container bfd {
         if-feature bfd;
         description "BFD Client Configuration.";
         uses bfd-types:client-cfg-parms {
           refine local-multiplier {
             if-feature client-cfg-parameters;
           }
           refine interval-config-type {
             if-feature client-cfg-parameters;
           }
         }           
         reference
           "RFC YYYY - YANG Data Model for Bidirectional
                       Forwarding Detection (BFD).";
       }

This means that each of these documents would have to define its own
feature "client-cfg-parameters" though.  But this is similar to how
they currently define their own "bfd" feature.  (Unclear to me if this
is a bug or a feature.)

Some other observations:

With the proposal from Mahesh (define the "bfd" feature in bfd-types),
you either will have 4 versions of the "bfd" feature, or you would
have to modify the AUTH48-docs, AND have them wait for a 9127-bis (in
which case it would have been better to deprecate "client-cfg-parms"
and define a new grouping with the if-feature statements).

If you publish the AUTH48-docs and then publish a 9127-bis with a
modified "client-cfg-parms" as proposed, doesn't this mean that
implementations still have to wait for 9127-bis?  And if this is the
case, you could as well wait with all docs?



/martin




Jeffrey Haas <jhaas@pfrc.org> wrote:
> Rob,
> 
> Did you want more than Lada to respond on this issue?  Or are you counting on him being the active voice and assuming some silent "I agree"?
> 
> -- Jeff
> 
> 
> > On Nov 5, 2021, at 9:25 AM, Ladislav Lhotka <ladislav.lhotka@nic.cz> wrote:
> > 
> > Hi Rob,
> > 
> > so is the plan to publish a new RFC that would obsolete 9127? I'd support it.
> > 
> > Lada
> > 
> > On 05. 11. 21 13:55, Rob Wilton (rwilton) wrote:
> >> YANG Doctors,
> >> We unfortunately have a bug in the BFD YANG Model that has just been published in RFC 9127.  Because this RFC has only just been published the expectation is that are no implementations of it yet.
> >> The local-multiplier and interval-config-type configuration shown in the tree diagram below should be under an if-feature (explanation in the email below).  Adding an if-feature is classified as a change that is not allowed under RFC 7950 section 11.  The proposal is to quickly bis RFC 9127 and modify the BFD YANG Model to add in the two missing if-feature statements.  Although this violates the MUST statement in RFC 7950, I believe that this is pragmatically the right thing to do currently and is in line with the current direction of the versioning work in Netmod (if that work achieves consensus).
> >> Note, we considered an alternative approach of deprecate these nodes and put those leaves under a new if-feature predicated container but doing this to a newly published module seems excessive.
> >> Hence, are any of the YANG doctors opposed to the proposed approach of making the non-backwards-compatible change and just fixing the BFD YANG module?
> >> We would like to please conclude on this quickly since the 3 protocol YANG modules (PIM, OSPF, ISIS) are all in Auth48 and we do not want to unduly delay publishing them.  Hence, if you have objections then please can you send them by Friday 12th November.  Emails supporting this approach would also be welcome.
> >> Thank for your input.
> >> Regards,
> >> Rob
> >> -----Original Message-----
> >> From: Jeffrey Haas <jhaas@pfrc.org>
> >> Sent: 04 November 2021 20:32
> >> To: Rob Wilton (rwilton) <rwilton@cisco.com>
> >> Cc: draft-ietf-pim-yang@ietf.org; draft-ietf-ospf-yang@ietf.org; draft-ietf-isis-yang-isis-cfg@ietf.org; <rtg-ads@ietf.org> <rtg-ads@ietf.org>; Reshad Rahman <rrahman@cisco.com>; Mahesh Jethanandani <mjethanandani@gmail.com>
> >> Subject: Dealing with BFD RFC 9127 client-cfg-parms for PIM, OSPF, ISIS and other BFD clients on some platforms
> >> [Many of you have gotten this in different contexts.  This email is at the ADs' request to make sure we're all on the same page.]
> >> Background:
> >> BFD is an IETF "plumbing protocol".  Much like other bits of YANG plumbing such as the routing-config model and the policy model, there's an incentive to consistently implement configuration state in each of the consumers of the feature.  Since the YANG set of modules from IETF is IETF's "CLI", consistency of user-experience is also helpful.
> >> The YANG grouping, client-cfg-parms in RFC 9127, was intended to provide this in any BFD client users. Many of those are IETF protocols that have YANG modules in progress.
> >> Because implementors do things more than one way, there are two common models by which BFD is used:
> >> - A "centralized" model, think "protocol bfd", where BFD sessions and their parameters are provisioned.  Client users simply say "bfd enabled" in their own configuration stanzas.  Cisco is an example of this model.
> >> - Per-client users.  In this model, each client protocol configures BFD use AND also the session parameters such as timing.  Juniper is an example of this model.
> >> Using the ISIS model as an example of how this grouping expands:
> >>           +--rw bfd {bfd}?
> >>           |  +--rw enable?                           boolean
> >>           |  +--rw local-multiplier?                 multiplier
> >>           |  +--rw (interval-config-type)?
> >>           |     +--:(tx-rx-intervals)
> >>           |     |  +--rw desired-min-tx-interval?    uint32
> >>           |     |  +--rw required-min-rx-interval?   uint32
> >>           |     +--:(single-interval) {single-minimum-interval}?
> >>           |        +--rw min-interval?               uint32
> >> In the centralized model, only the "enable" leaf is needed.  The other three leaves (max two depending on how the interval-config-type feature manifests) are only needed by the implementations supporting per-client configuration.
> >> Problem Statement:
> >> While resuming work on the BGP model, I noted that the above.  The concern I had was "what had we decided with regard to support each of these models?  Since it's been quite some time since this work was done in BFD, I'd forgotten the discussion and in somewhat of a panic, contacted Acee as an author of one of the impacted models to figure out what we should do.
> >> I have a vague memory that this topic had come up in one of the last IETFs we were able to gather and my memory was that simply using per-vendor deviations on the per-client nodes was sufficient.  However, the popularity - or lack thereof - of deviations has changed over time.
> >> Acee had proposed an update to the client use of the BFD configuration state to predicate the per-client leaves on an "if-feature".  His original proposal did this if-feature by moving the BFD base-cfg-parms grouping into a container.
> >> While discussing this with Rob, we realized that this was also a structural change of BFD in each of the impacted YANG models, which was problematic.  Minimally, we'd want the Working Groups to look at the changes to see if it's okay or not.  From discussions with Mahesh on BGP, another suggestion is to preserve the existing BFD structure, but add the necessary if-feature to the impacted local-multiplier leaf and the interval-config-type choice.  Acee seemed to think this might be reasonable.
> >> The open question is how to keep the pipeline for RFCs moving quickly.  We have two options that have gotten discussion:
> >> 1. Update RFC 9127 with a quick -bis.
> >> Pros: Ship the existing Cluster 236 drafts with the work simply implementing "use client-cfg-parms", so no changes there.  Fix once in BFD, everyone benefits.
> >> Cons: Rob and Alvaro raise an issue that the necessary change in the BFD model may violate YANG module maintenance rules.  Given how recent this RFC has shipped, this might be an exceptional case.  Also, there's apparently work in netmod about relaxing some of the restrictions we've created for ourselves.  This email is partially to seed some of that conversation.
> >> 2. Take the expanded groupings and paste them with the necessary fix into each of the impacted models and -bis RFC 9127 at a less frantic pace.
> >> Pros: Frees cluster 236 documents from further entanglement from a MISREF.  Doesn't depend on the IESG agreeing that adding a if-feature in 9127-bis is a no-no or not.
> >> Cons: Copy and paste makes its own headaches.  If we do need to revise BFD, it might be a goal that we have positive impact on all impacted IETF BFD clients.
> >> Observation: As long as we stay structurally the same in both options, a consistent user experience is maintained.  I'm personally okay with that aside from the maintenance issue.
> >> My preference is option 1.  Get the -bis published and through our processes ASAP.
> >> As noted in the attached diff to 9127, the core potion of a -bis document is trivial.  We'd just need some additional text to explain why we did the -bis.
> >> -- Jeff
> >> _______________________________________________
> >> yang-doctors mailing list
> >> yang-doctors@ietf.org
> >> https://www.ietf.org/mailman/listinfo/yang-doctors
> > 
> > -- 
> > Ladislav Lhotka
> > Head, CZ.NIC Labs
> > PGP Key ID: 0xB8F92B08A9F76C67
> 
> _______________________________________________
> yang-doctors mailing list
> yang-doctors@ietf.org
> https://www.ietf.org/mailman/listinfo/yang-doctors