Re: [netconf] Adoption poll for draft-tgraf-netconf-yang-notifications-versioning

Andy Bierman <andy@yumaworks.com> Fri, 19 May 2023 15:24 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C3BD7C151B0A for <netconf@ietfa.amsl.com>; Fri, 19 May 2023 08:24:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 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, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks.com
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 2lMtBjMhG8OH for <netconf@ietfa.amsl.com>; Fri, 19 May 2023 08:24:45 -0700 (PDT)
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 95FCCC151B09 for <netconf@ietf.org>; Fri, 19 May 2023 08:24:45 -0700 (PDT)
Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-4f13d8f74abso3896796e87.0 for <netconf@ietf.org>; Fri, 19 May 2023 08:24:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1684509883; x=1687101883; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=JALWcafwajFsbKzu3VbdvciZCvr3vWH8/Hqq4mSGuwE=; b=SXT9XMZDyO71wQ0XKKDaOhAg+wrTO5kdLxxQxwtEPmM5Yk5M7uPKWjOQJJjBVyfktg FlYmxC7XwMkXyFQEnP6gPSIt9NA7UIvqWBlLCMysOYKIyh7KGh8lNTRyfG4v+qaXkNJk R6SCmsVscc+LP86N8ITZR0ry4oODV/FIp+dPoUVwk4M9gvQ0tEqWqGd3+07AWYuY6mvN niH4d3Fw3upSBDfit//gEgfVdu10TI5QjNNKCUNlWN7jDVMsbrfWG8+gVhgbKwskCMui ItSYhgKgeOxhwM9CYCCJp27natJyEUh3T1Ay6XIYL9g2izryWI4l2Yq+HR9JxgsisgWu bCJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684509883; x=1687101883; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JALWcafwajFsbKzu3VbdvciZCvr3vWH8/Hqq4mSGuwE=; b=LZH9KhtIWqv0KNM/9hQpY5OZ30G9ZQ9IzDCKah2M+YkkMuXeLLfOeKJAed0yeU5vsl 0tjb5Jg/hrzKLq5v/hD6thlN9OUjGe9eAQ1cw3nTYu+k6xMGJ9RSFy7T0EkHigOnjUtr l250hyiVay7TmMPLdlUpNbuRzLjcsii3gftK2KA9SJu+8art+GGnRvDqeP6wgZU9Mho0 UtxXfQoJbifihRzUCR0iURqTFfGkK0BMC3n5m9l/OpTtYj+LZjd4uawi1FNwhfwDI89M v4FdTM9KLRTE3x7V1wGyjs9l5oAoivtU5WLdAEMkfAPS4UAPY7IK/w7u2ienXcY0vtkx b1Ow==
X-Gm-Message-State: AC+VfDwPyGMwNsbBKqOf19GVIqz1TgWKk13GWextz8RKAxuZwEk7byX4 BVljPCYViZ01EpL7RVXXOgVP36UnDmmWkmI+nLeTRg==
X-Google-Smtp-Source: ACHHUZ5Gv8cJ81n7maWPl1xxWB4GtEJzLhHPg/6A0PAdkmyTSJWUTCbOWQdGL9MRLdQDjLlvB6Por/yJFnz27m1RKrQ=
X-Received: by 2002:a05:6512:218d:b0:4ea:e60a:2f5d with SMTP id b13-20020a056512218d00b004eae60a2f5dmr840565lft.40.1684509883144; Fri, 19 May 2023 08:24:43 -0700 (PDT)
MIME-Version: 1.0
References: <E78B3C0B-B415-4E8C-9080-ADFB69D4464E@gmail.com> <AM8PR06MB776465A8890FA1FF944F7249957E9@AM8PR06MB7764.eurprd06.prod.outlook.com> <fxqbpxqt4uddzynsqu7nrphks4ffdbcet2s4mzgq5kjybc7h5r@34fjvmua6eva> <AM8PR06MB77647944C3C804FB22E38B50957E9@AM8PR06MB7764.eurprd06.prod.outlook.com> <ibonfs57tsr2ymul4wsns5jhpoiofkciz7zw27udzixtt7olrx@zh5p3tjohxoo> <CABCOCHRmnOw_Tex1ixcyA=bjdHptHVyQ1nN1UKOfyC9nPqdxpQ@mail.gmail.com> <1d7ff7ee90cb441f843b460bdb216ff2@swisscom.com> <CABCOCHTJZFxY1YYpagz2wc-q8ki4AKb+B-3GOtJOG=hPkDRATg@mail.gmail.com>
In-Reply-To: <CABCOCHTJZFxY1YYpagz2wc-q8ki4AKb+B-3GOtJOG=hPkDRATg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Fri, 19 May 2023 08:24:31 -0700
Message-ID: <CABCOCHQw13rH1WVrLvt25RWdUcESH_Y1PfaKC8B=jo4Jb52o4g@mail.gmail.com>
To: Thomas.Graf@swisscom.com
Cc: jschoenwaelder@constructor.university, ignacio.dominguezmartinez@telefonica.com, mjethanandani@gmail.com, netconf@ietf.org, netconf-chairs@ietf.org
Content-Type: multipart/alternative; boundary="00000000000034b86d05fc0d858c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/2rikVSFAihqwZy-0rKxNN5X94Os>
Subject: Re: [netconf] Adoption poll for draft-tgraf-netconf-yang-notifications-versioning
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 May 2023 15:24:49 -0000

