<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-lsr-ospf-reverse-metric-13" indexInclude="true" ipr="trust200902" number="9339" prepTime="2022-12-20T23:42:12" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lsr-ospf-reverse-metric-13" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9339" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="OSPF Reverse Metric">OSPF Reverse Metric</title>
    <seriesInfo name="RFC" value="9339" stream="IETF"/>
    <author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Talaulikar">
      <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>ketant.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Peter Psenak" initials="P." surname="Psenak">
      <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <extaddr>Apollo Business Center</extaddr>
          <street>Mlynske nivy 43</street>
          <city>Bratislava</city>
          <code>821 09</code>
          <country>Slovakia</country>
        </postal>
        <email>ppsenak@cisco.com</email>
      </address>
    </author>
    <author fullname="Hugh Johnston" initials="H." surname="Johnston">
      <organization showOnFrontPage="true">AT&amp;T Labs</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>hugh.johnston@att.com</email>
      </address>
    </author>
    <date month="12" year="2022"/>
    <area>rtg</area>
    <workgroup>lsr</workgroup>
    <keyword>IGP</keyword>
    <keyword>OSPF</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document specifies the extensions to OSPF that enable a router
      to use Link-Local Signaling (LLS) to signal the metric that receiving
      OSPF neighbor(s) should use for a link to the signaling router.  When
      used on the link to the signaling router, the signaling of this reverse
      metric (RM) allows a router to influence the amount of traffic flowing
      towards itself. In certain use cases, this enables routers to maintain
      symmetric metrics on both sides of a link between them.</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/rfc9339" 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) 2022 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-link-maintenance">Link Maintenance</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-adaptive-metric-signaling">Adaptive Metric Signaling</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-solution">Solution</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-lls-reverse-metric-tlv">LLS Reverse Metric TLV</xref></t>
          </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-lls-reverse-te-metric-tlv">LLS Reverse TE Metric TLV</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-procedures">Procedures</xref></t>
          </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-operational-guidelines">Operational Guidelines</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-backward-compatibility">Backward Compatibility</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <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.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="INTRO" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">A router running the OSPFv2 <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328">
        </xref> or OSPFv3 <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/> routing
      protocols originates a Router-LSA (Link State Advertisement) that
      describes all its links to its neighbors and includes a metric that
      indicates its "cost" to reach the neighbor over that link. Consider two
      routers, R1 and R2, that are connected via a link. In the direction
      R1-&gt;R2, the metric for this link is configured on R1. In the
      direction R2-&gt;R1, the metric for this link is configured on R2. Thus,
      the configuration on R1 influences the traffic that it forwards towards
      R2, but does not influence the traffic that it may receive from R2 on
      that same link.</t>
      <t indent="0" pn="section-1-2">This document describes certain use cases where a router is required
      to signal what we call the "reverse metric" (RM) to its neighbor to
      adjust the routing metric in the inbound direction. When R1 signals its
      RM on its link to R2, R2 advertises this value as its
      metric to R1 in its Router-LSA instead of its locally configured value.
      Once this information is part of the topology, all other routers do
      their computation using this value. This  may result in the desired
      change in the traffic distribution that R1 wanted to achieve towards
      itself over the link from R2.</t>
      <t indent="0" pn="section-1-3">This document describes extensions to OSPF LLS
      <xref target="RFC5613" format="default" sectionFormat="of" derivedContent="RFC5613"/> to signal OSPF RMs. <xref target="REVMETTLV" format="default" sectionFormat="of" derivedContent="Section 4"/> specifies the LLS Reverse Metric TLV and <xref target="REVTEMETTLV" format="default" sectionFormat="of" derivedContent="Section 5"/> specifies the LLS Reverse TE Metric TLV. The
      related procedures are specified in <xref target="PROCEDURES" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" 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="USECASE" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-use-cases">Use Cases</name>
      <t indent="0" pn="section-2-1">This section describes certain use cases that are addressed by the OSPF RM. The usage of the OSPF RM need not be limited to these
cases; it is intended to be a generic mechanism.</t>
      <figure anchor="FIG1" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-reference-dual-hub-and-spok">Reference Dual Hub-and-Spoke Topology</name>
        <artwork name="" type="" align="left" alt="" pn="section-2-2.1">
           Core Network 
       ^                ^
       |                |
       V                v
  +----------+    +----------+
  |  AGGR1   |    |  AGGR2   |
  +----------+    +----------+
    ^      ^        ^      ^
    |      |        |      |
    |      +-----------+   |
    |               |  |   |
    |      +--------+  |   |
    v      v           v   v 
 +-----------+      +-----------+
 |    R1     |      |    RN     |
 |  Router   | ...  |  Router   |
 +-----------+      +-----------+</artwork>
      </figure>
      <t indent="0" pn="section-2-3">Consider a deployment scenario, such as the one shown in <xref target="FIG1" format="default" sectionFormat="of" derivedContent="Figure 1"/>, where routers R1 through RN are
      dual-home connected to AGGR1 and AGGR2 that are aggregating their
      traffic towards a core network.</t>
      <section anchor="MAINT" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-link-maintenance">Link Maintenance</name>
        <t indent="0" pn="section-2.1-1">Before network maintenance events are performed on individual
        links, operators substantially increase (to maximum value) the OSPF
        metric simultaneously on both routers attached to the same link. In
        doing so, the routers generate new Router LSAs that are flooded
        throughout the network and cause all routers to shift traffic onto
        alternate paths (where available) with limited disruption (depending
        on the network topology) to in-flight communications by applications
        or end users. When performed successfully, this allows the operator to
        perform disruptive augmentation, fault diagnosis, or repairs on a link
        in a production network.</t>
        <t indent="0" pn="section-2.1-2">In deployments such as a hub-and-spoke topology (as shown in <xref target="FIG1" format="default" sectionFormat="of" derivedContent="Figure 1"/>), it is quite common to have routers
        with several hundred interfaces and individual interfaces that move
        anywhere from several hundred gigabits to terabits per second of
        traffic. The challenge in such conditions is that the operator must
        accurately identify the same point-to-point (P2P) link on two separate
        devices to increase (and afterward decrease) the OSPF metric
        appropriately and to do so in a coordinated manner. When considering
        maintenance for PE-CE links when many Customer Edge (CE) routers
        connect to a Provider Edge (PE) router, an additional challenge
        related to coordinating access to the CE routers may arise when the
        CEs are not managed by the provider.</t>
        <t indent="0" pn="section-2.1-3">The OSPF RM mechanism helps address these challenges.
        The operator can set the link on one of the routers (generally the
        hub, like AGGR1 or a PE) to a "maintenance mode". This causes the
        router to advertise the maximum metric for that link and to signal its
        neighbor on the same link to advertise maximum metric via the reverse
        metric signaling mechanism. Once the link maintenance is completed and
        the "maintenance mode" is turned off, the router returns to using its
        provisioned metric for the link and stops the signaling of RM on that
        link, resulting in its neighbor also reverting to its provisioned
        metric for that link.</t>
      </section>
      <section anchor="ADAPTIVEMET" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-adaptive-metric-signaling">Adaptive Metric Signaling</name>
        <t indent="0" pn="section-2.2-1">In <xref target="FIG1" format="default" sectionFormat="of" derivedContent="Figure 1"/>, consider that at some point in time
        (T), AGGR1 loses some of its capacity towards the core. This may result
        in a congestion issue towards the core on AGGR1 that it needs to
        mitigate by redirecting some of its traffic load to transit via AGGR2,
        which is not experiencing a similar issue. Altering its link metric
        towards the R1-RN routers would influence the traffic from the core
        towards R1-RN, but not the other way around as desired.</t>
        <t indent="0" pn="section-2.2-2">In such a scenario, the AGGR1 router could signal an incremental
        OSPF RM to some or all the R1-RN routers. When the R1-RN
        routers add this signaled RM offset to the provisioned
        metric on their links towards AGGR1, the path via AGGR2 becomes a
        better path. This causes traffic towards the core to be diverted away
        from AGGR1. Note that the RM mechanism allows such
        adaptive metric changes to be applied on the AGGR1 as opposed to being
        provisioned on a possibly large number of R1-RN routers.</t>
        <t indent="0" pn="section-2.2-3">The RM mechanism may be similarly applied between spine
        and leaf nodes in a Clos network <xref target="CLOS" format="default" sectionFormat="of" derivedContent="CLOS"/> topology
        deployment.</t>
      </section>
    </section>
    <section anchor="SOLUTION" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-solution">Solution</name>
      <t indent="0" pn="section-3-1">To address the use cases described earlier and to allow an OSPF
      router to indicate its RM for a specific link to its
      neighbor(s), this document proposes to extend OSPF link-local signaling
      to signal the Reverse Metric TLV in OSPF Hello packets. This ensures
      that the RM signaling is scoped only to a specific link.
      The router continues to include the Reverse Metric TLV in its Hello
      packets on the link for as long as it needs its neighbor to use that
      metric value towards itself. Further details of the procedures involved
      are specified in <xref target="PROCEDURES" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
      <t indent="0" pn="section-3-2">The RM mechanism specified in this document applies only to
P2P, Point-to-Multipoint (P2MP), and hybrid-broadcast-P2MP (<xref target="RFC6845" format="default" sectionFormat="of" derivedContent="RFC6845"/>) links. It is not applicable for broadcast
or Non-Broadcast Multi-Access (NBMA) links since the same objective is
achieved there using the OSPF Two-Part Metric mechanism <xref target="RFC8042" format="default" sectionFormat="of" derivedContent="RFC8042"/> for OSPFv2. The OSPFv3 solution for broadcast or NBMA links
is outside the scope of this document.</t>
    </section>
    <section anchor="REVMETTLV" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-lls-reverse-metric-tlv">LLS Reverse Metric TLV</name>
      <t indent="0" pn="section-4-1">The Reverse Metric TLV is a new LLS TLV. It has following
      format:</t>
      <figure anchor="FIG2" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-reverse-metric-tlv">Reverse Metric TLV</name>
        <artwork name="" type="" align="left" alt="" pn="section-4-2.1">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type             |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     MTID      | Flags     |O|H|        Reverse Metric         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
      </figure>
      <t indent="0" pn="section-4-3">where:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-4-4">
        <dt pn="section-4-4.1">Type:</dt>
        <dd pn="section-4-4.2">19</dd>
        <dt pn="section-4-4.3">Length:</dt>
        <dd pn="section-4-4.4">4 octets</dd>
        <dt pn="section-4-4.5">MTID:</dt>
        <dd pn="section-4-4.6">The multi-topology identifier of the link (<xref target="RFC4915" format="default" sectionFormat="of" derivedContent="RFC4915"/>).</dd>
        <dt pn="section-4-4.7">Flags:</dt>
        <dd pn="section-4-4.8">1 octet. The following flags are defined currently and the
          rest <bcp14>MUST</bcp14> be set to 0 on transmission and ignored on reception:</dd>
        <dt pn="section-4-4.9"/>
        <dd pn="section-4-4.10">
          <dl newline="false" spacing="normal" indent="3" pn="section-4-4.10.1">
            <dt pn="section-4-4.10.1.1">H (0x1):</dt>
            <dd pn="section-4-4.10.1.2">Indicates that the neighbor should use the value
              only if it is higher than its provisioned metric value for the
              link.</dd>
            <dt pn="section-4-4.10.1.3">O (0x2):</dt>
            <dd pn="section-4-4.10.1.4">Indicates that the RM value provided is
              an offset that is to be added to the provisioned metric.</dd>
          </dl>
        </dd>
        <dt pn="section-4-4.11">Reverse Metric:</dt>
        <dd pn="section-4-4.12">Unsigned integer of 2 octets that carries the
          value or offset of RM to replace or be added to the
          provisioned link metric.</dd>
      </dl>
    </section>
    <section anchor="REVTEMETTLV" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-lls-reverse-te-metric-tlv">LLS Reverse TE Metric TLV</name>
      <t indent="0" pn="section-5-1">The Reverse TE Metric TLV is a new LLS TLV. It has the following
      format:</t>
      <figure anchor="FIG3" align="left" suppress-title="false" pn="figure-3">
        <name slugifiedName="name-reverse-te-metric-tlv">Reverse TE Metric TLV</name>
        <artwork name="" type="" align="left" alt="" pn="section-5-2.1">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type             |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Flags   |O|H|                 RESERVED                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Reverse TE Metric                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
      </figure>
      <t indent="0" pn="section-5-3">where:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-5-4">
        <dt pn="section-5-4.1">Type:</dt>
        <dd pn="section-5-4.2">20</dd>
        <dt pn="section-5-4.3">Length:</dt>
        <dd pn="section-5-4.4">4 octets</dd>
        <dt pn="section-5-4.5">Flags:</dt>
        <dd pn="section-5-4.6">1 octet. The following flags are defined currently and the
          rest <bcp14>MUST</bcp14> be set to 0 on transmission and ignored on reception:</dd>
        <dt pn="section-5-4.7"/>
        <dd pn="section-5-4.8">
          <dl newline="false" spacing="normal" indent="3" pn="section-5-4.8.1">
            <dt pn="section-5-4.8.1.1">H (0x1):</dt>
            <dd pn="section-5-4.8.1.2">Indicates that the neighbor should use the value
              only if it is higher than its provisioned TE metric value for
              the link.</dd>
            <dt pn="section-5-4.8.1.3">O (0x2):</dt>
            <dd pn="section-5-4.8.1.4">Indicates that the reverse TE metric value provided
              is an offset that is to be added to the provisioned TE
              metric.</dd>
          </dl>
        </dd>
        <dt pn="section-5-4.9">RESERVED:</dt>
        <dd pn="section-5-4.10">24-bit field. <bcp14>MUST</bcp14> be set to 0 on transmission and <bcp14>MUST</bcp14>
          be ignored on receipt.</dd>
        <dt pn="section-5-4.11">Reverse TE Metric:</dt>
        <dd pn="section-5-4.12">Unsigned integer of 4 octets that carries the
          value or offset of reverse traffic engineering metric to replace or
          to be added to the provisioned TE metric of the link.</dd>
      </dl>
    </section>
    <section anchor="PROCEDURES" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-procedures">Procedures</name>
      <t indent="0" pn="section-6-1">When a router needs to signal an RM value that its neighbor(s) should
      use for a link towards the router, it includes the Reverse Metric TLV in
      the LLS block of its Hello packets sent on that link and continues to
      include this TLV for as long as the router needs its neighbor to use this value.
      The mechanisms used to determine the value to be used for the RM is
      specific to the implementation and use case, and is outside the scope of
      this document. For example, the RM value may be derived based on the
      router's link bandwidth with respect to a reference bandwidth.</t>
      <t indent="0" pn="section-6-2">A router receiving a Hello packet from its neighbor that contains the
      Reverse Metric TLV on a link <bcp14>MUST</bcp14> use the RM value to derive the metric
      for the link to the advertising router in its Router-LSA when the
      RM feature is enabled (refer to <xref target="OPER" format="default" sectionFormat="of" derivedContent="Section 7"/> for
      details on enablement of RM). When the O flag is set, the metric value
      to be advertised is derived by adding the value in the TLV to the
      provisioned metric for the link. The metric value 0xffff (maximum
      interface cost) is advertised when the sum exceeds the maximum interface
      cost. When the O flag is clear, the metric value to be advertised is
      copied directly from the value in the TLV. When the H flag is set and
      the O flag is clear, the metric value to be advertised is copied
      directly from the value in the TLV only when the RM value signaled is
      higher than the provisioned metric for the link. The H and O flags are
      mutually exclusive; the H flag is ignored when the O flag is set.</t>
      <t indent="0" pn="section-6-3">A router stops including the Reverse Metric TLV in its Hello packets
      when it needs its neighbors to go back to using their own provisioned
      metric values. When this happens, a router that has modified its metric
      in response to receiving a Reverse Metric TLV from its neighbor <bcp14>MUST</bcp14>
      revert to using its provisioned metric value.</t>
      <t indent="0" pn="section-6-4">In certain scenarios, two or more routers may start the RM signaling
      on the same link. This could create collision scenarios. 
