Re: [pim] [yang-doctors] Yangdoctors last call review of draft-ietf-pim-yang-12

Mahesh Jethanandani <mjethanandani@gmail.com> Tue, 02 January 2018 21:22 UTC

Return-Path: <mjethanandani@gmail.com>
X-Original-To: pim@ietfa.amsl.com
Delivered-To: pim@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 90C3D126CBF; Tue, 2 Jan 2018 13:22:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 7dUh44ZuLm4x; Tue, 2 Jan 2018 13:22:27 -0800 (PST)
Received: from mail-pl0-x22d.google.com (mail-pl0-x22d.google.com [IPv6:2607:f8b0:400e:c01::22d]) (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 EC71F120726; Tue, 2 Jan 2018 13:22:26 -0800 (PST)
Received: by mail-pl0-x22d.google.com with SMTP id z5so29400290plo.10; Tue, 02 Jan 2018 13:22:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lM9ug6zjY6X9PZKvHi9M9c0Fnr+93/sThqgITeSIiRQ=; b=ZqHxFVFnp8Ficqqz45DR80XhK8goLSxcrQmS0WX496nlTAJEet9CmDZ0RxGwe0jYFs 73VZNt0AQASJ+HGEPB/jZJ9yohvyi6qL2YsEY7tVGu7SOgIluFCI6UCd5/jcvK9reI4E 8uX70PqmDEZ90NwhUc4CwUGtwkVPY5FV07yjEeJ21AKzaQLLx6Anavb/X4Ys8jkVPIuL AIw35ZNUCPBKtbQUjaXUQ8C8nUIrh3xjYLa3hp/YAuHqgYZPvOw8AqusB4hfPTenyzah 5RufnkEQbSq7OyciSEQKhzG6thoLeiQ7UyvHZ826u2TuAX/7IXDk65wmAuocakJb5TVl BF2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lM9ug6zjY6X9PZKvHi9M9c0Fnr+93/sThqgITeSIiRQ=; b=Okiyq7LFo7ReHJ+JBVRROU4A0xP4xvm5Z9iVxRsuZdKjbeZFTKdkckkFG2V3iV00f8 vjRTxcmooiTq1cqdPPGnf62KFghUpUfCmZ8DFCYvEIuDEd2loQADebbsO/BZgQ8gbtIz hOmNGQz0e/qZ5pdsAFTbbpJEfBCccKsgfQ3p7Wy7qhTtwDw0BInlx3PRQ/sLwatGZ/E2 GoEHU7dZy3Ggc2YHV/+5pMt2/4xYkdfYe+infMqVOt0ajjVf2pOZueZkQBkUL3eprj7m v8rycQ8bCHGbpGfdEU3A1ADIykttE9xG//oB/ZLhCcclTayBNc1e0uJIuzbFEjU9cvk3 Sr0Q==
X-Gm-Message-State: AKGB3mIl7H0gd4LD6ufzLjjIkaxFxg5KUKj7i5ikY/4nXZ9kdf8mYKrY WOvNeVNK0mvZCNvjHq4pqSCvhJic
X-Google-Smtp-Source: ACJfBot/7ltCCkddybyh6AmCuhbh4oP+eSW2kgFQVSdz5W80T2xZzx9GAjbKHBOeTe8/hbEl5grPdA==
X-Received: by 10.84.163.75 with SMTP id n11mr47501987plg.426.1514928146114; Tue, 02 Jan 2018 13:22:26 -0800 (PST)
Received: from mahesh-m-m8d1.attlocal.net ([2600:1700:edb0:8fd0:e1b4:8993:26c5:eb47]) by smtp.gmail.com with ESMTPSA id v15sm97575893pfa.68.2018.01.02.13.22.24 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 02 Jan 2018 13:22:25 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Mahesh Jethanandani <mjethanandani@gmail.com>
In-Reply-To: <151380493227.2629.15496937140050941194@ietfa.amsl.com>
Date: Tue, 02 Jan 2018 13:22:24 -0800
Cc: YANG Doctors <yang-doctors@ietf.org>, draft-ietf-pim-yang.all@ietf.org, ietf@ietf.org, pim@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <385138EB-6551-4209-B58B-118405B6C09A@gmail.com>
References: <151380493227.2629.15496937140050941194@ietfa.amsl.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/ue30rJyGK88rhC1xhUJ6mRT7g-Q>
Subject: Re: [pim] [yang-doctors] Yangdoctors last call review of draft-ietf-pim-yang-12
X-BeenThere: pim@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Protocol Independent Multicast <pim.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pim>, <mailto:pim-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pim/>
List-Post: <mailto:pim@ietf.org>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pim>, <mailto:pim-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jan 2018 21:22:29 -0000

Few other observations.

Is the YANG model description statement not supposed to carry the IETF copyright statement?

There is already a enum definition for BFD state called “state” in the BFD types file imported by the module. Why is that not being used in this model?

> On Dec 20, 2017, at 1:22 PM, Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de> wrote:
> 
> Reviewer: Jürgen Schönwälder
> Review result: Almost Ready
> 
> * General YANG Review Remarks
> 
>  This document depends on a number of other I-Ds. Is it safe to
>  process this document while the other documents this document
>  depends on are not yet through the process? Who is tracking things
>  and making sure that any changes in other documents that may impact
>  the PIM document are detected and handled appropriately before
>  publication?
> 
>  It is generally good style to write complete sentences in
>  description statements. Some of the description statements are just
>  fractions of a sentence.
> 
>  I think we do not recommend anymore to list WG chairs in the contact
>  statement.
> 
>  It is sometimes not clear why you define groupings that are only
>  used once (and sometimes are likely not reusable since they contain
>  relative paths in must expressions).
> 
> * Introduction
> 
>  - Is there a reason why you refer to RFC 6020 and to RFC 7950 in
>    sections 1 and 1.2? Why do you need the reference to RFC 6020?
> 
>  - What are 'wider' management interfaces? If you mention NETCONF,
>    why not mention RESTCONF?
> 
>  - s/Protocol-Independent Multicast (PIM) devices
>     /devices supporting Protocol-Independent Multicast (PIM)/
> 
>  - So which YANG terminology applies, RFC 6020 or RFC 7950? I
>    personally think using YANG 1.1 is pretty safe these days.
> 
> * Design of Data Model
> 
>  - I did not really understand Section 2.5. It seems you are
>    duplicating objects for different address families but on some
>    systems these duplicate objects must have the same value. If so,
>    where would the must expression go and how does an implementation
>    add such a must expression? How many of such must expressions
>    would there have to be? Did you consider having address family
>    independent objects and optionally (controlled by a feature) per
>    address family objects that overwrite the independent settings?
> 
> * Module Structure
> 
>  - s/is included/is imported/
> 
>  - The tree diagrams are rather long. It would likely help readers if
>    the diagram would be split into meaningful units and additional
>    text added to describe the units.
> 
>    Are lists of the form
> 
>          |  +--rw ipv4-rp* [ipv4-address]
>          |  |  +--rw ipv4-address    inet:ipv4-address
> 
>    designed for exensibility? Otherwise, this may be collapsed into
>    a simple leaf-list.
> 
>  - Since I am not familiar with details of PIM, I can't comment on
>    the question whether the model makes sense or not.
> 
> * PIM base Module
> 
>  - YANG modules compile cleanly according to the tracker page.
> 
>  - As said above, consider using YANG 1.1. The ietf-routing module
>    actually uses YANG 1.1 so you will need a YANG 1.1 compiler
>    anyway.
> 
>  - Consider adding reference statements to the feature definitions
>    in case a feature is described in a protocol specification.
> 
>  - The value of timer-value is not really clear, you could have used
>    rt-types:timer-value-seconds16 directly.
> 
>  - Why is graceful-restart/duration using an ad-hoc type for 16-bit
>    seconds and not timer-value? Is it because infinity and not-set
>    does not apply?
> 
>  - Does a bfd/hello-interval of 'infinity' or 'not-set' make sense?
> 
>  - More explicit description of bfd/hello-holdtime? Is a choice
>    really appropriate (hello-holdtime-or-multiplier)? Can I not have
>    both holdtime and multiplier? Perhaps I am just not clear what
>    holdtime does...
> 
>  - Does a bfd/jp-interval of 'infinity' or 'not-set' make sense?
> 
>  - More explicit description of bfd/jp-holdtime? Is a choice really
>    appropriate (jp-holdtime-or-multiplier)? Can I not have both
>    holdtime and multiplier? Perhaps I am just not clear what holdtime
>    does...
> 
>  - Please provide more meaningful descriptions:
> 
>         description "Propagation description";
>         description "Override interval";
> 
>  - What is the meaning of the interface augmentation 'oper-status'
>    relative to 'oper-status' defined by ietf-interfaces? Is this just
>    a duplicate with fewer states? Or is this somehow more specific to
>    multicast or PIM packets? In the later case, I think this deserves
>    to the be explained in the description clause.
> 
>  - How do the ip4 and ipv6 addresses relate to ip addresses assigned
>    to an interface in ietf-ip?
> 
>  - What is the meaning of hello-expiration 'not-set'?
> 
>  - What is the meaning of expiration 'not-set'?
> 
>  - Is it useful to return the uptime in seconds (which is changing on
>    every get that is not in the same second) or could it be an option
>    to report the time when something transitioned into the up state
>    (which is not changing)? Well, it could be that we are simply used
>    to uptime like objects. Anyway, the description of up-time should
>    make it clear what exactly is defining the state 'up'. If this
>    says up for 5 seconds, what exactly transitioned into an 'up'
>    state 5 seconds ago?
> 
>  - Is the any restriction for dr-priority or is it a full 32-bit
>    unsigned number space? In some vendor documentation I saw 0..65535
>    with a default of 1. What do RFCs say?
> 
>  - I am not sure what the precise meaning of the error statistic
>    counters are. What turns an received or sent messages into an
>    error message? The description of grouping statistics-error does
>    not explain this. Also, if I receive a hello and I later decide
>    that this hello must have been an error, is this hello counted
>    twice? And what about messages that could not be parsed because
>    they were malformed, where are those counted?
> 
>  - Why is 'pim' a presence container?
> 
>  - Do comments like 'configuration data nodes' make sense if you
>    include config false nodes in the same branch of the tree?
> 
> * PIM RP Module
> 
>  - Does the feature bsr-election-state depend on the feature bsr?
> 
>  - Should there be a default bsr-candidate/priority?
> 
>  - Do you need the address/hash-mask-length/priority in
>    bsr-state-attributes in an NMDA implementation?
> 
>  - I _assume_ the bsr-next-bootstrap value has to be interpreted
>    relative to the time the value was obtained. What about making
>    this an absolute timestamp instead? Well, actually I am not sure
>    what the value represents - is it the remaining time interval
>    until the next bootstrap will be sent?
> 
>  - I have no clue what to expect here:
> 
>         leaf group-policy {
>           type string;
>           description "Group policy.";
>         }
> 
>     What can I expect the string to contain?
> 
>   - I am again uncertain how exactly to understand the value of
>     rp-candidate-next-advertisement, see similar questions above.
> 
>   - What are the policy values that can go into this:
> 
>       leaf policy-name {
>         type string;
>         description
>           "Static RP policy.";
>       }
> 
>     Is the string just an arbitrary name or does it mean something?
> 
>   - How is this supposed to be used?
> 
>       leaf policy {
>         type string;
>         description
>           "ACL (Access Control List) policy used to filter group
>            addresses.";
>       }
> 
>     What is the meaning of <policy>foo</policy>?
> 
> * PIM SM Module
> 
>  - What is the meaning of a policy-name value?
> 
>               leaf policy-name {
>                 if-feature spt-switch-policy;
>                 type string;
>                 description
>                   "Switch policy.";
>               }
> 
>  - What is the meaning of a range-policy value?
> 
>           leaf range-policy {
>             type string;
>             description
>               "Policy used to define SSM address range.";
>           }
> 
> * PIM DM Module
> 
>  - I wonder, would you need an identity for dense mode?
> 
> * PIM BIDIR Module
> 
>  - Remove
> 
>     /*
>      * Typedefs
>      */
> 
>  - What is the meaning of offer-interval or backoff-interval
>    'not-set'?
> 
> * Implementation Status
> 
>  It seems the trac page pointed to was used to collect information
>  about what proprietary implementation support, i.e., it does not
>  document to what extend the models defined in this document have
>  been implemented. There are some notable differences. For example,
>  it seems most counters implemented are 32-bit while most counters in
>  the YANG models are 64-bit. How chatty is PIM, are 64-bit counters
>  really needed and are implementors willing to move to 64-bit
>  counters?
> 
> * Security Considerations
> 
>  I think this needs to include a bit more details. See
> 
>  https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines
> 
>  for the latest template that YANG module authors are expected to
>  use.
> 
> 
> _______________________________________________
> yang-doctors mailing list
> yang-doctors@ietf.org
> https://www.ietf.org/mailman/listinfo/yang-doctors

Mahesh Jethanandani
mjethanandani@gmail.com