Ballot for draft-ietf-mpls-mldp-yang

Discuss

Éric Vyncke
Mahesh Jethanandani
Mohamed Boucadair

Yes

Jim Guichard

No Objection

Andy Newton
Christopher Inacio
Deb Cooley
Gunter Van de Velde
Ketan Talaulikar
Roman Danyliw
Tommy Jensen

No Record

Charles Eckel
Gorry Fairhurst
Mike Bishop

Summary: Has 3 DISCUSSes. Needs 2 more YES or NO OBJECTION positions to pass.

Éric Vyncke
Discuss
Discuss (2026-06-29) Sent
# Éric Vyncke INT AD comments for draft-ietf-mpls-mldp-yang-16
CC @evyncke

Thank you for the work put into this document.

Please find below some blocking DISCUSS points (easy to address as it the YANG code is already there), some non-blocking COMMENT points/nits (replies would be appreciated even if only for my own education).

I hope that this review helps to improve the document,

Regards,

-éric

Note: this ballot comments follow the Markdown syntax of https://github.com/mnot/ietf-comments/tree/main, i.e., they can be processed by a tool to create github issues.

## DISCUSS (blocking)

As noted in https://datatracker.ietf.org/doc/statement-iesg-handling-ballot-positions-20220121/, a DISCUSS ballot is a request to have a discussion on the points below; I really think that the document would be improved with a change here, but can be convinced otherwise.

### IPV6 is not in base

In 2026, it is not possible to have IPv6 features in the extended module of a data model while the IPv4 features are in the base module. See also the 2016 IAB statement: https://datatracker.ietf.org/doc/statement-iab-statement-on-ipv6/
Comment (2026-06-29) Sent
## COMMENTS (non-blocking)

### Med's DISCUSS

I support Med's DISCUSS points about the IANA-frozen type in the I-D.

### Abstract

s/This document describes a YANG data model /This document *specifies* a YANG data model / as it is a PS.

### Section 1

s/This document introduces a YANG data model/This document *specifies* a YANG data model/

### Section 3.1

Typo in `Opaque specifc Key` and s/ipv4/IPv4/, please run a spell-checker ;-)

### Section 9.2

s/::0/::/ to be consistent with the canonical way to write IPv6 addresses.

### Section 11

Please add an informational reference to the actual URI of the registries, e.g., https://www.iana.org/assignments/xml-registry/xml-registry.xhtml#ns
Mahesh Jethanandani
Discuss
Discuss (2026-06-30) Sent
Section 12.2, RFC 7431 in informative references:

2889 >    [RFC7431]  Karan, A., Filsfils, C., Wijnands, IJ., Ed., and B.
2890 >               Decraene, "Multicast-Only Fast Reroute", RFC 7431,
2891 >               DOI 10.17487/RFC7431, August 2015,
2892 >               <https://www.rfc-editor.org/info/rfc7431>.

RFC 7431 is listed as an informative reference, but in my view, it is used
normatively in the YANG module. The ietf-mpls-mldp-extended module defines
the mldp-mofrr feature and the multicast-only-frr configuration container,
both of which carry an explicit reference statement pointing to RFC 7431:

1891 >      feature mldp-mofrr {
1892 >        description
1893 >          "This feature indicates that the system supports mLDP
1894 >           Multicast only FRR (MoFRR).";
1895 >         reference
1896 >           "RFC7431: Multicast-Only Fast Reroute";
1897 >      }

2008 >        container multicast-only-frr {
2009 >          if-feature mldp-mofrr;
2010 >          description
2011 >            "Multicast-only FRR (MoFRR) policy";
2012 >          reference
2013 >            "RFC7431: Multicast-Only Fast Reroute";

An implementation must consult RFC 7431 to implement the mldp-mofrr feature
correctly. A reference statement in a YANG feature or container that points
to the specification a conforming implementation is required to follow is, by
definition, a normative reference. RFC 7431 must be moved to the normative
references list.

---

Section 10.1.1, Writable Nodes:

2676 >    There are several data nodes defined in this YANG module that are
2677 >    writable/creatable/deletable (i.e., config true, which is the
2678 >    default).  These data nodes may be considered sensitive or vulnerable
2679 >    in some network environments.  Write operations (e.g., edit-config)
2680 >    to these data nodes without proper protection can have a negative
2681 >    effect on network operations.
2682 >
2683 >    For mLDP, the ability to modify MPLS mLDP configuration may allow the
2684 >    entire MPLS mLDP domain to be compromised including forming LDP
2685 >    adjacencies and/or peer sessions with unauthorized routers to mount a
2686 >    massive Denial-of-Service (DoS) attack.
2687 >
2688 >    In particular, the subtrees and data nodes that are sensitive and
2689 >    vulnerable are same as captured in [RFC9070] section 10.1.1

RFC 9907 Section 3.7.1 requires the security template to explicitly enumerate
writable data nodes introduced by this document that could be disruptive if
abused. The concern is that Section 10.1.1 defers entirely to RFC 9070 Section
10.1.1, which lists only LDP-specific nodes; it does not list any of the new
writable nodes that this document introduces.

The base mLDP module introduces writable nodes including, at minimum:
  - mldp:enabled (enables/disables all of mLDP)
  - mldp:p2mp/enabled and mldp:mp2mp/enabled (capability enablement)
  - mldp:make-before-break/* (switchover-delay and timeout timers)
  - mldp:ipv4/enabled (address-family enable/disable)

The extended module adds additional writable nodes, including:
  - mldp-ext:hub-and-spoke/enabled and mldp-ext:node-protection/* (capabilities)
  - mldp-ext:multicast-only-frr/prefix-list and mldp-ext:recursive-fec/prefix-list
  - mldp-ext:mldp-disable (forwarding nexthop interface control)
Comment (2026-06-30) Sent
Section 12.1, normative reference to RFC 8407:

2860 >    [RFC8407]  Bierman, A., "Guidelines for Authors and Reviewers of
2861 >               Documents Containing YANG Data Models", BCP 216, RFC 8407,
2862 >               DOI 10.17487/RFC8407, October 2018,
2863 >               <https://www.rfc-editor.org/info/rfc8407>.

RFC 8407 has been obsoleted by RFC 9907. In my view, the normative reference
should be updated to RFC 9907. Several RFC 9907 requirements (noted below in
subsequent comments and in the YANG Doctors review by Joe Clarke, thanks Joe) are not
fully satisfied in the current revision.

---

Section 9.1, module description statement:

1159 >      description
1160 >        "This YANG module defines the essential components for the
1161 >         management of Multiprotocol Label Switching (MPLS) Multipoint
1162 >         LDP (mLDP).
...

Section 9.2, module description statement:

1782 >      description
1783 >        "This YANG module defines the extended components for the
1784 >         management of Multiprotocol Label Switching (MPLS) Multipoint
1785 >         LDP (mLDP).

Per RFC 9907 Section 4.8, each module description must include text directing
readers to the IANA YANG Parameters registry (i.e., a statement along the
lines of "The YANG module in this document conforms to the NMDA as described
in RFC 8342. This module is available from the IANA YANG Parameters registry").
Neither module description includes this required registry pointer. I would
suggest adding the standard registry reference text to the description
statement of both modules.

---

Section 9.1, grouping mldp-binding-label-state-attributes (and the equivalent
grouping mldp-ext-binding-label-peer-state in Section 9.2):

1457 >          leaf peer {
1458 >            type leafref {
1459 >              path
1460 >                "../../../../../../../../../../../ldp:peers/ldp:peer/"
1461 >              + "ldp:lsr-id";

Both groupings use deeply nested relative XPath expressions. Per RFC 9907
Section 4.1, a grouping that uses relative XPath paths must document in its
description the precise schema tree context in which it is intended to be
instantiated, so that the XPath evaluation is unambiguous. Neither grouping
currently includes that context description. I would suggest adding a brief
statement to each grouping description specifying its intended instantiation
point.

---

Section 11, IANA Considerations — YANG module registration:

2737 >    +============+===================================+======+===========+
2738 >    | Name       | Namespace                         |Prefix| Reference |
...

Per RFC 9907 Section 3.8.3.1, the YANG Module Names registration template must
include a "Maintained by IANA?" field (value "N" for modules that are not
IANA-maintained). Neither registration entry in Table 3 includes this field.
I would suggest adding the missing field to both entries.

---

Section 3 and the narrative text throughout: I agree with the OPSDIR reviewer
(Ran Chen, 2026-05-06) that the document would benefit from an Operational
Considerations section. draft-ietf-opsawg-rfc5706bis recommends including
such a section before Security Considerations for documents introducing new
protocol state. mLDP introduces observable protocol state (roots, bindings,
capabilities) and new configuration knobs (MBB timers, address-family enables,
prefix-list policies) that are clearly manageable. While rfc5706bis is not yet
enforceable, I would suggest the authors consider adding at least a brief
Operational Considerations section addressing deployment, fault visibility, and
key configuration considerations.

----------------------------------------------------------------------
NIT
----------------------------------------------------------------------

All comments below are about very minor potential issues that you may
choose to address in some way - or ignore - as you see fit. Some were
flagged by automated tools (via
https://github.com/larseggert/ietf-reviewtool), so there will likely
be some false positives. There is no need to let me know what you did
with these suggestions.

Section 9.1, revision 2026-02-03, description:

1188 >          description
1189 >            "Fixing copytight and authors before publication";

s/copytight/copyright/

The same typo appears at the corresponding revision in Section 9.2:

1812 >          description
1813 >            "Fixing copytight and authors before publication";

s/copytight/copyright/

---

Section 9.1, operational state augmentation, container p2mp description:

1499 >          container p2mp {
1500 >            description
1501 >              "Operatiobal state information for the point-to-multipoint
1502 >               capability of a peer";

s/Operatiobal/Operational/

The same misspelling appears in Section 9.2:

2184 >          container hub-and-spoke {
2185 >            description
2186 >              "Operatiobal state information for the peer's
2187 >               hub-and-spoke-multipoint capability.";

2198 >          container node-protection {
2199 >            description
2200 >              "Operatiobal state information for the peer's node-protection
2201 >              capability";

s/Operatiobal/Operational/ (both instances)

---

Section 9.1, grouping mldp-binding-label-state-attributes, list peer description:

1453 >            description
1454 >              "List of peers with bindings exchnaged (sent and/or
1455 >               received)";

s/exchnaged/exchanged/

The same typo appears in Section 9.2:

1933 >          description
1934 >            "List of peers with bindings exchnaged (sent and/or
1935 >             received)";

s/exchnaged/exchanged/

---

Section 3.1, Table 1 header:

306 >       | Opaque Type | Variant     | Opaque specifc Key | RFCs      |

s/specifc/specific/

---

Section 3.1, Table 1:

296 >       *  Transit Birdir

s/Birdir/Bidir/

---

Section 6.2.1:

1017 >    instead, the node treats it as a opaque binary stream

s/a opaque/an opaque/
Mohamed Boucadair
Discuss
Discuss (2026-06-24) Sent
Hi Syed, Xufeng, Santosh, Loa, and Jeff,

Thank you for the effort put into this document.

Thanks to Ran Chen for the OPSDIR review. I hope the authors can engage with Ran.

The structure follows an approach similar to RFC 9070. I see that RFC 9070 has several typedefs to ease referencing, however it is unfortunate that it does not have a typedef for referencing ldp:lsr-id. 

Thanks for the examples. 

I have two items for discussion that I think are easy to fix:

# Frozen IANA-maintained types in an IETF Module

CURRENT:
     // IANA: LDP MP Opaque Value Element basic type
     identity mldp-opaque-value-element-basic-type {
       description
         "Base identity from which specific Opaque value element
          basic types are derived.";
       reference
         "LDP MP Opaque Value Element basic type IANA registry at
          https://www.iana.org/assignments/ldp-namespaces/
          ldp-namespaces.xhtml#ldp-namespaces-11";
     }
     …

## Embedding these in the IETF module would prevent inhering new types when the registry is updated. Any reason why you went with this design?

## Absent valid reasons, I recommend to offload that part from the module to a separate IANA-maintained module. Refer to https://www.rfc-editor.org/rfc/rfc9907.html#name-iana-maintained-yang-module for guidance.

# Guidance for future augmentations

CURRENT:
   All
   the items in the base category are mandatory and, hence, no "if-
   feature" is allowed under the "base" category.  

## Does this means that no augmentations are allowed on the base?

## If so, this needs to be clearly mentioned as guidance for future augmentations.

## Seems that you have other guiding design principles; these need to be grouped: 

   It is worth highlighting that any IPv6 related
   feature support is categorized as an extended feature.
Comment (2026-06-24) Sent
# Title

OLD: YANG Data Model for MPLS mLDP

NEW: A YANG Data Model for MPLS mLDP

# Reverted NMDA Guidance in RCC9907

CURRENT:
 Abstract 
  …
   The YANG modules in this document conform to the Network Management
   Datastore Architecture (NMDA).

  …

   The YANG modules in this document conform to the Network Management
   Datastore Architecture (NMDA) defined in [RFC8342].

RFC9907 does require a mention/justification only when there are NMDA deviations. Please delete that sentence (and other similar text in the draft).

# Maybe add an pointer to where these are provided

CURRENT:
   Moreover, it is important to note here that any assumptions made in
   the LDP YANG data model also hold true in this document, unless
   otherwise explicitly stated.

# Confusing Features

CURRENT:
   The examples of base mLDP features include the enablement of mLDP and
   its capabilities, and static configuration of leaf IPv4 LSPs with
   generic LSP Id, whereas the examples of extended mLDP feature include
   enhanced mLDP capabilities, Recursive FEC [RFC6512], 

I would avoid «features» as this may be confused with YANG «feature» statement. 

This comment applies here and other places in the document.

# Simple not Small?

CURRENT:
   While "base" model support will suffice for small deployments, it is
   expected that large deployments will require both the "base" and
   "extended" model support from the vendors.

I don’t think this is about the size of a deployment but the richness of enabled functions. 

# I would delete as this does not add much

CURRENT:
   There are four types of containers in the module(s):

   *  Read-write parameters for configuration (Section 5)

   *  Read-only parameters for operational state (Section 6)

   *  Notifications for events (Section 7)

# NMDA

CURRENT:
   In mLDP YANG modules, the operational state data is combined with the
   associated configuration data in the same hierarchy [RFC8407].  When
   protocol states are retrieved from the NMDA operational state
   datastore, the returned states cover all "config true" (rw) and
   "config false" (ro) nodes defined in the schema.

## I don’t think we need tp repat what NMDA is

## 8407 was obsoleted by 9907

## The same comment applies for the following

   The mLDP modules conform to the NMDA where the operational state data
   is combined with the associated configuration data in the same
   hierarchy.  This means that When protocol states are retrieved from
   the NMDA operational state datastore, the returned states cover all
   "config true" (rw) and "config false" (ro) nodes defined in the
   schema.

I suggest to delete.

# Tree Diagrams

CURRENT:
   The following diagram depicts high-level mLDP YANG tree organization
   and hierarchy with respect to LDP:

Please add

NEW: The meaning of the symbols in these tree diagrams are defined in [RFC8340].

#  Abstract Tree Structure

CURRENT:
            +-- rw routing
              +-- rw control-plane-protocols
               +-- rw control-plane-protocol
                 +-- rw mpls-ldp
                     +-- rw some_ldp_container
                     |   +-- rw mldp
                     |       +-- rw ...                 // mldp base
                     |       |   +-- rw ...
                     |       |   +-- ro ...
                     |       |   +--
                     |       +-- rw mldp-ext:...        // mldp extended
                     |       |   +-- rw ...
                     |       |   +-- ro ...
                     |       |   +--
                     +-- ro someother_ldp_container
                         +-- ro mldp
                             +-- ro ...                 // mldp base
                             |   +-- ro ...
                             |   +--
                             +-- ro mldp-ext:...        // mldp extended
                                 +-- ro ...
                                 +--

## This is confusing as it some data nodes can be misinterpreted as they are part of the structure. I would use an abstract tree that reflect the modules.

# Which RFC specification?

CURRENT/
   *  This model aims to address the core mLDP constructs, parameters,
      and features as per RFC specification, 

# Vendor

CURRENT:
      Any vendor-specific feature should be defined in a vendor-
      specific augmentation of this model.

I don’t think we need to have this in a PS doc

# On Model/Module/Etc. 

CURRENT:
   *  This mLDP model builds on top of LDP YANG model [RFC9070] which is

## YANG model is to be avoided. 

## Please follow the guidance in Section 2.5 of RFC 9907

# Full tree

Please move to an appendix per the following guidance in RFC9907:

“Tree diagrams longer than one page SHOULD be included in an appendix, i.e., not in the main body of the document.”

# I would delete the following

CURRENT:
8.  Actions

   This document does not define any RPCs/actions for mLDP.

# Please update your modules to follow the template at: https://www.rfc-editor.org/rfc/rfc9907.html#name-template-for-ietf-modules 

# Revisions (for both modules)

CURRENT:
     revision 2026-02-03 {
       // RFC Editor: replace the above date with the date of
       // publication and remove this note.
       description
         "Fixing copytight and authors before publication";
       reference
         "RFC XXXX: YANG Data Model for MPLS mLDP";
        // RFC Editor: replace XXXX with actual RFC number and remove
        // this note
     }

     revision 2025-12-15 {
       // RFC Editor: replace the above date with the date of
       // publication and remove this note.
       description
         "Removed static-lsps-leaf from the model";
       reference
         "RFC XXXX: YANG Data Model for MPLS mLDP";
        // RFC Editor: replace XXXX with actual RFC number and remove
        // this note
     }

     revision 2025-10-20 {
       // RFC Editor: replace the above date with the date of
       // publication and remove this note.
       description
         "Addressing RtgDir review comments related to recursive FEC";
       reference
         "RFC XXXX: YANG Data Model for MPLS mLDP";
        // RFC Editor: replace XXXX with actual RFC number and remove
        // this note
     }
…

Please delete all these except the latest one. We don’t use this as change log. Please refer to RFC9907

# Avoid embedding references in a description

CURRENT:
         "A grouping describing the protocol capabilities of mLDP as
          specified in RFC6388";

Please use a reference statement.

# Boolean (several occurrences)

OLD:
  "'true' to enable the point-to-multipoint capability";

NEW:
  "Enables the point-to-multipoint capability when set to 'true'.";

# root-address

CURRENT:
             leaf root-address {
               type inet:ip-address;
               description
                 "Root address.";
             }

You may explain why the type is not IPv4 as that is what you have in the base.

# Section 10.1

Please update to follow the template at https://www.rfc-editor.org/rfc/rfc9907.html#name-security-considerations-sect 

# These are not normative

Please move these to RFC6241, RFC6242, RFC8040, RFC8340, RFC8446.

Cheers,
Med
Jim Guichard
Yes
Andy Newton
No Objection
Christopher Inacio
No Objection
Deb Cooley
No Objection
Comment (2026-06-23) Sent
Thanks to Linda Dunbar for their secdir review. I recommend that her review be considered (I don't see a reply to her comments in the archive).

Section 10.1:  Consider leaving a note to the RFC Editor to replace RFC 8446 with RFC 9846 (currently in Auth 48).
Gunter Van de Velde
No Objection
Ketan Talaulikar
No Objection
Comment (2026-06-25) Sent
Thanks to the authors and the WG for their work on this document.

I would like to understand why this model is not making use of IANA maintained YANG modules instead of trying to define them based "inline" based on the current IANA allocations. An example is mldp-opaque-value-element-basic-type that maps to https://www.iana.org/assignments/ldp-namespaces/ldp-namespaces.xhtml#ldp-namespaces-11 - I don't see any other similar being used in either this model or the base LDP model.

The same as been identified by Med in his DISCUSS position which I support.
Roman Danyliw
No Objection
Comment (2026-06-25) Not sent
Thank you to Meral Shirazipour for the GENART review.
Tommy Jensen
No Objection
Comment (2026-07-01) Not sent
I strongly support the existing DISCUSS ballots, especially Éric's, but have no other objection to this draft being published.
Charles Eckel
No Record
Gorry Fairhurst
No Record
Mike Bishop
No Record