Re: [netmod] Poll on YANG Versioning NBC Approach

Andy Bierman <andy@yumaworks.com> Thu, 14 September 2023 19:03 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 59C53C151090 for <netmod@ietfa.amsl.com>; Thu, 14 Sep 2023 12:03:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.106
X-Spam-Level:
X-Spam-Status: No, score=-7.106 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_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham 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 ni4BL1Q1xmXG for <netmod@ietfa.amsl.com>; Thu, 14 Sep 2023 12:03:36 -0700 (PDT)
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (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 B9057C151095 for <netmod@ietf.org>; Thu, 14 Sep 2023 12:03:36 -0700 (PDT)
Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-501bd6f7d11so2206580e87.1 for <netmod@ietf.org>; Thu, 14 Sep 2023 12:03:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1694718215; x=1695323015; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qUcSkYE/iU35SJC/tPwPJmfZQ1tvYT/uwwUrSRrCuso=; b=og2CKGLjz2fusDkP+8amQ7YAtSg2tb1TIrv7DZq+LuUGjmNkyTgxwU5tX2ssCfe7WY S3tZ+9X7MA21uaX3bo40A2QSjghwPE7aBLNszht90NuTRhkq3ey2n/6T0JjmeBQUfhQs x98QKc8ehz5lrOCogWg2EB9EQ2r4qpPBHqksFhLMHLuMBhF+a5+zaTbtBbeAS9ad8rHD NIkg2iL0HqBuuY9JMno/zOkzO9FS+Rwic8Iar10s7fZwFofRpmWfnmexBK9c7gxZTDaK XK6X92+YyAbVmaQWID+5EtfwRIJRkFFRDCAGKe6OuveHa93+MhPqi0O1SaF5TZqRahN3 ObKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694718215; x=1695323015; 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=qUcSkYE/iU35SJC/tPwPJmfZQ1tvYT/uwwUrSRrCuso=; b=vsv4ngl3f68FsQLBsIHCY/rFDXuxOcv8GeCEZdCTxQuoSQ4cJk8cLgU2BPiOJ+MT6b YvdoH8invDCsnDOUzh+HYb04/WN2HJOfMVx/mklZU+aAbQGoHClDz9ufglxRH0M0un0Q TMGrdCNxdgQC7E2cH8Fc/y/Wm53RGUtfRb6zGZHNDT2+YfRBtzMYPNmzt93wf2YV/Mcm PBfMUeOPuXECKOJmpdL4mWyPx8ZDcGIIkQ6/39SeSAvh7M/xtJxrA0qCsFkK5I1mVO9c yTPucfEvFH0TZik1jeohDFP62XDWjTFMQ7OGTtibWe/+Vhd9k82vx7b7KSKxE1oRWnm+ QsDQ==
X-Gm-Message-State: AOJu0YyoWfRxZrutbv+dfyP+4e9FPn0qTj3cl0oyzk93ViqZK8nFSGX3 /npGR780l+VsifwMUlRoBjrICyTzZxVy0WGQYnIBMw==
X-Google-Smtp-Source: AGHT+IF179doxmBHRoVBUG9ofXUv6PXnWB7YHWOnVIyna3a3NPUlZeYy0IY8yu4zOvFeompgRQE35UCjHxAca4U2QXY=
X-Received: by 2002:ac2:511d:0:b0:4ff:8403:e88 with SMTP id q29-20020ac2511d000000b004ff84030e88mr5191840lfb.1.1694718214640; Thu, 14 Sep 2023 12:03:34 -0700 (PDT)
MIME-Version: 1.0
References: <0100018a866682fd-922054c7-e040-43d5-b26f-b16acfbd61dd-000000@email.amazonses.com> <s7ufdqzntxtymckckdhkd7a4cey632sir7ox3iw5m6x6fy6s5p@ekaw2h6muodc> <36A11C7B-E240-4CC7-A054-DC28655C4261@cisco.com> <72ba26c2-0864-d167-00bd-1fe09d4f2dfa@mg-soft.si> <63586D28-3D8E-4F75-BDC5-D4FB14E66955@cisco.com> <fd795652-eb70-d96f-35f6-82d5a5dad1ba@mg-soft.si> <f6507afd-ead8-4c45-a23b-f56ddb33db79@nic.cz> <8B250FD7-6549-4086-B014-E15D540C88F3@gmail.com> <CABCOCHTOSPNwjqwQoN217KGS-KYmeqPUpiP5by8yvqhsXeRCxg@mail.gmail.com> <F0DE8DF9-8B85-4DBE-A876-BA716283665F@gmail.com>
In-Reply-To: <F0DE8DF9-8B85-4DBE-A876-BA716283665F@gmail.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 14 Sep 2023 12:03:23 -0700
Message-ID: <CABCOCHTtkG7--vxUM4SZ=E3uk6M8676FzTyK-6mMh-MHjBFLaA@mail.gmail.com>
To: Acee Lindem <acee.ietf@gmail.com>
Cc: Ladislav Lhotka <ladislav.lhotka=40nic.cz@dmarc.ietf.org>, "netmod@ietf.org" <netmod@ietf.org>, Jürgen Schönwälder <jschoenwaelder@constructor.university>, "Jan Lindblad (jlindbla)" <jlindbla@cisco.com>
Content-Type: multipart/alternative; boundary="0000000000002dafe70605565506"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Dud4vCpS4ZMUzp0fuvH0rv3uL8g>
Subject: Re: [netmod] Poll on YANG Versioning NBC Approach
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Sep 2023 19:03:41 -0000

On Thu, Sep 14, 2023 at 10:09 AM Acee Lindem <acee.ietf@gmail.com> wrote:

>
>
> On Sep 14, 2023, at 12:40, Andy Bierman <andy@yumaworks.com> wrote:
>
>
>
> On Thu, Sep 14, 2023 at 9:05 AM Acee Lindem <acee.ietf@gmail.com> wrote:
>
>>
>>
>> > On Sep 13, 2023, at 10:36, Ladislav Lhotka <ladislav.lhotka=
>> 40nic.cz@dmarc.ietf.org> wrote:
>> >
>> >
>> >
>> > Dne 13. 09. 23 v 16:06 Jernej Tuljak napsal(a):
>> >> On 13/09/2023 14:26, Jan Lindblad (jlindbla) wrote:
>> >>> Jernej,
>> >>>
>> >>> Hat off for the tools (and tool vendors!) that assist authors to stay
>> true to YANG RFC sections 10 and 11 also. Well done. :-)
>> >>>
>> >>> I intentionally used "compiler" rather than "toolchain", "IDE" or
>> something more open ended, because a compiler is what I have and can speak
>> for.
>> >>>
>> >>> Even so, I have a hard time thinking the customers of even the best
>> YANG IDEs would be interested to pay the effort for distinguishing between
>> YANG 1.1 and YANG 1.2 solely on the proposed RFC wording difference. Since
>> a BC verification capability apparently already exists in some IDEs, I
>> think it would make sense for their vendors to turn the checks it into a
>> warnings (if they aren't already), regardless of which yang-version
>> statement is found in the module header.
>> >>>
>> >>> This might mean a non-zero implementation effort for a few YANG
>> toolchain implementors. While this is a good point, it does not really sway
>> my opinion about what the pragmatic choice for IETF is. Or Jernej, do you
>> think the users of those good IDEs would prefer a new YANG version? If so,
>> why?
>> >> If you are asking whether I'd like to see a new version of YANG for
>> the sole purpose of changing those MUST and MUST NOTs - no, I would not.
>> However, a change like this mandates a yang-version bump, IMHO.
>> >
>> > Right, so we have two ugly options, but bumping YANG version really
>> makes no sense, so breaking those few tools that check update rules looks
>> like a better choice to me.
>> >
>> > We have already seen cases that the update rules prevented fixing
>> problems in YANG modules in a straightforward way, and backward-compatible
>> fixes negatively affected module readability. This is inevitable until the
>> ecosystem of YANG modules stabilizes. That's why I think changing update
>> rules from MUST to SHOULD is appropriate - it should have been so from the
>> beginning.
>>
>> I wholeheartedly agree. We need to be able to fix YANG modules with NBC
>> changes. I know of at least one implementation that support NBC changes for
>> proprietary models with node-specific translation
>>
>>
> Some of us do not think a bugfix counts as an NBC change.
> If the YANG definition is wrong and has been wrong from the start, then BC
> is not important.
> Fixing the YANG module so the definitions match the intent of the authors
> is important.
>
> IMO this new draft is not really needed at all, since bugfix exceptions
> should be allowed
> and should have always been allowed.
>
>
> What about models that are not functionally broken but need to be fixed
> for other reasons? For example, to adhere to IETF inclusive language?
>
> Would you still require a years long publication process for deprecation
> followed by another years long cycle to remove the deprecated nodes? For
> example:
>
>     https://datatracker.ietf.org/doc/draft-acee-rtgwg-vrrp-rfc8347bis/
>
>
Years long process is not written anywhere in RFC 7950.  ;-)

