Fwd: [yang-doctors] YANG doctor review of draft-ietf-rtgwg-yang-rip-02

Benoit Claise <bclaise@cisco.com> Tue, 20 December 2016 17:20 UTC

Return-Path: <bclaise@cisco.com>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 94FE1129B67 for <rtgwg@ietfa.amsl.com>; Tue, 20 Dec 2016 09:20:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.621
X-Spam-Level:
X-Spam-Status: No, score=-17.621 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 c6g_BE8p3GWb for <rtgwg@ietfa.amsl.com>; Tue, 20 Dec 2016 09:19:58 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C73AF129BC6 for <rtgwg@ietf.org>; Tue, 20 Dec 2016 09:19:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=9446; q=dns/txt; s=iport; t=1482254397; x=1483463997; h=subject:references:to:from:message-id:date:mime-version: in-reply-to; bh=EFwPnCsU1ioTSTQYICLxT08T+AgYStOw6DqG1At6sis=; b=HdHpEXvcGyCesbgAXeGlLxlFQdyKcdQtNJldk/UanM4BAF+/gHrHZhLs PFRlUyVF1Ro2LmopIk+aMC3Mp40Q65wIE4V3DYWuXkYOGyBdcWqsgPPyW ltDCYYhHZq2cOneXs8O/izUsUz+2GSS08ilh0N/jHvLksYYkQinQx8euj g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DBAgA/Z1lY/xbLJq1dGQEBAQEBAQEBAQEBBwEBAQEBgzcBAQEBAXkuWI1Qc5Vnj2mFJYIKHwEKhXgCgiMUAQIBAQEBAQEBYh0LhGgBAgQBARARSAMbHAMBAisCAicmAggGDQYCAQEeiEkOmwkBjXaCKC+KWAEBAQEBAQEBAQEBAQEBAQEBAQEaBYY2gX2CXIRggmSCPx4FjwGGAoVthlKKYooehi+FOoR7g2WEDx83MVIVDiyFWz00AYhxAQEB
X-IronPort-AV: E=Sophos;i="5.33,379,1477958400"; d="scan'208,217";a="650881819"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Dec 2016 17:19:53 +0000
Received: from [10.60.67.91] (ams-bclaise-89110.cisco.com [10.60.67.91]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id uBKHJqJs019766 for <rtgwg@ietf.org>; Tue, 20 Dec 2016 17:19:52 GMT
Subject: Fwd: [yang-doctors] YANG doctor review of draft-ietf-rtgwg-yang-rip-02
References: <m2d1h3wwxc.fsf@birdie.labs.nic.cz>
To: "rtgwg@ietf.org" <rtgwg@ietf.org>
From: Benoit Claise <bclaise@cisco.com>
X-Forwarded-Message-Id: <m2d1h3wwxc.fsf@birdie.labs.nic.cz>
Message-ID: <68df2479-fe6d-b6bb-6a1b-98dc5342b884@cisco.com>
Date: Tue, 20 Dec 2016 18:19:54 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <m2d1h3wwxc.fsf@birdie.labs.nic.cz>
Content-Type: multipart/alternative; boundary="------------7C2AFB77B977A8D987E72B85"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtgwg/ZR9dFspW-gpzYK8pVQifFRUWZN4>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Dec 2016 17:20:00 -0000

FYI.

Regards, B.


-------- Forwarded Message --------
Subject: 	[yang-doctors] YANG doctor review of draft-ietf-rtgwg-yang-rip-02
Date: 	Wed, 07 Dec 2016 17:01:19 +0100
From: 	Ladislav Lhotka <lhotka@nic.cz>
To: 	draft-ietf-rtgwg-yang-rip.all@ietf.org
CC: 	yang-doctors@ietf.org



Hi,

I was assigned to be the YANG doctor for this document. Here is my
review:

**** General comments

Overall, the module is in a good shape and integrates nicely with the
core routing data model [RFC 8022].

The I-D text is rather scarce, apart from the module it essentially
contains only boilerplate stuff. Some information about the context in
which this module is supposed to be used, design decisions etc. would
be certainly useful.

A non-normative appendix with a configuration example (instance data)
would also help people that are not fluent in YANG to understand what
data are included in this model.

Some parts of the model ā€“ "distribute-list", "redistribute", "bfd",
"authentication" on interfaces (or at least the "key" list) ā€“ are
probably not specific to RIP and could be used by other protocols as
well. If it is so, it would be better to model them separately as
general mechanisms.

Documents containing YANG modules that are imported by ietf-rip should
appear among normative references. One way to achieve this (which is
also useful by itself) is to include a table of namespace prefixes,
see e.g.

https://tools.ietf.org/html/rfc8022#section-2.3

**** Specific comments

      - Matching identities is done in the old YANG 1.0 way, for
        example:

        when "rt:type = 'rip:ripv2' or rt:type = 'rip:ripng'"

        This is fragile because the identities are matched based on
        string equality, so the result depends on the choice of the
        namespace prefix. Unless there is a strong reason not to use
        YANG 1.1, this is much simpler and more rubust

        when "derived-from(rt:type, 'rip:rip')"

      - In "redistribution", the must expressions are outright broken,
        e.g. for IS-IS:

        must "../../../../../rt:control-plane-protocol"
        + "[rt:name = current()]/type = 'isis'" { ... }

        First, the ietf-rip module also needs to import ietf-isis, and
        then the must statement can be rewritten like so:

        must "derived-from-or-self("
        + "../../../../../rt:control-plane-protocol"
        + "[rt:name = current()]/type, 'isis:isis')"

      - Some descriptions could mention that the parameter (feature
        etc.) only applies to RIP. For example, in

        feature interface-statistics {
          description
            "This feature indicates that the system supports collecting
             per-interface statistic data.";
        }

        I would add "... related to RIP." at the end.

      - Maybe it's absolutely clear to experts but the name and
        description of the "neighbor-configuration" feature look like
        the feature can make neighbors remotely configurable. I had to
        look up where it is used to find out what's the real
        meaning. Perhaps something like "explicit-neighbors" might be
        easier to understand?

      - The name of "no-supply" leaf looks strange. I checked a couple
        of CLIs and they use "passive", "passive-interface" or
        "send-options" for preventing RIP updates from being sent.

      - In "split-horizon" leaf, I would use "poison-reverse" enum
        rather than "poison".

Lada

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

_______________________________________________
yang-doctors mailing list
yang-doctors@ietf.org
https://www.ietf.org/mailman/listinfo/yang-doctors