<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-lsr-ospf-ls-link-infinity-25" number="10041" ipr="trust200902" obsoletes="" updates="5443, 6987, 8379, 8770" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="6" symRefs="true" sortRefs="true" consensus="true" prepTime="2026-09-19T02:51:54" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lsr-ospf-ls-link-infinity-25" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc10041" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Advertising Unreachable Links in OSPF">Advertising Unreachable Links in OSPF</title>
    <seriesInfo name="RFC" value="10041" stream="IETF"/>
    <author fullname="Liyan Gong" initials="L." surname="Gong">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>gongliyan@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Changwang Lin" initials="C." surname="Lin">
      <organization showOnFrontPage="true">New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author fullname="Acee Lindem" initials="A." surname="Lindem">
      <organization showOnFrontPage="true">Arrcus, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>acee.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Ran Chen" initials="R." surname="Chen">
      <organization showOnFrontPage="true">ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chen.ran@zte.com.cn</email>
      </address>
    </author>
    <date month="09" year="2026"/>
    <area>RTG</area>
    <workgroup>lsr</workgroup>
    <keyword>OSPF</keyword>
    <keyword>ls</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
        OSPF Router Link State Advertisements (LSAs) use fixed-format encodings
        that always include advertised links in the default Shortest Path
        First (SPF) computation. For non-default SPF computations, e.g., Flexible
        Algorithms as described in RFC 9350, advertised OSPF links are
        used in the default SPF computation even if this is not intended.
        In order to advertise these links and not use them in the base SPF
        calculation, the metric LSLinkInfinity (0xffff) is used to specify
        that the link is unreachable. If all OSPF routers in an OSPF area support
        this functionality and have advertised the capability via an area-scoped
        OSPF Router Information LSA, then links advertised with a metric of
        LSLinkInfinity are considered unreachable.
      </t>
      <t indent="0" pn="section-abstract-2">
        MaxReachableLinkMetric (0xfffe) is defined to provide backward compatible
        reachability in specifications that previously specified advertisement
        of MaxLinkMetric (0xffff).
        This document updates RFC 5443, RFC 6987, RFC 8379, and RFC 8770
        with respect to the advertisement of MaxReachableLinkMetric (0xfffe)
        rather than MaxLinkMetric (0xffff).
      </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/rfc10041" 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) 2026 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-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </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-use-cases">Use Cases</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-case-1-traffic-engineering">Case 1: Traffic Engineering</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" 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-case-2-flexible-algorithm">Case 2: Flexible Algorithm</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-lslinkinfinity-based-soluti">LSLinkInfinity-Based Solution</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-unreachable-link-advertisem">Unreachable Link Advertisement</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-unreachable-link-backward-c">Unreachable Link Backward Compatibility</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-stub-router-advertisement-b">Stub Router Advertisement Backward Compatibility</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t indent="0" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-label-distribution-protocol">Label Distribution Protocol (LDP) IGP Synchronization Backward Compatibility</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.5">
                <t indent="0" pn="section-toc.1-1.3.2.5.1"><xref derivedContent="3.5" format="counter" sectionFormat="of" target="section-3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-graceful-link-shutdown">OSPF Graceful Link Shutdown Backward Compatibility</xref></t>
              </li>
            </ul>
          </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-operational-considerations">Operational Considerations</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-configuration-parameters">Configuration Parameters</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-yang-data-model">YANG Data Model</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tree-for-ospf-functional-ca">Tree for OSPF Functional Capability</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tree-for-ospf-advertising-u">Tree for OSPF Advertising Unreachable Links</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-module-for-ospf-functi">IANA Module for OSPF Functional Capability Bits</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.4">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.4.1"><xref derivedContent="4.2.4" format="counter" sectionFormat="of" target="section-4.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-yang-module-for-ospf-functi">YANG Module for OSPF Functional Capability</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.5">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.5.1"><xref derivedContent="4.2.5" format="counter" sectionFormat="of" target="section-4.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-yang-module-for-ospf-advert">YANG Module for OSPF Advertising Unreachable Links</xref></t>
                  </li>
                </ul>
              </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-ospf-router-fun">Registering OSPF Router Functional Capability Bits</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-registering-yang-modules">Registering YANG Modules</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-module-for-ospf-functio">IANA Module for OSPF Functional Capability Bits</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-acknowledgments">Acknowledgments</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-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="Introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
        OSPF Router Link State Advertisements (LSAs) use fixed-format encodings
        that always include advertised links in the default Shortest Path
        First (SPF) computation. For example, a link may be required for
        Traffic Engineering (TE) paths but not intended for hop-by-hop
        routing. Another example is an OSPF link used exclusively by a
        Flexible Algorithm <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> but
        excluded from the default algorithm.
      </t>
      <t indent="0" pn="section-1-2">
        In order to advertise these links as unreachable, the metric
        LSLinkInfinity (0xffff) is used to specify
        that the link is unreachable and OSPF routers supporting this
        specification will exclude the link from SPF calculations (subject to
        backward-compatibility, refer to <xref target="Backward_Compatibility" format="default" sectionFormat="of" derivedContent="Section 3.2"/>).
      </t>
      <t indent="0" pn="section-1-3">
        Stub Router Advertisement <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> defines MaxLinkMetric (0xffff)
        to indicate a router-LSA link should only be used for transit IP
        traffic as a last resort. When an OSPF router supports the Unreachable Link
        capability defined in this document, OSPF stub router links are
        advertised as MaxReachableLinkMetric (0xfffe) rather than
        MaxLinkMetric (0xffff).
        This document updates <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> and <xref target="RFC8770" format="default" sectionFormat="of" derivedContent="RFC8770"/>
        with respect to the advertisement of MaxReachableLinkMetric rather than MaxLinkMetric.
      </t>
      <t indent="0" pn="section-1-4">
        Similarly, Label Distribution Protocol (LDP) IGP Synchronization
        <xref target="RFC5443" format="default" sectionFormat="of" derivedContent="RFC5443"/> specifies OSPF advertisement of MaxLinkMetric (0xffff)
        to indicate that while the OSPF adjacency is in FULL state, LDP has not been
        synchronized between the two neighbors and transit traffic is discouraged. This document
        updates <xref target="RFC5443" format="default" sectionFormat="of" derivedContent="RFC5443"/>  with respect to the advertisement of MaxReachableLinkMetric
        rather than MaxLinkMetric.
      </t>
      <t indent="0" pn="section-1-5">
        Finally, OSPF Graceful Link Shutdown <xref target="RFC8379" format="default" sectionFormat="of" derivedContent="RFC8379"/> specifies OSPF
        advertisement of MaxLinkMetric (0xffff) to indicate that the OSPF link will be taken out
        of service and transit traffic is discouraged. This document
        updates <xref target="RFC8379" format="default" sectionFormat="of" derivedContent="RFC8379"/>  with respect to the advertisement of
        MaxReachableLinkMetric rather than MaxLinkMetric.
      </t>
      <section anchor="Requirements_Language" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="Use_Cases" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-use-cases">Use Cases</name>
      <section anchor="Case_1" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-case-1-traffic-engineering">Case 1: Traffic Engineering</name>
        <t indent="0" pn="section-2.1-1">
          A network topology is shown in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>.  The OSPF link between Node A and E is
          only to be used for Traffic Engineering. Since the OSPF link is advertised
          by default, it will be included in the base SPF calculation for the default topology
          and may be used for hop-by-hop routing in the default topology.
        </t>
        <figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-network-topology">Network Topology</name>
          <artwork align="center" pn="section-2.1-2.1">
    TE Link
   ---------
  /         \
 /           \
A------C------E
|      |      |
|      |      |
|      |      |
B------D------F</artwork>
        </figure>
      </section>
      <section anchor="Case_2" numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-case-2-flexible-algorithm">Case 2: Flexible Algorithm</name>
        <t indent="0" pn="section-2.2-1">
          A network topology is shown in <xref target="fig2" format="default" sectionFormat="of" derivedContent="Figure 2"/>. The links between Nodes A
          and B and between C and D are to be used exclusively for a
          Flex-Algorithm <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> devoted to specific traffic.
          These links have an Extended
          Administrative Group (EAG) <xref target="RFC7308" format="default" sectionFormat="of" derivedContent="RFC7308"/> attribute specifying
          the "Red" color.
        </t>
        <figure anchor="fig2" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-network-topology-2">Network Topology</name>
          <artwork align="center" pn="section-2.2-2.1">
 ******
