[pim] Yangdoctors early review of draft-ietf-pim-igmp-mld-proxy-yang-03

Jan Lindblad via Datatracker <noreply@ietf.org> Tue, 23 March 2021 12:12 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: pim@ietf.org
Delivered-To: pim@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 72E583A1117; Tue, 23 Mar 2021 05:12:58 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Jan Lindblad via Datatracker <noreply@ietf.org>
To: yang-doctors@ietf.org
Cc: draft-ietf-pim-igmp-mld-proxy-yang.all@ietf.org, pim@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.27.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <161650157841.14703.6401789949073298466@ietfa.amsl.com>
Reply-To: Jan Lindblad <janl@tail-f.com>
Date: Tue, 23 Mar 2021 05:12:58 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/ww1HuddS6hqDGBPNiO3cCZsQ4LE>
Subject: [pim] Yangdoctors early review of draft-ietf-pim-igmp-mld-proxy-yang-03
X-BeenThere: pim@ietf.org
X-Mailman-Version: 2.1.29
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, 23 Mar 2021 12:12:58 -0000

Reviewer: Jan Lindblad
Review result: Ready with Nits

This is the YD early review of draft-ietf-pim-igmp-mld-proxy-yang-03 as
requested by the PIM WG.

I find the proxy module to be short and clean. A few minor adjustments are
required and a couple more I would recommend, so I will declare this module as
"ready with nits".

1) The first sentence in section "1. Introduction" states that "This document
defines a YANG [RFC6020] data model ..." This reference should be updated to
RFC 7950 since the module is declared to be a YANG 1.1 module, and YANG 1.1 is
defined by the latter RFC.

2) The proxy module imports pim-base. The pim-base YANG module is extending
ietf-routing in a way that in my judgement is not exactly following the
directives for extensions stated in ietf-routing (this has been mentioned in
previous reviews). The pim-base module is out of scope for the current review,
but I mention this here since the proxy module under review will cement the
current way pim-base extends ietf-routing, as it contains must expressions with
the path to the pim configurations.

3) The must expressions on line 192 and 294 are referring to the pim-base
module use the wrong leaf name for the interface name. At least in the version
of ietf-pim-base@2017-03-09.yang that I have, which seems to be the latest
version posted on the IETF YANG github repo. With this version, "pim-base:name"
needs to be changed to "pim-base:interface" to match the pim-base module (or
pim-base could be changed).

ietf-igmp-mld-proxy.yang:
...
          leaf interface-name {
            type if:interface-ref;
            must "not( current() = /rt:routing"+
           "/rt:control-plane-protocols/pim-base:pim"+
           "/pim-base:interfaces/pim-base:interface"+
           "/pim-base:name )" {

ietf-pim-base.yang:
...
  revision 2017-03-09 {
...
        list interface {
          key "interface";
          description
            "List of pim interfaces.";
          leaf interface {

4) The module contains a list of multicast source addresses. The leaf
filter-mode decides whether the addresses listed should be read as allowed
(include) or disallowed (exclude). Since the interpretation changes quite
dramatically with the value of filter-mode, I would argue that filter-mode
should either be mandatory or have a default. Currently a conforming
implementation could leave filter-mode out, making it hard to correctly
interpret the response (with possible security implications?).

An even clearer approach might be to have two separate source address lists,
one for included addresses, one for excluded. If for some reason both must not
be used simultaneously, they could be placed in a YANG choice.

5) While many IETF YANG modules have very short prefixes (such as if, rt, inet,
yang) I think readability increases and opportunity for confusion by prefix
collision decreases if a longer prefixes were chosen. I would suggest using
prefix igmp-mld for example, rather than the current mnemonic prefix imp.

6) The indentation is mostly good, but is off in a few places. In particular, I
noticed lines 193-197, 295-299, 316.

/Jan