Re: [netmod] WG Last Call: draft-ietf-netmod-yang-instance-file-format-06

Schönwälder, Jürgen <J.Schoenwaelder@jacobs-university.de> Wed, 19 February 2020 10:17 UTC

Return-Path: <J.Schoenwaelder@jacobs-university.de>
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 0E7E7120104 for <netmod@ietfa.amsl.com>; Wed, 19 Feb 2020 02:17:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.435
X-Spam-Level: *
X-Spam-Status: No, score=1.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_SBL_CSS=3.335, SPF_NONE=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=jacobsuniversity.onmicrosoft.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 ZGau6kyEWlCw for <netmod@ietfa.amsl.com>; Wed, 19 Feb 2020 02:16:59 -0800 (PST)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30052.outbound.protection.outlook.com [40.107.3.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8C02F1200FD for <netmod@ietf.org>; Wed, 19 Feb 2020 02:16:58 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HDfRkJCngudZjdPzCqzRrDOiP2Vo1pD4/pNXjFWvV29HRfXL6adq9ieGosmXMCzSb7oTj7kzHhckP4Xru1TfEh5EAhWh5z4VfGlM1VA4APMqyjRLpPzIPsJKW2h6PQw5/7OSwac/+FOI2Y2TYuUqLWXlmuGRTWoIhB2IYmJHA/aiUMBnF/nRRyqLbzovHhuwgRp+jVjBKtInsjpGEc4UX623W0BI4cvBN1yI0bPzQbw7KIYDQLAZsQO+eookQB8jtoUhvrjxf2wd6eiABU+KQIq/NG7zyEh0l4G8bbxhTs6wu4rLv/P19rFvgoWQCrao6dww08/qzRRl1g6XsS7upw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+8fYZ+Ix8MDv6dhSB/9w/zKPE2bvhn1JVsc2z6W1R+4=; b=FG9j+KGQERTgAx/Jk+PZbwRSjX9LEUfnDCVavsDHWLCfvL4weOZcDcLp71Yq/VGqRwMi8ezEZkcTpz6EN/r5HOfcDFd6hA4iUXYChBpJcAGDJCl6rJ7+x166gIyqzXDOgwfmFBMjpN/Z1/s4XufuJeP7QPQNqsJR3BCE1Lcu8hYYU/jUeP3OKhBIDrxr80sDvW/oyCdO+27zh3SGbPr8c/SU6Q+XPlYiCYLsPlki1ucML4L/IjrOgYnmiLo4b5GSInKuGM1/3vI79MB9RIhh/HP0qD2bE1t9+4DiKUsAj8gnI5w4Y7bEWRbQqbOUqJttQV3CZf5KW+ixwujb1Ssk7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+8fYZ+Ix8MDv6dhSB/9w/zKPE2bvhn1JVsc2z6W1R+4=; b=aWsMEcIv8SRpV99m7WICX0JXgaWiac3P9Rg9kjCB+PA44yIV+aSKzXre4Fv6guwuS/nnx2ZJuVn3H+Puy1jtOuMIu2N1p3YImAvJWjxeA/ZxKp0eXtmM8/mLDpcIAv+NfhePXsPH4DXsSFFvkXVVjPtmmEZYi+LGycMDpUaY+08=
Received: from DB6P190MB0312.EURP190.PROD.OUTLOOK.COM (10.165.140.31) by DB6P190MB0310.EURP190.PROD.OUTLOOK.COM (10.165.186.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.22; Wed, 19 Feb 2020 10:16:55 +0000
Received: from DB6P190MB0312.EURP190.PROD.OUTLOOK.COM ([fe80::2cda:e754:4835:c579]) by DB6P190MB0312.EURP190.PROD.OUTLOOK.COM ([fe80::2cda:e754:4835:c579%3]) with mapi id 15.20.2729.032; Wed, 19 Feb 2020 10:16:55 +0000
Received: from localhost (212.201.44.247) by AM0PR05CA0013.eurprd05.prod.outlook.com (2603:10a6:208:55::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.17 via Frontend Transport; Wed, 19 Feb 2020 10:16:55 +0000
From: =?iso-8859-1?Q?Sch=F6nw=E4lder=2C_J=FCrgen?= <J.Schoenwaelder@jacobs-university.de>
To: =?iso-8859-1?Q?Bal=E1zs_Lengyel?= <balazs.lengyel@ericsson.com>
CC: Kent Watsen <kent+ietf@watsen.net>, NETMOD Working Group <netmod@ietf.org>
Thread-Topic: [netmod] WG Last Call: draft-ietf-netmod-yang-instance-file-format-06
Thread-Index: AQHVxVfQ4dtefa62LU22UA5i1BqLNafztdMAgCK9LYCAAQnlgIAB3qeAgAk1LYA=
Date: Wed, 19 Feb 2020 10:16:55 +0000
Message-ID: <20200219101653.7e46vtzxuyaixr73@anna.jacobs.jacobs-university.de>
References: <0100016f8006222d-b861a109-93ee-4a77-8b65-54c22d591e25-000000@email.amazonses.com> <20200120144528.wt2z4y66xcnp7fxj@anna.jacobs.jacobs-university.de> <DB7PR07MB4011635119B75D384D11D01DF0180@DB7PR07MB4011.eurprd07.prod.outlook.com> <20200212090703.eikj365ctbsighey@anna.jacobs.jacobs-university.de> <DB7PR07MB4011A7798CBC8E40F49F8B88F01A0@DB7PR07MB4011.eurprd07.prod.outlook.com>
In-Reply-To: <DB7PR07MB4011A7798CBC8E40F49F8B88F01A0@DB7PR07MB4011.eurprd07.prod.outlook.com>
Reply-To: =?iso-8859-1?Q?Sch=F6nw=E4lder=2C_J=FCrgen?= <J.Schoenwaelder@jacobs-university.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: AM0PR05CA0013.eurprd05.prod.outlook.com (2603:10a6:208:55::26) To DB6P190MB0312.EURP190.PROD.OUTLOOK.COM (2603:10a6:6:34::31)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=J.Schoenwaelder@jacobs-university.de;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [212.201.44.247]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 365894e4-b5ce-4b3f-86f2-08d7b524d8b1
x-ms-traffictypediagnostic: DB6P190MB0310:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <DB6P190MB0310C86BC516CA4ACA259634DE100@DB6P190MB0310.EURP190.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:4502;
x-forefront-prvs: 0318501FAE
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39850400004)(346002)(396003)(136003)(366004)(376002)(189003)(199004)(6916009)(16526019)(5660300002)(186003)(71200400001)(4326008)(30864003)(86362001)(478600001)(6486002)(6496006)(786003)(316002)(53546011)(966005)(2906002)(52116002)(54906003)(81156014)(1076003)(66574012)(26005)(8676002)(956004)(64756008)(66446008)(66476007)(66556008)(8936002)(81166006)(66946007)(3450700001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6P190MB0310; H:DB6P190MB0312.EURP190.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: jacobs-university.de does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: UfrbWSUBtrge+dTsS6GRafT7sIfn/jv0rywfaC84Vs3VHmfzUWOt4IhPX/ITQ7uKVWPlwUBm2jH9Mhtc581m6yq/32/hI11mccpm/xbZnY7Y97LfYWIy50wq3O78VvSCKdb+Q7hvssccHUYY9a3780UHNHwKXWvoClCjeh1G4LNkk5Wcd6C6V9cLRlpJxxzWiNJkBMC/OU7GXYvhCWWJ/S2I3WE9yY+xBstgXavMjr+nIBXMDzKJ/Ih/1Nmnk5JurilWjvZKxnQdTE9R6x26ojkh/slq6ugerQxYLNowMl4zoHwSqvSeQcEUsOVtGjsqRR5mIA/QnfYc4nokOYrHMjTI1XdqppYicxLjC9hRXYF0oHb9zmgafkKXCYWiCOoL+sDPNM4Yw1DkJIX8L+Qwfdf2tkeuyxXIaQqAnog9zgPMaxXuH2oEt0+y6crfYswUws162TWJi1r7aWAdlhSJUhO59gQny+PmC+h7YtugLNg5Y7YdypnKQFqgk4BBFBV7agqIG2JN+joZjRPaJeZbRw==
x-ms-exchange-antispam-messagedata: HHf4YrthgvBLZ7zGxxmUEsNeR3dSj6zvaT+ub986VLwAc6TKThIzMGEsUqk0Leo3+l6oH5yOw783xvbZL5EWaOh1lqu8LkDYmiI2w8XpghfU46Hp9N533jI4PKMp6kUIWSfgfljFzXt6aoZnwfjToA==
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <0CBB60D0F6409D45B0D5E2D29209DEEF@EURP190.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: jacobs-university.de
X-MS-Exchange-CrossTenant-Network-Message-Id: 365894e4-b5ce-4b3f-86f2-08d7b524d8b1
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2020 10:16:55.7576 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GENAF8RAAaShHqyv7T+Hq4zEQnuxMqqk4OVgRyduuSZsZlo7RLAwrPjayF9W47iVdC24FrjRdHz6ON+xuNqobE8gSOM0vcT4jtjNM4CY98s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6P190MB0310
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/U2i05QfSrTVXpPrn2EaXzpfExKc>
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-yang-instance-file-format-06
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, 19 Feb 2020 10:17:02 -0000

On Thu, Feb 13, 2020 at 01:40:13PM +0000, Balázs Lengyel wrote:
> See below as BALAZS2.
> 
> -----Original Message-----
> From: Schönwälder, Jürgen <J.Schoenwaelder@jacobs-university.de> 
> Sent: 2020. február 12., szerda 10:07
> To: Balázs Lengyel <balazs.lengyel@ericsson.com>
> Cc: Kent Watsen <kent+ietf@watsen.net>et>; NETMOD Working Group
> <netmod@ietf.org>
> Subject: [Not Scanned] - Re: [netmod] WG Last Call:
> draft-ietf-netmod-yang-instance-file-format-06
> 
> >   - I fail to see the difference between 'content-schema' and 'content
> >     defining YANG module(s)'. The 'content-schema' is already a set of
> >     YANG modules. I suggest to remove 'Content defining YANG module(s)
> >     as it is not a necessary term. Rewrite all places where the phrase
> >     'content defining YANG modules' is used.
> > BALAZS: a schema is a full set of YANG modules needed to define the 
> > structure and properties of the instance data (+features, deviations).
> > A  "content defining YANG module" is an individual YANG module is part 
> > of the content-schema. So the difference is a set versus one item.
> > I updated the description to emphasize this difference.
> 
> OK. But then what is a non-content defining YANG module? Or are these
> schema-defining YANG modules? I still do not get why we need 'content
> defining YANG modules' - we did not need that in other specifications so far
> that define schemas. So why do we need new terms here?
> BALAZS2: In some paragraphs I reference individual YANG modules that are
> part of the content-schema. What would be a better term for the individual
> modules?
> 
> >   - Is it necessary to describe P2 in terms of (presumably) NETCONF
> >     operations? I would prefer to have the document written in a
> >     protocol agnostic style. Perhaps simply drop "similar to the
> >     response of a <get> operation/request".
> > BALAZS: This is a reference both to NETCONF and RESTCONF. It was 
> > explicitly asked for by other reviewers.
> 
> Well, then the correct wording would be "similar to the response of a
> NETCONF <get> operation or the RESTCONF response to a GET method invocation
> on the (unified) datastore resource". Sounds complex and I still prefer the
> text to be agnostic to specific operations - in particular since <get> and
> the unified datastore have their limitations. The format is simply reusing
> the already defined data model encoding formats, i.e., the format has
> nothing to do with the operations used to retrieve the data. So I suggest:
> 
>    P2  Instance data shall reuse existing encoding rules for
>        YANG defined data. 
> 
> There is no need to refer to specific protocol operations.
> BALAZS: I will use both of your texts. That is the most common question I
> get: Will this use the same format as a get-reply? People like to think in
> terms of a specific easy-to-grasp function instead of a non-descript set of
> "existing" rules. Existing means you need to understand X number of RFCs,
> while just looking up a get-reply is easy. It is not precise, but IMHO
> that's how people think.

If you write "reuse existing encoding rules", then actually fewer
documents need to be understood. And operations have additional issues
in how they interact with 'datastores', so they may even be misleading
and I rather have the standards precise (and minimal normative
dependencies).
 
> >   - I do not understand that text about the default attribute. Section
> >     4.8.9 defines a query parameter, not an attribute. And I do not
> >     know how that fits into content data.
> > BALAZS: https://tools.ietf.org/html/rfc8040#section-4.8.9:
> > " If the "with-defaults" parameter is set to "report-all-tagged", then
> >    the server MUST adhere to the default-reporting behavior defined in
> >    Section 3.4 of [RFC6243].  Metadata is reported by the server as
> >    specified in Section 5.3.  The XML encoding for the "default"
> >    attribute sent by the server for default nodes is defined in
> >    Section 6 of [RFC6243].  The JSON encoding for the "default"
> >    attribute MUST use the same values, as defined in [RFC6243], but
> >    encoded according to the rules in [RFC7952].  The module name
> >    "ietf-netconf-with-defaults" MUST be used for the "default"
> >    attribute. "
> > Here the usage of the default ATTRIBUTE is defined.
> 
> I am still confused about terminology here, an attribute is an XML way of
> representing meta data, JSON does this differently. Perhaps some good
> examples would clear the confusion.
> BALAZS2: The Restconf RFC uses the exact term " the default attribute". If
> it is acceptable there IMHO I should be able to reuse it here. It is not my
> terminology it's from RFC 8040. 
> 
> >   - Similarly, I do not understand why implementation specific
> >     metadata may be included in the content-data. This seems to be the
> >     wrong place, no? Should metadata not go into the header?
> > BALAZS: As this might be meta-data about the individual instance data 
> > nodes (e.g.  metadata following the principles from rfc7952) it 
> > belongs here.
> 
> OK, perhaps my confusion is that it was not clear to me what kind of
> metadata is meant here...
> BALAZS2:  OK., will try to update, clarify the text.
>  
> >   - Why MUST XML attributes be ignored, why is there no text about
> >     unknown JSON data, 'attributes' (or annotations)? What should
> >     implementations generally do about unknown elements, attributes,
> >     objects, arrays, ...)? Why are we specific about only one specific
> >     case?
> > BALAZS:  Generally we want to allow users/creators to decorate the 
> > data with additional information, that is not standardized. Like YANG 
> > extensions  these may be useful, but at least should not cause problems.
> > XML attributes are often used as meta-data and I was asked to list 
> > them specifically.
> > 
> I do not understand why there are specific rules for XML encodings but not
> equivalent JSON rules. It looks like either the XML rules are not needed or
> equivalent JSON rules are missing if the XML rules are needed or there
> should be an explanation why the different encodings lead to different
> results (which is operationally rather surprising).
> BALAZS2:XML has 2 distinct ways to encode information XML attributes and
> elements.  JSON only has one uniform way. XML attributes are often used to
> carry metadata which is a useful facility and they are not used to encode
> "real" YANG defined data. So we want to allow the use of XML attributes and
> not go for a least common denominator of the 2 encodings. IMHO it is a
> useful facility, IMHO it belongs here, but if you insist I can remove it.

I believe this text is odd for what I wrote below.
 
> If we want rules that apply to all encodings, they should be expressed in an
> encoding neutral way. The current text and your response leaves me puzzled
> what the specification really wants to say here. And do we have to say
> something at all?
> 
> >     It is unclear what "will be very similar" really means but perhaps
> >     this is clarified later. If not, this sentence says nothing in
> >     terms of a technical specification.
> 
> So what is the meaning of "will be very similar"?
> BALAZS: Similar means same structure, same data types, but there will also
> be differences, like the additional metadata and allowing partial data,
> ignoring of some constraints that are listed in the chapter. As this is not
> a precise term I will use it only in the introduction chapter (principles). 
> 
> >   - Why is EXTERNAL in all caps but Inline in capitalized form?  In
> >     the YANG definitions, EXTERNAL seems to be uri. I think we reduce
> >     ambiguity by being consistent with how we name things.
> > BALAZS: OK, EXTERNAL should not be all caps. 
> > Here external means that the content-schema is defined externally to 
> > the instance data set, not even a URI is included.
> 
> So if I have no case in the content-schema-spec choice, then it is external
> or how does this work? Perhaps define external differently?
> Another attempt:
> 
> External method: Do not include the content-schema, the user needs to obtain
> the information through external documents.
> 
> I removed "already known" since a tool and human producing an instance file
> will in general have no clue what a user of that instance file already
> knows.
> BALAZS: OK
>  
> >   - 3.1.1 How are the details specified in the anydata? Perhaps a
> >     forward reference might help. What are 'version labels'?
> > BALAZS: Added reference to example.
> > Version/Revision labels are defined in 
> > draft-verdt-netmod-yang-module-versioning;
> > added as a reference. I added them here (only as an example) as they 
> > are highly relevant to specifying module versions even if they are not 
> > agreed in Netmod yet. The name was changed from version-label to 
> > revision-label lately.
> 
> Lets use a single term then, lets say "revision labels" if that is the most
> recent once. Right now, both terms seem to be used.
> BALAZS: OK
> 
> >   - I like to understand why we need several methods to specify the
> >     schema. Having N solution is always bad for interoperability and
> >     also for maintainability. Perhaps the WG failed to reach consensus
> >     on a single solution.  Or there are strong technical reasons - but
> >     then they should be clearly stated. What are implementations
> >     expected to support, all methods? Or whatever the implementer
> >     prefers? How do we achieve interoperability across tools?
> > BALAZS: Different people in the WG wanted different solutions.
> > - Some (as I remember you too) asked for a full flexible solution 
> > which can use multiple modules potentially not even the 
> > ietf-yang-library to define the schema  (Inline solution)
> > - some asked for a simple solution listing the content schema modules
> > - some wanted just to use a reference (If any this is the one, I would
> > remove)
> > - some stated that they do not want to define the content-schema at 
> > all because it is already known So we ended up with 4 methods
> 
> But reaching consensus by doing all four is not necessarily cheap. So what
> are compliant tools required to implement. All 4 method?
> Whatever the implementer prefers? Or is there a mandatory to support method
> (other than external ;-)? The WG needs to understand the costs of having N
> ways to do the same thing.
> BALAZS: 2 methods are mandatory:  Simplified-Inline & URI. 
> Inline is controlled by a feature, so it is optional.  
> External is inherently optional, as whatever is outside this specification
> is undefined thus it may or may not be supported.

This means that as soon as I have deviations or I am not supporting
all features (this can be quite likely), there is no guaranteed to be
supported way to communicate schema information. Well, if that is what
the WG believes is what we want...
  
> >   - In the second paragraph, I like to see some discussion of snapshot
> >     consistency.  How much consistency can be expected? Are there
> >     indicators for the level of consistency? I would remove the
> >     sentence about "valid values can be retrieved at run-time" as this
> >     is obvious but then I am not sure why 'valid' values? Perhaps the
> >     authors meant 'current' values?
> > BALAZS: OK< Changed to current. I want to keep the second sentence as 
> > it describes the duality between the original documented values and  
> > the current values that can be read in run-time.
> > Consistency is out of scope. No indicators are provided. It is very 
> > much use-case and implementation specific.
> 
> In this case, I think it helps to spell out that users cannot assume that
> instance data always represents consistent snapshots.
> BALAZS2: I would like to avoid the topic. We never stated anything about the
> quality of data in the instance data set. 
> E.g. if this is a snapshot of state data and it takes time to create a
> snapshot, data might change even 
> during creating the snapshot. This is not described here or in Netconf or in
> Restconf. 
> Why should we describe this in more details than the protocols.

I think the phrase 'snapshot of information at a specific point of
time' makes the difference for me. I do not think that RFC 6241 or RFC
8040 promise to create a snapshot or a snapshot of information at a
specific point of time.
 
> >   - How do I implement the "SHOULD be described"? The default is that
> >     data can change, only in rare cases data is static. But how does a
> >     tool creating instance data know 'when and how' data changes in the
> >     future? I suggest to remove the SHOULD. The text saying that instance
> >     data is a snapshot is in my view sufficient.
> > BALAZS: We do not want to specify the how the changes should be 
> > described, But we do want to state that this information should be made
> available.
> > Just a few ideas how this could be done. Provide
> > - some plain text in the description of the instance data set
> > - some additional metadata e.g. etags, timestamp for the individual 
> > data nodes.
> > - a change indicator in the content defining yang module itself
> 
> I do not know how I implement such a SHOULD. I admit that I do not
> understand RFC 2119 language but a lowercase should would make me feel
> better.  The concern here is that it is entirely implementation specific how
> I make this information available and hence whether I have followed the
> SHOULD or not is rather unclear.
> BALAZS: OK, lowercase should
> 
> > * Delivery of Instance Data
> > 
> >   - Why do we need this SHOULD? I do not think we should use RFC 2119
> >     keywords to define how organizations may use the instance data
> >     format. My proposal is to delete this entire section.
> > BALAZS: I will change it to lower case may.
> > I was asked to and I want to state that we want to use instance data 
> > both for offline delivery of design time information and for run-time 
> > delivery of other data.
> 
> But should this not be stated in the use cases and principles list in
> section 2? I think section 5 is a mixture of a use-case concern and a
> requirement (oops principle):
> 
>   PX: Instance data sets may be read from or produced by a live server
>       [is YANG server the proper term?] or they can be the result of a
>       specification or design effort that does not involve a live
>       server.
> 
> I think the essence of section 5 should be integrated into section 2.
> What it says seems misplaced in the middle of the document. (I personally
> prefer to talk about objectives rather than principles but that may be just
> me.)
> BALAZS: OK, I will move it into chapter 2 Introduction. This is really not
> something mandatory on the implementation.

I still do not see why one use case gets a subsection while others are
elaborated on in the appendix. I am still not sure section 2.2 is
needed. I would rather add the proposed PX to the principles and dump
section 2.2.
  
> > (The first 3 users of this format all want to use this for early 
> > delivery of
> > 
> > server capabilities. It is for now the dominant use case for which the
> > 2119 SHOULD is important.). 
> 
> I do not think this specification should define SHOULDs for specific use
> cases. See my proposal for a possible PX to capture what I think is the core
> idea.
> BALAZS2: OK, SHOULD change to lower case may.
 
> > * Backwards Compatibility
> > 
> >   - I do not think 'managed entity' is a YANG term.
> > BALAZS: What term do you propose for something that is managed like an 
> > interface or user etc. ? I was told managed entity is a generic term 
> > that is commonly understood . Would "managed item" or "managed thing" 
> > be better?
> > 
> >   - I think this text is use case specific and the items are kind of
> >     conflicting with each other (2nd says changing the semantics of a
> >     list should lead to a change of the key while the 1st suggests
> >     that changing keys may lead to misinterpretation of something
> >     being new).
> > 
> >   - My proposal is to simply drop this entire section. If use case
> >     specific text is needed, add it to the use cases in the appendix.
> > BALAZS: You don't know how many trouble reports we got in multiple 
> > use-cases for violating these recommendations. While they may not be 
> > important for all use-cases, the are important for many.
> > Actually we met the problem or had to avoid it in all but one of the 
> > listed use-cases.
> 
> This text seems specific to certain use cases or best practices and as such
> I suggest to integrate it into the appendix C. I do not think this advice
> needs to be part of the technical instance data format specification. One
> could even argue that some of this also concerns config changes to live
> servers. My issue is that I find this discussion misplaced - I like to to
> see the format definition separated from any guidelines how to use it.
> BALAZS2: I still see this as important as proved by real life situations and
> also as a n explicit request from the Yang versioning requirements  draft.
> The text is specific to some use cases:  In practice relevant to 90% of the
> use cases.

I understand that you care about this specific use case a lot and it
might be 90% in your estimation but this does not change my point that
the text seems guidelines text that I prefer to see separated from the
technical instance format specification and hence moved into the
matching appendix.
  
> > * YANG Model
> > 
> >   - How is the inline-content-schema feature used? Which component
> >     does indicate that inline content-schema is supported? Do all
> >     implementations have to support simplified-inline? If
> >     inline-schema is used, how do I find out which schema formats are
> >     supported? The more formats there are, the more interoperability
> >     issues will arise.
> > Balazs:
> > - case inline { is decorated with "if-feature inline-content-schema"
> 
> OK
> 
> > - feature support is generally indicated as part of the 
> > ietf-yang-library
> 
> OK
> 
> > - simplified-inline is mandatory to support. It is relatively simple, 
> > so IMHO not a problem
> 
> How do I know whether the feature inline-content-schema is supported in this
> case?
> BALAZS2: IMHO your question is out of scope for this draft. 
> Just like for any feature you can read it on-line from ietf-yang-library. If
> the information is needed offline it can be documented in any design time
> document. My proposal is to use an instance data file based on
> ietf-yang-library using the simplified-inline schema declaration method.
> 
> How much simplification is there really compared to the inline method if I
> only list modules in the yang library schema without derivations etc? See my
> earlier point about which schema formats are mandatory to implement and
> whether the simplification is worth the extra code and possible
> interoperability issues.
> BALAZS2:
> Compare:
> INLINE method:
>   <content-schema>
>     <inline-module>
>       ietf-yang-library@2016-06-21
>     </inline-module>
>     <inline-schema>
>       <module-state
>         xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library">
>         <module>
>           <name>ietf-yang-library</name>
>           <revision>2016-06-21</revision>
>         </module>
>         <module>
>           <name>ietf-netconf-monitoring</name>
>           <revision>2010-10-04</revision>
>         </module>
>       </module-state>
>     </inline-schema>
>   <content-schema>
> 
> SIMPLIFIED INLINE method:
>   <content-schema>
>     <module> ietf-yang-library@2020-01-14</module>
>     <module> ietf-netconf-monitoring@2020-01-14</module>
>   </content-schema>

The begining is static overhead (does not increase with # of modules)
and the rest marginal when it comes to tools reading this, at least
not a big enough argument for me to invent another format. And once
you have a deviation or a feature not implemented, you will need the
longer format anyway (or simply announce a schema that is not quite
correct - I guess this is what people will do).
 
> > - what do you mean with schema-formats? The yang schema is not 
> > actually included anywhere.
> > If the "inline" case is used, instance data corresponding to the 
> > inline-modules is included, not the schema.
> > anydata inline-schema {
> >              description
> >                "Instance data corresponding to the YANG modules
> >                 specified in the inline-module nodes defining the set
> >                 of content defining YANG modules for this
> >                 instance-data-set."
> 
> My understanding is that the inline-module indicates a variant of the yang
> library used and the inline-schema then follows that indicated yang library
> variant and provides the schema. Am I entirely wrong here?
> BALAZS2: You are correct. Some extras:
> Inline-module could indicate some other module instead of the yang-library.
> I was asked to do this earlier by Rob Wilton. 
> There can be multiple inline-modules so we can use yang-lib with extensions
> like  a module adding revision-labels

Yes, I agree, this makes things even more open ended. My expectations
for finding accurate interoperable schema information in instance
formats likely needs to be low.
  
> >   - It may be useful to explain that data in instance data sets may
> >     have been filtered by access control rules like NACM and that data
> >     in instance data sets itself won't be filtered anymore by access
> >     control rules like NACM. In other words, if I take snapshots and
> >     stored them as instance data files, these snapshots may leak
> >     information that is otherwise protected. Hence it is important
> >     that NACM rules and file access control rules are consistent.
> > BALAZS: We do not know if the instance data set was originally 
> > filtered by NACM or not. We don't know if the users on 
> > Netconf/Restconf/cli are the same as the users defined in the file 
> > system., so I fear defining what consistent means would be impossible.
> > It is stated that " The same kind of handling should be applied, that
> would
> >    be needed for the result of a <get> operation returning the same
> >    data." IMHO we can't really say more.
> 
> Yes, I guess what I was trying to say is that a live server may apply
> certain access control rules while instance files may not apply the same
> rules. In other words, an instance file obtained from a live server by joe
> and passed on to lucy may reveal information that lucy will not be allowed
> to see on the live server. By passing around instance files, information may
> accidentally leak. Yes, we can't solve this, put we can point this out.
> 
> BALAZS2: I agree fully, but file security is a really big topic, so
> highlighting some areas will not help people. I  added:
> Care should be taken, when copying the original files or providing 
>         file access for additional users, not to reveal information
> unintentionally. 
> 

/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/>