The following
      guidelines are <bcp14>RECOMMENDED</bcp14> for adoption to ensure that there is no
      instability in the network due to churn in their metric caused by the
      signaling of RM:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-5">
        <li pn="section-6-5.1">The RM value that is signaled by a router to its neighbor should
   not be derived from the RM being signaled by any of
   its neighbors on any of its links.</li>
        <li pn="section-6-5.2">The RM value that is signaled by a router to its neighbor should
   not be derived from the RM being signaled by any of
   its neighbors on any of its links. RM signaling from
          other routers can affect the router's metric advertised in its
          Router-LSA. When deriving the RM values that a router signals to its
          neighbors, it should use its provisioned local metric values not
          influenced by any RM signaling.</li>
      </ul>
      <t indent="0" pn="section-6-6">Based on these guidelines, a router would not start, stop, or change
      its RM signaling based on the RM signaling initiated by
      some other routers. Based on the local configuration policy, each router
      would end up accepting the RM value signaled by its neighbor and there
      would be no churn of metrics on the link or the network on account of RM
      signaling.</t>
      <t indent="0" pn="section-6-7">In certain use cases when symmetrical metrics are desired (e.g., when
      metrics are derived based on link bandwidth), the RM signaling can be
      enabled on routers on either end of a link. In other use cases (as
      described in <xref target="MAINT" format="default" sectionFormat="of" derivedContent="Section 2.1"/>), RM signaling may need to be
      enabled only on the router at one end of a link.</t>
      <t indent="0" pn="section-6-8">When using multi-topology routing with OSPF <xref target="RFC4915" format="default" sectionFormat="of" derivedContent="RFC4915"/>,
      a router <bcp14>MAY</bcp14> include multiple instances of the Reverse Metric TLV in the
      LLS block of its Hello packet (one for each of the topologies for which
      it desires to signal the RM). A router <bcp14>MUST NOT</bcp14> include more
      than one instance of this TLV per MTID. If more than a single instance
      of this TLV per MTID is present, the receiving router <bcp14>MUST</bcp14> only use the
      value from the first instance and ignore the others.</t>
      <t indent="0" pn="section-6-9">In certain scenarios, the OSPF router may also require the
      modification of the TE metric being advertised by its neighbor router
      towards itself in the inbound direction. Using similar procedures to
      those described above, the Reverse TE Metric TLV <bcp14>MAY</bcp14> be
      used to signal the reverse TE metric for router links. The neighbor
      <bcp14>MUST</bcp14> use the reverse TE metric value to derive the TE
      metric advertised in the TE Metric sub-TLV of the Link TLV in its TE
      Opaque LSA <xref target="RFC3630" format="default" sectionFormat="of" derivedContent="RFC3630"/> when the reverse
      metric feature is enabled (refer <xref target="OPER" format="default" sectionFormat="of" derivedContent="Section 7"/>
      for details on enablement of RM). The rules for doing so are analogous
      to those given above for the Router-LSA.</t>
    </section>
    <section anchor="OPER" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-operational-guidelines">Operational Guidelines</name>
      <t indent="0" pn="section-7-1">The signaled RM does not alter the OSPF metric parameters
      stored in a receiving router's persistent provisioning database.</t>
      <t indent="0" pn="section-7-2">Routers that receive an RM advertisement
      <bcp14>SHOULD</bcp14> log an event to notify system administration.



This will assist in rapidly
           identifying the node in the network that is advertising an OSPF
           metric or TE metric different from what is configured locally
           on the device.</t>
      <t indent="0" pn="section-7-3">When the link TE metric is raised to the maximum value, either due to
      the RM mechanism or by explicit user configuration, this
      <bcp14>SHOULD</bcp14> immediately trigger the CSPF (Constrained Shortest Path First)
      recalculation to move the TE traffic away from that link.</t>
      <t indent="0" pn="section-7-4">An implementation <bcp14>MUST NOT</bcp14> signal RM to neighbors by
      default and <bcp14>MUST</bcp14> provide a configuration option to enable the signaling
      of RM on specific links. An implementation <bcp14>MUST NOT</bcp14> accept
      the RM from its neighbors by default. An implementation <bcp14>MAY</bcp14> provide
      configuration to accept the RM globally on the device, or per area, but
      an implementation <bcp14>MUST</bcp14> support configuration to enable/disable
      acceptance of the RM from neighbors on specific links. This is to
      safeguard against inadvertent use of RM.</t>
      <t indent="0" pn="section-7-5">For the use case in <xref target="MAINT" format="default" sectionFormat="of" derivedContent="Section 2.1"/>, it is <bcp14>RECOMMENDED</bcp14> that
      the network operator limit the period of enablement of the reverse
      metric mechanism to be only the duration of a network maintenance
      window.</t>
      <t indent="0" pn="section-7-6"><xref target="RFC9129" format="default" sectionFormat="of" derivedContent="RFC9129"/> specifies the base OSPF YANG
      data model. The required configuration and operational elements for this
      feature are expected to be introduced as an augmentation to this base
      OSPF YANG data model.</t>
    </section>
    <section anchor="BACKW" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-backward-compatibility">Backward Compatibility</name>
      <t indent="0" pn="section-8-1">The signaling specified in this document happens at a link-local
      level between routers on that link. A router that does not support this
      specification would ignore the Reverse Metric and Reverse TE Metric LLS
      TLVs and not update its metric(s) in the other LSAs. As a result, the
      behavior would be the same as prior to this specification. Therefore,
      there are no backward compatibility related issues or considerations
      that need to be taken care of when implementing this specification.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-9-1">IANA has registered code points from the "Link Local Signalling
      TLV Identifiers (LLS Types)" registry in the "Open Shortest Path First (OSPF) Link
      Local Signalling (LLS) - Type/Length/Value Identifiers (TLV)" registry
      group for the TLVs introduced in this document as follows:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9-2">
        <li pn="section-9-2.1">19 - Reverse Metric TLV</li>
        <li pn="section-9-2.2">20 - Reverse TE Metric TLV</li>
      </ul>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-10-1">The security considerations for "OSPF Link-Local Signaling" <xref target="RFC5613" format="default" sectionFormat="of" derivedContent="RFC5613"/> also apply to the extension described in this
      document. The purpose of using the reverse metric TLVs is to alter the metrics