A------C------E
|*     |*     |
|*     |*     |        ******: "Red" link
|*     |*     |
B------D------F
 ******</artwork>
        </figure>
        <t indent="0" pn="section-2.2-3">
          Flex-Algorithm 128 is enabled on Nodes A, B, C, and D, with an EAG
          rule including "Red", and the Metric-Type is designated to be a type
          other than the OSPF metric. OSPF will compute routes for Flex-Algorithm
          128 using these links. The topology associated with Flex-Algorithm 128
          is shown in <xref target="fig3" format="default" sectionFormat="of" derivedContent="Figure 3"/>.
        </t>
        <figure anchor="fig3" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-topology-of-flex-algorithm-">Topology of Flex-Algorithm 128</name>
          <artwork align="center" pn="section-2.2-4.1">
A******C
*      *
*      *
*      *
B******D</artwork>
        </figure>
        <t indent="0" pn="section-2.2-5">
          The "Red" links are used by Flex-Algorithm
          128 calculation.  However, these
          "Red" links are also included in the default algorithm
          calculation <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> since they are reachable.
          Note that links used by the default algorithm are omitted from <xref target="fig3" format="default" sectionFormat="of" derivedContent="Figure 3"/>
          for clarity.
        </t>
        <t indent="0" pn="section-2.2-6">
          If the OSPF metrics for all the "Red" links are advertised as
          unreachable, they will be excluded from the default SPF calculation
          as shown in <xref target="fig4" format="default" sectionFormat="of" derivedContent="Figure 4"/>. This allows the "Red" links from A to B and C to D
          to be used exclusively by the Flex-Algorithm 128 calculation.
        </t>
        <figure anchor="fig4" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-base-spf-topology-excluding">Base SPF Topology Excluding Unreachable Links</name>
          <artwork align="center" pn="section-2.2-7.1">
A------C------E
              |
              |
              |
B------D------F</artwork>
        </figure>
      </section>
    </section>
    <section anchor="Solution_based_on_LSLinkInfinity" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-lslinkinfinity-based-soluti">LSLinkInfinity-Based Solution</name>
      <section anchor="Unreachable_link" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-unreachable-link-advertisem">Unreachable Link Advertisement</name>
        <t indent="0" pn="section-3.1-1">
        This document specifies that if the OSPF metric of a link is
        advertised as LSLinkInfinity (0xffff), it <bcp14>MUST NOT</bcp14> be considered
        during the associated SPF computation. This applies to both the
        Flex-Algorithm SPF <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>  and the base SPF as long as LSLinkInfinity is
        specified for the OSPF metric.
        </t>
        <t indent="0" pn="section-3.1-2">
        While the interpretation of LSLinkInfinity is only required in the base
        topology as other topologies are optional <xref target="RFC4915" format="default" sectionFormat="of" derivedContent="RFC4915"/>,
        OSPF routers supporting this specification <bcp14>MUST</bcp14> consistently interpret
        LSLinkInfinity as unreachable during the associated SPF computation.
        Interpretation of LSLinkInfinity as unreachable is also applicable to
        Flex-Algorithm SPF computations <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> that use
        the OSPF link metric.
        </t>
        <t indent="0" pn="section-3.1-3">
        An OSPF metric with LSLinkInfinity indicating a link is unreachable is
        applicable to the following TLVs/LSAs:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.1-4">
          <li pn="section-3.1-4.1">
            <t indent="0" pn="section-3.1-4.1.1">
            The Router-LSA <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/>
            </t>
          </li>
          <li pn="section-3.1-4.2">
            <t indent="0" pn="section-3.1-4.2.1">
            The Router-Link TLV of OSPFv3 E-Router-LSA <xref target="RFC8362" format="default" sectionFormat="of" derivedContent="RFC8362"/>
            </t>
          </li>
        </ul>
      </section>
      <section anchor="Backward_Compatibility" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-unreachable-link-backward-c">Unreachable Link Backward Compatibility</name>
        <t indent="0" pn="section-3.2-1">
          Prior to this specification, OSPF treated links with an advertised metric of
          LSLinkInfinity as reachable <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/>. Hence, partial deployment of
          this specification may result in routing loops due to inconsistent
          interpretation of LSLinkInfinity. For example, in the network shown
          in <xref target="fig5" format="default" sectionFormat="of" derivedContent="Figure 5"/>, link D-F is advertised with
          LSLinkInfinity (65535/0xffff). Router B supports
          LSLinkInfinity as unreachable, but router A doesn't.
          Router A considers link D-F as
          reachable, and the shortest path to F is A-&gt;B-&gt;D-&gt;F. Router B
          considers link D-F as unreachable, and the shortest path to F is
          B-&gt;A-&gt;C-&gt;E-&gt;F. As a result, A forwards the packets to B, but B
          returns them to A, which results in a routing loop.
        </t>
        <figure anchor="fig5" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-inconsistent-lslinkinfinity">Inconsistent LSLinkInfinity Interpretation Causing Loops</name>
          <artwork align="center" pn="section-3.2-2.1">
      40000  40000      Traffic: A-&gt;F
    A------C------E       A considers link D-F as reachable
    |             |         A's shortest path to F: A-&gt;B-&gt;D-&gt;F
   5|             |5      B considers link D-F as unreachable
    |             |         B's shortest path to F: B-&gt;A-&gt;C-&gt;E-&gt;F
    B------D------F
        5    65535</artwork>
        </figure>
        <t indent="0" pn="section-3.2-3">
          To provide backward compatibility, this document specifies that
          routers supporting LSLinkInfinity for unreachable links
          support advertisement of an area-scoped Router Information LSA with a Router
          Functional Capabilities TLV <xref target="RFC7770" format="default" sectionFormat="of" derivedContent="RFC7770"/> that includes the following
          Router Functional Capability Bit. The value of the bit is controlled by
          configuration as specified in <xref target="Config" format="default" sectionFormat="of" derivedContent="Section 4.1"/>.
        </t>
        <table align="center" pn="table-1">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit</th>
              <th align="left" colspan="1" rowspan="1">Capabilities</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Unreachable Link</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-3.2-5">
          OSPF routers <bcp14>MUST NOT</bcp14> treat links with an advertised metric of
          LSLinkInfinity as unreachable unless all routers in the OSPF area,
          i.e., all routers with router-LSAs in the area Link State Database (LSDB),
          have advertised this capability in an OSPFv2 Router Information Opaque LSA
          or an OSPFv3 Router Information LSA.
          If all OSPF routers in the area have advertised this capability,
          then links with an advertised metric of LSLinkInfinity <bcp14>MUST</bcp14>
          be treated as unreachable. When the number of routers in the area
          not supporting the Unreachable Link capability changes to 0 or
          from 0 to greater than 0, all OSPF routers in the area <bcp14>MUST</bcp14>
          recalculate their routes.
        </t>
        <t indent="0" pn="section-3.2-6">
          In normal operation, it is possible that an area-scoped OSPF Router Information LSA will fail to reach
          all routers in an area in a timely manner. For example, if a new router not supporting the
          Unreachable Link capability joins an area that previously only had OSPF routers
          advertising support of the Unreachable Link capability, then it may take some time for
          the OSPF Router Information LSA to propagate to all routers. While it is propagating, the routers in the
          area will gradually detect the presence of a router that does not support the capability
          and will revert to treating links with MaxLinkMetric as being reachable.
          During the propagation time, this inconsistency of MaxLinkMetric interpretation between
          OSPF routers can result in transient routing loops.
        </t>
      </section>
      <section anchor="Stub_Router_Advertisement_Backward_Compatibility" numbered="true" removeInRFC="false" toc="include" pn="section-3.3">
        <name slugifiedName="name-stub-router-advertisement-b">Stub Router Advertisement Backward Compatibility</name>
        <t indent="0" pn="section-3.3-1">
          Stub Router Advertisement <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> defines MaxLinkMetric (0xffff)
          to indicate a router-LSA link should not be used for transit
          traffic.
        </t>
        <t indent="0" pn="section-3.3-2">
          When an OSPF router
          supports the Unreachable Link capability defined in this
          document, the OSPF stub router MaxLinkMetric (0xffff) <bcp14>MUST</bcp14> be
          updated to MaxReachableLinkMetric (0xfffe).
          This document updates <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> and <xref target="RFC8770" format="default" sectionFormat="of" derivedContent="RFC8770"/>
          with respect to the advertisement of MaxReachableLinkMetric rather than
          MaxLinkMetric.
        </t>
        <t indent="0" pn="section-3.3-3">
          When an OSPF router supports OSPF Stub Router Advertisement <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> and the Unreachable Link
          capability defined in this document, it <bcp14>MUST</bcp14> support
          advertisement of all its non-stub links with a link cost of MaxReachableLinkMetric (0xfffe).
          Since MaxLinkMetric will not be used to indicate that a link is unreachable unless all OSPF
          routers in the area support this specification as specified in
          <xref target="Backward_Compatibility" format="default" sectionFormat="of" derivedContent="Section 3.2"/>, all routers in the area will
          also support the usage of MaxReachableLinkMetric to discourage the usage of stub router
          links for transit traffic. If there are any OSPF routers in the area that do not support
          the Unreachable Link capability, then all OSPF routers in the area will
          treat links advertised with a cost MaxLinkMetric as reachable
          (<xref target="Backward_Compatibility" format="default" sectionFormat="of" derivedContent="Section 3.2"/>).
        </t>
      </section>
      <section anchor="LDP_IGP_SYNC_Backward_Compatibility" numbered="true" removeInRFC="false" toc="include" pn="section-3.4">
        <name slugifiedName="name-label-distribution-protocol">Label Distribution Protocol (LDP) IGP Synchronization Backward Compatibility</name>
        <t indent="0" pn="section-3.4-1">
          LDP IGP Synchronization <xref target="RFC5443" format="default" sectionFormat="of" derivedContent="RFC5443"/> specifies OSPF advertisement
          of MaxLinkMetric (0xffff) to indicate that while the OSPF adjacency is in FULL state,
          LDP has not been synchronized between the two neighbors and transit IP traffic
          is discouraged.
          When an OSPF router supports the Unreachable Link capability
          defined in this document, the usage of OSPF MaxLinkMetric (0xffff) to discourage
          usage of the link until LDP is "fully operational" <bcp14>MUST</bcp14> be updated to
          MaxReachableLinkMetric (0xfffe). It is important to keep the link in the topology to
          allow IP traffic to use the link as a last resort in case of LDP packets between
          OSPF router loopbacks addresses or a network failure.
          This document updates <xref target="RFC5443" format="default" sectionFormat="of" derivedContent="RFC5443"/>
          with respect to the advertisement of MaxReachableLinkMetric rather than
          MaxLinkMetric.
        </t>
      </section>
      <section anchor="OSPF_Graceful_Link_Shutdown_Backward_Compatibility" numbered="true" removeInRFC="false" toc="include" pn="section-3.5">
        <name slugifiedName="name-ospf-graceful-link-shutdown">OSPF Graceful Link Shutdown Backward Compatibility</name>
        <t indent="0" pn="section-3.5-1">
          OSPF Graceful Link <xref target="RFC8379" format="default" sectionFormat="of" derivedContent="RFC8379"/> specifies OSPF advertisement
          of MaxLinkMetric (0xffff) to indicate that the link is going to be taken down
          and transit traffic is discouraged.
          When an OSPF router supports the Unreachable Link capability
          defined in this document, the usage of OSPF MaxLinkMetric (0xffff) to discourage
          usage of a link prior to it being taken out of service <bcp14>MUST</bcp14> be updated to
          MaxReachableLinkMetric (0xfffe). It is important to keep the link in the topology to
          allow IP traffic to use the link as a last resort prior to planned shutdown.
          This document updates <xref target="RFC8379" format="default" sectionFormat="of" derivedContent="RFC8379"/>
          with respect to the advertisement of MaxReachableLinkMetric rather than
          MaxLinkMetric.
        </t>
      </section>
    </section>
    <section anchor="Operational_Considerations" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <section anchor="Config" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-configuration-parameters">Configuration Parameters</name>
        <t indent="0" pn="section-4.1-1">
          Support of the Unreachable Link capability <bcp14>MUST</bcp14> be
          configurable. The default <bcp14>MUST</bcp14> be to not advertise the
          capability, i.e., the functional capability in the area-scoped
          OSPF Router Information LSA is false.
        </t>
        <t indent="0" pn="section-4.1-2">
          In some networks, the operator may still want links with maximum
          metric (0xffff) to be treated as reachable. For example, when the cost
          of links is automatically computed based on the inverse of the link's
          bandwidth and there is a mix of low-speed and high-speed links, the
          computation may result in the maximum metric. Hence, implementations
          supporting this document and auto-costing <bcp14>MUST</bcp14> limit the maximum computed
          cost to MaxReachableLinkMetric (0xfffe). An example of auto-costing would be
          to automatically set the link metric to be inversely proportional
          to the link bandwidth (refer to the auto-cost feature in the
          "ietf-ospf" module <xref target="RFC9129" format="default" sectionFormat="of" derivedContent="RFC9129"/>).
        </t>
      </section>
      <section anchor="YANG_Model" numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-yang-data-model">YANG Data Model</name>
        <t indent="0" pn="section-4.2-1">
          This section defines three YANG <xref target="RFC7950" format="default" sectionFormat="of" derivedContent="RFC7950"/> modules.
          The "iana-ospf-functional-cap-bits" module defines
          the identities for OSPF Router Functional Capabilities as per the "OSPF Router Functional Capability Bits"
          IANA registry <xref target="IANA-OSPF-FC-Bits" format="default" sectionFormat="of" derivedContent="IANA-OSPF-FC-Bits"/>.
          The "ietf-ospf-functional-capability" and "ietf-ospf-unreachable-links" modules
          can be used to configure and manage the usage of OSPF LSLinkInfinity for
          unreachable links as defined in this document,
          which augments the OSPF YANG data model <xref target="RFC9129" format="default" sectionFormat="of" derivedContent="RFC9129"/>
          and the YANG data model for Routing Management <xref target="RFC8349" format="default" sectionFormat="of" derivedContent="RFC8349"/>.
        </t>
        <t indent="0" pn="section-4.2-2">This document uses the graphical representation of data models per <xref target="RFC8340" format="default" sectionFormat="of" derivedContent="RFC8340"/>.</t>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.1">
          <name slugifiedName="name-tree-for-ospf-functional-ca">Tree for OSPF Functional Capability</name>
          <t indent="0" pn="section-4.2.1-1">The following shows the tree diagram of the module for OSPF Functional Capability:</t>
          <sourcecode type="yangtree" markers="false" pn="section-4.2.1-2">