I am OK with treating NBC changes as SHOULD NOT.

      SHOULD NOT This phrase, or the phrase "NOT RECOMMENDED" mean that

   there may exist valid reasons in particular circumstances when the
   particular behavior is acceptable or even useful, but the full
   implications should be understood and the case carefully weighed
   before implementing any behavior described with this label.


I don't care about the details of each YANG object.
That is for reviewers to decide.



Thanks,
> Acee
>

Andy


>
>
>
>
> Thanks,
>> Acee
>>
>>
> Andy
>
>
>>
>>
>>
>> >
>> > Lada
>> >
>> >> Jernej
>> >>>
>> >>> Best Regards,
>> >>> /jan
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>> On 13 Sep 2023, at 10:57, Jernej Tuljak <jernej.tuljak@mg-soft.si>
>> wrote:
>> >>>>
>> >>>> On 12/09/2023 14:43, Jan Lindblad (jlindbla) wrote:
>> >>>>> Jürgen, all,
>> >>>>>
>> >>>>> I see the irony in changing the YANG RFC(s) without updating the
>> YANG language version number, but digging a bit deeper, I think the
>> question is not as clear-cut as it might seem at first.
>> >>>>>
>> >>>>> Altering the contents of the backwards-compatibility section of RFC
>> 6020 (sec 10) and RFC 7950 (sec 11) clearly implies changes in YANG module
>> authors' behavior.
>> >>>>>
>> >>>>> Speaking as a YANG compiler implementor, however, I don't see any
>> changes that have to made to the compiler because of this RFC change. There
>> are no new keywords, none are removed. There is no change in the meaning of
>> existing keywords. There is no difference in the output the compiler needs
>> to generate.
>> >>>>>
>> >>>>> So while there are changes to the YANG *standard* (meaning RFCs)
>> there is no actual change to the YANG *language*. If we require user's to
>> mark their modules with version 1.2 (or 2.0), from the compiler's pov, that
>> would just be an alias for YANG 1.1. It means a fair amount of trouble to
>> update all the tools out there to accept "yang-version 1.2" but do nothing
>> new. It also adds a burden to YANG module implementors, since they would
>> have to go through all YANG 1.1 modules and mark them 1.2, for no change in
>> meaning. For organizations with some modules still on YANG 1.0, the bar is
>> even higher.
>> >>>>>
>> >>>>> I think the most pragmatic approach in this case would be to change
>> the RFC text in the backwards-compatibility sections and not update the
>> yang-version number as long as no change is required in the compilers. If
>> anyone can point to actual things the compiler needs to do differently, I'd
>> be interested to hear.
>> >>>>
>> >>>> You will first have to define what a YANG compiler is before you can
>> make such assumptions. YANG code validation rules may be implemented in
>> several ways, depending on what the tool that utilizes them is used for. I
>> choose to call that a "validation engine" - "compiler" implies translation
>> into a lower level language in my world and not all tools require that. I
>> know of at least one tool that utilizes a validation engine that performs
>> the checks in Updating a Module sections of RFC 6020 and RFC 7950, when
>> requested. And I would expect a YANG authoring tool to do the same if it
>> claims full RFC compliance. Those are not optional guidelines intended just
>> for humans. It is true that some of the rules can only be reliably checked
>> by a human, but not all (or even most) of them. Point being - there are
>> implementations out there that rely on the text of this Section to remain
>> unchanged. I would imagine that they represent a drop in the sea compared
>> to implementations that have chosen to completely ignore the spec (forking
>> YANG into YANG' in the process), but they do exist.
>> >>>>
>> >>>> I disagree that changing those sections does not change the
>> language. Of course it does. It makes combinations of language constructs,
>> that were previously not allowed, valid. This is no different to
>> prescribing a mandatory-to-implement YANG extension.
>> >>>>
>> >>>> File versioning is baked into YANG, a peculiarity of the language.
>> There are many more such peculiarities. I'd like to know what other
>> backward incompatible changes to the spec I can expect to occur in the
>> future because there's now a precedent for it.
>> >>>>
>> >>>> Jernej
>> >>>>
>> >>>>>
>> >>>>> Best Regards,
>> >>>>> /jan
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>> On 12 Sep 2023, at 07:55, Jürgen Schönwälder
>> <jschoenwaelder@constructor.university> wrote:
>> >>>>>>
>> >>>>>> I disagree with the poll. There are important teachnigal
>> differences
>> >>>>>> behind the two options that this polls tries to hide.
>> >>>>>>
>> >>>>>> Updating YANG 1 and YANG 1.1 means creating YANG 1' and YANG
>> >>>>>> 1.1'. There is no way that a new versioning approach will be
>> >>>>>> understood by existing YANG tooling. That's an illusion.
>> >>>>>>
>> >>>>>> /js
>> >>>>>>
>> >>>>>> On Mon, Sep 11, 2023 at 10:39:39PM +0000, Kent Watsen wrote:
>> >>>>>>> WG,
>> >>>>>>>
>> >>>>>>> Please help the YANG-versioning effort move forward by
>> participating in the following poll:
>> >>>>>>>
>> >>>>>>>  - https://notes.ietf.org/netmod-2023-sept-poll  (Datatracker
>> login required)
>> >>>>>>>
>> >>>>>>> Kent and Lou
>> >>>>>>>
>> >>>>>>> _______________________________________________
>> >>>>>>> netmod mailing list
>> >>>>>>> netmod@ietf.org
>> >>>>>>> https://www.ietf.org/mailman/listinfo/netmod
>> >>>>>>
>> >>>>>> --
>> >>>>>> Jürgen Schönwälder              Constructor University Bremen gGmbH
>> >>>>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen |
>> Germany
>> >>>>>> Fax:   +49 421 200 3103 <https://constructor.university/>
>> >>>>>>
>> >>>>>> _______________________________________________
>> >>>>>> netmod mailing list
>> >>>>>> netmod@ietf.org
>> >>>>>> https://www.ietf.org/mailman/listinfo/netmod
>> >>>>> _______________________________________________
>> >>>>> netmod mailing list
>> >>>>> netmod@ietf.org
>> >>>>> https://www.ietf.org/mailman/listinfo/netmod
>> >>>
>> >> _______________________________________________
>> >> netmod mailing list
>> >> netmod@ietf.org
>> >> https://www.ietf.org/mailman/listinfo/netmod
>> >
>> > --
>> > Ladislav Lhotka, CZ.NIC
>> > PGP Key ID: 0xB8F92B08A9F76C67
>> >
>> > _______________________________________________
>> > netmod mailing list
>> > netmod@ietf.org
>> > https://www.ietf.org/mailman/listinfo/netmod
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>
>
>