Re: [netmod] No descendent statements to input/output can be reordered

Martin Björklund <mbj+ietf@4668.se> Tue, 31 March 2020 11:52 UTC

Return-Path: <mbj+ietf@4668.se>
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 0272A3A1924 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2020 04:52:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.801
X-Spam-Level: *
X-Spam-Status: No, score=1.801 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_NAKED_TO_NUMERO=1.999, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=4668.se header.b=voP2HDsU; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=QJdgnylB
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 4cD3OXsqUy8y for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2020 04:52:07 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 31CF43A1925 for <netmod@ietf.org>; Tue, 31 Mar 2020 04:52:07 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 778785C0587; Tue, 31 Mar 2020 07:52:06 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Tue, 31 Mar 2020 07:52:06 -0400
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=fm1; bh= NuIu4O6ynn3vq2d6eLQcMfIPaU+gDWtwqiTNB6YTANk=; b=voP2HDsUpdSpblvV k8JK+5PrTpPixGoGWFiF5j1zWEbMIERqdyqBWK/kREL2Rei9SpBEjwTFC63+/VsJ fgCnZBV6ZWrXnRqZLBYpTUBOp/B3Mv1e3k18YaPr9tFRgrf5yeCdCjGViy8YQYBB ojp/tpJpYwc/5Hm+CcblSFnmijD3M/QvuNJJF009zrO1lLkFLCZnwtsGlTwq9Q+O 0caXfw/T2UF3GCIjaTP9ovSAbzu1CFyS9bQT+QdWHkg4E/KJr8WcaqLe/klzqkFy JD8nTIxayU4khaRXRdtxGD64fahSD7ltTC9mtjsDPGDF6wBzIuHQUteu3F+l2UEz XA24BA==
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=fm2; bh=NuIu4O6ynn3vq2d6eLQcMfIPaU+gDWtwqiTNB6YTA Nk=; b=QJdgnylB+O0uYT839Ngc5X3tsJAN83iH4UotFpG89om73pEzKW2Ts+Tq0 DJJnD9Rp0naPaOKCQJXo6i0fg2dBUw70iPW7adg/yGX+/yvIXGeu7XkkzLxJjz29 JwQaGDg3E6lVuMqkKD/WiARTyeR6torMH1REmvnLyummwkK7SssPZp0vMzjuq+q+ DidbIJCO3jqAw2Pxeqf6K34W+5LNCZ0YjKCkA5zZMeK4mCjf5QVwJqi+Cayon7Y6 srvUabEK7fGFBbi6dh9z7vlqUgvZbCMB0IP10DRvrZ33egIkacVuSVxF+lV3My2Y FDyB2yHuk8ANLCyznwbrxFCuF8e+w==
X-ME-Sender: <xms:5S6DXho9Oh52yPjrxDIpS1H8FeH6WlFV_oV8KFRpw4myosLnvlmrdQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrtddtgdduudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhfgjfhfogggtgfesthgsre dtredtjeenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdoihgv thhfseegieeikedrshgvqeenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhivghtfh drohhrghenucfkphepudehkedrudejgedrgedrgeegnecuvehluhhsthgvrhfuihiivgep tdenucfrrghrrghmpehmrghilhhfrhhomhepmhgsjhdoihgvthhfseegieeikedrshgv
X-ME-Proxy: <xmx:5i6DXqgVCFdmG7Y91a-KAp27tbEkwaatmjRbb3zx4LtXhnpa0MPjIQ> <xmx:5i6DXn667KHU5OZAyYkI7X-Debty_63muqH5m6zRnFlE5-0a1WVAwg> <xmx:5i6DXg3F6XYHE6gMk58QoM_y67LerBSAkbNCOwLXYneDdt88_FiHzg> <xmx:5i6DXj8uUdvAafFXuKGBsKaAPw-gvWTQUjpKptJQwxX30IQmj6RtkQ>
Received: from localhost (unknown [158.174.4.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 63860306CB52; Tue, 31 Mar 2020 07:52:05 -0400 (EDT)
Date: Tue, 31 Mar 2020 13:52:03 +0200
Message-Id: <20200331.135203.2237955857731629624.id@4668.se>
To: rwilton@cisco.com
Cc: rrahman@cisco.com, netmod@ietf.org
From: Martin Björklund <mbj+ietf@4668.se>
In-Reply-To: <MN2PR11MB4366BF797649EFE9AFBC4FC0B5C80@MN2PR11MB4366.namprd11.prod.outlook.com>
References: <809C7D15-95DD-49CF-975A-B55F08D8C782@cisco.com> <20200328.094306.1883371784477662660.id@4668.se> <MN2PR11MB4366BF797649EFE9AFBC4FC0B5C80@MN2PR11MB4366.namprd11.prod.outlook.com>
X-Mailer: Mew version 6.8 on Emacs 25.2
Mime-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/EC-dquf2IZxx595BuTGUCZ374iM>
Subject: Re: [netmod] No descendent statements to input/output can be reordered
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
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: Tue, 31 Mar 2020 11:52:09 -0000

"Rob Wilton (rwilton)" <rwilton@cisco.com> wrote:
> [As an individual contributor]
> 
> Hi,
> 
> > -----Original Message-----
> > From: netmod <netmod-bounces@ietf.org> On Behalf Of Martin Björklund
> > Sent: 28 March 2020 08:43
> > To: Reshad Rahman (rrahman) <rrahman@cisco.com>
> > Cc: netmod@ietf.org
> > Subject: Re: [netmod] No descendent statements to input/output can be
> > reordered
> > 
> > "Reshad Rahman (rrahman)" <rrahman@cisco.com> wrote:
> > > Hi,
> > >
> > > https://github.com/netmod-wg/yang-ver-dt/issues/47
> > >
> > >         o  3.1.1
> > >
> > >             o  In statements that have any data definition statements as
> > >                substatements, those data definition substatements MAY be
> > >                reordered, as long as they do not change the ordering or
> > any "rpc"
> > >                "input" substatements.
> > >
> > >           I think this needs to capture that no descendant statements to
> > >           "input" can be reordered.  Same for "output" (note, "input"
> > and
> > >           "output" in both "rpc" and "action").
> > >
> > >
> > > Sounds good. JTBC, by descendent you're referring to data nodes
> > > (children, grandchildren etc) and not to statements like type and
> > > description?
> > 
> > Yes I mean descendant nodes.
> > 
> > 
> > > Also, could you refresh our memory why the decision was made to
> > > preserve order of input/output data nodes?
> > 
> > This is b/c this order is preserved on-the-wire for some encodings
> > (like
> > XML).
> [RW] 
> 
> This is slightly on a tangent, but RFC 7950 allows modules to augment
> RPC/Action input/output parameters.  I'm not aware of any defined
> order that augmentations are required to be processed in.

RFC 7950, 7.17.2:

   When a node is augmented, the augmenting child nodes are encoded as
   subelements to the augmented node, in any order.

> Hence it
> seems to me that the order that the client expects and server uses
> could end up being different if there are multiple augmentation to RPC
> input/output parameters.

Correct.  This is something implementations must be able to handle.


/martin


> 
> Regards,
> Rob
> 
> 
> > 
> > 
> > /martin
> > 
> > 
> > 
> > >
> > > Regards,
> > > Reshad.
> > >
> > > On 2020-03-20, 5:08 PM, "netmod on behalf of Reshad Rahman (rrahman)"
> > <netmod-bounces@ietf.org on behalf of
> > rrahman=40cisco.com@dmarc.ietf.org>
> > wrote:
> > >
> > >     Hi Martin,
> > >
> > >     We've opened issues to track your review comments (see below). Will
> > kick off separate therads for each issue.
> > >
> > >
> > > https://github.com/netmod-wg/yang-ver-dt/issues?q=is%3Aissue+is%3Aopen
> > > +label%3Aupdated-mod-rev-handling
> > >
> > >     Regards,
> > >     Reshad.
> > >
> > >     On 2020-03-10, 3:31 PM, "netmod on behalf of Martin Björklund"
> > <netmod-bounces@ietf.org on behalf of mbj+ietf@4668.se> wrote:
> > >
> > >         Hi,
> > >
> > >         Here are my review comments of
> > >         draft-verdt-netmod-yang-module-versioning-01.
> > >
> > >
> > >
> > >         o  3.1.1
> > >
> > >             o  In statements that have any data definition statements as
> > >                substatements, those data definition substatements MAY be
> > >                reordered, as long as they do not change the ordering or
> > any "rpc"
> > >                "input" substatements.
> > >
> > >           I think this needs to capture that no descendant statements to
> > >           "input" can be reordered.  Same for "output" (note, "input"
> > and
> > >           "output" in both "rpc" and "action").
> > >
> > >
> > >         o  3.3
> > >
> > >             All revision labels that match the pattern for the "version"
> > >             typedef in the ietf-yang-semver YANG module MUST be
> > interpreted as
> > >             YANG semantic version numbers.
> > >
> > >           I don't think this is a good idea.  Seems like a layer
> > violation.
> > >           What if my project use another dialect of semver, that
> > wouldn't be
> > >           possible with this rule.  I think this needs to be removed.
> > >
> > >
> > >         o  3.3
> > >
> > >             Submodules MUST NOT use revision label schemes that could be
> > confused
> > >             with the including module's revision label scheme.
> > >
> > >           Hmm, how do I ensure that this MUST NOT is handled correctly?
> > What
> > >           exactly does "could be confused with" mean?
> > >
> > >
> > >         o  3.3
> > >
> > >               In the filename of a YANG module, where it takes the form:
> > module-
> > >               or-submodule-name ['@' revision-label] ( '.yang' /
> > > '.yin' )
> > >
> > >           Should this section update 5.2 of RFC 7950?  I know that 5.2
> > just
> > >           says "SHOULD".  But existing tools implement this SHOULD, and
> > they
> > >           need to be updated to handle this new convention.
> > >
> > >           But I wonder if this a good idea.  It means that a tool that
> > looks
> > >           for a module with a certain revision date cannot simply check
> > the
> > >           filenames, but need to parse all available modules (wijust
> > > to find the
> > >
> > >
> > >
> > >         o  3.4
> > >
> > >              leaf imperial-temperature {
> > >                type int64;
> > >                units "degrees Fahrenheit";
> > >                status deprecated {
> > >                  rev:status-description
> > >                    "Imperial measurements are being phased out in favor
> > >                     of their metric equivalents.  Use metric-temperature
> > >                     instead.";
> > >                }
> > >                description
> > >                  "Temperature in degrees Fahrenheit.";
> > >              }
> > >
> > >           I don't think rev:status-description is necessary / worth it.
> > This
> > >           can easily be written with the normal description statement
> > instead:
> > >
> > >              leaf imperial-temperature {
> > >                type int64;
> > >                units "degrees Fahrenheit";
> > >                status deprecated;
> > >                description
> > >                    "Imperial measurements are being phased out in favor
> > >                     of their metric equivalents.  Use metric-temperature
> > >                     instead.
> > >
> > >                     Temperature in degrees Fahrenheit.";
> > >              }
> > >
> > >
> > >         o  3.5
> > >
> > >           The example modules should be legal YANG modules.  Use e.g.
> > >           "urn:example:module" as namespace.
> > >
> > >           Also, the modules are missing the last "}", which confuses the
> > >           "rfcstrip" tool.
> > >
> > >
> > >         o 4.1.1
> > >
> > >             Alternatively, the first example could have used the
> > revision label
> > >             "1.0.0" instead, which selects the same set of
> > revisions/versions.
> > >
> > >             import example-module {
> > >               rev:revision-or-derived 1.0.0;
> > >             }
> > >
> > >           Shouldn't this be s/1.0.0/2.0.0/g ?
> > >
> > >
> > >         o  5
> > >
> > >           I think the module name "ietf-yl-revisions" should be changed
> > to
> > >           "ietf-yang-library-revisions".   "yl" is not a well-known
> > acronym.
> > >
> > >
> > >         o  5.2.2
> > >
> > >           Wouldn't it be better if the leaf "deprecated-nodes-
> > implemented" and
> > >           "obsolete-nodes-absent" were of type "boolean" rather than
> > type
> > >           "empty"?
> > >
> > >
> > >         o  7.1
> > >
> > >           The text says:
> > >
> > >             All IETF YANG modules MUST include revision-label statements
> > for all
> > >             newly published YANG modules, and all newly published
> > revisions of
> > >             existing YANG modules.  The revision-label MUST take the
> > form of a
> > >             YANG semantic version number [I-D.verdt-netmod-yang-semver].
> > >
> > >           I strongly disagree with this new rule.  IETF modules use a
> > linear
> > >           history, so there are no reasons to use "modified semver".
> > >
> > >           It is ok to use rev:nbc-changes if needed, though.
> > >
> > >
> > >         o 7.1.1
> > >
> > >           There is a missing " in:
> > >
> > >            4.  For status "obsolete", it is RECOMMENDED to keep the
> > "status-
> > >                description" information, from when the node had status
> > >                "deprecated, which is still relevant.
> > >          HERE  -----------^
> > >
> > >
> > >         o  8
> > >
> > >           s/CODE ENDS>/<CODE ENDS>/
> > >
> > >
> > >         o Both YANG modules
> > >
> > >           All extensions should specify the grammar; i.e., in which
> > statements
> > >           they can be present and which substatements they can have.
> > >
> > >
> > >
> > >         /martin
> > >
> > >         _______________________________________________
> > >         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