used by routers on the link and influence the flow and routing of traffic over
the network. Hence, modification of the Reverse Metric and
      Reverse TE Metric TLVs may result in traffic being misrouted. If
      authentication is being used in the OSPFv2 routing domain <xref target="RFC5709" format="default" sectionFormat="of" derivedContent="RFC5709"/><xref target="RFC7474" format="default" sectionFormat="of" derivedContent="RFC7474"> </xref>, then the
      Cryptographic Authentication TLV <xref target="RFC5613" format="default" sectionFormat="of" derivedContent="RFC5613"/> <bcp14>MUST</bcp14> also be
      used to protect the contents of the LLS block.</t>
      <t indent="0" pn="section-10-2">A router that is misbehaving or misconfigured may end up signaling
      varying values of RMs or toggle the state of RM.
      This can result in a neighbor router having to frequently update its
      Router LSA, causing network churn and instability despite existing OSPF
      protocol mechanisms (e.g., MinLSInterval, and <xref target="RFC8405" format="default" sectionFormat="of" derivedContent="RFC8405"/>).
      It is <bcp14>RECOMMENDED</bcp14> that implementations support the detection of frequent
      changes in RM signaling and ignore the RM (i.e.,
      revert to using their provisioned metric value) during such
      conditions.</t>
      <t indent="0" pn="section-10-3">The reception of malformed LLS TLVs or sub-TLVs <bcp14>SHOULD</bcp14> be logged, but
      such logging <bcp14>MUST</bcp14> be rate-limited to prevent Denial of Service (DoS)
      attacks.</t>
    </section>
  </middle>
  <back>
    <references pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <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"/>
          <format target="https://www.rfc-editor.org/info/rfc2119" type="TXT"/>
        </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"/>
          <format target="https://www.rfc-editor.org/info/rfc2328" type="TXT"/>
        </reference>
        <reference anchor="RFC3630" target="https://www.rfc-editor.org/info/rfc3630" quoteTitle="true" derivedAnchor="RFC3630">
          <front>
            <title>Traffic Engineering (TE) Extensions to OSPF Version 2</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <date month="September" year="2003"/>
            <abstract>
              <t indent="0">This document describes extensions to the OSPF protocol version 2 to support intra-area Traffic Engineering (TE), using Opaque Link State Advertisements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3630"/>
          <seriesInfo name="DOI" value="10.17487/RFC3630"/>
          <format target="https://www.rfc-editor.org/info/rfc3630" type="TXT"/>
        </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"/>
          <format target="https://www.rfc-editor.org/info/rfc5340" type="TXT"/>
        </reference>
        <reference anchor="RFC5613" target="https://www.rfc-editor.org/info/rfc5613" quoteTitle="true" derivedAnchor="RFC5613">
          <front>
            <title>OSPF Link-Local Signaling</title>
            <author fullname="A. Zinin" initials="A." surname="Zinin"/>
            <author fullname="A. Roy" initials="A." surname="Roy"/>
            <author fullname="L. Nguyen" initials="L." surname="Nguyen"/>
            <author fullname="B. Friedman" initials="B." surname="Friedman"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <date month="August" year="2009"/>
            <abstract>
              <t indent="0">OSPF is a link-state intra-domain routing protocol.  OSPF routers exchange information on a link using packets that follow a well-defined fixed format.  The format is not flexible enough to enable new features that need to exchange arbitrary data.  This document describes a backward-compatible technique to perform link-local signaling, i.e., exchange arbitrary data on a link.  This document replaces the experimental specification published in RFC 4813 to bring it on the Standards Track.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5613"/>
          <seriesInfo name="DOI" value="10.17487/RFC5613"/>
          <format target="https://www.rfc-editor.org/info/rfc5613" type="TXT"/>
        </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"/>
          <format target="https://www.rfc-editor.org/info/rfc8174" type="TXT"/>
        </reference>
      </references>
      <references pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="CLOS" target="https://doi.org/10.1002/j.1538-7305.1953.tb01433.x" quoteTitle="true" derivedAnchor="CLOS">
          <front>
            <title>A study of non-blocking switching networks</title>
            <author fullname="Charles Clos" initials="C" surname="Clos">
            </author>
            <date month="March" year="1953"/>
          </front>
          <seriesInfo name="DOI" value="10.1002/j.1538-7305.1953.tb01433.x"/>
          <refcontent>The Bell System Technical Journal, Vol. 32, Issue 2</refcontent>
        </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"/>
          <format target="https://www.rfc-editor.org/info/rfc4915" type="TXT"/>
        </reference>
        <reference anchor="RFC5709" target="https://www.rfc-editor.org/info/rfc5709" quoteTitle="true" derivedAnchor="RFC5709">
          <front>
            <title>OSPFv2 HMAC-SHA Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Barnes" initials="M." surname="Barnes"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2009"/>
            <abstract>
              <t indent="0">This document describes how the National Institute of Standards and Technology (NIST) Secure Hash Standard family of algorithms can be used with OSPF version 2's built-in, cryptographic authentication mechanism.  This updates, but does not supercede, the cryptographic authentication mechanism specified in RFC 2328. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5709"/>
          <seriesInfo name="DOI" value="10.17487/RFC5709"/>
          <format target="https://www.rfc-editor.org/info/rfc5709" type="TXT"/>
        </reference>
        <reference anchor="RFC6845" target="https://www.rfc-editor.org/info/rfc6845" quoteTitle="true" derivedAnchor="RFC6845">
          <front>
            <title>OSPF Hybrid Broadcast and Point-to-Multipoint Interface Type</title>
            <author fullname="N. Sheth" initials="N." surname="Sheth"/>
            <author fullname="L. Wang" initials="L." surname="Wang"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="January" year="2013"/>
            <abstract>
              <t indent="0">This document describes a mechanism to model a broadcast network as a hybrid of broadcast and point-to-multipoint networks for purposes of OSPF operation. Neighbor discovery and maintenance as well as Link State Advertisement (LSA) database synchronization are performed using the broadcast model, but the network is represented using the point-to-multipoint model in the router-LSAs of the routers connected to it. This allows an accurate representation of the cost of communication between different routers on the network, while maintaining the network efficiency of broadcast operation. This approach is relatively simple and requires minimal changes to OSPF.</t>
              <t indent="0">This document updates both OSPFv2 (RFC 2328) and OSPFv3 (RFC 5340). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6845"/>
          <seriesInfo name="DOI" value="10.17487/RFC6845"/>
          <format target="https://www.rfc-editor.org/info/rfc6845" type="TXT"/>
        </reference>
        <reference anchor="RFC7474" target="https://www.rfc-editor.org/info/rfc7474" quoteTitle="true" derivedAnchor="RFC7474">
          <front>
            <title>Security Extension for OSPFv2 When Using Manual Key Management</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="April" year="2015"/>
            <abstract>
              <t indent="0">The current OSPFv2 cryptographic authentication mechanism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- session replay attacks when using manual keying. Additionally, the existing cryptographic authentication mechanism does not cover the IP header. This omission can be exploited to carry out various types of attacks.</t>
              <t indent="0">This document defines changes to the authentication sequence number mechanism that will protect OSPFv2 from both inter-session and intra- session replay attacks when using manual keys for securing OSPFv2 protocol packets. Additionally, we also describe some changes in the cryptographic hash computation that will eliminate attacks resulting from OSPFv2 not protecting the IP header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7474"/>
          <seriesInfo name="DOI" value="10.17487/RFC7474"/>
          <format target="https://www.rfc-editor.org/info/rfc7474" type="TXT"/>
        </reference>
        <reference anchor="RFC8042" target="https://www.rfc-editor.org/info/rfc8042" quoteTitle="true" derivedAnchor="RFC8042">
          <front>
            <title>OSPF Two-Part Metric</title>
            <author fullname="Z. Zhang" initials="Z." surname="Zhang"/>
            <author fullname="L. Wang" initials="L." surname="Wang"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="December" year="2016"/>
            <abstract>
              <t indent="0">This document specifies an optional OSPF protocol extension to represent router metrics in a multi-access network in two parts: the metric from the router to the network and the metric from the network to the router.  For such networks, the router-to-router metric for OSPF route computation is the sum of the two parts.  This document updates RFC 2328.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8042"/>
          <seriesInfo name="DOI" value="10.17487/RFC8042"/>
          <format target="https://www.rfc-editor.org/info/rfc8042" type="TXT"/>
        </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"/>
          <format target="https://www.rfc-editor.org/info/rfc8405" type="TXT"/>
        </reference>
        <reference anchor="RFC8500" target="https://www.rfc-editor.org/info/rfc8500" quoteTitle="true" derivedAnchor="RFC8500">
          <front>
            <title>IS-IS Routing with Reverse Metric</title>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <author fullname="M. Abrahamsson" initials="M." surname="Abrahamsson"/>
            <date month="February" year="2019"/>
            <abstract>
              <t indent="0">This document describes a mechanism to allow IS-IS routing to quickly and accurately shift traffic away from either a point-to-point or multi-access LAN interface during network maintenance or other operational events.  This is accomplished by signaling adjacent IS-IS neighbors with a higher reverse metric, i.e., the metric towards the signaling IS-IS router.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8500"/>
          <seriesInfo name="DOI" value="10.17487/RFC8500"/>
          <format target="https://www.rfc-editor.org/info/rfc8500" type="TXT"/>
        </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"/>
          <format target="https://www.rfc-editor.org/info/rfc9129" type="TXT"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-appendix.a-2">
        <li pn="section-appendix.a-2.1">
          <t indent="0" pn="section-appendix.a-2.1.1">
      <contact fullname="Jay Karthik"/>
      for his contributions to the use cases and the review of the
      solution.</t>
        </li>
        <li pn="section-appendix.a-2.2">
          <t indent="0" pn="section-appendix.a-2.2.1"><contact fullname="Les Ginsberg"/>,
      <contact fullname="Aijun Wang"/>, <contact fullname="Gyan Mishra"/>,
      <contact fullname="Matthew Bocci"/>, <contact fullname="Thomas       Fossati"/>, and <contact fullname="Steve Hanna"/> for their review and
