Skip to main content

Early Review of draft-ietf-mboned-multicast-yang-model-15
review-ietf-mboned-multicast-yang-model-15-yangdoctors-early-dhody-2026-04-04-00

Request Review of draft-ietf-mboned-multicast-yang-model-15
Requested revision 15 (document currently at 18)
Type Early Review
Team YANG Doctors (yangdoctors)
Deadline 2026-03-13
Requested 2026-02-25
Requested by Lenny Giuliano
Authors Zheng Zhang , Cui(Linda) Wang , Ying Cheng , Xufeng Liu , Mahesh Sivakumar
I-D last updated 2026-06-24 (Latest revision 2026-06-24)
Completed reviews Yangdoctors IETF Last Call review of -02 by Mahesh Jethanandani (diff)
Yangdoctors IETF Last Call review of -12 by Dhruv Dhody (diff)
Yangdoctors Early review of -15 by Dhruv Dhody (diff)
Comments
YD review was done previously on -12 version, but during WGLC, enough substantive changes were made to warrant a new WGLC and YD review (to be run concurrently).
Assignment Reviewer Dhruv Dhody
State Completed
Request Early review on draft-ietf-mboned-multicast-yang-model by YANG Doctors Assigned
Posted at https://mailarchive.ietf.org/arch/msg/yang-doctors/U-IFDB5gDg4BMVvM0H1chgf8wvM
Reviewed revision 15 (document currently at 18)
Result Ready w/issues
Completed 2026-04-04
review-ietf-mboned-multicast-yang-model-15-yangdoctors-early-dhody-2026-04-04-00
# YANGDOCTORS LC Review of draft-ietf-mboned-multicast-yang-model-15

I reviewed the -12 version. Thanks for taking care of most of my review
comments. I reviwed -15 version again and found the following issues, some of
which were also noticed in my earlier review.

## Major

- I find these phrasing problematic - *"The controller can distribute new model
for the flows to the network nodes."*, *"The controller can send a model with
the same multicast flow information and the associated transport protocol (set
to PIM) to the ingress node."*, *"When the controller manages all the ingress
and egress routers for the flow, the model is sent with flow characters,
ingress and egress nodes information to the ingress and egress nodes."*, *"When
the controller manages the ingress nodes only for the flow, the model is sent
with the flow characters to the ingress nodes."*, "The model is sent to every
edge router from the controller."*, *"The model can be sent to the ingress
nodes only"*.. ; The text repeatedly refers to “sending” or “distributing” the
model. A YANG model defines a schema. The intent appears to be that one
configures data conforming to this model. Please update all instances.

- Section 2.3 needs a text description. There is no description of what is
upstream. What is downstream! You need to explain the model structure at a high
level first. The tree and the text in 2.4 do not align well. For instance, an
explanation of why the neighbour list is per combination of signalling and
transport would be useful to know. The text in 2.4 does not work well without
examples. It is difficult for the reader to understand the model without it.

- How do you handle a non-MVPN case if RD is a mandatory key?

````
module: ietf-multicast
  +--rw multicast-service
     +--rw multicast-flow* [vpn-rd source-address group-address]
        +--rw vpn-rd            rt-types:route-distinguisher
        +--rw source-address    ip-multicast-source-address
        +--rw group-address     rt-types:ip-multicast-group-address
````

- Explain the design for notification, for service up/down or protocol
enabled/disabled. Do I really need the full tree with all leaves?

- Section 4 needs work. You need to identify explicitly which nodes are
vulnerable and not the whole model itself as "multicast-service".

## Minor

- The title of the draft is very generic; think of a more specific title. How
about "A YANG Data Model for Multicast Services"?

- Section 2.1.1.1 could use JSON corresponding to the example.

- Section 2.3, please add this text - "Tree diagrams used in this document
follow the notation defined in [RFC8340]."

- Section 3, in contact in the YANG model, add "WG Web:  
https://datatracker.ietf.org/wg/mboned/"

- The description in the YANG model incorrectly has below text; please change
to RFC XXXX

