[Softwires] Yangdoctors last call review of draft-ietf-softwire-yang-06

Martin Björklund <mbj@tail-f.com> Mon, 15 October 2018 08:59 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: softwires@ietf.org
Delivered-To: softwires@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 34B25130DF3; Mon, 15 Oct 2018 01:59:59 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Martin Björklund <mbj@tail-f.com>
To: yang-doctors@ietf.org
Cc: softwires@ietf.org, draft-ietf-softwire-yang.all@ietf.org, ietf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.86.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <153959399912.4621.9236297320162816916@ietfa.amsl.com>
Date: Mon, 15 Oct 2018 01:59:59 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/softwires/_c2qlujDhWbPQpMLUpqZ8wsbUF0>
Subject: [Softwires] Yangdoctors last call review of draft-ietf-softwire-yang-06
X-BeenThere: softwires@ietf.org
X-Mailman-Version: 2.1.29
List-Id: softwires wg discussion list <softwires.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/softwires>, <mailto:softwires-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/softwires/>
List-Post: <mailto:softwires@ietf.org>
List-Help: <mailto:softwires-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/softwires>, <mailto:softwires-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 15 Oct 2018 08:59:59 -0000

Reviewer: Martin Björklund
Review result: Ready with Issues

This is my YANG doctor review of draft-ietf-softwire-yang-06.  The
review focuses on YANG-specifics only, since I am not familiar with
the technology that is modelled.

o  I would like to see all Tom Petch's comments in his three replies
   to the IETF LC for this document addressed.  Especially his comment
   about using ianatf:tunnel.


o  All three YANG modules should follow the common template for IETF
   YANG modules found in
   https://tools.ietf.org/html/draft-ietf-netmod-rfc6087bis.

   Specifically, fix the authors list and copyright text.


o  The term "instance" is used to mean - I think - the "device".  I
   didn't find this term in the RFCs 7596, 7597 or 7599.  I suggest
   you use some other term, since "instance" is quite generic, and is
   often used to refer to instances of YANG data nodes.

   Also, does the term "instance" mean the same thing in
   "algo-instance"?  And in "br-instances"?  "bind-instance"?



o  In ietf-softwire-common:

  grouping algorithm-instance {
    description
      "Indicates that the instance supports the MAP-E and MAP-T
      function. The instance advertises the MAP-E/MAP-T feature
      through the capability exchange mechanism when a NETCONF
      session is established.";

  This description does not seem right.  A grouping can't indicate
  anything.  Also, what is "the MAP-E/MAP-T feature"?


o  In ietf-softwire-ce:

  A similar description is found here:

        container algo-instances {
          description
            "Indicates that the instances supports the MAP-E and MAP-T
            function. The instances advertise the MAP-E/MAP-T
            feature through the capability exchange mechanism
            when a NETCONF session is established.";

  same comments apply.


o  In ietf-softwire-common:

    container algo-versioning {
      description "algorithm's version";
      leaf version {
        type uint64;
        description "Incremental version number for the algorithm";
      }
      leaf date {
        type yang:date-and-time;
        description "Timestamp to the algorithm";
      }
    }

  Maybe these descriptions are crystal clear to someone who knows the
  technology.  If so, perhaps add a reference to help the rest of us?


o  In general, it would help if the definitions had "reference"
   statements to the relevant sections in the underlying RFCs.


o  In ietf-softwire-ce:

  notification softwire-ce-event {
    if-feature binding;
    description "CE notification";
    leaf ce-binding-ipv6-addr-change {
      type inet:ipv6-address;
      mandatory true;
      description
        "If the CE's binding IPv6 address changes for any reason,
        it should notify the NETCONF client.";
    }

  Perhaps rewrite the description to:

    This notification is generated whenever the CE's binding IPv6
    address changes for any reason.


o  In ietf-softwire-br:

  You have:

            leaf softwire-num-max
            leaf softwires-payload-mtu
            leaf softwire-path-mru

   Any reason it isn't "softwire-payload-mtu"?


o  In ietf-softwire-br:

          list bind-instance {
            key "id";
            [...]
            container binding-table-versioning { ... }
            leaf id { ... }

  I suggest you put the leaf "id" before the container; it is common
  practise to put the key leafs first.

  Also, the leaf id has the description:

      description "An instance identifier.";

  This again can be confused with YANG's "instance-identifier".

  Also, it seems each "instance" has a numerical id (the key), but
  also a name (a string).  Maybe there are protocol-reasons to do
  this, but if not, did you consider using the "name" as key instead?


o  In ietf-softwire-br:

  notification softwire-binding-instance-event {
    if-feature binding;
    description "Notifications for binding instance.";

  notification softwire-algorithm-instance-event {
    if-feature algorithm;
    description "Notifications for algorithmic instance.";


  I suggest that the descriptions are updated to describe when these
  notifications are generated.


o  Appendix A

  The examples have:

    <softwire-config xmlns="urn:ietf:params:xml:ns:yang:ietf-softwire-br">

  which isn't present in the module.  Maybe a leftover?


o  Formatting

  To save the RFC editor some cycles, I suggest you format the modules
  consistently wrt. whitespaces/newlines and indentation.  One option
  is to run:

    pyang -f yang --keep-comments <filename>

  and then manually fix the long leafref paths that pyang can't handle
  properly at the moment.


/martin