rfc9791xml2.original.xml | rfc9791.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2. | ||||
6.10) --> | ||||
<!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
<!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
]> | ]> | |||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | <!-- [rfced] *AD: We see that consensus is set to "Unknown" | |||
-ietf-mpls-mna-usecases-15" | for this document in the datatracker. See | |||
category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs= | <https://datatracker.ietf.org/doc/draft-ietf-mpls-mna-usecases/>. | |||
"true"> | ||||
<front> | This document was sent to Last Call, so we have used the | |||
<title abbrev="MNA Use Cases">Use Cases for MPLS Network Action Indicators a | consensus Status of This Memo. Please let us know if any updates | |||
nd MPLS Ancillary Data</title> | are needed. | |||
--> | ||||
<!-- [rfced] The document title includes two instances of "MPLS". Are both neede | ||||
d? | ||||
Original: | ||||
Use Cases for MPLS Network Action Indicators and MPLS Ancillary Data | ||||
Perhaps: | ||||
Use Cases for MPLS Network Action Indicators and Ancillary Data | ||||
--> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | ||||
-ietf-mpls-mna-usecases-15" number="9791" consensus="true" updates="" obsoletes= | ||||
"" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRe | ||||
fs="true" version="3" xml:lang="en"> | ||||
<front> | ||||
<title abbrev="MNA Use Cases">Use Cases for MPLS Network Action Indicators | ||||
and MPLS Ancillary Data</title> | ||||
<seriesInfo name="RFC" value="9791"/> | ||||
<author initials="T." surname="Saad" fullname="Tarek Saad"> | <author initials="T." surname="Saad" fullname="Tarek Saad"> | |||
<organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<email>tsaad.net@gmail.com</email> | <email>tsaad.net@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="K." surname="Makhijani" fullname="Kiran Makhijani"> | <author initials="K." surname="Makhijani" fullname="Kiran Makhijani"> | |||
<organization>Independent</organization> | <organization>Independent</organization> | |||
<address> | <address> | |||
<email>kiran.ietf@gmail.com</email> | <email>kiran.ietf@gmail.com</email> | |||
skipping to change at line 41 ¶ | skipping to change at line 58 ¶ | |||
<address> | <address> | |||
<email>haoyu.song@futurewei.com</email> | <email>haoyu.song@futurewei.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="G." surname="Mirsky" fullname="Greg Mirsky"> | <author initials="G." surname="Mirsky" fullname="Greg Mirsky"> | |||
<organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
<address> | <address> | |||
<email>gregimirsky@gmail.com</email> | <email>gregimirsky@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2025" month="May"/> | ||||
<area>RTG</area> | ||||
<workgroup>mpls</workgroup> | ||||
<date year="2024"/> | <!-- [rfced] Please insert any keywords (beyond those that appear in | |||
the title) for use on https://www.rfc-editor.org/search. --> | ||||
<workgroup>MPLS Working Group</workgroup> | <keyword>example</keyword> | |||
<keyword>Internet-Draft</keyword> | ||||
<abstract> | <abstract> | |||
<t> | ||||
<t> | ||||
This document presents use cases that have a common feature | This document presents use cases that have a common feature | |||
that may be addressed by encoding network action indicators | that may be addressed by encoding network action indicators | |||
and associated ancillary data within MPLS packets. There is community | and associated ancillary data within MPLS packets. There is community | |||
interest in extending the MPLS data plane to carry such indicators | interest in extending the MPLS data plane to carry such indicators | |||
and ancillary data to address the use cases that are described | and ancillary data to address these use cases. | |||
in this document. | </t> | |||
</t> | <t> | |||
The use cases described in this document are not an exhaustive set | ||||
<t> | but rather the ones that have been actively discussed by members of the | |||
The use cases described in this document are not an exhaustive set, | IETF MPLS, PALS, and DetNet Working Groups from the beginning of work | |||
but rather the ones that are actively discussed by members of the | on MPLS Network Action (MNA) until the publication of this document. | |||
IETF MPLS, PALS, and DetNet working groups from the beginning of work | </t> | |||
on the MPLS Network Action until the publication of this document. | ||||
</t> | ||||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction"> | ||||
<section anchor="introduction"><name>Introduction</name> | <name>Introduction</name> | |||
<t>This document describes use cases that introduce functions that require | ||||
<t>This document describes use cases that introduce functions that require | ||||
special processing by forwarding hardware. The current state of the art requires | special processing by forwarding hardware. The current state of the art requires | |||
allocating a new special-purpose label (SPL) <xref target="RFC3032"/> or extende | allocating a new Special-Purpose Label (SPL) <xref target="RFC3032"/> or Extende | |||
d special-purpose label (eSPL). | d Special-Purpose Label (eSPL). | |||
SPLs are a very limited resource, while eSPL requires an extra Label Stack Entry | SPLs are a very limited resource, while eSPL requires an extra label stack entry | |||
per Network Action, which is expensive. | per network action, which is expensive. | |||
Therefore, an MPLS Network Action (MNA) <xref target="RFC9613"/> approach was pr oposed to extend the MPLS architecture. | Therefore, an MPLS Network Action (MNA) <xref target="RFC9613"/> approach was pr oposed to extend the MPLS architecture. | |||
MNA is expected to enable functions that may require carrying additional | MNA is expected to enable functions that may require carrying additional | |||
ancillary data within the MPLS packets, as well as a means to indicate the | ancillary data within the MPLS packets, as well as a means to indicate that the | |||
ancillary data is present and a specific action needs to be performed on the | ancillary data is present and a specific action needs to be performed on the | |||
packet.</t> | packet.</t> | |||
<t> | <t> | |||
This document lists various use cases that could benefit extensively | This document lists various use cases that could benefit extensively | |||
from the MNA framework <xref target="I-D.ietf-mpls-mna-fwk"/>. | from the MNA framework <xref target="RFC9789"/>. | |||
Supporting a solution of the general MNA framework provides | Supporting a solution of the general MNA framework provides | |||
a common foundation for future network actions that can be exercised | a common foundation for future network actions that can be exercised | |||
in the MPLS data plane. | in the MPLS data plane. | |||
</t> | </t> | |||
<section anchor="terminology"><name>Terminology</name> | <section anchor="terminology"> | |||
<name>Terminology</name> | ||||
<t>The following terminology is used in the document:</t> | <t>The following terminology is used in the document:</t> | |||
<dl newline="true"> | <!-- [rfced] We see that "MPLS Ancillary Data" appears in Section 1.1 | |||
<dt>RFC 9543 Network Slice</dt> | ("Terminology"). We see instances of "ancillary data" (no "MPLS") in the | |||
<dd> | document, but we only see "MPLS Ancillary Data" used in the document | |||
<t> is interpreted as defined in <xref target="RFC9543"/>. | title. Are any updates needed? | |||
Furthermore, this document uses "network slice" interchangeably as a shorter ver | ||||
sion | ||||
of the RFC 9543 Network Slice term.</t> | ||||
</dd> | ||||
<dt>The MPLS Ancillary Data is classified as:</dt> | ||||
<dd> | ||||
<t><list style="symbols"> | ||||
<t>residing within the MPLS label stack and referred to as In-Stack Data, and< | ||||
/t> | ||||
<t>residing after the Bottom of Stack (BoS) and referred to as Post-Stack Data | ||||
.</t> | ||||
</list> | ||||
</t> | ||||
</dd> | ||||
</dl> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Conventions used in this document</name> | ||||
<section anchor="acronyms-and-abbreviations"><name>Acronyms and Abbreviations</n | ||||
ame> | ||||
<ul empty="true"><li> | ||||
<t>MNA: MPLS Network Action</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>DEX: Direct Export</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>I2E: Ingress to Edge</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>HbH: Hop by Hop</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>PW: Pseudowire</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>BoS: Bottom of Stack</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>ToS: Top of Stack</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>NSH: Network Service Header</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | Also, note that we slightly updated the definition list as follows to clearly | |||
<t>FRR: Fast Reroute</t> | note the terms and their definitions. | |||
</li></ul> | ||||
<ul empty="true"><li> | Original: | |||
<t>IOAM: In-situ Operations, Administration, and Maintenance</t> | RFC 9543 Network Slice | |||
</li></ul> | is interpreted as defined in [RFC9543]. Furthermore, this | |||
document uses "network slice" interchangeably as a shorter version | ||||
of the RFC 9543 Network Slice term. | ||||
<ul empty="true"><li> | The MPLS Ancillary Data is classified as: | |||
<t>G-ACh: Generic Associated Channel</t> | * residing within the MPLS label stack and referred to as In- | |||
</li></ul> | Stack Data, and | |||
<ul empty="true"><li> | * residing after the Bottom of Stack (BoS) and referred to as | |||
<t>LSP: Label Switched Path</t> | Post-Stack Data. | |||
</li></ul> | ||||
<ul empty="true"><li> | Updated: | |||
<t>LSR: Label Switch Router</t> | RFC 9543 Network Slice: | |||
</li></ul> | Interpreted as defined in [RFC9543]. This document | |||
uses "network slice" interchangeably as a shorter version of the | ||||
term "RFC 9543 Network Slice". | ||||
<ul empty="true"><li> | MPLS Ancillary Data: | |||
<t>NRP: Network Resource Partition</t> | Data that can be classified as: | |||
</li></ul> | ||||
<ul empty="true"><li> | * residing within the MPLS label stack (referred to as "in-stack | |||
<t>SPL: Special Purpose Label</t> | data"), and | |||
</li></ul> | ||||
<ul empty="true"><li> | * residing after the Bottom of Stack (BoS) (referred to as "post- | |||
<t>eSPL: extended Special Purpose Label</t> | stack data"). | |||
</li></ul> | --> | |||
<ul empty="true"><li> | <dl newline="true" spacing="normal"> | |||
<t>AMM: Alternative Marking Method</t> | <dt>RFC 9543 Network Slice:</dt> | |||
</li></ul> | <dd>Interpreted as defined in <xref target="RFC9543"/>. | |||
</section> | This document uses "network slice" interchangeably as a | |||
</section> | shorter version of the term "RFC 9543 Network Slice".</dd> | |||
</section> | <dt>MPLS Ancillary Data:</dt> | |||
<section anchor="use-cases"><name>Use Cases</name> | <dd><t>Data that can be classified as:</t> | |||
<ul spacing="normal"> | ||||
<li>residing within the MPLS label stack (referred to as "in-stack | ||||
data"), and</li> | ||||
<li>residing after the Bottom of Stack (BoS) (referred to as "post | ||||
-stack data").</li> | ||||
</ul> | ||||
</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="acronyms-and-abbreviations"> | ||||
<!-- [rfced] Would you like for the abbreviations listed in Section 1.2 | ||||
("Abbreviations") to be alphabetized? Or do you prefer the current order? | ||||
--> | ||||
<section anchor="no-further-fastreroute"><name>No Further Fast Reroute</name> | <name>Abbreviations</name> | |||
<dl spacing="normal" newline="false"> | ||||
<dt>MNA:</dt><dd>MPLS Network Action</dd> | ||||
<dt>DEX:</dt><dd>Direct Export</dd> | ||||
<dt>I2E:</dt><dd>Ingress to Edge</dd> | ||||
<dt>HbH:</dt><dd>Hop by Hop</dd> | ||||
<dt>PW:</dt><dd>Pseudowire</dd> | ||||
<dt>BoS:</dt><dd>Bottom of Stack</dd> | ||||
<dt>ToS:</dt><dd>Top of Stack</dd> | ||||
<dt>NSH:</dt><dd>Network Service Header</dd> | ||||
<dt>FRR:</dt><dd>Fast Reroute</dd> | ||||
<dt>IOAM:</dt><dd>In situ Operations, Administration, and Maintenanc | ||||
e</dd> | ||||
<dt>G-ACh:</dt><dd>Generic Associated Channel</dd> | ||||
<dt>LSP:</dt><dd>Label Switched Path</dd> | ||||
<dt>LSR:</dt><dd>Label Switching Router</dd> | ||||
<dt>NRP:</dt><dd>Network Resource Partition</dd> | ||||
<dt>SPL:</dt><dd>Special-Purpose Label</dd> | ||||
<dt>eSPL:</dt><dd>extended Special-Purpose Label</dd> | ||||
<dt>AMM:</dt><dd>Alternative Marking Method</dd> | ||||
</dl> | ||||
</section> | ||||
</section> | ||||
<t>MPLS Fast Reroute <xref target="RFC4090"/>, <xref target="RFC5286"/>, <xref t | <section anchor="use-cases"> | |||
arget="RFC7490"/>, | <name>Use Cases</name> | |||
and <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/> is a useful | <section anchor="no-further-fastreroute"> | |||
<name>No Further Fast Reroute</name> | ||||
<t>MPLS Fast Reroute <xref target="RFC4090"/> <xref target="RFC5286"/> < | ||||
xref target="RFC7490"/> | ||||
<xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/> is a useful | ||||
and widely deployed tool for minimizing packet loss in the case of a link or | and widely deployed tool for minimizing packet loss in the case of a link or | |||
node failure.</t> | node failure.</t> | |||
<t>Several cases exist where, once a Fast Reroute (FRR) has taken place in an MP LS network and | <t>Several cases exist where, once a Fast Reroute (FRR) has taken place in an MP LS network and | |||
a packet is rerouted away from the failure, a second FRR impacts | a packet is rerouted away from the failure, a second FRR impacts | |||
the same packet on another node and may result in traffic disruption.</t> | the same packet on another node and may result in traffic disruption.</t> | |||
<t> | ||||
<t> | ||||
In such a case, the packet impacted by multiple FRR events may continue to loop | In such a case, the packet impacted by multiple FRR events may continue to loop | |||
between the label switch routers (LSRs) that activated FRR until the packet's TT L | between the Label Switching Routers (LSRs) that activated FRR until the packet's TTL | |||
expires. That can lead to link congestion and further packet loss. | expires. That can lead to link congestion and further packet loss. | |||
To avoid that situation, packets that FRR has redirected will be marked using MN A to preclude further FRR processing. | To avoid that situation, packets that FRR has redirected will be marked using MN A to preclude further FRR processing. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="hybrid-pmm-sec"> | ||||
<section anchor="hybrid-pmm-sec"> | <name>Applicability of Hybrid Measurement Methods</name> | |||
<name>Applicability of Hybrid Measurement Methods</name> | <t>MNA can be used to carry information essential for collecting operati | |||
<t>MNA can be used to carry information essential for collecting operational inf | onal information | |||
ormation | ||||
and measuring various performance metrics that reflect the experience of the pac ket marked by MNA. | and measuring various performance metrics that reflect the experience of the pac ket marked by MNA. | |||
Optionally, the operational state and telemetry information collected on | Optionally, the operational state and telemetry information collected on | |||
the LSR may be transported using MNA techniques.</t> | the LSR may be transported using MNA techniques.</t> | |||
<section anchor="in-situ-oam"><name>In-situ OAM</name> | <section anchor="in-situ-oam"> | |||
<t>In-situ Operations, Administration, and Maintenance (IOAM), | <name>In Situ OAM</name> | |||
<t>In situ Operations, Administration, and Maintenance (IOAM), | ||||
defined in <xref target="RFC9197"/> and <xref target="RFC9326"/>, might be used to collect | defined in <xref target="RFC9197"/> and <xref target="RFC9326"/>, might be used to collect | |||
operational and telemetry information while a packet traverses a particular path | operational and telemetry information while a packet traverses a particular path | |||
in a network domain.</t> | in a network domain.</t> | |||
<t>IOAM can run in two modes: Ingress to Edge (I2E) and Hop by Hop (Hb | ||||
<t>IOAM can run in two modes: Ingress to Edge (I2E) and Hop by Hop (HbH). In I2 | H). In I2E | |||
E | ||||
mode, only the encapsulating and decapsulating nodes will process IOAM data | mode, only the encapsulating and decapsulating nodes will process IOAM data | |||
fields. In HbH mode, the encapsulating and decapsulating nodes | fields. In HbH mode, the encapsulating and decapsulating nodes | |||
and intermediate IOAM-capable nodes process IOAM data fields. The IOAM data fiel ds, | and intermediate IOAM-capable nodes process IOAM data fields. The IOAM data fiel ds, | |||
defined in <xref target="RFC9197"/>, can be used to derive the operational state of the network | defined in <xref target="RFC9197"/>, can be used to derive the operational state of the network | |||
experienced by the packet with the IOAM Header that traversed the path through t he IOAM domain.</t> | experienced by the packet with the IOAM Header that traversed the path through t he IOAM domain.</t> | |||
<t>Several IOAM Option-Types have been defined:</t> | <t>Several IOAM Option-Types have been defined:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li> | |||
<t>Pre-allocated Trace</t> | <t>Pre-allocated Trace</t> | |||
<t>Incremental Trace</t> | </li> | |||
<t>Edge-to-Edge</t> | <li> | |||
<t>Proof-of-Transit</t> | <t>Incremental Trace</t> | |||
<t>Direct Export (DEX)</t> | </li> | |||
</list></t> | <li> | |||
<t> | <t>Edge-to-Edge</t> | |||
With all IOAM Option-Types except for the Direct Export (DEX), the collected | </li> | |||
<li> | ||||
<t>Proof-of-Transit</t> | ||||
</li> | ||||
<li> | ||||
<t>Direct Export (DEX)</t> | ||||
</li> | ||||
</ul> | ||||
<t> | ||||
With all IOAM Option-Types except for Direct Export (DEX), the collected | ||||
information is transported in the trigger IOAM packet. | information is transported in the trigger IOAM packet. | |||
In the IOAM DEX Option <xref target="RFC9326"/>, the operational state and telem etry information are | In the IOAM DEX Option-Type <xref target="RFC9326"/>, the operational state and telemetry information are | |||
collected according to a specified profile and exported in a manner and | collected according to a specified profile and exported in a manner and | |||
format defined by a local policy. In IOAM DEX, the user data packet is only | format defined by a local policy. In IOAM DEX, the user data packet is only | |||
used to trigger the IOAM data to be directly exported or locally aggregated | used to trigger the IOAM data to be directly exported or locally aggregated | |||
without being carried in the IOAM trigger packets.</t> | without being carried in the IOAM trigger packets.</t> | |||
</section> | </section> | |||
<section anchor="ater-mark-sec"> | ||||
<section anchor="ater-mark-sec"> | <name>Alternate Marking Method</name> | |||
<name>Alternate Marking Method</name> | <t> | |||
<t> | The Alternate Marking Method (AMM), defined in <xref target="RFC9341"/> and <xre | |||
The Alternate Marking Method (AMM), defined in <xref target="RFC9341"/> and <xre | f target="RFC9342"/>), is an example | |||
f target="RFC9342"/>) is an example | of a hybrid performance measurement method <xref target="RFC7799"/> that can be | |||
of a hybrid performance measurement method (<xref target="RFC7799"/>) that can b | used in the MPLS network | |||
e used in the MPLS network | to measure packet loss and packet delay performance metrics. <xref target="RFC89 | |||
to measure packet loss and packet delay performance metrics. <xref target="RFC89 | 57"/> defines | |||
57"/> defined | ||||
the Synonymous Flow Label framework to realize AMM in the MPLS network. | the Synonymous Flow Label framework to realize AMM in the MPLS network. | |||
The MNA is an alternative mechanism that can be used to support AMM in the MPLS network. | The MNA is an alternative mechanism that can be used to support AMM in the MPLS network. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="network-slicing"> | ||||
<name>Network Slicing</name> | ||||
<!-- [rfced] Please review "Policy as a policy construct". May we update as | ||||
follows (i.e., remove "policy")? | ||||
<section anchor="network-slicing"><name>Network Slicing</name> | Original: | |||
<t>An RFC 9543 Network Slice service (<xref target="RFC9543"/>) | Section 5 of | |||
[I-D.ietf-teas-ns-ip-mpls] defines a Network Resource Partition (NRP) | ||||
Policy as a policy construct that enables the instantiation of | ||||
mechanisms to support one or more network slice services. | ||||
Perhaps: | ||||
Section 5 of [NS-IP-MPLS] | ||||
defines a Network Resource Partition (NRP) Policy as a | ||||
construct that enables the instantiation of mechanisms to support one | ||||
or more network slice services. | ||||
--> | ||||
<t>An RFC 9543 Network Slice Service <xref target="RFC9543"/> | ||||
provides connectivity coupled with network resource commitments and is expressed in terms of one or more | provides connectivity coupled with network resource commitments and is expressed in terms of one or more | |||
connectivity constructs. Section 5 of <xref target="I-D.ietf-teas-ns-ip-mpls"/> defines a Network Resource Partition (NRP) Policy | connectivity constructs. <xref target="I-D.ietf-teas-ns-ip-mpls" sectionFormat=" of" section="5"/> defines a Network Resource Partition (NRP) Policy | |||
as a policy construct that enables the instantiation of mechanisms to support on e or more network slice services. | as a policy construct that enables the instantiation of mechanisms to support on e or more network slice services. | |||
The packets associated with an NRP may carry a | The packets associated with an NRP may carry a | |||
marking in their network layer header to identify this association, referred to as an NRP Selector. The NRP Selector maps | marking in their network-layer header to identify this association, which is ref erred to as an NRP Selector. The NRP Selector maps | |||
a packet to the associated network resources and provides the | a packet to the associated network resources and provides the | |||
corresponding forwarding treatment onto the packet.</t> | corresponding forwarding treatment onto the packet.</t> | |||
<t>A router that requires the forwarding of a packet that belongs to an | ||||
<t>A router that requires the forwarding of a packet that belongs to an NRP | NRP | |||
may have to decide on the forwarding action to take based on selected | may have to decide on the forwarding action to take based on selected | |||
next-hop(s), and the forwarding treatment (e.g., scheduling and drop policy) to | next hop(s) and decide on the forwarding treatment (e.g., scheduling and drop po licy) to | |||
enforce based on the associated per-hop behavior.</t> | enforce based on the associated per-hop behavior.</t> | |||
<t>In this case, routers that forward traffic over a physical link share | ||||
<t>In this case, routers that forward traffic over a physical link shared by mul | d by multiple | |||
tiple | ||||
NRPs need to identify the NRP to which the packet belongs to enforce their respe ctive forwarding actions and treatments.</t> | NRPs need to identify the NRP to which the packet belongs to enforce their respe ctive forwarding actions and treatments.</t> | |||
<t>MNA technologies can signal actions for MPLS packets | ||||
<t>MNA technologies can signal actions for MPLS packets | ||||
and carry data essential for these actions. For example, MNA can carry the NRP S elector <xref target="I-D.ietf-teas-ns-ip-mpls"/> in MPLS packets.</t> | and carry data essential for these actions. For example, MNA can carry the NRP S elector <xref target="I-D.ietf-teas-ns-ip-mpls"/> in MPLS packets.</t> | |||
</section> | ||||
<section anchor="nsh-based-service-function-chaining"> | ||||
<name>NSH-Based Service Function Chaining</name> | ||||
<!-- [rfced] We believe that "label stack elements" here should be updated to | ||||
"label stack entries", which is used earlier in this document and in RFC 8595. | ||||
Please confirm. Also note that "label stack element" has not been | ||||
used in the RFC Series. | ||||
</section> | Original: | |||
[RFC8595] describes how Service Function Chaining can be realized in | ||||
<section anchor="nsh-based-service-function-chaining"><name>NSH-based Service Fu | an MPLS network by emulating the Network Service Header (NSH) | |||
nction Chaining</name> | [RFC8300] using only MPLS label stack elements. | |||
--> | ||||
<t><xref target="RFC8595"/> describes how Service Function Chaining can be reali zed in | <t><xref target="RFC8595"/> describes how Service Function Chaining can be realized in | |||
an MPLS network by emulating the Network Service Header (NSH) <xref target="RFC8 300"/> using only MPLS label stack elements.</t> | an MPLS network by emulating the Network Service Header (NSH) <xref target="RFC8 300"/> using only MPLS label stack elements.</t> | |||
<t>The approach in <xref target="RFC8595"/> introduces some limitations, | ||||
<t>The approach in <xref target="RFC8595"/> introduces some limitations discusse | which are discussed in | |||
d in | <xref target="I-D.lm-mpls-sfc-path-verification"/>. However, the approach can be | |||
<xref target="I-D.lm-mpls-sfc-path-verification"/>. However, that approach can b | nefit | |||
enefit | from the MNA framework introduced in <xref target="RFC9789"/>.</t> | |||
from the framework introduced with MNA in <xref target="I-D.ietf-mpls-mna-fwk"/> | <t>MNA can be used to extend NSH emulation using MPLS | |||
.</t> | labels <xref target="RFC8595"/> to support the functionality of NSH Context Head | |||
ers, | ||||
<t>MNA can be used to extend NSH emulation using MPLS | whether fixed or variable length. For example, MNA could support Flow ID | |||
labels <xref target="RFC8595"></xref> to support the functionality of NSH Contex | ||||
t Headers, | ||||
whether fixed or variable-length. For example, MNA could support Flow ID | ||||
<xref target="RFC9263"/> that may be used for load-balancing among | <xref target="RFC9263"/> that may be used for load-balancing among | |||
Service Function Forwarders and/or the Service Functions | Service Function Forwarders and/or the Service Functions | |||
within the same Service Function Path.</t> | within the same Service Function Path.</t> | |||
</section> | ||||
</section> | <section anchor="network-programming"> | |||
<section anchor="network-programming"><name>Network Programming</name> | <name>Network Programming</name> | |||
<t>In Segment Routing (SR), an ingress node steers a packet through an o | ||||
<t>In Segment Routing (SR), an ingress node steers a packet through an ordered l | rdered list of instructions | |||
ist of instructions | ||||
called "segments". Each of these instructions represents a | called "segments". Each of these instructions represents a | |||
function to be called at a specific location in the network. A | function to be called at a specific location in the network. A | |||
function is locally defined on the node where it is executed and may | function is locally defined on the node where it is executed and may | |||
range from simply moving forward in the segment list to any complex | range from simply moving forward in the segment list to any complex | |||
user-defined behavior.</t> | user-defined behavior.</t> | |||
<t>Network Programming combines SR functions to achieve a | ||||
<t>Network Programming combines SR functions to achieve a | ||||
networking objective beyond mere packet routing.</t> | networking objective beyond mere packet routing.</t> | |||
<t>Encoding a pointer to a function and its arguments within an MPLS packet tran | <!-- [rfced] Please confirm that "FUNC::ARG" is correct here. We ask because | |||
sport header may be desirable. | we see "LOC:FUNCT:ARG" in RFC 8986. | |||
MNA can be used to encode the FUNC::ARGs to support the functional | ||||
equivalent of FUNC::ARG in SRv6 as described in <xref target="RFC8986"/>.</t> | ||||
</section> | Original: | |||
</section> | MNA can be used to encode | |||
<section anchor="existing-mpls-use-cases"><name>Co-existence with the Existing M | the FUNC::ARGs to support the functional equivalent of FUNC::ARG in | |||
PLS Services Using Post-Stack Headers</name> | SRv6 as described in [RFC8986]. | |||
--> | ||||
<t>Several services can be transported over MPLS networks today. | <t>Encoding a pointer to a function and its arguments within an MPLS packet tran | |||
These include providing Layer-3 (L3) connectivity (e.g., for unicast and | sport header may be desirable. | |||
multicast L3 services), and Layer-2 (L2) connectivity (e.g., for unicast | MNA can be used to encode the FUNC::ARGs to support the functional | |||
Pseudowires (PWs), multicast E-Tree, and broadcast E-LAN L2 services). In | equivalent of FUNC::ARG in Segment Routing over IPv6 as described in <xref targe | |||
t="RFC8986"/>.</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="existing-mpls-use-cases"> | ||||
<name>Coexistence with the Existing MPLS Services Using Post-Stack Headers | ||||
</name> | ||||
<t>Several services can be transported over MPLS networks today. | ||||
These include providing Layer 3 (L3) connectivity (e.g., for unicast and | ||||
multicast L3 services) and Layer 2 (L2) connectivity (e.g., for unicast | ||||
PWs, multicast E-Tree, and broadcast Ethernet LAN (E-LAN) L2 services). In | ||||
those cases, the user service traffic is encapsulated as the payload in MPLS pac kets.</t> | those cases, the user service traffic is encapsulated as the payload in MPLS pac kets.</t> | |||
<t>For L2 service traffic, it is possible to use a Control Word (CW) <xref | ||||
<t>For L2 service traffic, it is possible to use Control Word (CW) <xref target= | target="RFC4385"/> | |||
"RFC4385"/> and | ||||
<xref target="RFC5085"/> immediately after the MPLS header to disambiguate the t ype of MPLS payload, | <xref target="RFC5085"/> immediately after the MPLS header to disambiguate the t ype of MPLS payload, | |||
prevent possible packet misordering, and allow for fragmentation. In this case, | prevent possible packet misordering, and allow for fragmentation. In this case, | |||
the first nibble the data that immediately follows after the MPLS BoS is | the first nibble of the data that immediately follows the MPLS BoS is | |||
set to 0b0000 to identify the presence of PW CW.</t> | set to 0b0000 to identify the presence of the PW CW.</t> | |||
<t>In addition to providing connectivity to user traffic, MPLS may also tr | ||||
<t>In addition to providing connectivity to user traffic, MPLS may also transpor | ansport OAM | |||
t OAM | ||||
data (e.g., over MPLS Generic Associated Channels (G-AChs) <xref target="RFC558 6"/>). In this case, the first nibble of | data (e.g., over MPLS Generic Associated Channels (G-AChs) <xref target="RFC558 6"/>). In this case, the first nibble of | |||
the data that immediately follows after the MPLS BoS is set to 0b0001. It | the data that immediately follows the MPLS BoS is set to 0b0001. It | |||
indicates the presence of a control channel associated with a PW, LSP, or Sectio | indicates the presence of a control channel associated with a PW, LSP, or sectio | |||
n.</t> | n.</t> | |||
<!-- [rfced] Would you like to update "bottom of the label stack" here to | ||||
"BoS" or leave as is? | ||||
Original: | ||||
In this case, BIER has defined 0b0101 as the | ||||
value for the first nibble in the data that immediately appears after | ||||
the bottom of the label stack for any BIER-encapsulated packet over | ||||
MPLS. | ||||
Perhaps: | ||||
In this case, BIER has defined 0b0101 as the | ||||
value for the first nibble in the data that immediately appears after | ||||
the BoS for any BIER-encapsulated packet over | ||||
MPLS. | ||||
--> | ||||
<t>Bit Index Explicit Replication (BIER) <xref target="RFC8296"/> traffic can al so be encapsulated | <t>Bit Index Explicit Replication (BIER) <xref target="RFC8296"/> traffic can al so be encapsulated | |||
over MPLS. In this case, BIER has defined 0b0101 as the value for the first nibb le | over MPLS. In this case, BIER has defined 0b0101 as the value for the first nibb le | |||
in the data that immediately appears after the bottom of the label stack for any | of the data that immediately follows the bottom of the label stack for any | |||
BIER-encapsulated packet over MPLS.</t> | BIER-encapsulated packet over MPLS.</t> | |||
<t>For PWs, the G-ACh <xref target="RFC7212"/> uses the first four bits of | ||||
<t>For pseudowires, the Generic Associated Channel <xref target="RFC7212"/> uses | the PW control word | |||
the first four bits of the PW control | to provide the initial discrimination between data packets and | |||
word to provide the initial discrimination between data packets and | ||||
packets belonging to the associated channel, as described in | packets belonging to the associated channel, as described in | |||
<xref target="RFC4385"></xref>.</t> | <xref target="RFC4385"/>.</t> | |||
<t>MPLS can be used as the data plane for DetNet <xref target="RFC8655"/>. | <t>MPLS can be used as the data plane for Deterministic Networking (DetNet ) <xref target="RFC8655"/>. | |||
The DetNet sub-layers, forwarding, and service | The DetNet sub-layers, forwarding, and service | |||
are realized using the MPLS label stack, the DetNet Control Word <xref target=" RFC8964"/>, | are realized using the MPLS label stack, the DetNet control word <xref target=" RFC8964"/>, | |||
and the DetNet Associated Channel Header <xref target="RFC9546"/>.</t> | and the DetNet Associated Channel Header <xref target="RFC9546"/>.</t> | |||
<t>MNA-based solutions for the use cases described in this document and pr | ||||
<t>MNA-based solutions for the use cases described in this document and proposed | oposed | |||
in the future are expected to allow for coexistence and backward compatibility w ith all existing MPLS services.</t> | in the future are expected to allow for coexistence and backward compatibility w ith all existing MPLS services.</t> | |||
</section> | ||||
</section> | <section anchor="co-existence-of-usecases"> | |||
<section anchor="co-existence-of-usecases"><name>Co-existence of the MNA Use Cas | <name>Coexistence of the MNA Use Cases</name> | |||
es</name> | <t>Two or more of the discussed cases may coexist in the same packet. | |||
<t>Two or more of the discussed cases may co-exist in the same packet. | ||||
That may require the presence of multiple ancillary data | That may require the presence of multiple ancillary data | |||
(whether In-stack or Post-stack ancillary data) to be present in the same MPLS p | (whether in-stack or post-stack ancillary data) to be present in the same MPLS p | |||
acket.</t> | acket.</t> | |||
<t>For example, IOAM may provide essential functions along with network sl | ||||
<t>For example, IOAM may provide essential functions along with network slicing | icing to help | |||
to help | ensure that critical network slice Service Level Objectives (SLOs) are being met | |||
ensure that critical network slice SLOs are being met by the network provider. | by the network provider. | |||
In this case, IOAM can collect key performance measurement parameters of | In this case, IOAM can collect key performance measurement parameters of a | |||
network slice traffic flow as it traverses the transport network.</t> | network slice traffic flow as it traverses the transport network.</t> | |||
</section> | ||||
<section anchor="iana-considerations"> | ||||
<name>IANA Considerations</name> | ||||
<t>This document has no IANA actions.</t> | ||||
</section> | ||||
<section anchor="security-considerations"> | ||||
<name>Security Considerations</name> | ||||
<!-- [rfced] Please confirm that the citation is correct here. We ask because | ||||
we do not see the specific wording "non-protocol specifying document" in | ||||
RFC-to-be 9789 (ietf-mpls-mna-fwk). | ||||
</section> | Also, to improve readability, we upddated "non-protocol specifying documents" | |||
<section anchor="iana-considerations"><name>IANA Considerations</name> | as follows. Let us know any concerns. | |||
<t>This document has no IANA actions.</t> | Original: | |||
Section 7 of "MPLS Network Action (MNA) Framework", | ||||
[I-D.ietf-mpls-mna-fwk] outlines security considerations for non- | ||||
protocol specifying documents. | ||||
</section> | Updated: | |||
<section anchor="security-considerations"><name>Security Considerations</name> | Section 7 of the MNA framework [RFC9789] outlines security | |||
considerations for documents that do not specify protocols. | ||||
--> | ||||
<t>Section 7 of "MPLS Network Action (MNA) Framework", | <t>Section <xref target="RFC9789" sectionFormat="bare" section="7"/> of th | |||
<xref target="I-D.ietf-mpls-mna-fwk"/> outlines security considerations for non- | e MNA framework | |||
protocol specifying documents. | <xref target="RFC9789"/> outlines security considerations for documents that do | |||
not specify protocols. | ||||
The authors have verified that these considerations are fully applicable to this document. | The authors have verified that these considerations are fully applicable to this document. | |||
</t> | </t> | |||
<t> | <t> | |||
In-depth security analysis for each specific use case is beyond the scope of thi s document | In-depth security analysis for each specific use case is beyond the scope of thi s document | |||
and will be addressed in future solution documents. It is strongly recommended | and will be addressed in future solution documents. It is strongly recommended | |||
that these solution documents undergo security expert review early in their deve lopment, | that these solution documents undergo review by a security expert early in their development, | |||
ideally during the Working Group Last Call phase. | ideally during the Working Group Last Call phase. | |||
</t> | </t> | |||
</section> | ||||
</section> | ||||
<section anchor="acknowledgement"><name>Acknowledgement</name> | ||||
<t>The authors gratefully acknowledge the input of the members of the | ||||
MPLS Open Design Team. Also, the authors sincerely thank Loa Andersson, Xiao Min | ||||
, Jie Dong, and Yaron Sheffer. | ||||
for their thoughtful suggestions and help in improving the document. | ||||
</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<displayreference target="I-D.ietf-rtgwg-segment-routing-ti-lfa" to="SR-TI-LFA"/ | ||||
> | ||||
<displayreference target="I-D.ietf-teas-ns-ip-mpls" to="NS-IP-MPLS"/> | ||||
<displayreference target="I-D.lm-mpls-sfc-path-verification" to="SFP-VERIF"/> | ||||
<displayreference target="I-D.stein-srtsn" to="SRTSN"/> | ||||
<displayreference target="I-D.zzhang-intarea-generic-delivery-functions" to="GDF | ||||
"/> | ||||
<references> | <references> | |||
<name>References</name> | <name>References</name> | |||
<references> | <references> | |||
<name>Normative References</name> | <name>Normative References</name> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-mpls-mna-f | <!-- draft-ietf-mpls-mna-fwk-15 companion document RFC 9789 --> | |||
wk.xml"/> | <reference anchor="RFC9789" target="https://www.rfc-editor.org/info/rfc9789"> | |||
</references> | <front> | |||
<title>MPLS Network Action (MNA) Framework</title> | ||||
<author initials="L." surname="Andersson" fullname="Loa Andersson"> | ||||
<organization>Huawei Technologies</organization> | ||||
</author> | ||||
<author initials="S." surname="Bryant" fullname="Stewart Bryant"> | ||||
<organization>University of Surrey 5GIC</organization> | ||||
</author> | ||||
<author initials="M." surname="Bocci" fullname="Matthew Bocci"> | ||||
<organization>Nokia</organization> | ||||
</author> | ||||
<author initials="T." surname="Li" fullname="Tony Li"> | ||||
<organization>Juniper Networks</organization> | ||||
</author> | ||||
<date month="May" year="2025" /> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9789"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9789"/> | ||||
</reference> | ||||
<references title='Informative References'> | </references> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9543. | <references> | |||
xml"/> | <name>Informative References</name> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-zzhang-intarea- | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
generic-delivery-functions.xml"/> | 543.xml"/> | |||
<!-- [I-D.zzhang-intarea-generic-delivery-functions] IESG State: Expired as of 0 | ||||
2/06/25; Long Way for author initials--> | ||||
<reference anchor="I-D.zzhang-intarea-generic-delivery-functions" target="https: | ||||
//datatracker.ietf.org/doc/html/draft-zzhang-intarea-generic-delivery-functions- | ||||
03"> | ||||
<front> | ||||
<title>Generic Delivery Functions</title> | ||||
<author fullname="Zhaohui (Jeffrey) Zhang" initials="Z." surname="Zhang"> | ||||
<organization>Juniper Networks</organization> | ||||
</author> | ||||
<author fullname="Ron Bonica" initials="R." surname="Bonica"> | ||||
<organization>Juniper Networks</organization> | ||||
</author> | ||||
<author fullname="Kireeti Kompella" initials="K." surname="Kompella"> | ||||
<organization>Juniper Networks</organization> | ||||
</author> | ||||
<author fullname="Greg Mirsky" initials="G." surname="Mirsky"> | ||||
<organization>ZTE</organization> | ||||
</author> | ||||
<date day="11" month="July" year="2022"/> | ||||
<abstract> | ||||
<t> | ||||
Some functionalities (e.g., fragmentation/reassembly and Encapsulating Security | ||||
Payload) provided by IPv6 can be viewed as delivery functions independent of IPv | ||||
6 or even IP entirely. This document proposes to provide those functionalities a | ||||
t different layers (e.g., MPLS, BIER or even Ethernet) independent of IP. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-zzhang-intarea-generic-delivery-f | ||||
unctions-03"/> | ||||
</reference> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-stein-srtsn.xml | <!-- [I-D.stein-srtsn] IESG State: Expired; Long Way because of author initials | |||
"/> | --> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-lm-mpls-sfc-pat | <reference anchor="I-D.stein-srtsn" target="https://datatracker.ietf.org/doc/htm | |||
h-verification.xml"/> | l/draft-stein-srtsn-01"> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-rtgwg-segm | <front> | |||
ent-routing-ti-lfa.xml"/> | <title>Segment Routed Time Sensitive Networking</title> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4090 | <author fullname="Yaakov (J) Stein" initials="Y(J)." surname="Stein"> | |||
.xml"/> | <organization>RAD</organization> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5286. | </author> | |||
xml"/> | <date day="29" month="August" year="2021"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7490. | </front> | |||
xml"/> | <seriesInfo name="Internet-Draft" value="draft-stein-srtsn-01"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9197. | </reference> | |||
xml"/> | <!-- [I-D.lm-mpls-sfc-path-verification] IESG State: Expired as of 02/06/25 --> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9326. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
xml"/> | lm-mpls-sfc-path-verification.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3032. | <!-- [I-D.ietf-rtgwg-segment-routing-ti-lfa] EDIT as of 5/13/25 --> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8595. | ietf-rtgwg-segment-routing-ti-lfa.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8986. | 090.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4385. | 286.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5085. | 490.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5586. | 197.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8296. | 326.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9263. | 032.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8300. | 595.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7799. | 986.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9341. | 385.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9342. | 085.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8957. | 586.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9613. | 296.xml"/> | |||
xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
263.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
300.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
799.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
341.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
342.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
957.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
613.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
212.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
655.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
964.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
546.xml"/> | ||||
<!-- [I-D.ietf-teas-ns-ip-mpls] IESG State: Expired as of 02/06/25; Long Way for | ||||
author initials--> | ||||
<reference anchor="I-D.ietf-teas-ns-ip-mpls" target="https://datatracker.ietf.or | ||||
g/doc/html/draft-ietf-teas-ns-ip-mpls-05"> | ||||
<front> | ||||
<title>Realizing Network Slices in IP/MPLS Networks</title> | ||||
<author fullname="Tarek Saad" initials="T." surname="Saad"> | ||||
<organization>Cisco Systems Inc.</organization> | ||||
</author> | ||||
<author fullname="Vishnu Pavan Beeram" initials="V." surname="Beeram"> | ||||
<organization>Juniper Networks</organization> | ||||
</author> | ||||
<author fullname="Jie Dong" initials="J." surname="Dong"> | ||||
<organization>Huawei Technologies</organization> | ||||
</author> | ||||
<author fullname="Joel M. Halpern" initials="J." surname="Halpern"> | ||||
<organization>Ericsson</organization> | ||||
</author> | ||||
<author fullname="Shaofu Peng" initials="S." surname="Peng"> | ||||
<organization>ZTE Corporation</organization> | ||||
</author> | ||||
<date day="2" month="March" year="2025"/> | ||||
<abstract> | ||||
<t> | ||||
Realizing network slices may require the Service Provider to have the ability to | ||||
partition a physical network into multiple logical networks of varying sizes, s | ||||
tructures, and functions so that each slice can be dedicated to specific service | ||||
s or customers. Multiple network slices can be realized on the same network whil | ||||
e ensuring slice elasticity in terms of network resource allocation. This docume | ||||
nt describes a scalable solution to realize network slicing in IP/MPLS networks | ||||
by supporting multiple services on top of a single physical network by relying o | ||||
n compliant domains and nodes to provide forwarding treatment (scheduling, drop | ||||
policy, resource usage) on to packets that carry identifiers that indicate the s | ||||
licing service that is to be applied to the packets. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-teas-ns-ip-mpls-05"/> | ||||
</reference> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7212. | </references> | |||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8655. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8964. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9546. | ||||
xml"/> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-teas-ns-ip | ||||
-mpls.xml"/> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="futuristic-functions"> | ||||
<section anchor="futuristic-functions"><name>Use Cases for Continued Discussion< | <name>Use Cases for Continued Discussion</name> | |||
/name> | <t>Several use cases for which MNA can provide a viable solution have been | |||
<t>Several use cases for which MNA can provide a viable solution have been discu | discussed. | |||
ssed. | ||||
The discussion of these aspirational cases is ongoing at the time of publication of the document.</t> | The discussion of these aspirational cases is ongoing at the time of publication of the document.</t> | |||
<section anchor="generic-delivery-functions"> | ||||
<name>Generic Delivery Functions</name> | ||||
<section anchor="generic-delivery-functions"><name>Generic Delivery Functions</n | <t>Generic Delivery Functions (GDFs), defined in | |||
ame> | ||||
<t>The Generic Delivery Functions (GDFs), defined in | ||||
<xref target="I-D.zzhang-intarea-generic-delivery-functions"/>, provide a new me chanism to | <xref target="I-D.zzhang-intarea-generic-delivery-functions"/>, provide a new me chanism to | |||
support functions analogous to those supported through the IPv6 Extension | support functions analogous to those supported through the IPv6 Extension | |||
Headers mechanism. For example, GDF can support fragmentation/reassembly | Headers mechanism. For example, GDF can support fragmentation/reassembly | |||
functionality in the MPLS network by using the Generic Fragmentation Header. | functionality in the MPLS network by using the Generic Fragmentation Header. | |||
MNA can support GDF by placing a GDF header in an MPLS packet within the | MNA can support GDF by placing a GDF header in an MPLS packet within the | |||
Post-Stack Data block <xref target="I-D.ietf-mpls-mna-fwk"/>. Multiple GDF heade | post-stack data block <xref target="RFC9789"/>. Multiple GDF headers, organized | |||
rs can also | as a list of headers, can also | |||
be present in the same MPLS packet organized as a list of headers.</t> | be present in the same MPLS packet.</t> | |||
</section> | ||||
</section> | <section anchor="delay-budgets-for-time-bound-applications"> | |||
<name>Delay Budgets for Time-Bound Applications</name> | ||||
<section anchor="delay-budgets-for-time-bound-applications"><name>Delay Budgets | <t>The routers in a network can perform two distinct functions on incomi | |||
for Time-Bound Applications</name> | ng | |||
packets: forwarding (where the packet should be sent) and scheduling | ||||
<t>The routers in a network can perform two distinct functions on incoming | (when the packet should be sent). IEEE-802.1 Time-Sensitive Networking (TSN) and | |||
packets, namely forwarding (where the packet should be sent) and scheduling | DetNet provide several mechanisms for scheduling under the | |||
(when the packet should be sent). IEEE-802.1 Time Sensitive Networking (TSN) and | ||||
Deterministic Networking provide several mechanisms for scheduling under the | ||||
assumption that routers are time-synchronized. The most effective mechanisms | assumption that routers are time-synchronized. The most effective mechanisms | |||
for delay minimization involve per-flow resource allocation.</t> | for delay minimization involve per-flow resource allocation.</t> | |||
<t>Segment Routing (SR) is a forwarding paradigm that allows encoding forwarding | <t>Segment Routing (SR) is a forwarding paradigm that allows encoding forwarding | |||
instructions in the packet in a stack data structure rather than being | instructions in the packet in a stack data structure rather than being | |||
programmed into the routers. The SR instructions are contained within a packet | programmed into the routers. The SR instructions are contained within a packet | |||
in the form of a First-in, First-out stack dictating the forwarding decisions of | in the form of a First-In, First-Out stack, dictating the forwarding decisions o f | |||
successive routers. Segment routing may be used to choose a path sufficiently | successive routers. Segment routing may be used to choose a path sufficiently | |||
short to be capable of providing a bounded end-to-end latency but does | short to be capable of providing bounded end-to-end latency but does | |||
not influence the queueing of individual packets in each router along that path. </t> | not influence the queueing of individual packets in each router along that path. </t> | |||
<t>When carried over the MPLS data plane, a solution is required to enab | ||||
<t>When carried over the MPLS data plane, a solution is required to enable the | le the | |||
delivery of such packets that can be delivered to their final destination within | delivery of such packets to their final destination within a | |||
a | given time budget. One approach to address this use case in SR over MPLS (SR-MPL | |||
given time budget. One approach to address this use case in SR-MPLS was | S) is | |||
described in <xref target="I-D.stein-srtsn"/>.</t> | described in <xref target="I-D.stein-srtsn"/>.</t> | |||
</section> | ||||
</section> | <section anchor="stack-based-methods-for-latency-control"> | |||
<name>Stack-Based Methods for Latency Control</name> | ||||
<section anchor="stack-based-methods-for-latency-control"><name>Stack-Based Meth | <t>One efficient data structure for inserting local deadlines into | |||
ods for Latency Control</name> | the headers is a "stack", similar to that used in SR to | |||
<t>One efficient data structure for inserting local deadlines into | ||||
the headers is a "stack", similar to that used in Segment Routing to | ||||
carry forwarding instructions. The number of deadline values in the | carry forwarding instructions. The number of deadline values in the | |||
stack equals the number of routers the packet needs to traverse in | stack equals the number of routers the packet needs to traverse in | |||
the network, and each deadline value corresponds to a specific | the network, and each deadline value corresponds to a specific | |||
router. The Top-of-Stack (ToS) corresponds to the first router's | router. The Top of Stack (ToS) corresponds to the first router's | |||
deadline, while the MPLS BoS refers to the last. All | deadline, while the MPLS BoS refers to the last. All | |||
local deadlines in the stack are later or equal to the current time | local deadlines in the stack are later than or equal to the current time | |||
(upon which all routers agree), and times closer to the ToS are | (upon which all routers agree), and times closer to the ToS are | |||
always earlier or equal to times closer to the MPLS BoS.</t> | always earlier than or equal to times closer to the MPLS BoS.</t> | |||
<t>The ingress router inserts the deadline stack into the packet headers | ||||
<t>The ingress router inserts the deadline stack into the packet headers; no oth | ; no other | |||
er | router needs to know the requirements of the time-bound flows. | |||
router needs to know the time-bound flows' requirements. | ||||
Hence, admitting a new flow only requires updating the ingress router's informat ion base.</t> | Hence, admitting a new flow only requires updating the ingress router's informat ion base.</t> | |||
<t>MPLS LSRs that expose the ToS label can also inspect the | ||||
associated deadline carried in the packet (either in the MPLS stack as in-stack | ||||
data or | ||||
after BoS as post-stack data).</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="acknowledgement" numbered="false"> | ||||
<name>Acknowledgements</name> | ||||
<t>The authors gratefully acknowledge the input of the members of the | ||||
MPLS Open Design Team. Also, the authors sincerely thank <contact | ||||
fullname="Loa Andersson"/>, <contact fullname="Xiao Min"/>, <contact | ||||
fullname="Jie Dong"/>, and <contact fullname="Yaron Sheffer"/> for their | ||||
thoughtful suggestions and help in improving the document.</t> | ||||
</section> | ||||
<section anchor="contr-sec" numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<contact fullname="Loa Anderssen" initials="L." surname="Anderssen"> | ||||
<organization>Bronze Dragon Consulting</organization> | ||||
<address> | ||||
<email>loa@pi.nu</email> | ||||
</address> | ||||
</contact> | ||||
</section> | ||||
</back> | ||||
<t>MPLS LSRs that expose the ToS label can also inspect the | <!-- [rfced] FYI - We lowercased "post-stack data" and "in-stack data" per | |||
associated "deadline" carried in the packet (either in the MPLS stack as In-Stac | usage in RFC-to-be 9789 (ietf-mpls-mna-fwk). | |||
k Data or | --> | |||
after BoS as Post-Stack Data).</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="contr-sec" numbered="false" toc="default"> | <!-- [rfced] Abbreviations | |||
<name>Contributors' Addresses</name> | ||||
<contact fullname="Loa Anderssen" initials="L." surname="Anderssen"> | a) This document uses "Ingress to Edge" as the expansion for I2E, but | |||
<organization>Bronze Dragon Consulting</organization> | RFC-to-be 9789 (ietf-mpls-mna-fwk) and other documents in the RFC Series | |||
<address> | use "Ingress to Egress". If no objetions, we will update this document | |||
<email>loa@pi.nu</email> | accordingly. | |||
</address> | ||||
</contact> | Current: | |||
</section> | Ingress to Edge | |||
Perhaps: | ||||
Ingress to Egress | ||||
b) FYI - We have added expansions for the following abbreviations | ||||
per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each | ||||
expansion in the document carefully to ensure correctness. | ||||
Deterministic Networking (DetNet) | ||||
Segment Routing over IPv6 (SRv6) | ||||
Segment Routing over MPLS (SR-MPLS) | ||||
Service Level Objectives (SLOs) | ||||
--> | ||||
<!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
and let us know if any changes are needed. Updates of this nature typically | ||||
result in more precise language, which is helpful for readers. | ||||
Note that our script did not flag any words in particular, but this should | ||||
still be reviewed as a best practice. | ||||
--> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 97 change blocks. | ||||
407 lines changed or deleted | 588 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |