[MBONED] draft-ietf-mboned-multicast-yang-model-04: partial review

"Holland, Jake" <jholland@akamai.com> Tue, 17 November 2020 11:27 UTC

Return-Path: <jholland@akamai.com>
X-Original-To: mboned@ietfa.amsl.com
Delivered-To: mboned@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 005123A10CB for <mboned@ietfa.amsl.com>; Tue, 17 Nov 2020 03:27:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 ljSYCC7Pq-5p for <mboned@ietfa.amsl.com>; Tue, 17 Nov 2020 03:27:02 -0800 (PST)
Received: from mx0b-00190b01.pphosted.com (mx0b-00190b01.pphosted.com [IPv6:2620:100:9005:57f::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 366263A10CA for <mboned@ietf.org>; Tue, 17 Nov 2020 03:27:01 -0800 (PST)
Received: from pps.filterd (m0122330.ppops.net [127.0.0.1]) by mx0b-00190b01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0AHBQxFb020511; Tue, 17 Nov 2020 11:27:01 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : subject : date : message-id : content-type : content-id : content-transfer-encoding : mime-version; s=jan2016.eng; bh=FJUPt3cVU0WVet0yxgGllJnEI2vXHENltVMULmUl4xk=; b=hwxC1bHgOkK5Ndmrdbacjxv0wSBmp2EJs/88s2WgN5dvA0i7wUnxAwdJLDv1wLZk/WqN XRmW9CBE0RolgHc2HvrvimCgOoy4mQbhTFyBuCxhuHNnnyVnzUCrmqq2mH6d3kfLE1Ab 1TG72eeWxLxngmMg0LwNCfAzlvoShM9GgCqYvbnC9pVK3aGsQernhSIbXO6R4AgEERNY jgJtArL6I93Yz16+VYgBbQsRXPd+CAx0Nr35dNTOYmeWzSBPJZB7eBMYSc1F5Uqnbhky +JdhZzLl63HeF8uf/O3CWsPLdsBgE2xmsUHFTqSCA7IemYIfpITvepsHztOYETNPbEsl Yg==
Received: from prod-mail-ppoint3 (a72-247-45-31.deploy.static.akamaitechnologies.com [72.247.45.31] (may be forged)) by mx0b-00190b01.pphosted.com with ESMTP id 34t7s828ma-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 17 Nov 2020 11:27:01 +0000
Received: from pps.filterd (prod-mail-ppoint3.akamai.com [127.0.0.1]) by prod-mail-ppoint3.akamai.com (8.16.0.42/8.16.0.42) with SMTP id 0AHBKRwv009594; Tue, 17 Nov 2020 06:27:00 -0500
Received: from email.msg.corp.akamai.com ([172.27.165.116]) by prod-mail-ppoint3.akamai.com with ESMTP id 34tbf2bg2r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 17 Nov 2020 06:27:00 -0500
Received: from ustx2ex-dag1mb6.msg.corp.akamai.com (172.27.165.124) by ustx2ex-dag1mb4.msg.corp.akamai.com (172.27.165.122) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 17 Nov 2020 05:26:59 -0600
Received: from ustx2ex-dag1mb6.msg.corp.akamai.com ([172.27.165.124]) by ustx2ex-dag1mb6.msg.corp.akamai.com ([172.27.165.124]) with mapi id 15.00.1497.007; Tue, 17 Nov 2020 05:26:59 -0600
From: "Holland, Jake" <jholland@akamai.com>
To: MBONED WG <mboned@ietf.org>, "zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>
Thread-Topic: draft-ietf-mboned-multicast-yang-model-04: partial review
Thread-Index: AQHWvNSQcHwIqWPOxEGGIDW0uPKdOQ==
Date: Tue, 17 Nov 2020 11:26:59 +0000
Message-ID: <3E758A50-E91C-4413-96FB-28E2EB17896B@akamai.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.42.20101102
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.27.164.43]
Content-Type: text/plain; charset="utf-8"
Content-ID: <7069BE067AAF9C478EDD887A7C4101D6@akamai.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-17_03:2020-11-17, 2020-11-17 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011170083
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-17_03:2020-11-17, 2020-11-17 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 spamscore=0 clxscore=1015 mlxscore=0 mlxlogscore=999 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011170084
X-Agari-Authentication-Results: mx.akamai.com; spf=${SPFResult} (sender IP is 72.247.45.31) smtp.mailfrom=jholland@akamai.com smtp.helo=prod-mail-ppoint3
Archived-At: <https://mailarchive.ietf.org/arch/msg/mboned/cjVQ_qM2yeboxY0i3vvjSe9g3Xo>
Subject: [MBONED] draft-ietf-mboned-multicast-yang-model-04: partial review
X-BeenThere: mboned@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Mail List for the Mboned Working Group <mboned.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mboned>, <mailto:mboned-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mboned/>
List-Post: <mailto:mboned@ietf.org>
List-Help: <mailto:mboned-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mboned>, <mailto:mboned-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2020 11:27:05 -0000

Hi Sandy,

Before the review, I had one question about the link on
page 5 of your slides here:
https://datatracker.ietf.org/meeting/109/materials/slides-109-mboned-draft-ietf-mboned-multicast-yang-model-00#page=5

There's a link to here:
https://wiki.opendaylight.org/view/BIER:Main

But I get a 404 at that location.  I searched the wiki for bier,
but I only saw these 2, both of which looked like empty stubs:
https://wiki.opendaylight.org/display/ODL/BIER
https://wiki.opendaylight.org/display/ODL/BIER+App

Is there another link that describes how the BIER project is
using this model, or an example walkthrough for how to get
started or something?


Anyway, here's the draft review:

First, thanks for this update, the draft looks like there's a lot
of improvements since the last time I read it.  But I noticed a
number of issues.  Below I've divided it into "Technical" and "Nits".

This is not complete, I'm stopping without having done a detailed
review of sections 3.3 on, and at a brief overview, it looks like
the text in 3.3, 3.4, and 3.5 could use some editorial review for
clarity and grammar.  And I barely looked at the descriptions in
the model, or at section 5.  But I thought I'd send along what I've
got so far anyway, and maybe send a 2nd half later if I can get to it.

I hope it's helpful.


Technical:

1.
Section 1.5:
Fig 1 and 2nd paragraph:
- EMS/NMS needs a definition before its use (I hadn't seen these
  terms and had to web search for them)


2.
4th paragraph:
   In this model, the correspond key is set to 233.252.0.0/16, the
   transport technology is set to BIER.

I'm not sure I understand what this sentence is trying to say.  My
best guess is that it's referring to the key to the "multicast-keys"
list, is that right?  (And nit: I think it's "corresponding", right?)

But in the model I see this key requiring 5 values, so I'm not clear
on how the key can just be set to the group-address, don't all these
require a value?

      list multicast-keys{
        key "vpn-rd source-address group-address vni-type vni-value";

Anyway, the paragraph then goes on to describe a bunch of other
nodes in the model and the values they'd be set to.  I think I'd have
a better idea what this paragraph is talking about if it used the
names from the model to describe what the actual locations in the
tree get set, and what actual values they get set to.  And I think
that would be a lot clearer if it provided a json or xml example,
rather than a text paragraph.  (It also might work to use a table,
if the example would be too big.)


3.
Section 2.1:
   Depending on the implementation choices, some systems may
   not allow some of the advanced parameters to be configurable.

This sounds like it's describing things that should be controlled
with an "if-feature" statement, but I don't see any in the model.
(see: https://tools.ietf.org/html/rfc7950#section-7.20.2 )  Am I
misunderstanding this part, or why aren't these done as features?

Also, which parameters are these?  I think if they're associated
with features in the model, the model would make it clear, but
if it's just from description in the text it seems like this would
need a lot more spelling out about which features are optional and
under what circumstances.


4.
Section 2.2:
The notification includes the error reason and the
   associated data nodes.

I don't understand this sentence.  I think it's referring
to the "head-end-event" notification in the model?  Is this trying
to say something like "The head-end-event notification alerts
listeners to failures?

I also don't understand the head-end-event, it seems to have a
failure report option, which is I think what's describe here, but
also a module load and unload report, and I don't understand how
those get used?


5.
Section 3.1:
Figure 3: PIM is listed as an underlay option, but it's not in the
model as an underlay.
PIM also is in the model as an overlay technology, but is not listed
in the figure as an overlay.  EVPN also is missing from the overlay
technologies in the figure.


6.
Section 3.2:
I'm a little confused about why there's 0 or 1 ingress-node
entries in the ingress-egress.  I think it's possible to have
redundant ingress nodes, right?  And is it correct that it's
not mandatory to have at least 1?


7.
Section 3.2:
I noticed the definition and use of the ip-multicast-source-address
type while reading the tree diagram.  I guess I'm confused on 2
points:
a. it seems like this union should have been defined in rt-types,
   and it probably should be defined there instead of inside this
   model.
b. From the definitions of ipv4- and ipv6- multicast-source-address
   in rt-types, it looks like the purpose is to add "*" as an option
   in addition to the ip address, which is for designating (*,G)s I
   assume.  Does the type ambiguity for '*' cause a problem here?
   Would it be better to define it this way instead?

     typedef ip-multicast-source-address {
       type union {
         type enumeration {
           enum * {
             description
               "Any source address.";
           }
         }
         type inet:ipv4-address;
         type inet:ipv6-address;
       }
       description
         "Multicast source IP address type.";
     }

8.
In the model:
I don't understand the "module-loaded" and "module-unloaded" options
in the head-end-event notification.  It sounds like these are
referring to a change in the RESTCONF/NETCONF server, rather than a
change in the head-end?  Or I don't understand what this is saying,
or what a client might do in response to this.
          enum module-loaded {
            description
              "The new modules that can be used by multicast
               flows have been loaded.";
          }
          enum module-unloaded {
            description
              "The new modules that can be used by multicast
               flows have been unloaded.";
          }


9.
In the model:
I'm confused about the transport-pim grouping that's empty.  Is
the point of that to have something that can be augmented?  Is
there an example of augmentations that are used here?

This is an extension point?  If so, would it be reasonable to
add any guidance explaining when it would be useful or necessary
to use it?


10.
Same thing for the several empty cases in overlay-tech and
underlay-tech.

Would it make sense to define an identity like
"underlay-technology-identity" and use that as a base for a
type that would appear in the data instance?  The way it stands
now, I'm not sure I see how it would distinguish between an
underlay-tech that's bgp vs. isis, since both are empty, so the
underlay-tech container would just be empty in both cases.



Nits:
1.
Section 1.5, first paragraph: which -> that
OLD:
 the network resources which are used to deliver
NEW:
 the network resources that are used to deliver

(There are several resources online that cover this, but see for
example: https://www.grammarly.com/blog/which-vs-that/)


2.
Figure 1, the line doesn't match up on the "Multicast Model" line.
                  +------------------------+
                  |    Multicast Model   |
                  +------------------------+


3.
Section 1.5 2nd paragraph:
I don't think "Detailly" is a word.  I think you could replace the
whole first sentence though, and I'll suggest some text:
OLD:
   Detailly, in figure 1, there is an example of usage of this multicast
   model.  
NEW:
   Figure 1 illustrates example use cases for this multicast model.


4.
3rd paragraph section 1.5: Correspoding -> Corresponding
   Correspoding IGP protocol which is used to build BIER transport layer


5.
4th paragraph section 1.5: egde->edge
OLD:
  The model is sent to every egde router from the
NEW:
  The model is sent to every edge router from the


6. 4th paragraph 1.5: which->that
OLD:
   the BIER YANG model which is defined in [I-D.ietf-bier-bier-yang]
NEW:
   the BIER YANG model that is defined in [I-D.ietf-bier-bier-yang]


7. 5th paragraph 1.5: response->respond
OLD:
   the controller.  Then the controller/ EMS/NMS can response
NEW:
   the controller.  Then the controller/ EMS/NMS can respond


8. last paragraph 1.5: existed->existing:
OLD:
   model, instead, it depends on many existed multicast protocol models
NEW:
   model, instead, it depends on many existing multicast protocol models


9. There's 4 or 5 instances of the word "failer", including section 3.5
and several of the descriptions in the model.  I think these all should
be "failure", if I'm understanding correctly?