rfc9339xml2.original.xml   rfc9339.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?> <!-- [CS] updated by Chris 11/03/22 -->
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?> <!DOCTYPE rfc [
<?rfc tocindent="yes"?> <!ENTITY nbsp "&#160;">
<?rfc symrefs="yes"?> <!ENTITY zwsp "&#8203;">
<?rfc sortrefs="yes"?> <!ENTITY nbhy "&#8209;">
<?rfc comments="yes"?> <!ENTITY wj "&#8288;">
<?rfc inline="yes"?> ]>
<?rfc compact="yes"?>
<?rfc subcompact="no"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="
<rfc category="std" docName="draft-ietf-lsr-ospf-reverse-metric-13" std" consensus="true" docName="draft-ietf-lsr-ospf-reverse-metric-13" number="93
ipr="trust200902"> 39" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" to
cDepth="3" symRefs="true" sortRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 3.15.0 -->
<front> <front>
<title abbrev="OSPF Reverse Metric">OSPF Reverse Metric</title> <title abbrev="OSPF Reverse Metric">OSPF Reverse Metric</title>
<seriesInfo name="RFC" value="9339"/>
<author fullname="Ketan Talaulikar" initials="K." role="editor" <author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Tal
surname="Talaulikar"> aulikar">
<organization>Cisco Systems, Inc.</organization> <organization>Cisco Systems, Inc.</organization>
<address> <address>
<postal> <postal>
<street/>
<city/>
<code/>
<country>India</country> <country>India</country>
</postal> </postal>
<email>ketant.ietf@gmail.com</email> <email>ketant.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Peter Psenak" initials="P." surname="Psenak"> <author fullname="Peter Psenak" initials="P." surname="Psenak">
<organization>Cisco Systems, Inc.</organization> <organization>Cisco Systems, Inc.</organization>
<address> <address>
<postal> <postal>
<street>Apollo Business Center</street> <extaddr>Apollo Business Center</extaddr>
<street>Mlynske nivy 43</street> <street>Mlynske nivy 43</street>
<city>Bratislava</city> <city>Bratislava</city>
<code>821 09</code> <code>821 09</code>
<country>Slovakia</country> <country>Slovakia</country>
</postal> </postal>
<email>ppsenak@cisco.com</email> <email>ppsenak@cisco.com</email>
</address> </address>
</author> </author>
<author fullname="Hugh Johnston" initials="H." surname="Johnston"> <author fullname="Hugh Johnston" initials="H." surname="Johnston">
<organization>AT&amp;T Labs</organization> <organization>AT&amp;T Labs</organization>
<address> <address>
<postal> <postal>
<street/> <country>United States of America</country>
<city/>
<code/>
<country>USA</country>
</postal> </postal>
<email>hugh.johnston@att.com</email>
<email>hugh_johnston@labs.att.com</email>
</address> </address>
</author> </author>
<date year="2022" month="December" />
<date year=""/> <area>rtg</area>
<workgroup>lsr</workgroup>
<area>Routing</area>
<workgroup>Link State Routing</workgroup>
<keyword>IGP</keyword> <keyword>IGP</keyword>
<keyword>OSPF</keyword> <keyword>OSPF</keyword>
<abstract> <abstract>
<t>This document specifies the extensions to OSPF that enable a router <t>This document specifies the extensions to OSPF that enable a router
to use link-local signaling to signal the metric that receiving OSPF to use Link-Local Signaling (LLS) to signal the metric that receiving
neighbor(s) should use for a link to the signaling router. The signaling OSPF neighbor(s) should use for a link to the signaling router. When
of this reverse metric, to be used on the link to the signaling router, used on the link to the signaling router, the signaling of this reverse
allows a router to influence the amount of traffic flowing towards metric (RM) allows a router to influence the amount of traffic flowing
itself and in certain use cases enables routers to maintain symmetric towards itself. In certain use cases, this enables routers to maintain
metrics on both sides of a link between them.</t> symmetric metrics on both sides of a link between them.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="INTRO" title="Introduction"> <section anchor="INTRO" numbered="true" toc="default">
<t>A router running the Open Shortest Path First (OSPFv2) <xref <name>Introduction</name>
target="RFC2328"> </xref> or OSPFv3 <xref target="RFC5340"/> routing <t>A router running the OSPFv2 <xref target="RFC2328" format="default">
protocols originates a Router-LSA (Link-State Advertisement) that </xref> or OSPFv3 <xref target="RFC5340" format="default"/> routing
protocols originates a Router-LSA (Link State Advertisement) that
describes all its links to its neighbors and includes a metric 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 indicates its "cost" to reach the neighbor over that link. Consider two
routers R1 and R2 that are connected via a link. The metric for this routers, R1 and R2, that are connected via a link. In the direction
link in the direction R1-&gt;R2 is configured on R1 and in the direction R1-&gt;R2, the metric for this link is configured on R1. In the
R2-&gt;R1 is configured on R2. Thus, the configuration on R1 influences direction R2-&gt;R1, the metric for this link is configured on R2. Thus,
the traffic that it forwards towards R2 but does not influence the the configuration on R1 influences the traffic that it forwards towards
traffic that it may receive from R2 on that same link.</t> R2, but does not influence the traffic that it may receive from R2 on
that same link.</t>
<t>This document describes certain use cases where a router is required <t>This document describes certain use cases where a router is required
to signal what we call the "reverse metric" (RM) to its neighbor to 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 adjust the routing metric in the inbound direction. When R1 signals its
reverse metric on its link to R2, then R2 advertises this value as 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. metric to R1 in its Router-LSA instead of its locally configured value.
Once this information is part of the topology, then all other routers do Once this information is part of the topology, all other routers do
their computation using this value which may result in the desired their computation using this value. This may result in the desired
change in the traffic distribution that R1 wanted to achieve towards change in the traffic distribution that R1 wanted to achieve towards
itself over the link from R2.</t> itself over the link from R2.</t>
<!-- [rfced] The Web Portion of the RFC Style Guide
(https://www.rfc-editor.org/styleguide/part2/) suggests that the
abbreviated form of an abbreviation should be used after it has been
introduced. We will implement this style for the following abbreviations
throughtout the document if there are no objections:
<t>This document describes extensions to OSPF Link-Local Signaling (LLS) Link-Local Signaling (LLS)
<xref target="RFC5613"/> to signal OSPF reverse metrics. <xref reverse metric (RM) -->
target="REVMETTLV"/> specifies the LLS Reverse Metric TLV and <xref <t>This document describes extensions to OSPF LLS
target="REVTEMETTLV"/> specifies the LLS Reverse TE Metric TLV. The <xref target="RFC5613" format="default"/> to signal OSPF RMs. <xref target
related procedures are specified in <xref target="PROCEDURES"/>.</t> ="REVMETTLV" format="default"/> specifies the LLS Reverse Metric TLV and <xref t
arget="REVTEMETTLV" format="default"/> specifies the LLS Reverse TE Metric TLV.
<section title="Requirements Language"> The
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", related procedures are specified in <xref target="PROCEDURES" format="defa
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and ult"/>.</t>
"OPTIONAL" in this document are to be interpreted as described in BCP <section numbered="true" toc="default">
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only <name>Requirements Language</name>
when, they appear in all capitals, as shown here.</t> <t>
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
IRED</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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section> </section>
</section> </section>
<section anchor="USECASE" numbered="true" toc="default">
<name>Use Cases</name>
<section anchor="USECASE" title="Use Cases"> <t>This section describes certain use cases that are addressed by the OSPF RM. T
<t>This section describes certain use cases that the OSPF reverse metric he usage of the OSPF RM need not be limited to these
helps address. The usage of the OSPF reverse metric need not be limited cases; it is intended to be a generic mechanism.</t>
to these cases; it is intended to be a generic mechanism.</t> <figure anchor="FIG1">
<name>Reference Dual Hub-and-Spoke Topology</name>
<t><figure anchor="FIG1" title="Reference Dual Hub and Spoke Topology"> <artwork name="" type="" align="left" alt=""><![CDATA[
<artwork><![CDATA[
Core Network Core Network
^ ^ ^ ^
| | | |
V v V v
+----------+ +----------+ +----------+ +----------+
| AGGR1 | | AGGR2 | | AGGR1 | | AGGR2 |
+----------+ +----------+ +----------+ +----------+
^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | |
| +-----------+ | | +-----------+ |
| | | | | | | |
| +--------+ | | | +--------+ | |
v v v v v v v v
+-----------+ +-----------+ +-----------+ +-----------+
| R1 | | RN | | R1 | | RN |
| Router | ... | Router | | Router | ... | Router |
+-----------+ +-----------+ +-----------+ +-----------+]]></artwork>
]]></artwork> </figure>
</figure></t>
<t>Consider a deployment scenario where, as shown in <xref
target="FIG1"/>, 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" title="Link Maintenance"> <t>Consider a deployment scenario, such as the one shown in <xref
target="FIG1" format="default"/>, 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="default">
<name>Link Maintenance</name>
<t>Before network maintenance events are performed on individual <t>Before network maintenance events are performed on individual
links, operators substantially increase (to maximum value) the OSPF links, operators substantially increase (to maximum value) the OSPF
metric simultaneously on both routers attached to the same link. In metric simultaneously on both routers attached to the same link. In
doing so, the routers generate new Router LSAs that are flooded doing so, the routers generate new Router LSAs that are flooded
throughout the network and cause all routers to shift traffic onto throughout the network and cause all routers to shift traffic onto
alternate paths (where available) with limited disruption (depending alternate paths (where available) with limited disruption (depending
on the network topology) to in-flight communications by applications on the network topology) to in-flight communications by applications
or end-users. When performed successfully, this allows the operator to or end users. When performed successfully, this allows the operator to
perform disruptive augmentation, fault diagnosis, or repairs on a link perform disruptive augmentation, fault diagnosis, or repairs on a link
in a production network.</t> in a production network.</t>
<t>In deployments such as a hub-and-spoke topology (as shown in <xref
<t>In deployments such as a hub and spoke topology as shown in <xref target="FIG1" format="default"/>), it is quite common to have routers
target="FIG1"/>, it is quite common to have routers with several with several hundred interfaces and individual interfaces that move
hundred interfaces and individual interfaces that move anywhere from anywhere from several hundred gigabits to terabits per second of
several hundred gigabits/second to terabits/second of traffic. The traffic. The challenge in such conditions is that the operator must
challenge in such conditions is that the operator must accurately accurately identify the same point-to-point (P2P) link on two separate
identify the same point-to-point link on two separate devices to devices to increase (and afterward decrease) the OSPF metric
increase (and afterward decrease) the OSPF metric appropriately and to appropriately and to do so in a coordinated manner. When considering
do so in a coordinated manner. When considering maintenance for PE-CE maintenance for PE-CE links when many Customer Edge (CE) routers
links when many CE routers connect to a PE router, an additional connect to a Provider Edge (PE) router, an additional challenge
challenge related to coordinating access to the CE routers may arise related to coordinating access to the CE routers may arise when the
when the CEs are not managed by the provider.</t> CEs are not managed by the provider.</t>
<t>The OSPF RM mechanism helps address these challenges.
<t>The OSPF reverse metric mechanism helps address these challenges. The operator can set the link on one of the routers (generally the
The operator can set the link on one of the routers (generally the hub hub, like AGGR1 or a PE) to a "maintenance mode". This causes the
like AGGR1 or a PE) to a "maintenance mode". This causes the router to router to advertise the maximum metric for that link and to signal its
advertise the maximum metric for that link and to signal its neighbor neighbor on the same link to advertise maximum metric via the reverse
on the same link to advertise maximum metric via the reverse metric metric signaling mechanism. Once the link maintenance is completed and
signaling mechanism. Once the link maintenance is completed and the the "maintenance mode" is turned off, the router returns to using its
"maintenance mode" is turned off, the router returns to using its provisioned metric for the link and stops the signaling of RM on that
provisioned metric for the link and stops the signaling of reverse link, resulting in its neighbor also reverting to its provisioned
metric on that link resulting in its neighbor also reverting to its metric for that link.</t>
provisioned metric for that link.</t>
</section> </section>
<section anchor="ADAPTIVEMET" numbered="true" toc="default">
<section anchor="ADAPTIVEMET" title="Adaptive Metric Signaling"> <name>Adaptive Metric Signaling</name>
<t>In <xref target="FIG1"/> above, consider that at some point in time <t>In <xref target="FIG1" format="default"/>, consider that at some poin
T, AGGR1 loses some of its capacity towards the core. This may result t 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 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 mitigate by redirecting some of its traffic load to transit via AGGR2,
which is not experiencing a similar issue. Altering its link metric which is not experiencing a similar issue. Altering its link metric
towards the R1-RN routers would influence the traffic from the core towards the R1-RN routers would influence the traffic from the core
towards R1-RN but not the other way around as desired.</t> towards R1-RN, but not the other way around as desired.</t>
<t>In such a scenario, the AGGR1 router could signal an incremental <t>In such a scenario, the AGGR1 router could signal an incremental
OSPF reverse metric to some or all the R1-RN routers. When the R1-RN OSPF RM to some or all the R1-RN routers. When the R1-RN
routers add this signaled reverse metric offset to the provisioned routers add this signaled RM offset to the provisioned
metric on their links towards AGGR1, then the path via AGGR2 becomes a metric on their links towards AGGR1, the path via AGGR2 becomes a
better path causing traffic towards the core to be diverted away from better path. This causes traffic towards the core to be diverted away
AGGR1. Note that the reverse metric mechanism allows such adaptive from AGGR1. Note that the RM mechanism allows such
metric changes to be applied on the AGGR1 as opposed to being adaptive metric changes to be applied on the AGGR1 as opposed to being
provisioned on a possibly large number of R1-RN routers.</t> provisioned on a possibly large number of R1-RN routers.</t>
<t>The RM mechanism may be similarly applied between spine
<t>The reverse metric mechanism may be similarly applied between spine and leaf nodes in a Clos network <xref target="CLOS" format="default"/>
and leaf nodes in a Clos network <xref target="CLOS"/> topology topology
deployment.</t> deployment.</t>
</section> </section>
</section> </section>
<section anchor="SOLUTION" numbered="true" toc="default">
<section anchor="SOLUTION" title="Solution"> <name>Solution</name>
<t>To address the use cases described earlier and to allow an OSPF <t>To address the use cases described earlier and to allow an OSPF
router to indicate its reverse metric for a specific link to its router to indicate its RM for a specific link to its
neighbor(s), this document proposes to extend OSPF link-local signaling neighbor(s), this document proposes to extend OSPF link-local signaling
to signal the Reverse Metric TLV in OSPF Hello packets. This ensures to signal the Reverse Metric TLV in OSPF Hello packets. This ensures
that the RM signaling is scoped only to each specific link individually. that the RM signaling is scoped only to a specific link.
The router continues to include the Reverse Metric TLV in its Hello 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 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 metric value towards itself. Further details of the procedures involved
are specified in <xref target="PROCEDURES"/>.</t> are specified in <xref target="PROCEDURES" format="default"/>.</t>
<t>The reverse metric mechanism specified in this document applies only <t>The RM mechanism specified in this document applies only to
for point-to-point, point-to-multipoint, and hybrid broadcast P2P, Point-to-Multipoint (P2MP), and hybrid-broadcast-P2MP (<xref
point-to-multipoint ( <xref target="RFC6845"/>) links. It is not target="RFC6845" format="default"/>) links. It is not applicable for broadcast
applicable for broadcast or non-broadcast-multi-access (NBMA) links or Non-Broadcast Multi-Access (NBMA) links since the same objective is
since the same objective is achieved there using the OSPF Two-Part achieved there using the OSPF Two-Part Metric mechanism <xref target="RFC8042"
Metric mechanism <xref target="RFC8042"/> for OSPFv2. The OSPFv3 format="default"/> for OSPFv2. The OSPFv3 solution for broadcast or NBMA links
solution for broadcast or NBMA links is outside the scope of this is outside the scope of this document.</t>
document.</t>
</section> </section>
<section anchor="REVMETTLV" numbered="true" toc="default">
<section anchor="REVMETTLV" title="LLS Reverse Metric TLV"> <name>LLS Reverse Metric TLV</name>
<t>The Reverse Metric TLV is a new LLS TLV. It has following <t>The Reverse Metric TLV is a new LLS TLV. It has following
format:<figure anchor="FIG2" title="Reverse Metric TLV"> format:</t>
<artwork><![CDATA[ <figure anchor="FIG2">
<name>Reverse Metric TLV</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTID | Flags |O|H| Reverse Metric | | MTID | Flags |O|H| Reverse Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
where: <t>where:</t>
]]></artwork> <dl newline="false" spacing="normal">
</figure><list style="hanging"> <dt>Type:</dt>
<t>Type: 19</t> <dd>19</dd>
<dt>Length:</dt>
<t>Length: 4 octets</t> <dd>4 octets</dd>
<dt>MTID:</dt>
<t>MTID : the multi-topology identifier of the link (<xref <dd>The multi-topology identifier of the link (<xref target="RFC4915" fo
target="RFC4915"/>)</t> rmat="default"/>).</dd>
<dt>Flags:</dt>
<t>Flags: 1 octet, the following flags are defined currently and the <dd>1 octet. The following flags are defined currently and the
rest MUST be set to 0 on transmission and ignored on reception.</t> rest <bcp14>MUST</bcp14> be set to 0 on transmission and ignored on re
ception:</dd>
<t><list style="symbols"> <dt/>
<t>H (0x1) : Indicates that the neighbor should use the value <dd>
<dl newline="false" spacing="normal">
<dt>H (0x1):</dt><dd>Indicates that the neighbor should use the valu
e
only if it is higher than its provisioned metric value for the only if it is higher than its provisioned metric value for the
link.</t> link.</dd>
<dt>O (0x2):</dt><dd>Indicates that the RM value provided is
<t>O (0x2) : Indicates that the reverse metric value provided is an offset that is to be added to the provisioned metric.</dd>
an offset that is to be added to the provisioned metric.</t> </dl>
</list></t> </dd>
<dt>Reverse Metric:</dt>
<t>Reverse Metric: unsigned integer of 2 octets that carries the <dd>Unsigned integer of 2 octets that carries the
value or offset of reverse metric to replace or be added to the value or offset of RM to replace or be added to the
provisioned link metric.</t> provisioned link metric.</dd>
</list></t> </dl>
</section> </section>
<section anchor="REVTEMETTLV" numbered="true" toc="default">
<section anchor="REVTEMETTLV" title="LLS Reverse TE Metric TLV"> <name>LLS Reverse TE Metric TLV</name>
<t>The Reverse TE Metric TLV is a new LLS TLV. It has the following <t>The Reverse TE Metric TLV is a new LLS TLV. It has the following
format:<figure anchor="FIG3" title="Reverse TE Metric TLV"> format:</t>
<artwork><![CDATA[ <figure anchor="FIG3">
<name>Reverse TE Metric TLV</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |O|H| RESERVED | | Flags |O|H| RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reverse TE Metric | | Reverse TE Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
where: <t>where:</t>
]]></artwork> <dl newline="false" spacing="normal">
</figure><list style="hanging"> <dt>Type:</dt>
<t>Type: 20</t> <dd>20</dd>
<dt>Length:</dt>
<t>Length: 4 octets</t> <dd>4 octets</dd>
<dt>Flags:</dt>
<t>Flags: 1 octet, the following flags are defined currently and the <dd>1 octet. The following flags are defined currently and the
rest MUST be set to 0 on transmission and ignored on reception.</t> rest <bcp14>MUST</bcp14> be set to 0 on transmission and ignored on re
ception:</dd>
<t><list style="symbols"> <dt/>
<t>H (0x1) : Indicates that the neighbor should use the value <dd>
<dl newline="false" spacing="normal">
<dt>H (0x1):</dt><dd>Indicates that the neighbor should use the valu
e
only if it is higher than its provisioned TE metric value for only if it is higher than its provisioned TE metric value for
the link.</t> the link.</dd>
<dt>O (0x2):</dt><dd>Indicates that the reverse TE metric value prov
<t>O (0x2) : Indicates that the reverse TE metric value provided ided
is an offset that is to be added to the provisioned TE is an offset that is to be added to the provisioned TE
metric.</t> metric.</dd>
</list></t> </dl>
</dd>
<t>RESERVED: 24-bit field. MUST be set to 0 on transmission and MUST <dt>RESERVED:</dt>
be ignored on receipt.</t> <dd>24-bit field. <bcp14>MUST</bcp14> be set to 0 on transmission and <b
cp14>MUST</bcp14>
<t>Reverse TE Metric: unsigned integer of 4 octets that carries the be ignored on receipt.</dd>
<dt>Reverse TE Metric:</dt>
<dd>Unsigned integer of 4 octets that carries the
value or offset of reverse traffic engineering metric to replace or value or offset of reverse traffic engineering metric to replace or
to be added to the provisioned TE metric of the link.</t> to be added to the provisioned TE metric of the link.</dd>
</list></t> </dl>
</section> </section>
<section anchor="PROCEDURES" numbered="true" toc="default">
<section anchor="PROCEDURES" title="Procedures"> <name>Procedures</name>
<t>When a router needs to signal an RM value that its neighbor(s) should <t>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 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 the LLS block of its Hello packets sent on that link and continues to
include this TLV for as long as it needs its neighbor to use this value. 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 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 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 this document. For example, the RM value may be derived based on the
router's link bandwidth with respect to a reference bandwidth.</t> router's link bandwidth with respect to a reference bandwidth.</t>
<t>A router receiving a Hello packet from its neighbor that contains the <t>A router receiving a Hello packet from its neighbor that contains the
Reverse Metric TLV on a link MUST use the RM value to derive the metric Reverse Metric TLV on a link <bcp14>MUST</bcp14> use the RM value to deriv e the metric
for the link to the advertising router in its Router-LSA when the for the link to the advertising router in its Router-LSA when the
reverse metric feature is enabled (refer <xref target="OPER"/> for RM feature is enabled (refer to <xref target="OPER" format="default"/> for
details on enablement of RM). When the O flag is set, the metric value 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 to be advertised is derived by adding the value in the TLV to the
provisioned metric for the link. The metric value 0xffff (maximum provisioned metric for the link. The metric value 0xffff (maximum
interface cost) is advertised when the sum exceeds the maximum interface 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 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 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 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 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 higher than the provisioned metric for the link. The H and O flags are
mutually exclusive and the H flag is ignored when the O flag is set.</t> mutually exclusive; the H flag is ignored when the O flag is set.</t>
<t>A router stops including the Reverse Metric TLV in its Hello packets <t>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 when it needs its neighbors to go back to using their own provisioned
metric values. When this happens, a router that had modified its metric metric values. When this happens, a router that has modified its metric
in response to receiving a Reverse Metric TLV from its neighbor MUST in response to receiving a Reverse Metric TLV from its neighbor <bcp14>MUS
T</bcp14>
revert to using its provisioned metric value.</t> revert to using its provisioned metric value.</t>
<t>In certain scenarios, two or more routers may start the RM signaling <t>In certain scenarios, two or more routers may start the RM signaling
on the same link. This could create collision scenarios. The following on the same link. This could create collision scenarios.
guidelines are RECOMMENDED for adoption to ensure that there is no The following
guidelines are <bcp14>RECOMMENDED</bcp14> for adoption to ensure that ther
e is no
instability in the network due to churn in their metric caused by the instability in the network due to churn in their metric caused by the
signaling of RM:</t> signaling of RM:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>The RM value that is signaled by a router to its neighbor should
<t>The RM value that is signaled by a router to its neighbor should not be derived from the RM being signaled by any of
not be derived from the reverse metric being signaled by any of its its neighbors on any of its links.</li>
neighbors on any of its links.</t> <li>The RM value that is signaled by a router to its neighbor should
not be derived from the RM being signaled by any of
<t>The RM value that is signaled by a router should not be derived its neighbors on any of its links. RM signaling from
from its metric which has been modified on account of an RM signaled
from any of its neighbors on any of its links. RM signaling from
other routers can affect the router's metric advertised in its other routers can affect the router's metric advertised in its
Router-LSA. When deriving the RM values that a router signals to its Router-LSA. When deriving the RM values that a router signals to its
neighbors, it should use its provisioned local metric values not neighbors, it should use its provisioned local metric values not
influenced by any RM signaling.</t> influenced by any RM signaling.</li>
</list></t> </ul>
<t>Based on these guidelines, a router would not start, stop, or change <t>Based on these guidelines, a router would not start, stop, or change
its RM metric signaling based on the RM metric signaling initiated by its RM signaling based on the RM signaling initiated by
some other routers. Based on the local configuration policy, each router 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 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 would be no churn of metrics on the link or the network on account of RM
signaling.</t> signaling.</t>
<t>In certain use cases when symmetrical metrics are desired (e.g., when <t>In certain use cases when symmetrical metrics are desired (e.g., when
metrics are derived based on link bandwidth), the RM signaling can be 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 enabled on routers on either end of a link. In other use cases (as
described in <xref target="MAINT"/>), RM signaling may need to be described in <xref target="MAINT" format="default"/>), RM signaling may ne ed to be
enabled only on the router at one end of a link.</t> enabled only on the router at one end of a link.</t>
<t>When using multi-topology routing with OSPF <xref target="RFC4915" form
<t>When using multi-topology routing with OSPF <xref target="RFC4915"/>, at="default"/>,
a router MAY include multiple instances of the Reverse Metric TLV in the a router <bcp14>MAY</bcp14> include multiple instances of the Reverse Metr
LLS block of its Hello packet - one for each of the topologies for which ic TLV in the
it desires to signal the reverse metric. A router MUST NOT include more 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 mor
e
than one instance of this TLV per MTID. If more than a single instance than one instance of this TLV per MTID. If more than a single instance
of this TLV per MTID is present, the receiving router MUST only use the 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> value from the first instance and ignore the others.</t>
<t>In certain scenarios, the OSPF router may also require the <t>In certain scenarios, the OSPF router may also require the
modification of the TE metric being advertised by its neighbor router modification of the TE metric being advertised by its neighbor router
towards itself in the inbound direction. The Reverse TE Metric TLV, towards itself in the inbound direction. Using similar procedures to
using similar procedures to those described above, MAY be used to signal those described above, the Reverse TE Metric TLV <bcp14>MAY</bcp14> be
the reverse TE metric for router links. The neighbor MUST use the used to signal the reverse TE metric for router links. The neighbor
reverse TE metric value to derive the TE metric advertised in the TE <bcp14>MUST</bcp14> use the reverse TE metric value to derive the TE
Metric sub-TLV of the Link TLV in its TE Opaque LSA <xref metric advertised in the TE Metric sub-TLV of the Link TLV in its TE
target="RFC3630"/> when the reverse metric feature is enabled (refer Opaque LSA <xref target="RFC3630" format="default"/> when the reverse
<xref target="OPER"/> for details on enablement of RM). The rules for metric feature is enabled (refer <xref target="OPER" format="default"/>
doing so are analogous to those given above for the Router-LSA.</t> for details on enablement of RM). The rules for doing so are analogous
to those given above for the Router-LSA.</t>
</section> </section>
<section anchor="OPER" numbered="true" toc="default">
<section anchor="OPER" title="Operational Guidelines"> <name>Operational Guidelines</name>
<t>The signaled reverse metric does not alter the OSPF metric parameters <t>The signaled RM does not alter the OSPF metric parameters
stored in a receiving router's persistent provisioning database.</t> stored in a receiving router's persistent provisioning database.</t>
<t>Routers that receive a RM advertisement
<bcp14>SHOULD</bcp14> log an event to notify system administration.
<t>Routers that receive a reverse metric advertisement SHOULD log an This will assist in rapidly
event to notify system administration. This will assist in rapidly identifying the node in the network that is advertising an OSPF
identifying the node in the network that is advertising an OSPF metric metric or TE metric different from what is configured locally
or TE metric different from that which is configured locally on the on the device.</t>
device.</t>
<t>When the link TE metric is raised to the maximum value, either due to <t>When the link TE metric is raised to the maximum value, either due to
the reverse metric mechanism or by explicit user configuration, this the RM mechanism or by explicit user configuration, this
SHOULD immediately trigger the CSPF (Constrained Shortest Path First) <bcp14>SHOULD</bcp14> immediately trigger the CSPF (Constrained Shortest P
ath First)
recalculation to move the TE traffic away from that link.</t> recalculation to move the TE traffic away from that link.</t>
<t>An implementation <bcp14>MUST NOT</bcp14> signal RM to neighbors by
<t>An implementation MUST NOT signal reverse metric to neighbors by default and <bcp14>MUST</bcp14> provide a configuration option to enable t
default and MUST provide a configuration option to enable the signaling he signaling
of reverse metric on specific links. An implementation MUST NOT accept of RM on specific links. An implementation <bcp14>MUST NOT</bcp14> accept
the RM from its neighbors by default. An implementation MAY provide 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 configuration to accept the RM globally on the device, or per area, but
an implementation MUST support configuration to enable/disable an implementation <bcp14>MUST</bcp14> support configuration to enable/disa ble
acceptance of the RM from neighbors on specific links. This is to acceptance of the RM from neighbors on specific links. This is to
safeguard against inadvertent use of RM.</t> safeguard against inadvertent use of RM.</t>
<t>For the use case in <xref target="MAINT" format="default"/>, it is <bcp
<t>For the use case in <xref target="MAINT"/>, it is RECOMMENDED that 14>RECOMMENDED</bcp14> that
the network operator limits the period of enablement of the reverse the network operator limit the period of enablement of the reverse
metric mechanism to be only the duration of a network maintenance metric mechanism to be only the duration of a network maintenance
window.</t> window.</t>
<t><xref target="I-D.ietf-ospf-yang"/> specifies the base OSPF YANG <t><xref target="RFC9129" format="default"/> specifies the base OSPF YANG
model. The required configuration and operational elements for this data model. The required configuration and operational elements for this
feature are expected to be introduced as an augmentation to this base feature are expected to be introduced as an augmentation to this base
OSPF YANG model.</t> OSPF YANG data model.</t>
</section>
<section anchor="BACKW" title="Backward Compatibility"> </section>
<section anchor="BACKW" numbered="true" toc="default">
<name>Backward Compatibility</name>
<t>The signaling specified in this document happens at a link-local <t>The signaling specified in this document happens at a link-local
level between routers on that link. A router that does not support this level between routers on that link. A router that does not support this
specification would ignore the Reverse Metric and Reverse TE Metric LLS 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 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, behavior would be the same as prior to this specification. Therefore,
there are no backward compatibility related issues or considerations there are no backward compatibility related issues or considerations
that need to be taken care of when implementing this specification.</t> that need to be taken care of when implementing this specification.</t>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<section anchor="IANA" title="IANA Considerations"> <name>IANA Considerations</name>
<t>This document allocates code points from the "Link Local Signalling <t>IANA has registered code points from the "Link Local Signalling
TLV Identifiers" registry in the "Open Shortest Path First (OSPF) Link TLV Identifiers (LLS Types)" registry in the "Open Shortest Path First (OS
PF) Link
Local Signalling (LLS) - Type/Length/Value Identifiers (TLV)" registry Local Signalling (LLS) - Type/Length/Value Identifiers (TLV)" registry
group for the TLVs introduced.</t> group for the TLVs introduced in this document as follows:</t>
<t>IANA is requested to make permanent the following code points that
have been assigned via early allocation</t>
<t>o 19 - Reverse Metric TLV</t>
<t>o 20 - Reverse TE Metric TLV</t> <ul spacing="normal">
<li>19 - Reverse Metric TLV</li>
<li>20 - Reverse TE Metric TLV</li>
</ul>
</section> </section>
<section anchor="Security" numbered="true" toc="default">
<section anchor="Security" title="Security Considerations"> <name>Security Considerations</name>
<t>The security considerations for "OSPF Link-Local Signaling" <xref <t>The security considerations for "OSPF Link-Local Signaling" <xref targe
target="RFC5613"/> also apply to the extension described in this t="RFC5613" format="default"/> also apply to the extension described in this
document. The usage of the reverse metric TLVs is to alter the metrics document. The purpose of using the reverse metric TLVs is to alter the met
used by routers on the link and influence the flow and routing of rics
traffic over the network. Hence, modification of the Reverse Metric and used by routers on the link and influence the flow and routing of traffic over
Reverse TE Metric TLVs may result in misrouting of traffic. If the network. Hence, modification of the Reverse Metric and
authentication is being used in the OSPFv2 routing domain <xref Reverse TE Metric TLVs may result in traffic being misrouted. If
target="RFC5709"/><xref target="RFC7474"> </xref>, then the authentication is being used in the OSPFv2 routing domain <xref target="RF
Cryptographic Authentication TLV <xref target="RFC5613"/> MUST also be C5709" format="default"/><xref target="RFC7474" format="default"> </xref>, then
the
Cryptographic Authentication TLV <xref target="RFC5613" format="default"/>
<bcp14>MUST</bcp14> also be
used to protect the contents of the LLS block.</t> used to protect the contents of the LLS block.</t>
<t>A router that is misbehaving or misconfigured may end up signaling
<t>A router that is misbehaving or misconfigured, may end up signaling varying values of RMs or toggle the state of RM.
varying values of reverse metrics or toggle the state of reverse metric.
This can result in a neighbor router having to frequently update its This can result in a neighbor router having to frequently update its
Router LSA causing network churn and instability despite existing OSPF Router LSA, causing network churn and instability despite existing OSPF
protocol mechanisms (e.g., MinLSInterval, and <xref target="RFC8405"/>). protocol mechanisms (e.g., MinLSInterval, and <xref target="RFC8405" forma
It is RECOMMENDED that implementations support the detection of frequent t="default"/>).
changes in reverse metric signaling and ignore the reverse metric (i.e., It is <bcp14>RECOMMENDED</bcp14> that implementations support the detectio
n of frequent
changes in RM signaling and ignore the RM (i.e.,
revert to using their provisioned metric value) during such revert to using their provisioned metric value) during such
conditions.</t> conditions.</t>
<t>The reception of malformed LLS TLVs or sub-TLVs <bcp14>SHOULD</bcp14> b
<t>The reception of malformed LLS TLVs or sub-TLVs SHOULD be logged, but e logged, but
such logging MUST be rate-limited to prevent denial-of-service (DoS) such logging <bcp14>MUST</bcp14> be rate-limited to prevent Denial of Serv
ice (DoS)
attacks.</t> attacks.</t>
</section> </section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>The authors would like to thanks Jay Karthik for his contributions to
the use cases and the review of the solution.</t>
<t>The authors would like to thank Les Ginsberg, Aijun Wang, Gyan
Mishra, Matthew Bocci, Thomas Fossati, and Steve Hanna for their review
and feedback on this document. The authors would also like to thank Acee
Lindem for this detailed shepherd's review and comments on this
document. The authors would also like to thank John Scudder for his
detailed AD review and suggestions to improve this document.</t>
<t>The document leverages the concept of Reverse Metric for IS-IS, its
related use cases, and applicability aspects from <xref
target="RFC8500"/>.</t>
</section>
</middle> </middle>
<back> <back>
<references title="Normative References"> <references>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R <name>References</name>
FC.2328.xml"?> <references>
<name>Normative References</name>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
FC.3630.xml"?> 328.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R 630.xml"/>
FC.5340.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
340.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
613.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
915.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
042.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
845.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
474.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
709.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
500.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
405.xml"/>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R FC.5613.xml"?> <!-- [I-D.ietf-ospf-yang] Published as RFC 9129 -->
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R FC.2119.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 129.xml"/>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R <reference anchor="CLOS" target="">
FC.8174.xml"?> <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</refcon
tent>
</reference>
</references>
</references> </references>
<references title="Informative References"> <section anchor="Acknowledgements" numbered="false" toc="default">
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R <name>Acknowledgements</name>
FC.4915.xml"?>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R
FC.8042.xml"?>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R
FC.6845.xml"?>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R
FC.7474.xml"?>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R
FC.5709.xml"?>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R
FC.8500.xml"?>
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R
FC.8405.xml"?>
<?rfc include='reference.I-D.ietf-ospf-yang.xml'?>
<reference anchor="CLOS" target="">
<front>
<title>A Study of Non-Blocking Switching Networks: Bell System
Technical Journal Vol. 32(2)</title>
<author fullname="Charles Clos" initials="C" surname="Clos">
<organization>Bell Labs Technical Journal</organization>
</author>
<date month="March" year="1953"/> <t>The authors would like to thank:</t>
</front> <ul><li><t>
</reference> <contact fullname="Jay Karthik"/>
</references> for his contributions to the use cases and the review of the
</back> solution.</t></li>
<li><t><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> <t><contact
fullname="Acee Lindem"/> for a detailed shepherd's review and
comments.</t></li>
<li><t><contact
fullname="John Scudder"/> for his detailed AD review and suggestions for i
mprovement.</t></li></ul>
<t>The document leverages the concept of RM for IS-IS, its
related use cases, and applicability aspects from <xref target="RFC8500"
format="default"/>.</t>
</section>
</back>
</rfc> </rfc>
 End of changes. 99 change blocks. 
381 lines changed or deleted 390 lines changed or added

This html diff was produced by rfcdiff 1.48.