Re: [netmod] WGLC - draft-ietf-netmod-yang-tree-diagrams

Vladimir Vassilev <vladimir@transpacket.com> Tue, 16 January 2018 15:09 UTC

Return-Path: <vladimir@transpacket.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 79D1712D7FB for <netmod@ietfa.amsl.com>; Tue, 16 Jan 2018 07:09:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 Q2BN_7Lukc5D for <netmod@ietfa.amsl.com>; Tue, 16 Jan 2018 07:08:58 -0800 (PST)
Received: from mail.transpacket.com (s91205186171.blix.com [91.205.186.171]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B17D12D859 for <netmod@ietf.org>; Tue, 16 Jan 2018 07:08:53 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 6FA1B146215E; Tue, 16 Jan 2018 16:08:51 +0100 (CET)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id bnPoeHWZlEBU; Tue, 16 Jan 2018 16:08:51 +0100 (CET)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 47B431462160; Tue, 16 Jan 2018 16:08:51 +0100 (CET)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id s7uxIj8LKE6s; Tue, 16 Jan 2018 16:08:51 +0100 (CET)
Received: from [192.168.209.122] (s1853520235.blix.com [185.35.202.35]) by mail.transpacket.com (Postfix) with ESMTPSA id 1E5BD146215E; Tue, 16 Jan 2018 16:08:51 +0100 (CET)
To: Martin Bjorklund <mbj@tail-f.com>
Cc: netmod@ietf.org
References: <2cde8b64-0455-a513-4719-feb61c87a952@bogus.com> <aa7a1449-fd6e-e4c6-7568-41061c09d9f2@transpacket.com> <20180116.115606.561861432247288407.mbj@tail-f.com>
From: Vladimir Vassilev <vladimir@transpacket.com>
Message-ID: <e94d1ed3-e859-3167-501f-ce23e77804df@transpacket.com>
Date: Tue, 16 Jan 2018 16:08:50 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <20180116.115606.561861432247288407.mbj@tail-f.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/OKAu_ZT0lzfa4ymFZHxS6PxoBxw>
Subject: Re: [netmod] WGLC - draft-ietf-netmod-yang-tree-diagrams
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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, 16 Jan 2018 15:09:02 -0000

On 01/16/2018 11:56 AM, Martin Bjorklund wrote:

> Vladimir Vassilev <vladimir@transpacket.com> wrote:
>> Hi,
>>
>> I have reviewed and implemented (apart from schema mount specific
>> functionality) draft-ietfetf-netmod-yang-tree-diagrams-04 and found
>> the following issues:
>>
>> ==sec 2.6.  Node Representation==
>>
>> 1. To correctly reflect the current pyang output one needs to add '--'
>> between <status> and <flags>.
>> OLD:
>>      <status> <flags> <name> <opts> <type> <if-features>
>> NEW:
>>      <status>--<flags> <name> <opts> <type> <if-features>
> Ok.
>
>> There is also undocumented alignment space count function before
>> <type> that pyang uses to align the <type> fields of child data leafs
>> with common ancestor. If this is specified in the draft the tree
>> output can be deterministic and for me this is an advantage. This is
>> currently one of the few underspecified pieces of the tree format so I
>> had to check pyang implementation in oder to generate same alignment
>> space counts and binary identical tree output results.
> I think that we at least should write that there may be more than one
> space between <opts> and <type>:
>
>    There may be any number of additional space characters between
>    <opts> and <type>.
For the sake of the argument (at least having this on the mailing list 
as reference):

   <type> should be aligned at a common offset for all sibling nodes
   from the start of <name> by adding trailing spaces. The recommended
   offset is 3 plus the length of the longest node name among all 
sibling nodes
   including those siblings defined under choice and case nodes.

This is what pyang does now. It is not a perfect solution but it allows 
identical output down to the bit.

>
> I also just realized that we need to add text to the line wrapping
> section about line breaks between <type> and <if-feature>:
>
> OLD:
>
>     Internet Drafts and RFCs limit the number of characters that may in a
>     line of text to 72 characters.  When the tree representation of a
>     node results in line being longer than this limit the line should be
>     broken between <opts> and <type>.  The type should be indented so
>     that the new line starts below <name> with a white space offset of at
>     least two characters.
>
> NEW:
>
>     Internet Drafts and RFCs limit the number of characters in a line
>     of text to 72 characters.  When the tree representation of a node
>     results in line being longer than this limit the line should be
>     broken between <opts> and <type>, or between <type> and
>     <if-feature>.  The new line should be indented so that it starts
>     below <name> with a white space offset of at least two characters.
>
>
>> 2. It is unclear which <flags> option should be used for rpc and
>> action input/output and child nodes and the notification child
>> nodes. pyang uses '-w' for input and input/* and 'ro' for output and
>> output/*:
>>
>>      module: ietf-netconf-partial-lock
>>        rpcs:
>>          +---x partial-lock
>>          |  +---w input
>>          |  |  +---w select*   string
>>      ...
> I'll do:
>
> OLD:
>
>         <flags> is one of:
>           rw  for configuration data
>           ro  for non-configuration data
>           -u  for uses of a grouping
>           -x  for rpcs and actions
>           -n  for notifications
>           mp  for nodes containing a "mount-point" extension statment
>
> NEW:
>
>         <flags> is one of:
>           rw  for configuration data
>           ro  for non-configuration data, output parameters to rpcs
>               and actions, and notification parameters
>           -w  for input parameters to rpcs and actions
>           -u  for uses of a grouping
>           -x  for rpcs and actions
>           -n  for notifications
>           mp  for nodes containing a "mount-point" extension statment
OK
>
>> pyang also uses '--' as <flags> for augmentation data nodes for
>> actions input.
> I think that this is a bug in pyang, which I have now fixed.
OK
>
>>      ...
>>        augment
>> /rt:routing-state/rt:ribs/rt:rib/rt:active-route/rt:input:
>>          +---- destination-address?   inet:ipv4-address
>>      ...
>>
>>
>> 3. pyang is prefixing choice node names with the parent <flags>
>> e.g. +--ro (next-hop-options) while case nodes are not prefixed. I
>> guess this is a bug in pyang since it is not specified in the draft
>> but choice nodes prefixed with parent <flags> are  also present in the
>> sec 4 and 4.1 examples?
> [ignoring based on latest email from Vladimir]
>
>> 4. This bit I found confusing. I propose this change to unambiguously
>> describe the current pyang format.
>>
>> OLD:
>>           *  for a leaf-list or list
>>           [<keys>] for a list's keys
>> NEW:
>>           *  for a leaf-list or list without keys
>>           * [<keys>] for a list with keys
> Hmm, wouldn't it be better to use [] for a list w/o keys?
Yes I also agree this improves readability at the cost of slight 
redundancy increase and modification to format of diagrams already used 
in RFCs. Your call.

Vladimir
>
>
> /martin
>
>
>
>> Vladimir
>>
>> On 01/01/2018 11:01 PM, joel jaeggli wrote:
>>> Greetings,
>>>
>>> We hope  the new year is a time to make great progess on outstanding
>>> documents before preparation for the  London IETF begins in earnest.
>>>
>>> This starts a two-week working group last call on:
>>>
>>>    YANG Tree Diagrams
>>> draft-ietf-netmod-yang-tree-diagrams
>>>
>>> https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-tree-diagrams/
>>>
>>> Please send email to the list indicating your support or concerns.
>>>
>>> We are particularly interested in statements of the form:
>>>
>>>     * I have reviewed this draft and found no issues.
>>>     * I have reviewed this draft and found the following issues: ...
>>>
>>>
>>> Thank you,
>>> NETMOD WG Chairs
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod