<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-mpls-msd-yang-12" number="9702" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" prepTime="2025-01-10T12:45:54" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-mpls-msd-yang-12" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9702" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="MPLS MSD YANG">YANG Data Model for Maximum Segment Identifier (SID) Depth (MSD) Types and MPLS MSD</title>
    <seriesInfo name="RFC" value="9702" stream="IETF"/>
    <author fullname="Yingzhen Qu" initials="Y" surname="Qu">
      <organization showOnFrontPage="true">Futurewei Technologies</organization>
      <address>
        <email>yingzhen.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Acee Lindem" initials="A." surname="Lindem">
      <organization showOnFrontPage="true">LabN Consulting, L.L.C.</organization>
      <address>
        <email>acee.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Stephane Litkowski" initials="S" surname="Litkowski">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <email>slitkows.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Jeff Tantsura" initials="J" surname="Tantsura">
      <organization showOnFrontPage="true">Nvidia</organization>
      <address>
        <email>jefftant.ietf@gmail.com</email>
      </address>
    </author>
    <date month="01" year="2025"/>
    <area>RTG</area>
    <workgroup>mpls</workgroup>
    <keyword>example</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines two YANG modules.  The first module is the
   initial version of the IANA-maintained YANG module for Maximum
   Segment Identifier (SID) Depth (MSD) Types, which includes identities
   for both the MPLS data plane and Segment Routing over IPv6 (SRv6)
   data plane.  The second module augments the IETF MPLS YANG data model to provide
   support for MPLS MSDs as defined in RFCs 8476 and 8491.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9702" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-overview">Overview</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-design-of-the-model">Design of the Model</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-msd-types-module">IANA MSD Types Module</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ietf-mpls-msd-module">IETF MPLS MSD Module</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tree-for-ietf-mpls-msd-type">Tree for IETF MPLS MSD Types YANG Module</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-yang-modules">YANG Modules</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-maintained-module-for-">IANA-Maintained Module for MSD-Types</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mpls-msd-yang">MPLS MSD YANG</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-registering-yang-modules">Registering YANG Modules</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-msd-types-module-2">IANA MSD-Types Module</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-overview">Overview</name>
      <t indent="0" pn="section-1-1">There are two YANG modules <xref target="RFC7950" format="default" sectionFormat="of" derivedContent="RFC7950"/> defined in this
      document. Module iana-msd-types defines the identities for Maximum SID
      Depth (MSD) Types as per the "IGP MSD-Types" IANA registry <xref target="IANA-IGP-MSD-Types" format="default" sectionFormat="of" derivedContent="IANA-IGP-MSD-Types"/>, which includes MSD types
      for both the MPLS and SRv6 data planes. This document also defines
      module ietf-mpls-msd augmenting the IETF MPLS YANG data model <xref target="RFC8960" format="default" sectionFormat="of" derivedContent="RFC8960"/>, which augments the routing RIB data
      model <xref target="RFC8349" format="default" sectionFormat="of" derivedContent="RFC8349"/> to provide operational
      state for various MSDs <xref target="RFC8662" format="default" sectionFormat="of" derivedContent="RFC8662"/> for the
      MPLS data plane.  The module augments the base MPLS model with a list of
      various types of Node MSDs as well as various types of Link MSDs.
      </t>
      <t indent="0" pn="section-1-2">
        The YANG modules in this document conform to the Network Management
        Datastore Architecture (NMDA) <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-design-of-the-model">Design of the Model</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-iana-msd-types-module">IANA MSD Types Module</name>
        <t indent="0" pn="section-2.1-1">
        IANA has created a registry titled "IGP MSD-Types" under the "Interior
        Gateway Protocol (IGP) Parameters" registry group to identify
        MSD-Types. Module iana-msd-types is an IANA-maintained module, which
        defines the identities for the MSD-Types as in the IANA "IGP
        MSD-Types" registry. This module references <xref target="RFC8476" format="default" sectionFormat="of" derivedContent="RFC8476"/>,
        <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/>, <xref target="RFC8662" format="default" sectionFormat="of" derivedContent="RFC8662"/>, <xref target="RFC8664" format="default" sectionFormat="of" derivedContent="RFC8664"/>, <xref target="RFC8814" format="default" sectionFormat="of" derivedContent="RFC8814"/>, <xref target="RFC9088" format="default" sectionFormat="of" derivedContent="RFC9088"/>, and <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/>.
        </t>
        <t indent="0" pn="section-2.1-2">
        On top of the base identity "msd-base", identity "msd-base-mpls"
        is defined to serve as the base for MSD types for the MPLS data
        plane, and identity "msd-base-srh" is defined to serve as the
        base for MSD types for the Segment Routing Header (SRH) in the IPv6
        data plane.
        </t>
        <t indent="0" pn="section-2.1-3">
        This module is maintained by IANA and will be updated if and when
        there is any change to the registry.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-ietf-mpls-msd-module">IETF MPLS MSD Module</name>
        <t indent="0" pn="section-2.2-1">
        Module ietf-mpls-msd augments the base MPLS model <xref target="RFC8960" format="default" sectionFormat="of" derivedContent="RFC8960"/>,
        and it provides support of different types of MSDs in the
        MPLS data plane.
        </t>
        <t indent="0" pn="section-2.2-2">
        As defined in <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/>, a Link MSD is
        the number of SIDs supported by a node's link, while a Node MSD is the
        smallest MSD supported by the node across all its links.  The module
        defines lists of MSDs and their MSD Types for a node and its links.
        Please note that these are read-only data nodes exposing a node's
        hardware capability.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-tree-for-ietf-mpls-msd-type">Tree for IETF MPLS MSD Types YANG Module</name>
      <t indent="0" pn="section-3-1">
      This document uses the graphical representation of data models
      per <xref target="RFC8340" format="default" sectionFormat="of" derivedContent="RFC8340"/>.
      </t>
      <sourcecode name="" type="yangtree" markers="false" pn="section-3-2">
module: ietf-mpls-msd

  augment /rt:routing/mpls:mpls:
    +--ro node-msds
       +--ro node-msd* [msd-type]
          +--ro msd-type     identityref
          +--ro msd-value?   uint8
  augment /rt:routing/mpls:mpls/mpls:interfaces/mpls:interface:
    +--ro link-msds
       +--ro link-msd* [msd-type]
          +--ro msd-type     identityref
          +--ro msd-value?   uint8
</sourcecode>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-yang-modules">YANG Modules</name>
      <t indent="0" pn="section-4-1">There are two YANG modules defined in this document.</t>
      <section anchor="iana-msd-types" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-iana-maintained-module-for-">IANA-Maintained Module for MSD-Types</name>
        <t indent="0" pn="section-4.1-1">This document defines the initial version of the IANA-maintained YANG
      module for MSD Types that mirrors the IANA "IGP MSD-Types"
      registry <xref target="IANA-IGP-MSD-Types" format="default" sectionFormat="of" derivedContent="IANA-IGP-MSD-Types"/>.
        </t>
        <sourcecode name="iana-msd-types@2025-01-10.yang" type="yang" markers="true" pn="section-4.1-2">
module iana-msd-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:iana-msd-types";
  prefix iana-msd-types;

  organization
    "Internet Assigned Numbers Authority (IANA)";

  contact
    "Internet Assigned Numbers Authority

     ICANN
     12025 Waterfront Drive, Suite 300
     Los Angeles, CA 90094-2536
     United States of America

     Tel:    +1 310 301 5800
     &lt;mailto:iana@iana.org&gt;";

  description
    "The YANG module defines the identities for Maximum Segment
     Identifier (SID) Depth (MSD) Types.

     This YANG module is maintained by IANA and reflects the 'IGP
     MSD-Types' registry.

     Copyright (c) 2025 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

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

     The latest version of this YANG module is available at
     https://www.iana.org/assignments/yang-parameters.";

  revision 2025-01-10 {
    description
      "Initial Version";
    reference
      "RFC 9702: YANG Data Model for Maximum Segment Identifier (SID)
                 Depth Types and MPLS Maximum SID Depth";
  }

  identity msd-base {
    description
      "Base identity for Maximum SID Depth (MSD) Type. The MSD type
       definition is defined in the IANA 'IGP MSD-Types' registry.";
  }

  identity msd-base-mpls {
    base msd-base;
    description
      "Base identity of MSD types for the MPLS data plane.";
  }

  identity base-mpls-imposition-msd {
    base msd-base-mpls;
    description
      "Base MPLS Imposition MSD.";
    reference
      "RFC 8491: Signaling Maximum SID Depth (MSD) Using IS-IS
       RFC 8476: Signaling Maximum SID Depth (MSD) Using OSPF
       RFC 8664: Path Computation Element Communication Protocol
                 (PCEP) Extensions for Segment Routing
       RFC 8814: Signaling Maximum SID Depth (MSD) Using the Border
                 Gateway Protocol - Link State";
  }

  identity erld-msd {
    base msd-base-mpls;
    description
      "msd-erld is defined to advertise the Entropy Readable
       Label Depth (ERLD).";
    reference
      "RFC 8662: Entropy Label for Source Packet Routing in
                 Networking (SPRING) Tunnels
       RFC 9088: Signaling Entropy Label Capability and Entropy
                 Readable Label Depth Using IS-IS";
  }

  identity msd-base-srh {
    base msd-base;
    description
      "Base identity of MSD types for Segment Routing Header (SRH).";
  }

  identity srh-max-sl {
    base msd-base-srh;
    description
      "The Maximum Segments Left MSD type.";
    reference
      "RFC 9352: IS-IS Extensions to Support Segment Routing
                 over the IPv6 Data Plane";
  }

  identity srh-max-end-pop {
    base msd-base-srh;
    description
      "The Maximum End Pop MSD Type.";
    reference
      "RFC 9352: IS-IS Extensions to Support Segment Routing
                 over the IPv6 Data Plane";
  }

  identity srh-max-h-encaps {
    base msd-base-srh;
    description
      "The Maximum H.Encaps MSD Type.";
    reference
      "RFC 9352: IS-IS Extensions to Support Segment Routing
                 over the IPv6 Data Plane";
  }

  identity srh-max-end-d {
    base msd-base-srh;
    description
      "The Maximum End D MSD Type.";
    reference
      "RFC 9352: IS-IS Extensions to Support Segment Routing
                 over the IPv6 Data Plane";
  }
}
</sourcecode>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-mpls-msd-yang">MPLS MSD YANG</name>
        <t indent="0" pn="section-4.2-1">This document also defines a YANG module for MSD extensions 
      <xref target="RFC8476" format="default" sectionFormat="of" derivedContent="RFC8476"/> <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/> to the MPLS base 
      model as defined in <xref target="RFC8960" format="default" sectionFormat="of" derivedContent="RFC8960"/>.
        </t>
        <sourcecode name="ietf-mpls-msd@2025-01-10.yang" type="yang" markers="true" pn="section-4.2-2">
module ietf-mpls-msd {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-msd";
  prefix mpls-msd;

  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing
                 Management (NMDA Version)";
  }
  import ietf-mpls {
    prefix mpls;
    reference
      "RFC 8960: A YANG Data Model for MPLS Base";
  }
  import iana-msd-types {
    prefix iana-msd-types;
  }

  organization
    "IETF Multiprotocol Label Switching (MPLS) Working Group";
  contact
    "WG Web:   &lt;https://datatracker.ietf.org/wg/mpls/&gt;
     WG List:  &lt;mailto:mpls@ietf.org&gt;

     Author:    Yingzhen Qu
               &lt;mailto:yingzhen.ietf@gmail.com&gt;
     Author:    Acee Lindem
               &lt;mailto:acee.ietf@gmail.com&gt;
     Author:    Stephane Litkowski
               &lt;mailto:slitkows.ietf@gmail.com&gt;
     Author:    Jeff Tantsura
               &lt;mailto:jefftant.ietf@gmail.com&gt;

    ";
  description
    "This YANG module augments the base MPLS model, and it is to
     provide support for different types of Maximum SID Depth (MSD).

     This YANG module conforms to the Network Management
     Datastore Architecture (NMDA) as described in RFC 8342.

     Copyright (c) 2025 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC 9702;
     see the RFC itself for full legal notices.";

  revision 2025-01-10 {
    description
      "Initial Version";
    reference
      "RFC 9702: YANG Data Model for Maximum Segment Identifier (SID)
                 Depth Types and MPLS Maximum SID Depth";
  }

  grouping msd-type-value {
    description
      "Grouping for MSD type and value.";
    leaf msd-type {
      type identityref {
        base iana-msd-types:msd-base-mpls;
      }
      description
        "MSD types. The MSD type is defined in IANA 'IGP
         MSD-Types' registry.";
    }
    leaf msd-value {
      type uint8;
      description
        "MSD value, in the range of 0-255. 0 represents the lack
         of ability to support a SID stack of any depth.";
    }
  }
  augment "/rt:routing/mpls:mpls" {
    description
      "This module augments MPLS data model (RFC 8960)
       with Node MSD.";
    container node-msds {
      config false;
      description
        "Maximum SID Depth (MSD) of a node.";
      list node-msd {
        key "msd-type";
        uses msd-type-value;
        description
          "List of different types of Node MSDs. For the same
           type, the value of Node MSD is the smallest among Link MSD
           values.";
      }
    }
  }

  augment "/rt:routing/mpls:mpls/mpls:interfaces/mpls:interface" {
    description
      "This module augments MPLS data model (RFC 8960)
       with Link MSD.";
    container link-msds {
      config false;
      description
        "Maximum SID Depth (MSD) of an interface.";
      list link-msd {
        key "msd-type";
        uses msd-type-value;
        description
          "List of different types of MSDs on the link.";
      }
    }
  }
}
</sourcecode>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">

      The YANG modules specified in this document define a schema for data
      that is designed to be accessed via network management protocols such as
      NETCONF <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> or RESTCONF <xref target="RFC8040" format="default" sectionFormat="of" derivedContent="RFC8040"/>.  
The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) <xref target="RFC6242" format="default" sectionFormat="of" derivedContent="RFC6242"/>.  The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS
<xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/>.</t>
      <t indent="0" pn="section-5-2">The Network Configuration Access Control Model (NACM) <xref target="RFC8341" format="default" sectionFormat="of" derivedContent="RFC8341"/> provides the 
      means to restrict access for particular NETCONF or RESTCONF users to a
      pre-configured subset of all available NETCONF or RESTCONF protocol 
      operations and content.</t>
      <t indent="0" pn="section-5-3">Some of the readable data nodes in the ietf-mpls-msd YANG module
      may be considered sensitive or vulnerable in some network environments. It is
      thus important to control read access (e.g., via get, get-config, or notification)
      to these data nodes. These are the
      subtrees and data nodes and their sensitivity/vulnerability:
      </t>
      <t indent="3" pn="section-5-4">/rt:routing/mpls:mpls/msd/node-msds</t>
      <t indent="3" pn="section-5-5">/rt:routing/mpls:mpls/msd/link-msds</t>
      <t indent="3" pn="section-5-6">Exposure of the node's maximum SID depth may be useful in mounting a
          Denial-of-Service (DoS) attack by sending packets to the node that 
          the router can't process.</t>
      <t indent="0" pn="section-5-7">
      The iana-msd-types YANG module defines a set of identities that mirror
      the IANA "IGP MSD-Types" registry. These identities are intended to be reused
      by other YANG modules. The module by itself does not expose any data nodes
      that are writable or readable. As such, there are no additional security
      issues related to this YANG module that need to be considered.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-registering-yang-modules">Registering YANG Modules</name>
        <t indent="0" pn="section-6.1-1">This document registers URIs in the IETF XML registry 
   as defined in <xref target="RFC3688" format="default" sectionFormat="of" derivedContent="RFC3688"/>.  
   The following registrations have been made:
        </t>
        <dl spacing="compact" indent="3" newline="false" pn="section-6.1-2">
          <dt pn="section-6.1-2.1">URI:</dt>
          <dd pn="section-6.1-2.2">urn:ietf:params:xml:ns:yang:iana-msd-types</dd>
          <dt pn="section-6.1-2.3">Registrant Contact:</dt>
          <dd pn="section-6.1-2.4">The IESG.</dd>
          <dt pn="section-6.1-2.5">XML:</dt>
          <dd pn="section-6.1-2.6">N/A; the requested URI is an XML namespace.</dd>
        </dl>
        <dl spacing="compact" indent="3" newline="false" pn="section-6.1-3">
          <dt pn="section-6.1-3.1">URI:</dt>
          <dd pn="section-6.1-3.2">urn:ietf:params:xml:ns:yang:ietf-mpls-msd</dd>
          <dt pn="section-6.1-3.3">Registrant Contact:</dt>
          <dd pn="section-6.1-3.4">The IESG.</dd>
          <dt pn="section-6.1-3.5">XML:</dt>
          <dd pn="section-6.1-3.6">N/A; the requested URI is an XML namespace.</dd>
        </dl>
        <t indent="0" pn="section-6.1-4">This document registers the YANG modules in the "YANG Module Names"
   registry as defined in <xref target="RFC6020" format="default" sectionFormat="of" derivedContent="RFC6020"/>.
        </t>
        <dl spacing="compact" indent="3" newline="false" pn="section-6.1-5">
          <dt pn="section-6.1-5.1">Name:</dt>
          <dd pn="section-6.1-5.2">iana-msd-types</dd>
          <dt pn="section-6.1-5.3">Maintained by IANA?</dt>
          <dd pn="section-6.1-5.4">Y</dd>
          <dt pn="section-6.1-5.5">Namespace:</dt>
          <dd pn="section-6.1-5.6">urn:ietf:params:xml:ns:yang:iana-msd-types</dd>
          <dt pn="section-6.1-5.7">Prefix:</dt>
          <dd pn="section-6.1-5.8">iana-msd-types</dd>
          <dt pn="section-6.1-5.9">Reference:</dt>
          <dd pn="section-6.1-5.10">RFC 9702</dd>
        </dl>
        <dl spacing="compact" indent="3" newline="false" pn="section-6.1-6">
          <dt pn="section-6.1-6.1">Name:</dt>
          <dd pn="section-6.1-6.2">ietf-mpls-msd</dd>
          <dt pn="section-6.1-6.3">Maintained by IANA?</dt>
          <dd pn="section-6.1-6.4">N</dd>
          <dt pn="section-6.1-6.5">Namespace:</dt>
          <dd pn="section-6.1-6.6">urn:ietf:params:xml:ns:yang:ietf-mpls-msd</dd>
          <dt pn="section-6.1-6.7">Prefix:</dt>
          <dd pn="section-6.1-6.8">mpls-msd</dd>
          <dt pn="section-6.1-6.9">Reference:</dt>
          <dd pn="section-6.1-6.10">RFC 9702</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-iana-msd-types-module-2">IANA MSD-Types Module</name>
        <t indent="0" pn="section-6.2-1">This document defines the initial version of the IANA-maintained
      "iana-msd-types" YANG module (<xref target="iana-msd-types" format="default" sectionFormat="of" derivedContent="Section 4.1"/>). The latest
      version of the YANG module is available from the "YANG Parameters"
      registry <xref target="IANA-YANG-Parameters" format="default" sectionFormat="of" derivedContent="IANA-YANG-Parameters"/>.</t>
        <t indent="0" pn="section-6.2-2">
      IANA has added this note to the "YANG Module Names" registry:
        </t>
        <blockquote pn="section-6.2-3">
          <t indent="0" pn="section-6.2-3.1">New values must not be directly added to the "iana-msd-types" YANG module. They must instead be added to the "IGP MSD-Types" registry in the "Interior Gateway Protocol (IGP) Parameters" registry group <xref target="IANA-IGP-MSD-Types" format="default" sectionFormat="of" derivedContent="IANA-IGP-MSD-Types"/>.</t>
        </blockquote>
        <t indent="0" pn="section-6.2-4">
      The identities defined in the iana-msd-types YANG module are organized hierarchically
      based on the data plane. In this initial version, only MPLS and SRv6 data
      planes are supported, hence "msd-base-mpls" and "msd-base-srh" are defined.
      When a new data plane is added to the "IGP MSD-Types" registry, a new "identity"
      statement should be added to the "iana-msd-types" YANG module. The name of the
      "identity" is the prefix "msd-base-" plus a lowercase version of the data plane name.
      The identity statement should have the following sub-statements defined:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-6.2-5">
          <dt pn="section-6.2-5.1">"base":</dt>
          <dd pn="section-6.2-5.2">Contains 'msd-base'.</dd>
          <dt pn="section-6.2-5.3">"description":</dt>
          <dd pn="section-6.2-5.4">Replicates the description from "msd-base-mpls" and changes the corresponding data plane name.</dd>
          <dt pn="section-6.2-5.5">"reference":</dt>
          <dd pn="section-6.2-5.6">Replicates the reference from
            the registry with the title of the document added.</dd>
        </dl>
        <t indent="0" pn="section-6.2-6">
      When an MSD type is added to the "IGP MSD-Types" registry, a new "identity"
      statement must be added to the "iana-msd-types" YANG module. The name of the
      "identity" is a lowercase version of the type name provided in the name with
      the space replaced with "-". The "identity" statement should have the
      following sub-statements defined:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-6.2-7">
          <dt pn="section-6.2-7.1">"base":</dt>
          <dd pn="section-6.2-7.2">Contains the base name of the corresponding data plane.</dd>
          <dt pn="section-6.2-7.3">"description":</dt>
          <dd pn="section-6.2-7.4">Replicates the name from the registry.</dd>
          <dt pn="section-6.2-7.5">"reference":</dt>
          <dd pn="section-6.2-7.6">Replicates the reference from
            the registry with the title of the document added.</dd>
        </dl>
        <t indent="0" pn="section-6.2-8">Unassigned or reserved values are not present in the module.</t>
        <t indent="0" pn="section-6.2-9">When the "iana-msd-types" YANG module is updated, a new "revision"
        statement with a unique revision date must be added in front of the
        existing revision statements.</t>
        <t indent="0" pn="section-6.2-10">
      IANA has added a "Data Plane" column to the 
     "IGP MSD-Types" registry. This will unequivocally identify the 
     base identity for MSD-Types. The values for the "Data Plane"
     column for existing MSD-Types are: </t>
        <table anchor="tab-1" align="center" pn="table-1">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Data Plane</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Base MPLS Imposition MSD</td>
              <td align="left" colspan="1" rowspan="1">MPLS</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">ERLD-MSD</td>
              <td align="left" colspan="1" rowspan="1">MPLS</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9088" format="default" sectionFormat="of" derivedContent="RFC9088"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3-40</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">41</td>
              <td align="left" colspan="1" rowspan="1">SRH Max SL</td>
              <td align="left" colspan="1" rowspan="1">SRv6</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">42</td>
              <td align="left" colspan="1" rowspan="1">SRH Max End Pop</td>
              <td align="left" colspan="1" rowspan="1">SRv6</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">43</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">44</td>
              <td align="left" colspan="1" rowspan="1">SRH Max H.encaps</td>
              <td align="left" colspan="1" rowspan="1">SRv6</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">45</td>
              <td align="left" colspan="1" rowspan="1">SRH Max End</td>
              <td align="left" colspan="1" rowspan="1">SRv6</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46-250</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">251-254</td>
              <td align="left" colspan="1" rowspan="1">Experimental Use</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/></td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-6.2-12">
        IANA has added this note to <xref target="IANA-IGP-MSD-Types" format="default" sectionFormat="of" derivedContent="IANA-IGP-MSD-Types"/>:
        </t>
        <blockquote pn="section-6.2-13">
          <t indent="0" pn="section-6.2-13.1">When this registry is modified, the YANG module "iana-msd-types"
          must be updated as defined in RFC 9702.</t>
        </blockquote>
      </section>
    </section>
  </middle>
  <back>
    <references pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references pn="section-7.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="IANA-IGP-MSD-Types" target="https://www.iana.org/assignments/igp-parameters" quoteTitle="true" derivedAnchor="IANA-IGP-MSD-Types">
          <front>
            <title>IGP MSD-Types</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="IANA-YANG-Parameters" target="https://www.iana.org/assignments/yang-parameters" quoteTitle="true" derivedAnchor="IANA-YANG-Parameters">
          <front>
            <title>YANG Module Names</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688" quoteTitle="true" derivedAnchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t indent="0">This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020" quoteTitle="true" derivedAnchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t indent="0">YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" quoteTitle="true" derivedAnchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t indent="0">The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC6242" target="https://www.rfc-editor.org/info/rfc6242" quoteTitle="true" derivedAnchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t indent="0">This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950" quoteTitle="true" derivedAnchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t indent="0">YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040" quoteTitle="true" derivedAnchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" quoteTitle="true" derivedAnchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t indent="0">This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8342" target="https://www.rfc-editor.org/info/rfc8342" quoteTitle="true" derivedAnchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC8349" target="https://www.rfc-editor.org/info/rfc8349" quoteTitle="true" derivedAnchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t indent="0">The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" quoteTitle="true" derivedAnchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t indent="0">This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t indent="0">This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8476" target="https://www.rfc-editor.org/info/rfc8476" quoteTitle="true" derivedAnchor="RFC8476">
          <front>
            <title>Signaling Maximum SID Depth (MSD) Using OSPF</title>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="U. Chunduri" initials="U." surname="Chunduri"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <date month="December" year="2018"/>
            <abstract>
              <t indent="0">This document defines a way for an Open Shortest Path First (OSPF) router to advertise multiple types of supported Maximum SID Depths (MSDs) at node and/or link granularity. Such advertisements allow entities (e.g., centralized controllers) to determine whether a particular Segment Identifier (SID) stack can be supported in a given network. This document only refers to the Signaling MSD as defined in RFC 8491, but it defines an encoding that can support other MSD types. Here, the term "OSPF" means both OSPFv2 and OSPFv3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8476"/>
          <seriesInfo name="DOI" value="10.17487/RFC8476"/>
        </reference>
        <reference anchor="RFC8491" target="https://www.rfc-editor.org/info/rfc8491" quoteTitle="true" derivedAnchor="RFC8491">
          <front>
            <title>Signaling Maximum SID Depth (MSD) Using IS-IS</title>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="U. Chunduri" initials="U." surname="Chunduri"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <date month="November" year="2018"/>
            <abstract>
              <t indent="0">This document defines a way for an Intermediate System to Intermediate System (IS-IS) router to advertise multiple types of supported Maximum SID Depths (MSDs) at node and/or link granularity. Such advertisements allow entities (e.g., centralized controllers) to determine whether a particular Segment ID (SID) stack can be supported in a given network. This document only defines one type of MSD: Base MPLS Imposition. However, it defines an encoding that can support other MSD types. This document focuses on MSD use in a network that is Segment Routing (SR) enabled, but MSD may also be useful when SR is not enabled.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8491"/>
          <seriesInfo name="DOI" value="10.17487/RFC8491"/>
        </reference>
        <reference anchor="RFC8960" target="https://www.rfc-editor.org/info/rfc8960" quoteTitle="true" derivedAnchor="RFC8960">
          <front>
            <title>A YANG Data Model for MPLS Base</title>
            <author fullname="T. Saad" initials="T." surname="Saad"/>
            <author fullname="K. Raza" initials="K." surname="Raza"/>
            <author fullname="R. Gandhi" initials="R." surname="Gandhi"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="V. Beeram" initials="V." surname="Beeram"/>
            <date month="December" year="2020"/>
            <abstract>
              <t indent="0">This document contains a specification of the MPLS base YANG data model. The MPLS base YANG data model serves as a base framework for configuring and managing an MPLS switching subsystem on an MPLS-enabled router. It is expected that other MPLS YANG data models (e.g., MPLS Label Switched Path (LSP) static, LDP, or RSVP-TE YANG data models) will augment the MPLS base YANG data model.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8960"/>
          <seriesInfo name="DOI" value="10.17487/RFC8960"/>
        </reference>
        <reference anchor="RFC9088" target="https://www.rfc-editor.org/info/rfc9088" quoteTitle="true" derivedAnchor="RFC9088">
          <front>
            <title>Signaling Entropy Label Capability and Entropy Readable Label Depth Using IS-IS</title>
            <author fullname="X. Xu" initials="X." surname="Xu"/>
            <author fullname="S. Kini" initials="S." surname="Kini"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="M. Bocci" initials="M." surname="Bocci"/>
            <date month="August" year="2021"/>
            <abstract>
              <t indent="0">Multiprotocol Label Switching (MPLS) has defined a mechanism to load-balance traffic flows using Entropy Labels (EL). An ingress Label Switching Router (LSR) cannot insert ELs for packets going into a given Label Switched Path (LSP) unless an egress LSR has indicated via signaling that it has the capability to process ELs, referred to as the Entropy Label Capability (ELC), on that LSP. In addition, it would be useful for ingress LSRs to know each LSR's capability for reading the maximum label stack depth and performing EL-based load-balancing, referred to as Entropy Readable Label Depth (ERLD). This document defines a mechanism to signal these two capabilities using IS-IS and Border Gateway Protocol - Link State (BGP-LS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9088"/>
          <seriesInfo name="DOI" value="10.17487/RFC9088"/>
        </reference>
        <reference anchor="RFC9352" target="https://www.rfc-editor.org/info/rfc9352" quoteTitle="true" derivedAnchor="RFC9352">
          <front>
            <title>IS-IS Extensions to Support Segment Routing over the IPv6 Data Plane</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">The Segment Routing (SR) architecture allows a flexible definition of the end-to-end path by encoding it as a sequence of topological elements called "segments". It can be implemented over the MPLS or the IPv6 data plane. This document describes the IS-IS extensions required to support SR over the IPv6 data plane.</t>
              <t indent="0">This document updates RFC 7370 by modifying an existing registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9352"/>
          <seriesInfo name="DOI" value="10.17487/RFC9352"/>
        </reference>
      </references>
      <references pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" quoteTitle="true" derivedAnchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8662" target="https://www.rfc-editor.org/info/rfc8662" quoteTitle="true" derivedAnchor="RFC8662">
          <front>
            <title>Entropy Label for Source Packet Routing in Networking (SPRING) Tunnels</title>
            <author fullname="S. Kini" initials="S." surname="Kini"/>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">Segment Routing (SR) leverages the source-routing paradigm. A node steers a packet through an ordered list of instructions, called segments. Segment Routing can be applied to the Multiprotocol Label Switching (MPLS) data plane. Entropy labels (ELs) are used in MPLS to improve load-balancing. This document examines and describes how ELs are to be applied to Segment Routing MPLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8662"/>
          <seriesInfo name="DOI" value="10.17487/RFC8662"/>
        </reference>
        <reference anchor="RFC8664" target="https://www.rfc-editor.org/info/rfc8664" quoteTitle="true" derivedAnchor="RFC8664">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="J. Hardwick" initials="J." surname="Hardwick"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">Segment Routing (SR) enables any head-end node to select any path without relying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only on "segments" that are advertised by link-state Interior Gateway Protocols (IGPs). An SR path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, or a Path Computation Element (PCE). This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) that allow a stateful PCE to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Computation Client (PCC) to request a path subject to certain constraints and optimization criteria in SR networks.</t>
              <t indent="0">This document updates RFC 8408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8664"/>
          <seriesInfo name="DOI" value="10.17487/RFC8664"/>
        </reference>
        <reference anchor="RFC8814" target="https://www.rfc-editor.org/info/rfc8814" quoteTitle="true" derivedAnchor="RFC8814">
          <front>
            <title>Signaling Maximum SID Depth (MSD) Using the Border Gateway Protocol - Link State</title>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="U. Chunduri" initials="U." surname="Chunduri"/>
            <author fullname="K. Talaulikar" initials="K." surname="Talaulikar"/>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="N. Triantafillis" initials="N." surname="Triantafillis"/>
            <date month="August" year="2020"/>
            <abstract>
              <t indent="0">This document defines a way for a Border Gateway Protocol - Link
State (BGP-LS) speaker to advertise multiple types of supported
Maximum SID Depths (MSDs) at node and/or link granularity.</t>
              <t indent="0">Such advertisements allow entities (e.g., centralized controllers) to
determine whether a particular Segment Identifier (SID) stack can be
supported in a given network.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8814"/>
          <seriesInfo name="DOI" value="10.17487/RFC8814"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The YANG data model was developed using the suite of YANG tools written
      and maintained by numerous authors.</t>
      <t indent="0" pn="section-appendix.a-2">We would like to thank <contact fullname="Jan Lindblad"/>, <contact fullname="Tom Petch"/>, <contact fullname="Dhruv Dhody"/>, <contact fullname="Mohamed Boucadair"/>, and <contact fullname="Susan Hares"/>
      for their reviews and comments.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Yingzhen Qu" initials="Y" surname="Qu">
        <organization showOnFrontPage="true">Futurewei Technologies</organization>
        <address>
          <email>yingzhen.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Acee Lindem" initials="A." surname="Lindem">
        <organization showOnFrontPage="true">LabN Consulting, L.L.C.</organization>
        <address>
          <email>acee.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Stephane Litkowski" initials="S" surname="Litkowski">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <email>slitkows.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Jeff Tantsura" initials="J" surname="Tantsura">
        <organization showOnFrontPage="true">Nvidia</organization>
        <address>
          <email>jefftant.ietf@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
