Re: [netmod] [core] js review of draft-ietf-core-sid-12

Ivaylo Petrov <ivaylo@ackl.io> Wed, 24 June 2020 07:56 UTC

Return-Path: <ivaylo@ackl.io>
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 05DF43A0C1F for <netmod@ietfa.amsl.com>; Wed, 24 Jun 2020 00:56:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ackl-io.20150623.gappssmtp.com
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 zklNpcfJzINg for <netmod@ietfa.amsl.com>; Wed, 24 Jun 2020 00:56:40 -0700 (PDT)
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AEC983A0C21 for <netmod@ietf.org>; Wed, 24 Jun 2020 00:56:39 -0700 (PDT)
Received: by mail-wr1-x435.google.com with SMTP id l10so1261362wrr.10 for <netmod@ietf.org>; Wed, 24 Jun 2020 00:56:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ackl-io.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=U4/JdSlLDjYVgL6npcCoffAfLtLshObldtuYcKx29qU=; b=V9MGS3iequJk5rdjBHEUdzc1Rfcm+NLsFq7Zj8mYygEeD+E7ZGU9hMbAiCvK5POqVC BKHG3zZIfN5yjyj1ivWY7zO75WYYEpJnST7vdUr326ZckISsGOJycmzJcsqpSr+RYh06 h54nmI0oeBHRAMprSrd4VhbcV3h2jvgaS+wfMEShHEHbhY/rs2IGSgZ9uPpmZEly0GtI MGa7dAw/Rmv5129Y5Sf5ED1bvIbq8F3CqjIT2CHeZYdvDfGwml6ow6NHQlf4W0vGQIhj MJSGCcySs6+JgLbCzBwoumjj0u00qL2hZVylvgw3PaQlPn3aJcX/eUUFZD8E6WOR0RVx M68Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=U4/JdSlLDjYVgL6npcCoffAfLtLshObldtuYcKx29qU=; b=QluQQCVO2ENnIiTSZa7t9jnJpkZQ5ydM/RYLJNmrsNEcE9xgZCuAo6rjENr14jN3eP kCW2HNEJXV8hanVgvUlG6u4xTsKajaLO4EmiJbpCqaWZtrIgoG7VdrEB38wCxVe+ydyH f7BnS/UD5louR+DBjAKgU9HMywEzcgziR4oA4ytRSt6fWOgrRgWuTkUjb+CriwYUoqOu cb+GSbGO6l5ejEvWTOBbbIhr7GWOWJ8/0LLJU0OWTCBkMmcRewcjAcOiAE9e1xTApVoK s+5nKi/+i5qQ1TD3rZiUhjc72mxI0raGR7VIPTWz+HfAlGSdcrQzYrvbRdjCJUrXESJD 7b4w==
X-Gm-Message-State: AOAM533A5nmAxw6B0W1dvSkA68b68N5mnIzQF4RHrYDidEIqJNxzbfqG tVFPb+NjjE4JuJ46PcUZ4+V2n8kDy6ozhwOCBlzqNw==
X-Google-Smtp-Source: ABdhPJz3/IWMDSXzWDgNvkHnCzoDJshw/OPbieCMb8mFgoFJ5VmoVUkqamY/VGYwl9FpuKqm3L/22ZhdXNfDJ3L4aIw=
X-Received: by 2002:a5d:608f:: with SMTP id w15mr20271571wrt.136.1592985397708; Wed, 24 Jun 2020 00:56:37 -0700 (PDT)
MIME-Version: 1.0
References: <20200330213129.m2azrbeaxrtgivfc@anna.jacobs.jacobs-university.de> <CAJFkdRz445b4n86ug=v1ruYYWbDjwnEJwUNCZvEzENu_gMV0bg@mail.gmail.com> <20200415162054.s4bjcrienqvrytfz@anna.jacobs.jacobs-university.de> <CAJFkdRyVc0Ti6nsaWbNoqMH4GZU9qB3r0EQb0MtUoueEBma-Pg@mail.gmail.com> <20200623165938.trkunon5s6wwagdc@anna.jacobs.jacobs-university.de>
In-Reply-To: <20200623165938.trkunon5s6wwagdc@anna.jacobs.jacobs-university.de>
From: Ivaylo Petrov <ivaylo@ackl.io>
Date: Wed, 24 Jun 2020 09:56:11 +0200
Message-ID: <CAJFkdRymDNAy3j6suaxa7nRoRp4idOtNyqgv-jPUvtJLPWAvGA@mail.gmail.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Ivaylo Petrov <ivaylo@ackl.io>, core <core@ietf.org>, NetMod WG <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c3659305a8cfd0cd"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/v3udTffYV6xby-oHPC49fMu0i_U>
Subject: Re: [netmod] [core] js review of draft-ietf-core-sid-12
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: Wed, 24 Jun 2020 07:56:43 -0000