On Fri, May 19, 2023 at 7:42 AM Andy Bierman <andy@yumaworks.com> wrote:

>
>
> On Fri, May 19, 2023 at 4:05 AM <Thomas.Graf@swisscom.com> wrote:
>
>> Dear Andy, Jürgen, Nacho and Frank,
>>
>>
>>
>> Thanks a lot for the feedback and comments. I understand your concerns
>> that they are targeting section 2, extending the YANG push subscription
>> capability to not only subscribing to an xpath but also be capable to
>> select with revision or revision-label.
>>
>>
>>
>> In section 1 we introduce the problem statement, here an excerpt:
>>
>>
>>
>> ---
>>
>> This semantic reference is available when the subscription is being
>> establish as described in Section 3.6 of [RFC8641] and being streamed from
>> the publisher to receiver with the subscription state change notifications
>> described in Section 2.7 of [RFC8639] where for each subscription a locally
>> unique subscription ID described in Section 4.3.2 of [RFC8641] is being
>> issued and streamed as metadata with the notification message in the YANG
>> push message header.
>>
>>
>>
>> The semantics can change between different YANG module revisions. The
>> YANG module version statement is specified in Section 7.1.2 of [RFC6020]
>> and states that the newer revision needs to be backward compatible to the
>> previous revision. Section 3.1 of [I-D.ietf-netmod-yang-module-versioning]
>> specifies that newer semantic versions introduced in
>> [I-D.ietf-netmod-yang-semver] MAY not be backward compatible to the
>> previous version when indicated with non-backwards-compatible keyword.
>>
>> ---
>>
>>
>>
>> When the software of a network node is being upgraded, possibly the YANG
>> module revisions might change. Thanks to the extension describes in section
>> 3 of the document, the YANG push receiver is now able to learn through the
>> subscription state change notification message that the revision or/and
>> revision-label has changed and through netconf <get-schema> the new YANG
>> module must be obtained outband to retrieve the new semantics for the
>> push-update notification message.
>>
>>
>>
>> So far so good. With this we prevented that the end to end data
>> processing chain breaks because semantics can be maintained across network
>> node software upgrades, YANG module changes, in configured subscription as
>> well. However if the YANG module change involved a non-backward compatible
>> change, messages are being dropped within the data processing chain. A
>> network operator might ask, why should we publish YANG push messages from a
>> network node when they cant be processed further down the data processing
>> chain? Why shouldn't we give the network engineer the ability to express in
>> the YANG push subscription that only YANG push messages complying to a
>> certain revision or revision-label (semantic revision) should be published.
>> This is what section 2 of the document tries to address.
>>
>>
>>
>> I understood in the mail thread that it was assumed that the YANG data
>> store would need to support more than one revision per YANG module. This is
>> not the case. The point is that when the configured subscription is
>> established and while the messages are being published, the revision or
>> revision-label might change. Today we do not have the ability to subscribe
>> to a specific revision nor to a specific compatible revision-label. This is
>> what we try to enable in this document.
>>
>>
>>
>
>
>
> These are the network operators concerns and needs. From an implementer
>> point of view, do you believe this makes sense and is implementable?
>>
>>
>>
>
>
> Good news: you are not trying to undo the 'implement 1 revision'
> requirement in RFC 7950.
> Not so good news: There are already 2 events (netconf-capability-change
> and yang-library-change)
> to notify the client of the extremely rare module update event.
>
> In the rare event a module is updated, the subscriber gets a 3rd
> notification for this change,
> and the data from the module starts to be filtered by the server so the
> subscriber is prevented
> from receiving the "unwanted" data.  This can be quite complicated to
> implement,
> forcing special processing for each subscription.
>
> I am not in favor of changing YANG Push in this way.
>
>

