[yang-doctors] Yangdoctors early review of draft-ietf-pim-msdp-yang-01

Reshad Rahman <rrahman@cisco.com> Fri, 12 January 2018 17:56 UTC

Return-Path: <rrahman@cisco.com>
X-Original-To: yang-doctors@ietf.org
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D244912D851; Fri, 12 Jan 2018 09:56:14 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Reshad Rahman <rrahman@cisco.com>
To: yang-doctors@ietf.org
Cc: draft-ietf-pim-msdp-yang.all@ietf.org, pim@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.68.3
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <151577977482.18634.14740634433873272656@ietfa.amsl.com>
Date: Fri, 12 Jan 2018 09:56:14 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/o3GzmpDV9DO513il5mbP2Vcf0JI>
Subject: [yang-doctors] Yangdoctors early review of draft-ietf-pim-msdp-yang-01
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.22
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jan 2018 17:56:15 -0000

Reviewer: Reshad Rahman
Review result: On the Right Track

YANG Doctor review of draft-ietf-pim-msdp-yang-01 by Reshad Rahman

1 module in this draft:
- ietf-msdp@2017-08-30.yang

No YANG validation errors or warnings (from pyang 1.7.3 and yanglint 0.14.53).

0 examples are provided in this draft (section 3.12 of
draft-ietf-netmod-rfc6087bis-15)

Module ietf-msdp@2017-08-30.yang:
- Too many features (17)! Every piece of config has an if-feature statement.
Some of the configs (timers?) should be part of most/basic implementations, for
other config (e.g. authentication) I can see why a feature would be used. -
“import ietf-yang-types” should have a reference to RFC6991 (see section 4.7 of
rfc6087bis-15) - “import ietf-inet-types” should have a reference to RFC6991 -
“import ietf-routing” should have a reference to RFC8022 - “import
ietf-interfaces” should have a reference to RFC7223 - "import ietf-ip" should
have a reference to RFC7277 - "import ietf-key-chain" should have a reference
to RFC8177 - organization s/"...PIM( Protocols for IP Multicast ) Working
Group"/"...PIM (Protocols for IP Multicast) Working Group"? - Remove WG Chairs
from contact information as per Appendix C of rfc6087bis-15 - No copyright in
the module description, see Appendix of 6087bis-15 for a module description
example - Module description must contain reference to RFC, see Appendix C of
rfc6087bis-15 - grouping authentication-container. key-chain and password both
use if-feature peer-key-chain. - grouping connect-source. The name is not very
descriptive. Should this be something along the lines of tcp-connection-source?
- grouping global-state-attributes has nothing - Some of the descriptions are
pretty terse. e.g. for rpf-peer it says "RPF peer.". In a case like this
consider adding more descriptive text or a reference to the proper section in
RFC3618 - peer-as (Autonomous System Number) is defined as type string, should
be of type as-number in ietf-inet-types? - Not sure why peer-as is needed.
Don't see it in RFC3618. - keepalive-interval depends on holdtime-interval.
There should be "if-feature peer-timer-holdtime" under leaf keepalive-interval
or change the must statement to (assuming we keep the 2 features):
  must "(not ../holdtime-interval) or (. > 1 and . < ../holdtime-interval)".
- leaf up-time: s/sa cache/SA cache/
- leaf up-time, what's meant by "up time" in the description? Is it time it's
been created? - description for leaf expire seems wrong. - leaf
peer-learned-from, change description from "The address of peer that we learned
this SA from ." to "The address of the peer that we learned this SA from." -
Groupings are used for data which is used only once. Is this done on purpose or
was the intention to use those groupings more than once? - augment of
control-plane-protocols is incorrect. There should be an identity msdp with
base "rt:routing-protocol" and then augment
"/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol" with a when
statement. Take a look at OSPF YANG for an example. - RPC leaf group, I thought
we had a type for IP multicast address? If not, it should be done? -
s/msdp/MSDP/ - In rpc msdp-clear-peer, s/Clears the session to the peer./Clears
the TCP connection to the peer./ - In rpc msdp-clear-sa-cache, why have the
enum '*' for source-addr. Can't the same technique as for peer-address be used?
- msdp prefix not needed in rpc names - MSDP peers are configured in a
mesh-group, did the authors consider adding state per mesh-group, e.g. all the
peers in a particular mesh-group?

General:
- Per Appendix B of rfc6087bis-15: "that all YANG modules containing
imported items are cited as normative reference". So RFCs 6991, 7223,
7277, 8022 and 8177 should be included in the normative reference
section.
- Section 3 "the irrelevant information", add a reference/explanation for what
the irrelevant information is. s/the irrelevant information/irrelevant
information/? - Section 5 should give a brief description of what the RPCs do.
- Section 6 any plans for notifications? If not, just say so. - Need Security
Considerations, see sections 3.7 and 6 of rfc6087bis-15 - Need IANA
Considerations, see section 3.8 of rfc6087bis-15 - Need license in YANG module,
see appendix B of rfc6087bis-15

Nits:
- Section 4 s/Sa-cache/SA-cache/