````
     This version of this YANG module is part of RFC 9719
     (https://www.rfc-editor.org/info/rfc9719); see the RFC itself
     for full legal notices.
````

- What is the purpose of this identity? I don't see it being used.

````
  identity multicast-service {
    base rt:control-plane-protocol;
    description
      "Identity for the multicast model.";
  }
````

- Are these correct references? Can these signalling types be set without BIER?

````
  identity signaling-pim {
    base dynamic-signaling-type;
    description
      "Using PIM as multicast service signaling technology.";
    reference
      "I-D.ietf-bier-pim-signaling: PIM Signaling Through BIER
        Core";
  }

  identity mld {
    base dynamic-signaling-type;
    description
      "Using MLD as multicast service signaling technology.";
    reference
      "I-D.ietf-bier-mld: BIER Ingress Multicast Flow Overlay
        using Multicast Listener Discovery Protocols";
  }
````

- Better to rename these to service-up instead of event-up.

````
  identity event-type {
    description
      "The events of the multicast service.";
  }

  identity event-up {
    base event-type;
    description
      "The multicast service works.";
  }

  identity event-down {
    base event-type;
    description
      "There is something wrong with upstream or downstream node,
       and node can't work properlay.";
  }
````

- Remove grouping encap-type as you are not using it anymore!

````
  grouping encap-type {
    description
      "The encapsulation type used for flow forwarding.
       This encapsulation acts as the inner encapsulation,
       as compare to the outer multicast-transport encapsulation.";
    choice encap-type {
      case mpls {
        description
          "The BIER forwarding depends on mpls.";
        reference
          "RFC 8296: Encapsulation for Bit Index Explicit
            Replication (BIER) in MPLS and Non-MPLS Networks";
      }
      case eth {
        description
          "The BIER forwarding depends on ethernet.";
        reference
          "RFC 8296: Encapsulation for Bit Index Explicit
            Replication (BIER) in MPLS and Non-MPLS Networks";
      }
      case ipv6 {
        description
          "The BIER forwarding depends on IPv6.";
        reference
          "I-D.ietf-bier-bierin6: BIER in IPv6 (BIERin6)";
      }
      description
        "The encapsulation type in BIER.";
    }
  }

````

- Unclear use of TE node/link template here. What is the point of calling the
leaf "static-tunnel-name"? Why not just tunnel?

````
      case rsvp-te-p2mp {
        if-feature "p2mp-te";
        description
          "Using RSVP TE P2MP as the transport technology.";
        reference
          "RFC 4875: Extensions to Resource Reservation Protocol -
             Traffic Engineering (RSVP-TE) for Point-to-Multipoint
             TE Label Switched Paths (LSPs)
           RFC 8776: Common YANG Data Types for Traffic
             Engineering";
        leaf template-name {
          type te-types:te-template-name;
          description
            "A type for the name of a TE node template or TE link
             template.";
        }
        leaf static-tunnel-name {
          type string;
          description
            "Optional for statically specifying the P2MP TE tunnel
             name.";
        }
      }
````

- Empty containers such as bidir, sr-p2mp, native. Is the presence statement
missing? Are they empty containers for future augmentation?

````
           |  +--:(pim) {pim}?
           |  |  +--rw source-address?
           |  |  |       ip-multicast-source-address
           |  |  +--rw group-address
           |  |  |       rt-types:ip-multicast-group-address
           |  |  +--rw bidir {bidir}?
           |  |  +--rw tad* [mt-id fa-number data-plane]
           |  |     +--rw mt-id         uint16
           |  |     +--rw fa-number     uint8
           |  |     +--rw data-plane    uint8
           |  +--:(ir-tunnel) {ir-tunnel}?
           |  |  +--rw ir-tunnel-type?       uint8
           |  +--:(sr-p2mp) {sr-p2mp}?
           |  +--:(native)
````

- Please describe the need for empty case statements for protocol-type. The
description says "The dynamic signaling technologies and associated parameter
that may be set"; but there are no associated parameters!

````
        |     +--rw (protocol-type)?
        |        +--:(evpn)
        |        +--:(mld)
        |        +--:(mld-snooping)
        |        +--:(mvpn)
        |        +--:(pim)
````

- The description of vni-type (multiple instances) needs to be corrected as you
have removed vni-value leaf now. If this were the only need for RFC2119
keywords, you could also update the YANG module description text for the
boilerplate.

````
          leaf vni-type {
            type identityref {
              base tunnel-encap-type;
            }
            description
              "The encapsulated type for the multicast flow,
               it is used to carry the virtual network identifier
               for the multicast service.
               When this type is set, the associated vni-value
               MUST be set.";
          }
````

Thanks!
Dhruv