Hi Juergen,

Thank you very much for your new comments! Please find my answers below.

On Tue, Jun 23, 2020 at 6:59 PM Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> On Wed, Jun 10, 2020 at 11:16:47AM +0200, Ivaylo Petrov wrote:
>
> > > - Is it CoRECONF or CORECONF? And I find the term CORECONF confusing.
> > > > >   We have two protocols called NETCONF and RESTCONF and now we add
> > > > >   another protocol called CoMI and we call CoMI together with YANG
> > > > >   CBOR and SIDs CORECONF?
> > > > >
> > > > >   1) NETCONF  + YANG + XML      serialization + path naming -> ?
> > > > >   2) RESTCONF + YANG + XML|JSON serialization + path naming -> ?
> > > > >   3) CoMI     + YANG + CBOR     serialization + SID naming  ->
> CORECONF
> > > > >
> > > > >   We do not have a term for 1) and 2) and then we have a term for
> 3)
> > > > >   which, however, looks more like the protocol names used in 1) and
> > > > >   2). This comment is not specific to this ID, but the asymmetry
> > > > >   showed up while reading the SID document, I had to look at other
> IDs
> > > > >   to understand how things are named. And the SID document says
> > > > >
> > > > >    YANG is a language designed to model data accessed using one of
> the
> > > > >    compatible protocols (e.g.  NETCONF [RFC6241], RESCONF
> [RFC8040] and
> > > > >    CoRECONF [I-D.ietf-core-comi]).
> > > > >
> > > > >   Then I read the CoMI abstract. It first says CoMI is "a CoAP
> > > > >   Management Interface", it then says "The complete solution
> composed
> > > > >   of CoMI, [I-D.ietf-core-yang-cbor] and [I-D.ietf-core-sid] is
> called
> > > > >   CORECONF." and finally it states that "CORECONF extends the set
> of
> > > > >   YANG based protocols, NETCONF and RESTCONF, with the capability
> to
> > > > >   manage constrained devices and networks.". So I am confused, is
> > > > >   CORECONF a protocol as stated in this document? Or is CoMI a
> > > > >   protocol? (What is then the difference between a "Management
> > > > >   Interface" and a management protocol?) I am not sure whether I
> get
> > > > >   to review comi, hence I mention my confusion here as I hit it
> while
> > > > >   reviewing the sid document.
> > > > >
> > > >
> > > > [IP]: Currently this is indeed somewhat confusing. The proposed
> change
> > > from
> > > > Michael Richardson was to at least have CORECONF in the title of the
> CoMI
> > > > document. I am wondering if that might still leave some of the
> confusion.
> > > > For me the simple solution is in this document to refer to CoMI, not
> > > > CORECONF and let CoMI draft define what CORECONF actually is. Unless
> you
> > > > think this will still not resolve the issue, this is going to be my
> way
> > > > forward.
> > >
> > > Avoiding CORECONF in this document helps to limit the problem. If CoMI
> > > is the name of the protocol, I would hope we do not need CORECONF at
> > > all. But then CORECONF is all over the place in
> > > draft-ietf-core-comi-09.txt, it actually looks like the protocol is
> > > called CORECONF and not CoMI. I really believe this terminology
> > > confusion needs to be resolved in the WG so the WG actually knows and
> > > agrees on the name of the technology they standardize.
>
> I am not sure whether this got resolved...
>

[IP]: You are right - I realized that omission and I have started a
discussion (so far not many opinions on it though) here [1] focusing mostly
on this point. I have proposed 3 options for a way forward - use only
CORECONF, use only CoMI or find good enough reason to have the clearly CoAP
part have a name (CoMI) and CoMI + Content format to be called CORECONF. I
currently don't see a reason for having both CoMI and CORECONF as names, so
I would rather go with one of the other two options. I will try to see if
in the past people were more in favour of one or the other. I believe
Carsten would prefer CORECONF and at the top of my head I don't remember
anyone voicing any preferences, but I will check that and propose it as the
default way forward if there are no replies in the next 6-7 days.

[1]: https://mailarchive.ietf.org/arch/msg/core/x9RJkfnQgW0Rp3LmHd2CkbOA4DY/

> > > - This description makes little sense to me:
> > > > >
> > > > >   typedef sid-file-version-identifier {
> > > > >     type uint64;
> > > > >     description
> > > > >       "Optional attribute that gives information about the .sid
> file
> > > > >        version.";
> > > > >   }
> > > > >
> > > > >   This is a type definition. Why does the description talk about an
> > > > >   optional attribute? The type should not state whether something
> > > > >   using the type is optional or not. (And I would prefer to avoid
> > > > >   'attribute', better use YANG defined terms or just describe that
> > > > >   this type represents a version number for a SID file.)
> > > > >
> > > >
> > > > [IP]: I believe now it should be more clear.
> > >
> > > Yes. I wonder though, is this a simple linear counter? Or can it be
> > > anything as long as newer > older is satisfied? Or is this just a tag
> > > that needs to match and it does not imply any order semantics?
> > >
> >
> > [IP]: The intention was to be newer > older without any implied
> semantics. I
> > rephrased the text to capture this.
> > Old:
> >            "Optional leaf that specifies the version number of the .sid
> > file.
> >           .sid files and the version
> >           sequence are specific to a given YANG module revision.
> >           This number starts at zero when there is a YANG module update.
> >           This number can distinguish updates to the SID file which are
> the
> > result of
> >           new processing, or the result of reported errata.";
> > New:
> >            "Optional leaf that specifies the version number of the .sid
> > file.
> >           .sid files and the version sequence are specific to a given
> YANG
> >           module revision. This number starts at zero when there is a new
> > YANG
> >           module revision and increases monotonically.  This number can
> >           distinguish updates to the .sid file which are the result of
> new
> >           processing, or the result of reported errata.";
>
> The YANG versioning aims at supporting version histories that are more
> complex than just a simple linear history. Hence, a simple linear
> order of the sid version number may have limitations.
>

[IP]: The .sid file history is linked to a YANG file version and is
supposed to mostly/only fix errors in the generation. Any change in the
YANG file version (be it linear or nonlinear) is expected to reset the .sid
file version to 0. Please let me know if you believe that this is still not
going to work well in some cases or if you think that the text is not clear
enough.

> >   s/Identifies a schema-node path string/A schema-node path"
> > > > >
> > > > >   It is a bit confusing to define a schema-node path by way of
> > > > >   reference to an instance identifier. I understand that you borrow
> > > > >   the namespace encoding from the way JSON encode instance
> identifiers
> > > > >   but this type really represents what RFC 7950 calls an absolute
> > > > >   schema node identifier, no? Is the term schema-node path actually
> > > > >   needed or is it the same as absolute schema node identifier? Or
> is
> > > > >   the difference between the two how namespaces are represented?
> > > > >
> > > >
> > > > [IP]: I might have misunderstood something, but my understanding is
> that
> > > > the prefix related to a module could be changed during an import,
> whereas
> > > > here we really want to use the module name as a more stable
> identifier.
> > > The
> > > > difference between absolute schema node identifier and schema-node
> path
> > > is
> > > > that we mandate the use of module name and not prefix as defined in
> RFC
> > > > 7950.
> > >
> > > Well, what you model here is an absolute schema node path, except that
> > > prefixes are replaced by module names. Note that refering to
> > > instance-identifier as defined in RFC 7951 has the problem, the RFC
> > > 7951 definition of an instance-identifier also includes prefixes
> > > instead of module names.
> > >
> >
> > [IP]: I might be misunderstanding your statement or the text in RFC 7951,
> > but if I read sec 6.11. from RFC 7951 correctly,
> >
> > The leftmost (top-level) data node name is always in the
> > namespace-qualified form.
> >
> >
> > In sec 4 of RFC 7951 the namespace-qualified form seems to only use the
> > module name and not the prefix. My impression seems to be supported also
> by
> > the example in this section. Due to this I believe the current text is
> > actually correct.
>
> In an ideal world, the definitions in this document would depend on
> the YANG specification and not on some other encoding rules. And I
> think what you are dealing with are absolute-schema-nodeid with the
> additional rule that prefix values in the node-identifier production
> are module names.
>
> The way the instance-identifier type has been defined is a bit
> problematic since it is rather XML encoding specific. Hence to get
> what you want, you have to import the JSON specific solution. If we
> ever do YANG 2.0 and factor out the XML specific things from the core
> language, this will likely be addressed. Note that the instance
> identifier includes predicates in square brackets, which I think your
> schema-node-path does not need.
>

[IP]: I believe I see your point. My understanding is that you would prefer
this document to not depend on the JSON encoding, but rather define that
encoding in this document using as a basis the YANG specification. That
would be fine for me, simply let me know if I understood you correctly.

/js
>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>

Thanks again!

Best regards,
Ivaylo Petrov