I do not see any clear YANG definition or examples for these augments:

module: ietf-yang-push-revision

  augment /sn:establish-subscription/sn:input/sn:target:
    +--rw revision?         rev:revision-date-or-label
    +-- revision-label?   ysver:version
  augment /sn:modify-subscription/sn:input/sn:target:
    +--rw revision?         rev:revision-date-or-label
    +-- revision-label?   ysver:version
  augment /sn:subscription-started/sn:target:
    +--ro revision          rev:revision-date-or-label
    +-- revision-label?   ysver:version
  augment /sn:subscription-modified/sn:target:
    +--ro revision          rev:revision-date-or-label
    +-- revision-label?   ysver:version
  augment /sn:subscriptions/sn:subscription/sn:target:
    +--ro revision          rev:revision-date-or-label
    +--rw revision-label?   ysver:version



Since a subscription filter is not limited to 1 module, It is unclear how
this draft would be implemented.

The augment is not a module-name + revision, just a revision.
The purpose is unclear. These leafs are added to the
establish-subscription input.

    leaf revision {
      type rev:revision-date-or-label;
      description
        "This references the YANG module revision to be sent in the
subscription.";
    }
    leaf revision-label {
      type ysver:version;
      description
        "This references the YANG module semversion to be sent in the
subscription.";
    }



The subscription never specifies a module, so what module name do these
parameters affect?

Sec 2 describes some parameter values that do not exist (latest,
latest-compatible-semversion)
The YANG module defines a yang-push-revision-supported feature, but there
are no if-feature
statements that reference it.

Andy



>
>> Looking forward for your feedback and comments.
>>
>>
>>
>> Best wishes
>>
>> Thomas
>>
>
>
> Andy
>
>
>>
>>
>> *From:* netconf <netconf-bounces@ietf.org> *On Behalf Of *Andy Bierman
>> *Sent:* Wednesday, May 17, 2023 7:27 PM
>> *To:* Jürgen Schönwälder <jschoenwaelder@constructor.university>;
>> IGNACIO DOMINGUEZ MARTINEZ-CASANUEVA <
>> ignacio.dominguezmartinez@telefonica.com>; Mahesh Jethanandani <
>> mjethanandani@gmail.com>; netconf <netconf@ietf.org>; netconf-chairs <
>> netconf-chairs@ietf.org>
>> *Subject:* Re: [netconf] Adoption poll for
>> draft-tgraf-netconf-yang-notifications-versioning
>>
>>
>>
>>
>>
>>
>>
>> On Wed, May 17, 2023 at 1:42 AM Jürgen Schönwälder <
>> jschoenwaelder@constructor.university> wrote:
>>
>> All of this has been pointed out before and does not come as a
>> surprise. So we should have a general answer how to handle the
>> "damage" created by an NBC update of YANG that according to some does
>> not even require a YANG version number change.
>>
>>
>>
>> It is more than just a conformance issue.
>>
>> It is hard to overstate the importance of RFC 7950 as the 1 well-written
>>
>> document needed to learn YANG.  It may be OK to distribute the
>>
>> YANG data model in lots of ad-hoc specifications, but not the
>>
>> data modeling language definition.
>>
>>
>>
>> People (way outside the IETF) will be expected to learn and use the "new"
>> YANG correctly,
>>
>> and that will be much more difficult without even a name, let alone a
>> version number.
>>
>> What is the new YANG called? "NBC YANG"?
>>
>>
>>
>>
>>
>> Andy
>>
>>
>>
>>
>>
>> ..
>> /js
>>
>> ...
>>
>>
>>
>