module: ietf-ospf-functional-capability
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:areas
            /ospf:area/ospf:interfaces/ospf:interface
            /ospf:database/ospf:link-scope-lsa-type
            /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version
            /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
            /ospf:ri-opaque/ospf:router-capabilities-tlv:
    +--ro router-functional-capabilities
       +--ro functional-capability*   identityref
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:areas
            /ospf:area/ospf:database/ospf:area-scope-lsa-type
            /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
            /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
            /ospf:ri-opaque/ospf:router-capabilities-tlv:
    +--ro router-functional-capabilities
       +--ro functional-capability*   identityref
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:database
            /ospf:as-scope-lsa-type/ospf:as-scope-lsas
            /ospf:as-scope-lsa/ospf:version/ospf:ospfv2
            /ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque
            /ospf:router-capabilities-tlv:
    +--ro router-functional-capabilities
       +--ro functional-capability*   identityref
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:areas
            /ospf:area/ospf:interfaces/ospf:interface
            /ospf:database/ospf:link-scope-lsa-type
            /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version
            /ospf:ospfv3/ospf:ospfv3/ospf:body
            /ospf:router-information/ospf:router-capabilities-tlv:
    +--ro router-functional-capabilities
       +--ro functional-capability*   identityref
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:database
            /ospf:as-scope-lsa-type/ospf:as-scope-lsas
            /ospf:as-scope-lsa/ospf:version/ospf:ospfv3
            /ospf:ospfv3/ospf:body/ospf:router-information
            /ospf:router-capabilities-tlv:
    +--ro router-functional-capabilities
       +--ro functional-capability*   identityref
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:areas
            /ospf:area/ospf:database/ospf:area-scope-lsa-type
            /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
            /ospf:ospfv3/ospf:ospfv3/ospf:body
            /ospf:router-information/ospf:router-capabilities-tlv:
    +--ro router-functional-capabilities
       +--ro functional-capability*   identityref</sourcecode>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.2">
          <name slugifiedName="name-tree-for-ospf-advertising-u">Tree for OSPF Advertising Unreachable Links</name>
          <t indent="0" pn="section-4.2.2-1">The following shows the tree diagram of the module for OSPF Advertising Unreachable Links:</t>
          <sourcecode type="yangtree" markers="false" pn="section-4.2.2-2">
module: ietf-ospf-unreachable-links

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:areas
            /ospf:area:
    +--rw unreachable-link-advertisement
       +--rw enabled?   boolean
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/ospf:ospf/ospf:areas
            /ospf:area/ospf:interfaces/ospf:interface:
    +--rw advertise-unreachable-link?   boolean</sourcecode>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.3">
          <name slugifiedName="name-iana-module-for-ospf-functi">IANA Module for OSPF Functional Capability Bits</name>
          <t indent="0" pn="section-4.2.3-1">
            IANA has created the "OSPF Router Functional Capability Bits" registry
            within the "Open Shortest Path First (OSPF) Parameters" registry group to
            identify OSPF Router Functional Capabilities. This document defines the initial version of the IANA-maintained "iana-ospf-functional-cap-bits" module, which mirrors the IANA "OSPF Router Functional Capability Bits" registry <xref target="IANA-OSPF-FC-Bits" format="default" sectionFormat="of" derivedContent="IANA-OSPF-FC-Bits"/>.
The module will be updated as the "OSPF Router Functional Capability Bits"
registry changes.  The latest version of this YANG module is
 available in the "YANG Module Names” registry
 &lt;<eref target="https://www.iana.org/assignments/yang-parameters" brackets="none"/>&gt;.
          </t>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.4">
          <name slugifiedName="name-yang-module-for-ospf-functi">YANG Module for OSPF Functional Capability</name>
          <t indent="0" pn="section-4.2.4-1">The following is the YANG module for OSPF Functional Capability:</t>
          <sourcecode name="ietf-ospf-functional-capability@2026-09-16.yang" type="yang" markers="true" pn="section-4.2.4-2">
module ietf-ospf-functional-capability {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:"
          + "ietf-ospf-functional-capability";
  prefix ospf-fc;

  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }
  import ietf-ospf {
    prefix ospf;
    reference
      "RFC 9129: YANG Data Model for the OSPF Protocol";
  }
  import iana-ospf-functional-cap-bits {
    prefix iana-ospf-fc-bits;
    reference
      "https://www.iana.org/assignments/ospf-parameters"
    + "#router-functional-capability";
  }

  organization
    "IETF Link State Routing (LSR) Working Group";
  contact
    "WG Web:   &lt;https://datatracker.ietf.org/wg/lsr/&gt;
     WG List:  &lt;mailto:lsr@ietf.org&gt;

     Author:   Yingzhen Qu
               &lt;mailto:yqu@futurewei.com&gt;
     Author:   Acee Lindem
               &lt;mailto:acee.ietf@gmail.com&gt;
     Author:   Liyan Gong
               &lt;mailto:gongliyan@chinamobile.com&gt;
     Author:   Weiqiang Cheng
               &lt;mailto:chengweiqiang@chinamobile.com&gt;
     Author:   Changwang Lin
               &lt;mailto:linchangwang.04414@h3c.com&gt;
     Author:   Ran Chen
               &lt;mailto:chen.ran@zte.com.cn&gt;";
  description
    "This YANG module defines the operational state for
     Functional Capability in OSPF as defined in RFC 7770.

     Copyright (c) 2026 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).

     All revisions of IETF and IANA published modules can be found
     at the 'YANG Parameters' registry group
     (https://www.iana.org/assignments/yang-parameters).

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

  revision 2026-09-16 {
    description
      "Initial revision.";
    reference
      "RFC 10041: Advertising Unreachable Links in OSPF";
  }

  grouping router-functional-capabilities {
    description
      "Grouping for OSPF router capabilities TLV types.";
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
    container router-functional-capabilities {
      leaf-list functional-capability {
        type identityref {
          base iana-ospf-fc-bits:functional-capability;
        }
        description
          "List of Router Functional Capabilities.  This list
           contains the identities for functional capabilities
           supported by the router.";
      }
      description
        "OSPF Router Functional identity definitions.";
    }
  }

  augment "/rt:routing/"
        + "rt:control-plane-protocols/rt:control-plane-protocol/"
        + "ospf:ospf/ospf:areas/ospf:area/"
        + "ospf:interfaces/ospf:interface/ospf:database/"
        + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
        + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/"
        + "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque/"
        + "ospf:router-capabilities-tlv" {
    when "derived-from-or-self(/rt:routing/"
       + "rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv2')" {
      description
        "This augmentation is only valid for OSPFv2.";
    }
    description
      "OSPFv2 Opaque Link-Scoped Router-Information LSA Router
       Functional Capabilities.";
    uses router-functional-capabilities;
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
  }

  augment "/rt:routing/"
        + "rt:control-plane-protocols/rt:control-plane-protocol/"
        + "ospf:ospf/ospf:areas/"
        + "ospf:area/ospf:database/"
        + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
        + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
        + "ospf:ospfv2/ospf:body/ospf:opaque/"
        + "ospf:ri-opaque/ospf:router-capabilities-tlv" {
    when "derived-from-or-self(/rt:routing/"
       + "rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv2')" {
      description
        "This augmentation is only valid for OSPFv2.";
    }
    description
      "OSPFv2 Opaque Area-Scoped Router-Information LSA Router
       Functional Capabilities.";
    uses router-functional-capabilities;
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
  }

  augment "/rt:routing/"
        + "rt:control-plane-protocols/rt:control-plane-protocol/"
        + "ospf:ospf/ospf:database/"
        + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
        + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/"
        + "ospf:ospfv2/ospf:body/ospf:opaque/"
        + "ospf:ri-opaque/ospf:router-capabilities-tlv" {
    when "derived-from-or-self(/rt:routing/"
       + "rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv2')" {
      description
        "This augmentation is only valid for OSPFv2.";
    }
    description
      "OSPFv2 Opaque AS-Scoped Router-Information LSA Router
       Functional Capabilities.";
    uses router-functional-capabilities;
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
  }

  augment "/rt:routing/"
        + "rt:control-plane-protocols/rt:control-plane-protocol/"
        + "ospf:ospf/ospf:areas/ospf:area/"
        + "ospf:interfaces/ospf:interface/ospf:database/"
        + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
        + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/"
        + "ospf:ospfv3/ospf:body/ospf:router-information/"
        + "ospf:router-capabilities-tlv" {
    when "derived-from-or-self(/rt:routing/"
       + "rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" {
      description
        "This augmentation is only valid for OSPFv3.";
    }
    description
      "OSPFv3 Link-Scoped Router-Information LSA Router
       Functional Capabilities.";
    uses router-functional-capabilities;
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
  }

  augment "/rt:routing/"
        + "rt:control-plane-protocols/rt:control-plane-protocol/"
        + "ospf:ospf/ospf:database/"
        + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
        + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
        + "ospf:ospfv3/ospf:body/ospf:router-information/"
        + "ospf:router-capabilities-tlv" {
    when "derived-from-or-self(/rt:routing/"
       + "rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" {
      description
        "This augmentation is only valid for OSPFv3.";
    }
    description
      "OSPFv3 AS-Scoped Router-Information LSA Router
       Functional Capabilities.";
    uses router-functional-capabilities;
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
  }

  augment "/rt:routing/"
        + "rt:control-plane-protocols/rt:control-plane-protocol/"
        + "ospf:ospf/ospf:areas/"
        + "ospf:area/ospf:database/"
        + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
        + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
        + "ospf:ospfv3/ospf:body/ospf:router-information/"
        + "ospf:router-capabilities-tlv" {
    when "derived-from-or-self(/rt:routing/"
       + "rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" {
      description
        "This augmentation is only valid for OSPFv3.";
    }
    description
      "OSPFv3 Area-Scoped Router-Information LSA Router
       Functional Capabilities.";
    uses router-functional-capabilities;
    reference
      "RFC 7770: Extensions to OSPF for Advertising Optional
                 Router Capabilities";
  }
}

