Re: Gen-Art LC review: draft-ietf-netmod-yang-metadata-04

Ladislav Lhotka <lhotka@nic.cz> Fri, 11 March 2016 09:32 UTC

Return-Path: <lhotka@nic.cz>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 52DBB12D5D6; Fri, 11 Mar 2016 01:32:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.001
X-Spam-Level:
X-Spam-Status: No, score=-7.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 KStG_X0HoBrZ; Fri, 11 Mar 2016 01:32:12 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1DA7712D5DF; Fri, 11 Mar 2016 01:32:09 -0800 (PST)
Received: from birdie.labs.nic.cz (unknown [195.113.220.110]) by mail.nic.cz (Postfix) with ESMTPSA id 19A4D180AFC; Fri, 11 Mar 2016 10:32:07 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1457688727; bh=fg1Fc15BAdCchSyMkb+m5xLmNtZ8Lu9Q6AtduvYLD0o=; h=From:Date:To; b=R/GHkOQ7sYOeVS+wQaIi6xLKjwgBZzj3sjDO8iRrj04E79QyY2MnLq+Cs9KOHiYx+ +QUNbnBYrj7Bf0lliaYt3GAAE4MWFMYx5knJLwXGP9hHhiHQ84GG3dJ4Woo4E3pJ0C ZUF0uO1Dgxmm4NopIIRWJZOfPwBxYxVbfzI63YNY=
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
Subject: Re: Gen-Art LC review: draft-ietf-netmod-yang-metadata-04
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <56E209E3.4030805@nostrum.com>
Date: Fri, 11 Mar 2016 10:32:10 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <415C6558-F5D2-4575-B380-C082171DFA21@nic.cz>
References: <56D60EF5.7020001@nostrum.com> <m27fhbvb07.fsf@birdie.labs.nic.cz> <56E209E3.4030805@nostrum.com>
To: Robert Sparks <rjsparks@nostrum.com>
X-Mailer: Apple Mail (2.3112)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/ietf/fMTsJO2h3Ra8cQFay_pf6h1zoFw>
Cc: General Area Review Team <gen-art@ietf.org>, "ietf@ietf.org" <ietf@ietf.org>, netmod@ietf.org, draft-ietf-netmod-yang-metadata.all@ietf.org
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Mar 2016 09:32:14 -0000

> On 11 Mar 2016, at 00:57, Robert Sparks <rjsparks@nostrum.com> wrote:
> 
> 
> 
> On 3/9/16 11:04 AM, Ladislav Lhotka wrote:
>> Hi Robert,
>> 
>> thanks for the review, I apologize for replying late, please see my responses inline:
>> 
>> Robert Sparks <rjsparks@nostrum.com> writes:
>> 
>>> I am the assigned Gen-ART reviewer for this draft. The General Area
>>> Review Team (Gen-ART) reviews all IETF documents being processed
>>> by the IESG for the IETF Chair.  Please treat these comments just
>>> like any other last call comments.
>>> 
>>> For more information, please see the FAQ at
>>> 
>>> <http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.
>>> 
>>> Document: draft-ietf-netmod-yang-metadata-04
>>> Reviewer: Robert Sparks
>>> Review Date: 1Mar2016
>>> IETF LC End Date: 9Mar2016
>>> IESG Telechat date: not yet scheduled
>>> 
>>> Summary: Ready with nits
>>> 
>>> 1) I might be missing something obvious, but the introduction has two
>>> statements that don't seem aligned:
>>> 
>>> " Values of annotations are not limited to strings; any YANG built-in or
>>> derived type may be used for them"
>>> and
>>> "annotations are scalar values and cannot be further structured".
>> These two statements are not in conflict: YANG data types (built-in or
>> derived) apply to scalar values.
> I don't know what it means for a data type to apply to a value. Can you say that more simply?

Every leaf node definition must define the leaf's type - built-in or derived. Annotations can use exactly the same types. YANG types are analogical to what "datatype" means in W3C XML Schema or RELAX NG - it represents constraints for a *scalar* value (or text in XML terms). I think you are confusing categories of YANG data nodes (leaf, container, list, leaf-list, anyxml, anydata) with types (string, boolean, int8, etc.).

> 
> I think this is just a language thing, and being precise in the text will get past it.

The Terminology section now refers to definitions of "built-in type" and "derived type" in draft-ietf-netmod-rfc6020bis, and the latter document is a normative reference. So understanding these terms is a prerequisite for the present document. In my view, the formulations are quite precise, but I am open to suggestions for improvements.

> 
> Are you saying all YANG data types (built-in or derived) have only scalar values?

No, data types represent constraints on scalar values.

> 
> If so, you could change the second point in the document to say
> "Since annotations have only built-in or derived types, they can only have scalar values."
> 
> But then, placing the point under "This document deliberately adopts some restrictions" doesn't make sense, and I suggest restructuring the discussion to only call out the restrictions (which appears to be to not place annotations on lists or leaf-lists) below that sentence.

The logic is this: it would be trivial to extend the mechanism of this document to allow for annotations being arbitrarily complex data trees with containers, lists, etc. It is also not difficult to imagine use cases where it would come handy. However, the WG consensus was that at his time we don't want to give up the convenience of XML attributes in the XML encoding, and that's why we adopted extra restrictions that mirror the restrictions of XML attributes. I believe the text in the Introduction captures this quite well:

   In the XML encoding, XML attributes are a natural instrument for
   attaching annotations to data node instances.  This document
   deliberately adopts some restrictions in order to remain compatible
   with the XML encoding of YANG data node instances and limitations of
   XML attributes.  Specifically,

   o  annotations are scalar values and cannot be further structured;

   o  annotations cannot be attached to a whole list or leaf-list
      instance, only to individual list or leaf-list entries.

If it turns out that structured annotations are needed, another document (or an update to this one) can introduce them, including appropriate XML encoding rules.

Thanks, Lada

> 
> 
>> 
>>> If I'm not missing something, that may be more of an open issue than a nit.
>>> 
>>> 2) The shepherd writeup calls out the tension in figuring out whether to
>>> make this an extension or a new built-in statement. Please consider
>>> capturing the reasoning for the path you chose in the draft itself.
>> I will try, the main reason was that most people felt that introducing a
>> new built-in statement is too big a change for the upcoming maintenance
>> version of YANG (1.1) and YANG 2.0 is nowhere in sight.
>> 
>> Thanks, Lada

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C