feedback.</t>
        </li>
        <li pn="section-appendix.a-2.3">
          <t indent="0" pn="section-appendix.a-2.3.1"><contact fullname="Acee Lindem"/> for a detailed shepherd's review and
comments.</t>
        </li>
        <li pn="section-appendix.a-2.4">
          <t indent="0" pn="section-appendix.a-2.4.1"><contact fullname="John Scudder"/> for his detailed AD review and suggestions for improvement.</t>
        </li>
      </ul>
      <t indent="0" pn="section-appendix.a-3">The document leverages the concept of RM for IS-IS, its
      related use cases, and applicability aspects from <xref target="RFC8500" format="default" sectionFormat="of" derivedContent="RFC8500"/>.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Talaulikar">
        <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
        <address>
          <postal>
            <country>India</country>
          </postal>
          <email>ketant.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Peter Psenak" initials="P." surname="Psenak">
        <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
        <address>
          <postal>
            <extaddr>Apollo Business Center</extaddr>
            <street>Mlynske nivy 43</street>
            <city>Bratislava</city>
            <code>821 09</code>
            <country>Slovakia</country>
          </postal>
          <email>ppsenak@cisco.com</email>
        </address>
      </author>
      <author fullname="Hugh Johnston" initials="H." surname="Johnston">
        <organization showOnFrontPage="true">AT&amp;T Labs</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>hugh.johnston@att.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