</sourcecode>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.5">
          <name slugifiedName="name-yang-module-for-ospf-advert">YANG Module for OSPF Advertising Unreachable Links</name>
          <t indent="0" pn="section-4.2.5-1">The following is the YANG module for OSPF Advertising Unreachable Links:</t>
          <sourcecode name="ietf-ospf-unreachable-links@2026-09-16.yang" type="yang" markers="true" pn="section-4.2.5-2">
module ietf-ospf-unreachable-links {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:"
          + "ietf-ospf-unreachable-links";
  prefix ospf-unreach-link;

  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }
  import ietf-ospf {
    prefix ospf;
    reference
      "RFC 9129: YANG Data Model for the OSPF Protocol";
  }

  organization
    "IETF Link State Routing (LSR) Working Group";
  contact
    "WG Web:   &lt;https://datatracker.ietf.org/wg/lsr/&gt;
     WG List:  &lt;mailto:lsr@ietf.org&gt;

     Author:   Yingzhen Qu
               &lt;mailto:yqu@futurewei.com&gt;
     Author:   Acee Lindem
               &lt;mailto:acee.ietf@gmail.com&gt;
     Author:   Liyan Gong
               &lt;mailto:gongliyan@chinamobile.com&gt;
     Author:   Weiqiang Cheng
               &lt;mailto:chengweiqiang@chinamobile.com&gt;
     Author:   Changwang Lin
               &lt;mailto:linchangwang.04414@h3c.com&gt;
     Author:   Ran Chen
               &lt;mailto:chen.ran@zte.com.cn&gt;";
  description
    "This YANG module defines the configuration and operational
     state for Advertising Unreachable Links in OSPF as defined
     in RFC 10041.

     Copyright (c) 2026 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).

     All revisions of IETF and IANA published modules can be found
     at the 'YANG Parameters' registry group
     (https://www.iana.org/assignments/yang-parameters).

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

  revision 2026-09-16 {
    description
      "Initial revision.";
    reference
      "RFC 10041: Advertising Unreachable Links in OSPF";
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/ospf:ospf/"
        + "ospf:areas/ospf:area" {
    when
      "derived-from-or-self(../../../rt:type, 'ospf:ospfv2') or "
    + "derived-from-or-self(../../../rt:type, 'ospf:ospfv3')" {
      description
        "This augments the OSPF routing protocol when used.";
    }
    description
      "This augments the OSPF protocol with Unreachable Link
       advertisement.";
    container unreachable-link-advertisement {
      leaf enabled {
        type boolean;
        default "false";
        description
          "Controls the interpretation of MaxLinkMetric as
           unreachable and the advertisement of the Unreachable
           Link capability for the area.  It is enabled when set
           to true and disabled when set to false.";
      }
      description
        "OSPF Unreachable Link advertisement parameters.";
    }
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/ospf:ospf/"
        + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" {
    when "derived-from(/rt:routing/rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv2') or "
       + "derived-from(/rt:routing/rt:control-plane-protocols/"
       + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" {
      description
        "This augments the OSPF interfaces.";
    }
    leaf advertise-unreachable-link {
      type boolean;
      must "not(../advertise-unreachable-link = 'true' and "
         + "/rt:routing/rt:control-plane-protocols/"
         + "rt:control-plane-protocol/ospf:ospf/ospf:areas/"
         + "ospf:area/"
         + "ospf-unreach-link:unreachable-link-advertisement/"
         + "ospf-unreach-link:enabled = 'false')" {
        error-message
          "The interface cannot be advertised "
        + "as unreachable (true) unless the "
        + "unreachable-link-advertisement capability is "
        + "enabled (true).";
        description
          "Ensures an interface isn't explicitly advertised as
           unreachable unless the OSPF area level capability is
           enabled.";
      }
      default "false";
      description
        "Specifies that the link should be advertised with a metric
         of MaxLinkMetric (0xffff) in the default topology.";
    }
    description
      "Augment OSPF interfaces with an option to advertise the link
       as unreachable.";
  }
}
</sourcecode>
        </section>
      </section>
    </section>
    <section anchor="Security_Considerations" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">
        A compromised OSPF router could advertise changes to its Unreachable Link
        capability rapidly resulting in repeated route recalculations
        on routers in the area supporting this specification
        (<xref target="Backward_Compatibility" format="default" sectionFormat="of" derivedContent="Section 3.2"/>).
        Hence, it is <bcp14>RECOMMENDED</bcp14> that routers supporting this specification also
        support the SPF back-off delay algorithm described in <xref target="RFC8405" format="default" sectionFormat="of" derivedContent="RFC8405"/>.
      </t>
      <t indent="0" pn="section-5-2">
        The security considerations for <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/>, <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/>,
        <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/>, and <xref target="RFC7770" format="default" sectionFormat="of" derivedContent="RFC7770"/> are also applicable to this
        protocol extension.
      </t>
      <t indent="0" pn="section-5-3">
        The "ietf-ospf-unreachable-links" YANG module and the "ietf-ospf-functional-capability" YANG module
        each define a data model that is designed to be accessed via YANG-based management protocols, such as
        NETCONF <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> and RESTCONF <xref target="RFC8040" format="default" sectionFormat="of" derivedContent="RFC8040"/>. These
        YANG-based management protocols (1) have to use a secure transport layer
        (e.g., SSH <xref target="RFC4252" format="default" sectionFormat="of" derivedContent="RFC4252"/>, TLS <xref target="RFC9846" format="default" sectionFormat="of" derivedContent="RFC9846"/>, and
        QUIC <xref target="RFC9000" format="default" sectionFormat="of" derivedContent="RFC9000"/>) and (2) have to use mutual authentication.
      </t>
      <t indent="0" pn="section-5-4">
        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-5">
        There are a number of data nodes defined in the "ietf-ospf-unreachable-links"
        YANG module that are  writable/creatable/deletable (i.e., "config true",
        which is the default).  All writable data nodes are likely to be sensitive or
        vulnerable in some network environments.  Write
        operations (e.g., edit-config) and delete operations to these data
        nodes without proper protection or authentication can have a negative
        effect on network operations.
        The modification of these data nodes without proper protection can
        prevent interpretation of the OSPF LSLinkInfinity metric as unreachable
        or result in a link being advertised as unreachable.
      </t>
      <t indent="3" pn="section-5-6">/ospf:ospf/ospf:areas/ospf:area/ospf-unreach-link:unreachable-link-advertisement/ospf-unreach-link:enabled</t>
      <t indent="3" pn="section-5-7">/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf-unreach-link:advertise-unreachable-link</t>
      <t indent="0" pn="section-5-8">
        Some of the readable data nodes in the "ietf-ospf-unreachable-links" YANG module may be considered
        sensitive or vulnerable in some network environments. Exposure of the
        OSPF unreachable link configuration may be useful in mounting Denial-of-Service (DoS)
        attacks. These are the readable data nodes:
      </t>
      <t indent="3" pn="section-5-9">/ospf:ospf/ospf:areas/ospf:area/ospf-unreach-link:unreachable-link-advertisement/ospf-unreach-link:enabled</t>
      <t indent="3" pn="section-5-10">/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf-unreach-link:advertise-unreachable-link</t>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-registering-ospf-router-fun">Registering OSPF Router Functional Capability Bits</name>
        <t indent="0" pn="section-6.1-1">
            This document defines a new bit in the "OSPF Router Functional Capability Bits"
            registry
            <eref brackets="angle" target="https://www.iana.org/assignments/ospf-parameters"/>:
        </t>
        <table align="center" pn="table-2">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit Number</th>
              <th align="left" colspan="1" rowspan="1">Capability Name</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">Unreachable Link</td>
              <td align="left" colspan="1" rowspan="1">RFC 10041</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-registering-yang-modules">Registering YANG Modules</name>
        <t indent="0" pn="section-6.2-1">IANA has registered the following three new URIs in the "ns" registry within the "IETF XML
              Registry" <xref target="RFC3688" format="default" sectionFormat="of" derivedContent="RFC3688"/>:</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-6.2-2">
          <dt pn="section-6.2-2.1">URI:</dt>
          <dd pn="section-6.2-2.2">urn:ietf:params:xml:ns:yang:iana-ospf-functional-cap-bits</dd>
          <dt pn="section-6.2-2.3">Registrant Contact:</dt>
          <dd pn="section-6.2-2.4">The IESG.</dd>
          <dt pn="section-6.2-2.5">XML:</dt>
          <dd pn="section-6.2-2.6">N/A; the requested URI is an XML namespace.</dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-6.2-3">
          <dt pn="section-6.2-3.1">URI:</dt>
          <dd pn="section-6.2-3.2">urn:ietf:params:xml:ns:yang:ietf-ospf-functional-capability</dd>
          <dt pn="section-6.2-3.3">Registrant Contact:</dt>
          <dd pn="section-6.2-3.4">The IESG.</dd>
          <dt pn="section-6.2-3.5">XML:</dt>
          <dd pn="section-6.2-3.6">N/A; the requested URI is an XML namespace.</dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-6.2-4">
          <dt pn="section-6.2-4.1">URI:</dt>
          <dd pn="section-6.2-4.2">urn:ietf:params:xml:ns:yang:ietf-ospf-unreachable-links</dd>
          <dt pn="section-6.2-4.3">Registrant Contact:</dt>
          <dd pn="section-6.2-4.4">The IESG.</dd>
          <dt pn="section-6.2-4.5">XML:</dt>
          <dd pn="section-6.2-4.6">N/A; the requested URI is an XML namespace.</dd>
        </dl>
        <t indent="0" pn="section-6.2-5">IANA has registered the following three new YANG module names in the
        "YANG Module Names" registry <xref target="RFC6020" format="default" sectionFormat="of" derivedContent="RFC6020"/> within the "YANG Parameters" registry group:</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-6.2-6">
          <dt pn="section-6.2-6.1">Name:</dt>
          <dd pn="section-6.2-6.2">iana-ospf-functional-cap-bits</dd>
          <dt pn="section-6.2-6.3">Maintained by IANA?</dt>
          <dd pn="section-6.2-6.4">Y</dd>
          <dt pn="section-6.2-6.5">Namespace:</dt>
          <dd pn="section-6.2-6.6">urn:ietf:params:xml:ns:yang:iana-ospf-functional-cap-bits</dd>
          <dt pn="section-6.2-6.7">Prefix:</dt>
          <dd pn="section-6.2-6.8">iana-ospf-fc-bits</dd>
          <dt pn="section-6.2-6.9">Reference:</dt>
          <dd pn="section-6.2-6.10">RFC 10041</dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-6.2-7">
          <dt pn="section-6.2-7.1">Name:</dt>
          <dd pn="section-6.2-7.2">ietf-ospf-functional-capability</dd>
          <dt pn="section-6.2-7.3">Maintained by IANA?</dt>
          <dd pn="section-6.2-7.4">N</dd>
          <dt pn="section-6.2-7.5">Namespace:</dt>
          <dd pn="section-6.2-7.6">urn:ietf:params:xml:ns:yang:ietf-ospf-functional-capability</dd>
          <dt pn="section-6.2-7.7">Prefix:</dt>
          <dd pn="section-6.2-7.8">ospf-fc</dd>
          <dt pn="section-6.2-7.9">Reference:</dt>
          <dd pn="section-6.2-7.10">RFC 10041</dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-6.2-8">
          <dt pn="section-6.2-8.1">Name:</dt>
          <dd pn="section-6.2-8.2">ietf-ospf-unreachable-links</dd>
          <dt pn="section-6.2-8.3">Maintained by IANA?</dt>
          <dd pn="section-6.2-8.4">N</dd>
          <dt pn="section-6.2-8.5">Namespace:</dt>
          <dd pn="section-6.2-8.6">urn:ietf:params:xml:ns:yang:ietf-ospf-unreachable-links</dd>
          <dt pn="section-6.2-8.7">Prefix:</dt>
          <dd pn="section-6.2-8.8">ospf-unreach-link</dd>
          <dt pn="section-6.2-8.9">Reference:</dt>
          <dd pn="section-6.2-8.10">RFC 10041</dd>
        </dl>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.3">
        <name slugifiedName="name-iana-module-for-ospf-functio">IANA Module for OSPF Functional Capability Bits</name>
        <t indent="0" pn="section-6.3-1">This document defines the initial version of the IANA-maintained
             "iana-ospf-functional-cap-bits" YANG module (<xref target="YANG_Model" format="default" sectionFormat="of" derivedContent="Section 4.2"/>).
              The most recent version of the YANG module is available in
              the "YANG Parameters" registry <xref target="IANA-YANG-Parameters" format="default" sectionFormat="of" derivedContent="IANA-YANG-Parameters"/>.</t>
        <t indent="0" pn="section-6.3-2">IANA has added the following note to the registry:</t>
        <blockquote pn="section-6.3-3">
          <t indent="0" pn="section-6.3-3.1">New values must not be directly added to the "iana-ospf-functional-cap-bits" YANG module. They must instead be added to the "OSPF Router Functional Capability Bits" registry in the "Open Shortest Path First (OSPF) Parameters" registry group <xref target="IANA-OSPF-FC-Bits" format="default" sectionFormat="of" derivedContent="IANA-OSPF-FC-Bits"/>.</t>
        </blockquote>
        <t indent="0" pn="section-6.3-4">When a value is added to the "OSPF Router Functional Capability Bits" registry, a new
             "identity" statement needs to be added to the "iana-ospf-functional-cap-bits" YANG
             module.  The name of the "identity" is the lowercase name provided in the registry
             with all spaces replaced  with "-". The "identity" statement should have the following
             sub-statements defined:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-6.3-5">
          <dt pn="section-6.3-5.1">"base":</dt>
          <dd pn="section-6.3-5.2">Contains 'functional-capability'.</dd>
          <dt pn="section-6.3-5.3">"description":</dt>
          <dd pn="section-6.3-5.4">Contains the non-abbreviated OSPF
               capability bit name from the registry.</dd>
          <dt pn="section-6.3-5.5">"reference":</dt>
          <dd pn="section-6.3-5.6">Replicates the reference(s) from the
               registry with the title of the document(s) added.</dd>
        </dl>
        <t indent="0" pn="section-6.3-6">IANA has added this note to
            <xref target="IANA-OSPF-FC-Bits" format="default" sectionFormat="of" derivedContent="IANA-OSPF-FC-Bits"/>:</t>
        <blockquote pn="section-6.3-7">
          <t indent="0" pn="section-6.3-7.1">When this registry is modified, the YANG module "iana-ospf-functional-cap-bits"
                 must be updated as defined in RFC 10041.</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-OSPF-FC-Bits" target="https://www.iana.org/assignments/ospf-parameters" quoteTitle="true" derivedAnchor="IANA-OSPF-FC-Bits">
          <front>
            <title>OSPF Router Functional Capability Bits</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="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2328" target="https://www.rfc-editor.org/info/rfc2328" quoteTitle="true" derivedAnchor="RFC2328">
          <front>
            <title>OSPF Version 2</title>
            <author fullname="J. Moy" initials="J." surname="Moy"/>
            <date month="April" year="1998"/>
            <abstract>
              <t indent="0">This memo documents version 2 of the OSPF protocol. OSPF is a link- state routing protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="54"/>
          <seriesInfo name="RFC" value="2328"/>
          <seriesInfo name="DOI" value="10.17487/RFC2328"/>
        </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="RFC4915" target="https://www.rfc-editor.org/info/rfc4915" quoteTitle="true" derivedAnchor="RFC4915">
          <front>
            <title>Multi-Topology (MT) Routing in OSPF</title>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <author fullname="S. Mirtorabi" initials="S." surname="Mirtorabi"/>
            <author fullname="A. Roy" initials="A." surname="Roy"/>
            <author fullname="L. Nguyen" initials="L." surname="Nguyen"/>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <date month="June" year="2007"/>
            <abstract>
              <t indent="0">This document describes an extension to Open Shortest Path First (OSPF) in order to define independent IP topologies called Multi- Topologies (MTs). The Multi-Topologies extension can be used for computing different paths for unicast traffic, multicast traffic, different classes of service based on flexible criteria, or an in- band network management topology.</t>
              <t indent="0">An optional extension to exclude selected links from the default topology is also described. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4915"/>
          <seriesInfo name="DOI" value="10.17487/RFC4915"/>
        </reference>
        <reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5340" quoteTitle="true" derivedAnchor="RFC5340">
          <front>
            <title>OSPF for IPv6</title>
            <author fullname="R. Coltun" initials="R." surname="Coltun"/>
            <author fullname="D. Ferguson" initials="D." surname="Ferguson"/>
            <author fullname="J. Moy" initials="J." surname="Moy"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="July" year="2008"/>
            <abstract>
              <t indent="0">This document describes the modifications to OSPF to support version 6 of the Internet Protocol (IPv6). The fundamental mechanisms of OSPF (flooding, Designated Router (DR) election, area support, Short Path First (SPF) calculations, etc.) remain unchanged. However, some changes have been necessary, either due to changes in protocol semantics between IPv4 and IPv6, or simply to handle the increased address size of IPv6. These modifications will necessitate incrementing the protocol version from version 2 to version 3. OSPF for IPv6 is also referred to as OSPF version 3 (OSPFv3).</t>
              <t indent="0">Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as described herein include the following. Addressing semantics have been removed from OSPF packets and the basic Link State Advertisements (LSAs). New LSAs have been created to carry IPv6 addresses and prefixes. OSPF now runs on a per-link basis rather than on a per-IP-subnet basis. Flooding scope for LSAs has been generalized. Authentication has been removed from the OSPF protocol and instead relies on IPv6's Authentication Header and Encapsulating Security Payload (ESP).</t>
              <t indent="0">Even with larger IPv6 addresses, most packets in OSPF for IPv6 are almost as compact as those in OSPF for IPv4. Most fields and packet- size limitations present in OSPF for IPv4 have been relaxed. In addition, option handling has been made more flexible.</t>
              <t indent="0">All of OSPF for IPv4's optional capabilities, including demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported in OSPF for IPv6. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5340"/>
          <seriesInfo name="DOI" value="10.17487/RFC5340"/>
        </reference>
        <reference anchor="RFC5443" target="https://www.rfc-editor.org/info/rfc5443" quoteTitle="true" derivedAnchor="RFC5443">
          <front>
            <title>LDP IGP Synchronization</title>
            <author fullname="M. Jork" initials="M." surname="Jork"/>
            <author fullname="A. Atlas" initials="A." surname="Atlas"/>
            <author fullname="L. Fang" initials="L." surname="Fang"/>
            <date month="March" year="2009"/>
            <abstract>
              <t indent="0">In certain networks, there is dependency on the edge-to-edge Label Switched Paths (LSPs) setup by the Label Distribution Protocol (LDP), e.g., networks that are used for Multiprotocol Label Switching (MPLS) Virtual Private Network (VPN) applications. For such applications, it is not possible to rely on Internet Protocol (IP) forwarding if the MPLS LSP is not operating appropriately. Blackholing of labeled traffic can occur in situations where the Interior Gateway Protocol (IGP) is operational on a link on which LDP is not. While the link could still be used for IP forwarding, it is not useful for MPLS forwarding, for example, MPLS VPN applications or Border Gateway Protocol (BGP) route-free cores. This document describes a mechanism to avoid traffic loss due to this condition without introducing any protocol changes. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5443"/>
          <seriesInfo name="DOI" value="10.17487/RFC5443"/>
        </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="RFC6987" target="https://www.rfc-editor.org/info/rfc6987" quoteTitle="true" derivedAnchor="RFC6987">
          <front>
            <title>OSPF Stub Router Advertisement</title>
            <author fullname="A. Retana" initials="A." surname="Retana"/>
            <author fullname="L. Nguyen" initials="L." surname="Nguyen"/>
            <author fullname="A. Zinin" initials="A." surname="Zinin"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <date month="September" year="2013"/>
            <abstract>
              <t indent="0">This document describes a backward-compatible technique that may be used by OSPF (Open Shortest Path First) implementations to advertise a router's unavailability to forward transit traffic or to lower the preference level for the paths through such a router.</t>
              <t indent="0">This document obsoletes RFC 3137.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6987"/>
          <seriesInfo name="DOI" value="10.17487/RFC6987"/>
        </reference>
        <reference anchor="RFC7770" target="https://www.rfc-editor.org/info/rfc7770" quoteTitle="true" derivedAnchor="RFC7770">
          <front>
            <title>Extensions to OSPF for Advertising Optional Router Capabilities</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <author fullname="JP. Vasseur" initials="JP." surname="Vasseur"/>
            <author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/>
            <author fullname="S. Shaffer" initials="S." surname="Shaffer"/>
            <date month="February" year="2016"/>
            <abstract>
              <t indent="0">It is useful for routers in an OSPFv2 or OSPFv3 routing domain to know the capabilities of their neighbors and other routers in the routing domain. This document proposes extensions to OSPFv2 and OSPFv3 for advertising optional router capabilities. The Router Information (RI) Link State Advertisement (LSA) is defined for this purpose. In OSPFv2, the RI LSA will be implemented with an Opaque LSA type ID. In OSPFv3, the RI LSA will be implemented with a unique LSA type function code. In both protocols, the RI LSA can be advertised at any of the defined flooding scopes (link, area, or autonomous system (AS)). This document obsoletes RFC 4970 by providing a revised specification that includes support for advertisement of multiple instances of the RI LSA and a TLV for functional capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7770"/>
          <seriesInfo name="DOI" value="10.17487/RFC7770"/>
        </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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </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="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="RFC8362" target="https://www.rfc-editor.org/info/rfc8362" quoteTitle="true" derivedAnchor="RFC8362">
          <front>
            <title>OSPFv3 Link State Advertisement (LSA) Extensibility</title>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="A. Roy" initials="A." surname="Roy"/>
            <author fullname="D. Goethals" initials="D." surname="Goethals"/>
            <author fullname="V. Reddy Vallem" initials="V." surname="Reddy Vallem"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <date month="April" year="2018"/>
            <abstract>
              <t indent="0">OSPFv3 requires functional extension beyond what can readily be done with the fixed-format Link State Advertisement (LSA) as described in RFC 5340. Without LSA extension, attributes associated with OSPFv3 links and advertised IPv6 prefixes must be advertised in separate LSAs and correlated to the fixed-format LSAs. This document extends the LSA format by encoding the existing OSPFv3 LSA information in Type-Length-Value (TLV) tuples and allowing advertisement of additional information with additional TLVs. Backward-compatibility mechanisms are also described.</t>
              <t indent="0">This document updates RFC 5340, "OSPF for IPv6", and RFC 5838, "Support of Address Families in OSPFv3", by providing TLV-based encodings for the base OSPFv3 unicast support and OSPFv3 address family support.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8362"/>
          <seriesInfo name="DOI" value="10.17487/RFC8362"/>
        </reference>
        <reference anchor="RFC8379" target="https://www.rfc-editor.org/info/rfc8379" quoteTitle="true" derivedAnchor="RFC8379">
          <front>
            <title>OSPF Graceful Link Shutdown</title>
            <author fullname="S. Hegde" initials="S." surname="Hegde"/>
            <author fullname="P. Sarkar" initials="P." surname="Sarkar"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="M. Nanduri" initials="M." surname="Nanduri"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="May" year="2018"/>
            <abstract>
              <t indent="0">When a link is being prepared to be taken out of service, the traffic needs to be diverted from both ends of the link. Increasing the metric to the highest value on one side of the link is not sufficient to divert the traffic flowing in the other direction.</t>
              <t indent="0">It is useful for the routers in an OSPFv2 or OSPFv3 routing domain to be able to advertise a link as being in a graceful-shutdown state to indicate impending maintenance activity on the link. This information can be used by the network devices to reroute the traffic effectively.</t>
              <t indent="0">This document describes the protocol extensions to disseminate graceful-link-shutdown information in OSPFv2 and OSPFv3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8379"/>
          <seriesInfo name="DOI" value="10.17487/RFC8379"/>
        </reference>
        <reference anchor="RFC8405" target="https://www.rfc-editor.org/info/rfc8405" quoteTitle="true" derivedAnchor="RFC8405">
          <front>
            <title>Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs</title>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="P. Francois" initials="P." surname="Francois"/>
            <author fullname="C. Bowers" initials="C." surname="Bowers"/>
            <date month="June" year="2018"/>
            <abstract>
              <t indent="0">This document defines a standard algorithm to temporarily postpone or "back off" link-state IGP Shortest Path First (SPF) computations. This reduces the computational load and churn on IGP nodes when multiple temporally close network events trigger multiple SPF computations.</t>
              <t indent="0">Having one standard algorithm improves interoperability by reducing the probability and/or duration of transient forwarding loops during the IGP convergence when the IGP reacts to multiple temporally close IGP events.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8405"/>
          <seriesInfo name="DOI" value="10.17487/RFC8405"/>
        </reference>
        <reference anchor="RFC8770" target="https://www.rfc-editor.org/info/rfc8770" quoteTitle="true" derivedAnchor="RFC8770">
          <front>
            <title>Host Router Support for OSPFv2</title>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <author fullname="M. Bhardwaj" initials="M." surname="Bhardwaj"/>
            <author fullname="S. Bayraktar" initials="S." surname="Bayraktar"/>
            <date month="April" year="2020"/>
            <abstract>
              <t indent="0">The Open Shortest Path First Version 2 (OSPFv2) protocol does not have a mechanism for a node to repel transit traffic if it is on the shortest path. This document defines a bit called the Host-bit (H-bit). This bit enables a router to advertise that it is a non-transit router. This document also describes the changes needed to support the H-bit in the domain. In addition, this document updates RFC 6987 to advertise Type 2 External and Not-So-Stubby Area (NSSA) Link State Advertisements (LSAs) (RFC 3101) with a high cost in order to repel traffic effectively.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8770"/>
          <seriesInfo name="DOI" value="10.17487/RFC8770"/>
        </reference>
        <reference anchor="RFC9129" target="https://www.rfc-editor.org/info/rfc9129" quoteTitle="true" derivedAnchor="RFC9129">
          <front>
            <title>YANG Data Model for the OSPF Protocol</title>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="Z. Zhang" initials="Z." surname="Zhang"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="October" year="2022"/>
            <abstract>
              <t indent="0">This document defines a YANG data model that can be used to configure and manage OSPF. The model is based on YANG 1.1 as defined in RFC 7950 and conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9129"/>
          <seriesInfo name="DOI" value="10.17487/RFC9129"/>
        </reference>
        <reference anchor="RFC9350" target="https://www.rfc-editor.org/info/rfc9350" quoteTitle="true" derivedAnchor="RFC9350">
          <front>
            <title>IGP Flexible Algorithm</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="S. Hegde" initials="S." surname="Hegde"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." surname="Talaulikar"/>
            <author fullname="A. Gulko" initials="A." surname="Gulko"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">IGP protocols historically compute the best paths over the network based on the IGP metric assigned to the links. Many network deployments use RSVP-TE or Segment Routing - Traffic Engineering (SR-TE) to steer traffic over a path that is computed using different metrics or constraints than the shortest IGP path. This document specifies a solution that allows IGPs themselves to compute constraint-based paths over the network. This document also specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6 locators to steer packets along the constraint-based paths.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9350"/>
          <seriesInfo name="DOI" value="10.17487/RFC9350"/>
        </reference>
      </references>
      <references pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC4252" target="https://www.rfc-editor.org/info/rfc4252" quoteTitle="true" derivedAnchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </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="RFC7308" target="https://www.rfc-editor.org/info/rfc7308" quoteTitle="true" derivedAnchor="RFC7308">
          <front>
            <title>Extended Administrative Groups in MPLS Traffic Engineering (MPLS-TE)</title>
            <author fullname="E. Osborne" initials="E." surname="Osborne"/>
            <date month="July" year="2014"/>
            <abstract>
              <t indent="0">MPLS Traffic Engineering (MPLS-TE) advertises 32 administrative groups (commonly referred to as "colors" or "link colors") using the Administrative Group sub-TLV. This is defined for OSPFv2 (RFC 3630), OSPFv3 (RFC 5329) and IS-IS (RFC 5305).</t>
              <t indent="0">This document adds a sub-TLV to the IGP TE extensions, "Extended Administrative Group". This sub-TLV provides for additional administrative groups (link colors) beyond the current limit of 32.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7308"/>
          <seriesInfo name="DOI" value="10.17487/RFC7308"/>
        </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="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="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" quoteTitle="true" derivedAnchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t indent="0">This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9846" target="https://www.rfc-editor.org/info/rfc9846" quoteTitle="true" derivedAnchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <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 obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
      </references>
    </references>
    <section numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">Thanks to <contact fullname="Yingzhen Qu"/> for providing the YANG data models.</t>
      <t indent="0" pn="section-appendix.a-2">Thanks to <contact fullname="Dhruv Dhody"/> for OPS Directorate review and comments.</t>
      <t indent="0" pn="section-appendix.a-3">Thanks to <contact fullname="Gunter Van de Velde"/> for review and comments.</t>
      <t indent="0" pn="section-appendix.a-4">Thanks to <contact fullname="Mohamed Boucadair"/> for review and comments.</t>
      <t indent="0" pn="section-appendix.a-5">Thanks to <contact fullname="Mike Bishop"/>, <contact fullname="Mahesh Jethanadani"/>, and <contact fullname="Ketan Taulaulikar"/> for review and comments.</t>
    </section>
    <section numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <t indent="0" pn="section-appendix.b-1">The following individuals have contributed to this document:</t>
      <contact fullname="Mengxiao Chen">
        <organization showOnFrontPage="true">New H3C Technologies</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>chen.mengxiao@h3c.com</email>
        </address>
      </contact>
      <contact fullname="Yanrong Liang">
        <organization showOnFrontPage="true">Ruijie Networks Co., Ltd.</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>liangyanrong@ruijie.com.cn</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Liyan Gong" initials="L." surname="Gong">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>gongliyan@chinamobile.com</email>
        </address>
      </author>
      <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>chengweiqiang@chinamobile.com</email>
        </address>
      </author>
      <author fullname="Changwang Lin" initials="C." surname="Lin">
        <organization showOnFrontPage="true">New H3C Technologies</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>linchangwang.04414@h3c.com</email>
        </address>
      </author>
      <author fullname="Acee Lindem" initials="A." surname="Lindem">
        <organization showOnFrontPage="true">Arrcus, Inc.</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>acee.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Ran Chen" initials="R." surname="Chen">
        <organization showOnFrontPage="true">ZTE Corporation</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>chen.ran@zte.com.cn</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
