rfc8964xml2.original.xml | rfc8964.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
]> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<?rfc toc="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="yes"?> | ||||
<?rfc iprnotified="no"?> | ||||
<?rfc strict="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<rfc category="std" | ||||
docName="draft-ietf-detnet-mpls-13" | ||||
ipr="trust200902" | ||||
submissionType="IETF"> | ||||
<front> | ||||
<title abbrev="DetNet MPLS"> | ||||
DetNet Data Plane: MPLS</title> | ||||
<author role="editor" fullname="Balázs Varga" initials="B." surname="Va | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
rga"> | docName="draft-ietf-detnet-mpls-13" number="8964" ipr="trust200902" | |||
<organization>Ericsson</organization> | submissionType="IETF" category="std" consensus="true" obsoletes="" | |||
<address> | updates="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" | |||
<postal> | version="3"> | |||
<!-- xml2rfc v2v3 conversion 3.3.0 --> | ||||
<front> | ||||
<title abbrev="DetNet Data Plane: MPLS"> | ||||
Deterministic Networking (DetNet) Data Plane: MPLS</title> | ||||
<seriesInfo name="RFC" value="8964"/> | ||||
<author role="editor" fullname="Balázs Varga" initials="B." surname="Varga"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Magyar Tudosok krt. 11.</street> | <street>Magyar Tudosok krt. 11.</street> | |||
<city>Budapest</city> | <city>Budapest</city> | |||
<country>Hungary</country> | <country>Hungary</country> | |||
<code>1117</code> | <code>1117</code> | |||
</postal> | </postal> | |||
<email>balazs.a.varga@ericsson.com</email> | <email>balazs.a.varga@ericsson.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="János Farkas" initials="J." surname="Farkas"> | ||||
<author fullname="János Farkas" initials="J." surname="Farkas"> | ||||
<organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Magyar Tudosok krt. 11.</street> | <street>Magyar Tudosok krt. 11.</street> | |||
<city>Budapest</city> | <city>Budapest</city> | |||
<country>Hungary</country> | <country>Hungary</country> | |||
<code>1117</code> | <code>1117</code> | |||
</postal> | </postal> | |||
<email>janos.farkas@ericsson.com</email> | <email>janos.farkas@ericsson.com</email> | |||
</address> | </address> | |||
skipping to change at line 45 ¶ | skipping to change at line 39 ¶ | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Magyar Tudosok krt. 11.</street> | <street>Magyar Tudosok krt. 11.</street> | |||
<city>Budapest</city> | <city>Budapest</city> | |||
<country>Hungary</country> | <country>Hungary</country> | |||
<code>1117</code> | <code>1117</code> | |||
</postal> | </postal> | |||
<email>janos.farkas@ericsson.com</email> | <email>janos.farkas@ericsson.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Lou Berger" initials="L." surname="Berger"> | <author fullname="Lou Berger" initials="L." surname="Berger"> | |||
<organization>LabN Consulting, L.L.C.</organization> | <organization>LabN Consulting, L.L.C.</organization> | |||
<address> | <address> | |||
<email>lberger@labn.net</email> | <email>lberger@labn.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Andrew G. Malis" initials="A." surname="Malis"> | ||||
<author fullname="Andrew G. Malis" initials="A.G." surname="Malis"> | ||||
<organization>Malis Consulting</organization> | <organization>Malis Consulting</organization> | |||
<address> | <address> | |||
<email>agmalis@gmail.com</email> | <email>agmalis@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Stewart Bryant" initials="S." surname="Bryant"> | <author fullname="Stewart Bryant" initials="S." surname="Bryant"> | |||
<organization>Futurewei Technologies</organization> | <organization>Futurewei Technologies</organization> | |||
<address> | <address> | |||
<email>stewart.bryant@gmail.com</email> | <email>sb@stewartbryant.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Jouni Korhonen" initials="J." surname="Korhonen"> | <author fullname="Jouni Korhonen" initials="J." surname="Korhonen"> | |||
<!--organization abbrev="Nordic">Nordic Semiconductor</organization--> | <address> <email>jouni.nospam@gmail.com</email> | |||
<address> | ||||
<email>jouni.nospam@gmail.com</email> | ||||
</address> | </address> | |||
</author> | </author> | |||
<date year="2021" month="January"/> | ||||
<workgroup>DetNet</workgroup> | ||||
<!--author fullname="Donald Fauntleroy Duck" initials="D. F." surname="Duck"> | <abstract> | |||
<organization abbrev="Royal Bros.">Royal Bros.</organization> | <t> | |||
<address> | This document specifies the Deterministic Networking (DetNet) data plane | |||
<postal> | ||||
<street>13 Paradise Road</street> | ||||
<city>Duckburg</city> | ||||
<region>Calisota</region> | ||||
<country>USA</country> | ||||
</postal> | ||||
</address> | ||||
</author--> | ||||
<date /> | ||||
<workgroup>DetNet</workgroup> | ||||
<abstract> | ||||
<t> | ||||
This document specifies the Deterministic Networking data plane | ||||
when operating over an MPLS Packet Switched Network. It leverages | when operating over an MPLS Packet Switched Network. It leverages | |||
existing pseudowire (PW) encapsulations and MPLS Traffic | existing pseudowire (PW) encapsulations and MPLS Traffic Engineering | |||
Engineering encapsulations and mechanisms. This document builds on | (MPLS-TE) encapsulations and mechanisms. This document builds on the | |||
the DetNet Architecture and Data Plane Framework. | DetNet architecture and data plane framework. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | ||||
<middle> | <section anchor="sec_intro" numbered="true" toc="default"> | |||
<section title="Introduction" anchor="sec_intro"> | <name>Introduction</name> | |||
<!-- Note: There are no dedicated section to procedures like "DetNet IP Data Pla | ||||
ne Procedures" here. Do we need it like in DetNet-IP document ??? --> | ||||
<t> | <t> | |||
Deterministic Networking (DetNet) is a service that can be offered by a | Deterministic Networking (DetNet) is a service that can be offered by a | |||
network to DetNet flows. | network to DetNet flows. | |||
DetNet provides a capability for the delivery of data flows with | DetNet provides a capability for the delivery of data flows with | |||
extremely low packet loss rates and bounded end-to-end delivery | extremely low packet loss rates and bounded end-to-end delivery | |||
latency. | latency. | |||
General background and concepts of DetNet can be found in the DetNet | General background and concepts of DetNet can be found in the DetNet | |||
Architecture <xref target="RFC8655"/>. | architecture <xref target="RFC8655" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
The purpose of this document is to describe the use of the MPLS | The purpose of this document is to describe the use of the MPLS | |||
data plane to establish and support DetNet flows. | data plane to establish and support DetNet flows. | |||
The DetNet Architecture models the DetNet related data plane | The DetNet architecture models the DetNet-related data plane | |||
functions decomposed into two sub-layers: a service sub-layer and a | functions as being decomposed into two sub-layers: a service sub-layer and a | |||
forwarding sub-layer. The service sub-layer is used to provide | forwarding sub-layer. The service sub-layer is used to provide | |||
DetNet service functions such as protection and reordering. At the | DetNet service functions, such as protection and reordering. At the | |||
DetNet data plane a new set of functions (PREOF) provide the service | DetNet data plane, a new set of functions (Packet Replication, Elimination | |||
sub-layer specific tasks. The forwarding sub-layer is used to provide | and Ordering Functions (PREOF)) provide the tasks specific to the service | |||
sub-layer. The forwarding sub-layer is used to provide | ||||
forwarding assurance (low loss, assured latency, and limited | forwarding assurance (low loss, assured latency, and limited | |||
out-of-order delivery). The use of the functionalities of the DetNet | out-of-order delivery). The use of the functionalities of the DetNet | |||
service sub-layer and the DetNet forwarding sub-layer require | service sub-layer and the DetNet forwarding sub-layer require | |||
careful design and control by the controller plane in addition to the | careful design and control by the Controller Plane in addition to the | |||
DetNet specific use of MPLS encapsulation as specified by this | DetNet-specific use of MPLS encapsulation as specified by this | |||
document. | document. | |||
</t> | </t> | |||
<t> | <t> | |||
This document specifies the DetNet data plane operation and the on-wire | This document specifies the DetNet data plane operation and the on-wire | |||
encapsulation of DetNet flows over an MPLS-based Packet Switched Network | encapsulation of DetNet flows over an MPLS-based Packet Switched Network | |||
(PSN) using the service reference model. MPLS encapsulation | (PSN) using the service reference model. MPLS encapsulation | |||
already provides a solid foundation of building blocks to enable the DetNet | already provides a solid foundation of building blocks to enable the DetNet | |||
service and forwarding sub-layer functions. MPLS encapsulated DetNet can | service and forwarding sub-layer functions. | |||
MPLS-encapsulated DetNet can | ||||
be carried over a variety of different network technologies that can | be carried over a variety of different network technologies that can | |||
provide the DetNet required level of service. However, the specific | provide the level of service required for DetNet. However, the specific | |||
details of how DetNet MPLS is carried over different network technologies | details of how DetNet MPLS is carried over different network technologies | |||
are out of scope of this document. | are out of scope for this document. | |||
</t> | </t> | |||
<t> | <t> | |||
MPLS encapsulated DetNet flows can carry different types of | MPLS-encapsulated DetNet flows can carry different types of | |||
traffic. The details of the types of traffic that are carried in | traffic. The details of the types of traffic that are carried in | |||
DetNet are also out of scope of this document. An example of IP | DetNet are also out of scope for this document. An example of IP | |||
using DetNet MPLS sub-networks can be found in <xref | using DetNet MPLS sub-networks can be found in <xref target="RFC8939" | |||
target="I-D.ietf-detnet-ip"/>. DetNet MPLS may use an associated controller | format="default"/>. DetNet MPLS may use an associated controller | |||
and Operations, Administration, and Maintenance (OAM) functions | and Operations, Administration, and Maintenance (OAM) functions | |||
that are defined outside of this document. | that are defined outside of this document. | |||
</t> | </t> | |||
<t> | <t> | |||
Background information common to all data planes for DetNet | Background information common to all data planes for DetNet | |||
can be found in the DetNet Data | can be found in the DetNet data plane framework <xref target="RFC8938" forma | |||
Plane Framework <xref target="I-D.ietf-detnet-data-plane-framework"/>. | t="default"/>. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Terminology"> | <name>Terminology</name> | |||
<section title="Terms Used in This Document"> | <section numbered="true" toc="default"> | |||
<t> | <name>Terms Used in This Document</name> | |||
<t> | ||||
This document uses the terminology established in the DetNet | This document uses the terminology established in the DetNet | |||
architecture <xref target="RFC8655"/> and | architecture <xref target="RFC8655" format="default"/> and | |||
the DetNet Data Plane Framework <xref | the DetNet data plane framework <xref target="RFC8938" format="default"/>. Th | |||
target="I-D.ietf-detnet-data-plane-framework"/>. The reader is | e reader is | |||
assumed to be familiar with these documents, any terminology | assumed to be familiar with these documents, any terminology | |||
defined therein and basic MPLS related terminologies in | defined therein, and basic MPLS-related terminologies in | |||
<xref target="RFC3031"/>. | <xref target="RFC3031" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
The following terminology is introduced in this document: | The following terminology is introduced in this document: | |||
<list style="hanging" hangIndent="14"> | </t> | |||
<t hangText="F-Label"> | <dl newline="false" spacing="normal" indent="14"> | |||
A Detnet "forwarding" label that identifies the LSP used to | <dt>F-Label</dt> | |||
<dd> | ||||
A DetNet "forwarding" label that identifies the Label Switched Path (LSP) | ||||
used to | ||||
forward a DetNet flow across an MPLS PSN, i.e., a hop-by-hop | forward a DetNet flow across an MPLS PSN, i.e., a hop-by-hop | |||
label used between label switching routers (LSR). | label used between Label Switching Routers (LSRs). | |||
</t> | </dd> | |||
<dt>S-Label</dt> | ||||
<t hangText="S-Label"> | <dd> | |||
A DetNet "service" label that is used between DetNet nodes that | A DetNet "service" label that is used between DetNet nodes that | |||
implement the DetNet service sub-layer functions. An S-Label | implement the DetNet service sub-layer functions. An S-Label | |||
is used to identify a DetNet flow at DetNet service | is used to identify a DetNet flow at the DetNet service | |||
sub-layer at a receiving DetNet node. | sub-layer at a receiving DetNet node. | |||
</t> | </dd> | |||
<dt>A-Label</dt> | ||||
<t hangText="A-Label"> | <dd> | |||
A special case of an S-Label, whose aggregation properties are known only at | A special case of an S-Label, whose aggregation properties are known only at | |||
the aggregation and deaggregation end-points. | the aggregation and deaggregation end points. | |||
</t> | </dd> | |||
<dt>d-CW</dt> | ||||
<t hangText="d-CW"> | <dd> | |||
A DetNet Control Word (d-CW) is used for sequencing information | A DetNet Control Word (d-CW) that is used for sequencing information | |||
of a DetNet flow at the DetNet | of a DetNet flow at the DetNet | |||
service sub-layer. | service sub-layer. | |||
</t> | </dd> | |||
</list> | </dl> | |||
</t> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>Abbreviations</name> | ||||
<section title="Abbreviations"> | <t> | |||
<t> | ||||
The following abbreviations are used in this document: | The following abbreviations are used in this document: | |||
<list style="hanging" hangIndent="14"> | </t> | |||
<t hangText="CoS">Class of Service.</t> | <dl newline="false" spacing="normal" indent="14"> | |||
<t hangText="CW">Control Word.</t> | <dt>CoS</dt> | |||
<t hangText="DetNet">Deterministic Networking.</t> | <dd>Class of Service</dd> | |||
<t hangText="LSR">Label Switching Router.</t> | <dt>CW</dt> | |||
<t hangText="MPLS">Multiprotocol Label Switching.</t> | <dd>Control Word</dd> | |||
<t hangText="MPLS-TE">Multiprotocol Label Switching - Traffic Engineering.</ | <dt>DetNet</dt> | |||
t> | <dd>Deterministic Networking</dd> | |||
<t hangText="MPLS-TP">Multiprotocol Label Switching - Transport Profile.</t> | <dt>LSR</dt> | |||
<t hangText="OAM">Operations, Administration, and Maintenance.</t> | <dd>Label Switching Router</dd> | |||
<t hangText="PE">Provider Edge.</t> | <dt>MPLS</dt> | |||
<t hangText="PEF">Packet Elimination Function.</t> | <dd>Multiprotocol Label Switching</dd> | |||
<t hangText="PRF">Packet Replication Function.</t> | <dt>MPLS-TE</dt> | |||
<t hangText="PREOF">Packet Replication, Elimination and Ordering Functions.< | <dd>Multiprotocol Label Switching Traffic Engineering</dd> | |||
/t> | <dt>MPLS-TP</dt> | |||
<t hangText="POF">Packet Ordering Function.</t> | <dd>Multiprotocol Label Switching Transport Profile</dd> | |||
<t hangText="PSN">Packet Switched Network.</t> | <dt>OAM</dt> | |||
<t hangText="PW">PseudoWire.</t> | <dd>Operations, Administration, and Maintenance</dd> | |||
<t hangText="QoS">Quality of Service.</t> | <dt>PE</dt> | |||
<t hangText="S-PE">Switching Provider Edge.</t> | <dd>Provider Edge</dd> | |||
<t hangText="T-PE">Terminating Provider Edge.</t> | <dt>PEF</dt> | |||
<t hangText="TSN">Time-Sensitive Network.</t> | <dd>Packet Elimination Function</dd> | |||
</list> | <dt>PRF</dt> | |||
</t> | <dd>Packet Replication Function</dd> | |||
</section> | <dt>PREOF</dt> | |||
<dd>Packet Replication, Elimination and Ordering Functions</dd> | ||||
<section title="Requirements Language"> | <dt>POF</dt> | |||
<t> | <dd>Packet Ordering Function</dd> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <dt>PSN</dt> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | <dd>Packet Switched Network</dd> | |||
"OPTIONAL" in this document are to be interpreted as described in | <dt>PW</dt> | |||
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and | <dd>Pseudowire</dd> | |||
only when, they appear in all capitals, as shown here. | <dt>QoS</dt> | |||
</t> | <dd>Quality of Service</dd> | |||
</section> | <dt>S-PE</dt> | |||
</section> <!-- end of terminology --> | <dd>Switching Provider Edge</dd> | |||
<dt>T-PE</dt> | ||||
<section title="DetNet MPLS Data Plane Overview" anchor="sec_dt_dp"> | <dd>Terminating Provider Edge</dd> | |||
<section title="Layers of DetNet Data Plane" anchor="sec_lay_dt_dp"> | <dt>TSN</dt> | |||
<t> | <dd>Time-Sensitive Networking</dd> | |||
MPLS provides a wide range of capabilities that can be utilised | </dl> | |||
by DetNet. A straight forward approach utilizing MPLS for a | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Requirements Language</name> | ||||
<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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="sec_dt_dp" numbered="true" toc="default"> | ||||
<name>Overview of the DetNet MPLS Data Plane</name> | ||||
<section anchor="sec_lay_dt_dp" numbered="true" toc="default"> | ||||
<name>Layers of DetNet Data Plane</name> | ||||
<t> | ||||
MPLS provides a wide range of capabilities that can be utilized | ||||
by DetNet. A straight-forward approach utilizing MPLS for a | ||||
DetNet service sub-layer is based on the existing pseudowire (PW) | DetNet service sub-layer is based on the existing pseudowire (PW) | |||
encapsulations and by utilizing existing MPLS Traffic Engineering | encapsulations and utilizes existing MPLS-TE | |||
encapsulations and mechanisms. | encapsulations and mechanisms. | |||
Background on PWs can be found in <xref target="RFC3985"/> and <xref | Background on PWs can be found in <xref target="RFC3985" | |||
target="RFC3031"/>. Background on MPLS Traffic Engineering can be | format="default"/>, <xref target="RFC3032"/>, and <xref target="RFC3031" | |||
found in <xref target="RFC3272"/> and <xref target="RFC3209"/>. | format="default"/>. | |||
</t> | Background on MPLS-TE can be | |||
<figure anchor="dn_mpls_dp_approach" align="center" | found in <xref target="RFC3272" format="default"/> and <xref target="RFC3209 | |||
title="DetNet Adaptation to MPLS Data Plane"> | " format="default"/>. | |||
<artwork align="center"><![CDATA[ | </t> | |||
<figure anchor="dn_mpls_dp_approach"> | ||||
<name>DetNet Adaptation to MPLS Data Plane</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
DetNet MPLS | DetNet MPLS | |||
. | . | |||
Bottom of Stack . | Bottom of Stack . | |||
(inner label) +------------+ | (inner label) +------------+ | |||
| Service | d-CW, S-Label (A-Label) | | Service | d-CW, S-Label (A-Label) | |||
+------------+ | +------------+ | |||
| Forwarding | F-Label(s) | | Forwarding | F-Label(s) | |||
+------------+ | +------------+ | |||
Top of Stack . | Top of Stack . | |||
(outer label) . | (outer label) . | |||
skipping to change at line 260 ¶ | skipping to change at line 260 ¶ | |||
DetNet MPLS | DetNet MPLS | |||
. | . | |||
Bottom of Stack . | Bottom of Stack . | |||
(inner label) +------------+ | (inner label) +------------+ | |||
| Service | d-CW, S-Label (A-Label) | | Service | d-CW, S-Label (A-Label) | |||
+------------+ | +------------+ | |||
| Forwarding | F-Label(s) | | Forwarding | F-Label(s) | |||
+------------+ | +------------+ | |||
Top of Stack . | Top of Stack . | |||
(outer label) . | (outer label) . | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
<t> | ||||
The DetNet MPLS data plane representation is illustrated in | The DetNet MPLS data plane representation is illustrated in | |||
<xref target="dn_mpls_dp_approach"/>. | <xref target="dn_mpls_dp_approach" format="default"/>. | |||
The service sub-layer includes a DetNet control word (d-CW) and | The service sub-layer includes a DetNet Control Word (d-CW) and | |||
an identifying service label (S-Label). The DetNet control word | an identifying service label (S-Label). The DetNet Control Word | |||
(d-CW) conforms to the Generic PW MPLS Control Word (PWMCW) | (d-CW) conforms to the Generic PW MPLS Control Word (PWMCW) | |||
defined in <xref target="RFC4385"/>. An aggregation label (A-Label) is | defined in <xref target="RFC4385" format="default"/>. An aggregation label ( A-Label) is | |||
a special case of S-Label used for aggregation. | a special case of S-Label used for aggregation. | |||
</t> | </t> | |||
<t> | ||||
<t> | A node operating on a received DetNet flow at the DetNet service | |||
A node operating on a received DetNet flow at the Detnet service | ||||
sub-layer uses the local context associated with a received S-Label, | sub-layer uses the local context associated with a received S-Label, | |||
i.e., a received F-Label, to determine which local DetNet | i.e., a received F-Label, to determine which local DetNet | |||
operation(s) are applied to that packet. | operation(s) are applied to that packet. | |||
An S-Label may be taken from the platform label space | An S-Label may be taken from the platform label space | |||
<xref target="RFC3031"/>, making it unique, enabling DetNet | <xref target="RFC3031" format="default"/>, making it unique and enabling Det Net | |||
flow identification regardless of which input interface or | flow identification regardless of which input interface or | |||
LSP the packet arrives on. It is important to note that S-Label | LSP the packet arrives on. It is important to note that S-Label | |||
values are driven by the receiver, not the sender. | values are driven by the receiver, not the sender. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
The DetNet forwarding sub-layer is supported by zero or more | The DetNet forwarding sub-layer is supported by zero or more | |||
forwarding labels (F-Labels). MPLS Traffic Engineering | forwarding labels (F-Labels). MPLS-TE | |||
encapsulations and mechanisms can be utilized to provide a | encapsulations and mechanisms can be utilized to provide a | |||
forwarding sub-layer that is responsible for providing resource | forwarding sub-layer that is responsible for providing resource | |||
allocation and explicit routes. | allocation and explicit routes. | |||
</t> | </t> | |||
</section> | ||||
</section> | <section anchor="sec_mpls_dt_dp_scen" numbered="true" toc="default"> | |||
<name>DetNet MPLS Data Plane Scenarios</name> | ||||
<section title="DetNet MPLS Data Plane Scenarios" | <figure anchor="fig_dn_mpls_detnet"> | |||
anchor="sec_mpls_dt_dp_scen"> | <name>A DetNet MPLS Network</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
<figure align="center" anchor="fig_dn_mpls_detnet" | ||||
title="A DetNet MPLS Network"> | ||||
<artwork><![CDATA[ | ||||
DetNet MPLS Relay Transit Relay DetNet MPLS | DetNet MPLS Relay Transit Relay DetNet MPLS | |||
End System Node Node Node End System | End System Node Node Node End System | |||
(T-PE) (S-PE) (LSR) (S-PE) (T-PE) | (T-PE) (S-PE) (LSR) (S-PE) (T-PE) | |||
+----------+ +----------+ | +----------+ +----------+ | |||
| Appl. |<------------ End to End Service ----------->| Appl. | | | Appl. |<------------ End-to-End Service ----------->| Appl. | | |||
+----------+ +---------+ +---------+ +----------+ | +----------+ +---------+ +---------+ +----------+ | |||
| Service |<--| Service |-- DetNet flow --| Service |-->| Service | | | Service |<--| Service |-- DetNet flow --| Service |-->| Service | | |||
+----------+ +---------+ +----------+ +---------+ +----------+ | +----------+ +---------+ +----------+ +---------+ +----------+ | |||
|Forwarding| |Fwd| |Fwd| |Forwarding| |Fwd| |Fwd| |Forwarding| | |Forwarding| |Fwd| |Fwd| |Forwarding| |Fwd| |Fwd| |Forwarding| | |||
+-------.--+ +-.-+ +-.-+ +----.---.-+ +-.-+ +-.-+ +---.------+ | +-------.--+ +-.-+ +-.-+ +----.---.-+ +-.-+ +-.-+ +---.------+ | |||
: Link : / ,-----. \ : Link : / ,-----. \ | : Link : / ,-----. \ : Link : / ,-----. \ | |||
+........+ +-[ Sub ]-+ +......+ +-[ Sub ]-+ | +........+ +-[ Sub- ]-+ +......+ +-[ Sub- ]-+ | |||
[Network] [Network] | [Network] [Network] | |||
`-----' `-----' | `-----' `-----' | |||
|<- LSP -->| |<-------- LSP -----------| |<--- LSP -->| | |<- LSP -->| |<-------- LSP -----------| |<--- LSP -->| | |||
|<----------------- DetNet MPLS --------------------->| | |<----------------- DetNet MPLS --------------------->| | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | <t> | |||
<xref target="fig_dn_mpls_detnet"/> illustrates | <xref target="fig_dn_mpls_detnet" format="default"/> illustrates | |||
a hypothetical DetNet MPLS-only network | a hypothetical DetNet MPLS-only network | |||
composed of DetNet aware MPLS enabled end systems, operating over a | composed of DetNet-aware MPLS-enabled end systems operating over a | |||
DetNet aware MPLS network. In this figure, the relay nodes are PE | DetNet-aware MPLS network. In this figure, the relay nodes are PE | |||
devices that define the MPLS LSP boundaries and the transit nodes | devices that define the MPLS LSP boundaries, and the transit nodes | |||
are LSRs. | are LSRs. | |||
</t> | </t> | |||
<t> | <t> | |||
DetNet end systems and relay nodes understand the particular needs | DetNet end systems and relay nodes understand the particular needs | |||
of DetNet flows and provide both DetNet service and forwarding | of DetNet flows and provide both DetNet service and forwarding | |||
sub-layer functions. In the case of MPLS, DetNet service-aware nodes ad | sub-layer functions. In the case of MPLS, DetNet service-aware nodes ad | |||
d, remove | d, remove, | |||
and process d-CWs, S-Labels and F-labels as needed. | and process d-CWs, S-Labels, and F-Labels as needed. | |||
DetNet MPLS nodes provide functionality analogous to T-PEs when | DetNet MPLS nodes provide functionality analogous to T-PEs when | |||
they sit at the edge of an MPLS domain, and S-PEs when they are | they sit at the edge of an MPLS domain and S-PEs when they are | |||
in the middle of an MPLS domain, see <xref | in the middle of an MPLS domain; see <xref target="RFC6073" format="defa | |||
target="RFC6073"/>. | ult"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
In a DetNet MPLS network, transit nodes may be DetNet service | In a DetNet MPLS network, transit nodes may be DetNet-service-aware or | |||
aware or may be DetNet unaware MPLS Label Switching Routers | DetNet-unaware MPLS Label Switching Routers | |||
(LSRs). In this latter case, such LSRs would be unaware of the | (LSRs). In this latter case, such LSRs would be unaware of the | |||
special requirements of the DetNet service sub-layer, but would | special requirements of the DetNet service sub-layer but would | |||
still provide traffic engineering functions and the QoS | still provide traffic engineering functions and the QoS | |||
capabilities needed to ensure that the (TE) LSPs meet the service | capabilities needed to ensure that the (TE) LSPs meet the service | |||
requirements of the carried DetNet flows. | requirements of the carried DetNet flows. | |||
</t> | </t> | |||
<t> | ||||
<t> | The application of DetNet using MPLS supports a number of | |||
The application of DetNet using MPLS supports a number of control | control and management plane types. These types support certain MPLS | |||
plane/management plane types. These types support certain MPLS data | data plane deployments. For example, RSVP-TE, MPLS-TP, or MPLS Segment | |||
plane deployments. For example RSVP-TE, MPLS-TP, or MPLS Segment | ||||
Routing (when extended to support resource allocation) are all valid | Routing (when extended to support resource allocation) are all valid | |||
MPLS deployment cases. | MPLS deployment cases. | |||
</t> | </t> | |||
<t> | ||||
<t> | <xref target="fig_pw_detnet" format="default"/> illustrates how an end-t | |||
<xref target="fig_pw_detnet"/> illustrates how an end-to-end MPLS-based | o-end MPLS-based | |||
DetNet service is provided in a more detail. In this figure, the | DetNet service is provided in more detail. | |||
customer end systems, CE1 and CE2, are able to send and receive MPLS | In this figure, the | |||
encapsulated DetNet flows, and R1, R2 and R3 are relay nodes in the | Customer Edge (CE1 and CE2) are able to send and receive | |||
middle of a DetNet network. The 'X' in the end systems, and relay | MPLS-encapsulated DetNet flows, and R1, R2, and R3 are relay nodes in t | |||
he | ||||
middle of a DetNet network. The 'X' in the end systems and relay | ||||
nodes represents potential DetNet compound flow packet replication and | nodes represents potential DetNet compound flow packet replication and | |||
elimination points. In this example, service protection is supported | elimination points. In this example, service protection is supported | |||
utilizing at least two DetNet member flows and TE LSPs. For a | utilizing at least two DetNet member flows and TE LSPs. For a | |||
unidirectional flow, R1 supports PRF and R3 supports PEF and POF. Note | unidirectional flow, R1 supports PRF, and R3 supports PEF and POF. Note | |||
that the relay nodes may change the underlying forwarding sub-layer, | that the relay nodes may change the underlying forwarding sub-layer, | |||
for example tunneling MPLS over IEEE 802.1 TSN <xref | for example, tunneling MPLS over IEEE 802.1 TSN <xref | |||
target="I-D.ietf-detnet-mpls-over-tsn"/>, or simply over interconnect | target="I-D.ietf-detnet-mpls-over-tsn" format="default"/> or simply | |||
network links. | over interconnected network links. | |||
</t> | </t> | |||
<figure align="center" anchor="fig_pw_detnet" | <figure anchor="fig_pw_detnet"> | |||
title="MPLS-Based Native DetNet"> | <name>MPLS-Based Native DetNet</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
DetNet DetNet | DetNet DetNet | |||
DetNet Service Transit Transit Service DetNet | DetNet Service Transit Transit Service DetNet | |||
MPLS | |<-Tnl->| |<-Tnl->| | MPLS | MPLS | |<-Tnl->| |<-Tnl->| | MPLS | |||
End | V 1 V V 2 V | End | End | V 1 V V 2 V | End | |||
System | +--------+ +--------+ +--------+ | System | System | +--------+ +--------+ +--------+ | System | |||
+---+ | | R1 |=======| R2 |=======| R3 | | +---+ | +---+ | | R1 |=======| R2 |=======| R3 | | +---+ | |||
| X...DFa...|._X_....|..DF1..|.__ ___.|..DF3..|...._X_.|.DFa..|.X | | | X...DFa...|._X_....|..DF1..|.__ ___.|..DF3..|...._X_.|.DFa..|.X | | |||
|CE1|========| \ | | X | | / |======|CE2| | |CE1|========| \ | | X | | / |======|CE2| | |||
| | | | \_.|..DF2..|._/ \__.|..DF4..|._/ | | | | | | | | | \_.|..DF2..|._/ \__.|..DF4..|._/ | | | | | |||
+---+ | |=======| |=======| | +---+ | +---+ | |=======| |=======| | +---+ | |||
^ +--------+ +--------+ +--------+ ^ | ^ +--------+ +--------+ +--------+ ^ | |||
| Relay Node Relay Node Relay Node | | | Relay Node Relay Node Relay Node | | |||
| (S-PE) (S-PE) (S-PE) | | | (S-PE) (S-PE) (S-PE) | | |||
| | | | | | |||
|<---------------------- DetNet MPLS --------------------->| | |<---------------------- DetNet MPLS --------------------->| | |||
| | | | | | |||
|<--------------- End to End DetNet Service -------------->| | |<--------------- End-to-End DetNet Service -------------->| | |||
-------------------------- Data Flow -------------------------> | -------------------------- Data Flow -------------------------> | |||
X = Optional service protection (none, PRF, PREOF, PEF/POF) | ||||
DFx = DetNet member flow x over a TE LSP | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<dl newline="false" spacing="normal" indent="6"> | ||||
<dt>X</dt> | ||||
<dd>- Optional service protection (none, PRF, PREOF, PEF/POF)</dd> | ||||
<dt>DFx</dt> | ||||
<dd>- DetNet member flow x over a TE LSP</dd> | ||||
</dl> | ||||
</section> | ||||
</section> | </section> | |||
</section> <!-- end of data plane overview --> | <section anchor="dn-dt-solution" numbered="true" toc="default"> | |||
<name>MPLS-Based DetNet Data Plane Solution</name> | ||||
<!-- ================================================================= --> | <section anchor="dn-MPLS-en-comps" numbered="true" toc="default"> | |||
<!-- =================== MPLS Encap considerations ================ --> | <name>DetNet over MPLS Encapsulation Components</name> | |||
<!-- ================================================================= --> | <t> | |||
To carry DetNet over MPLS, the following is required: | ||||
<section title="MPLS-Based DetNet Data Plane Solution" anchor="dn-dt-solution"> | ||||
<section title="DetNet Over MPLS Encapsulation Components" anchor="dn-MPLS-en-c | </t> | |||
omps"> | <ol spacing="normal" type="1"> | |||
<t> | <li>A method of identifying the MPLS payload type.</li> | |||
To carry DetNet over MPLS the following is required: | <li>A method of identifying the DetNet flow(s) to the processing eleme | |||
nt.</li> | ||||
<li>A method of distinguishing DetNet OAM packets from DetNet data pac | ||||
kets.</li> | ||||
<li>A method of carrying the DetNet sequence number.</li> | ||||
<li>A suitable LSP to deliver the packet to the egress PE.</li> | ||||
<li>A method of carrying queuing and forwarding indication.</li> | ||||
</ol> | ||||
<list style="numbers"> | <t> | |||
<t>A method of identifying the MPLS payload type.</t> | In this design, an MPLS service label (the S-Label) is similar to a | |||
<t>A method of identifying the DetNet flow(s) to the processing element.</t> | pseudowire (PW) label <xref target="RFC3985" format="default"/> and | |||
<t>A method of distinguishing DetNet OAM packets from DetNet data packets.</t | ||||
> | ||||
<t>A method of carrying the DetNet sequence number.</t> | ||||
<t>A suitable LSP to deliver the packet to the egress PE.</t> | ||||
<t>A method of carrying queuing and forwarding indication.</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
In this design an MPLS service label (the S-Label), is similar to a | ||||
pseudowire (PW) label <xref target="RFC3985"/>, and | ||||
is used to identify both the | is used to identify both the | |||
DetNet flow identity and the payload MPLS payload type satisfying | DetNet flow identity and the MPLS payload type satisfying | |||
(1) and (2) in the list above. | (1) and (2) in the list above. | |||
OAM traffic discrimination | OAM traffic discrimination | |||
happens through the use of the Associated Channel method described in | happens through the use of the Associated Channel method described in | |||
<xref target="RFC4385"/>. The DetNet sequence number is carried in | <xref target="RFC4385" format="default"/>. | |||
the DetNet Control word which carries the Data/OAM discriminator. To | ||||
simplify implementation and to maximize interoperability two sequence | ||||
number sizes are supported: a 16 bit sequence number and a 28 bit | ||||
sequence number. The 16 bit sequence number is needed to support | ||||
some types of legacy clients. The 28 bit sequence number is used in | ||||
situations where it is necessary ensure that in high speed networks | ||||
the sequence number space does not wrap whilst packets are in flight. | ||||
</t> | ||||
<t> | ||||
The LSP used to forward the DetNet packet is not restricted regarding | ||||
any method used for establishing that LSP (for example, MPLS-LDP, MPLS-TE, | ||||
MPLS-TP <xref target="RFC5921"/>, MPLS-SR <xref target="RFC8660"/>, etc.). | ||||
The LSP (F-Label) label(s) | ||||
and/or the S-Label may be used to indicate the required queue processing as | ||||
well as the forwarding parameters. Note that the possible use of | ||||
Penultimate Hop Popping (PHP) means that the S-Label may be the | ||||
only label received at the terminating DetNet service. | ||||
</t> | ||||
</section> | ||||
<section title="MPLS Data Plane Encapsulation" anchor="pwSolution"> | The DetNet sequence number is carried in | |||
<t> | the DetNet Control Word, which also carries the Data/OAM discriminator. To | |||
<xref target="fig_pw_mpls"/> illustrates a DetNet data plane MPLS | simplify implementation and to maximize interoperability, two sequence | |||
number sizes are supported: a 16-bit sequence number and a 28-bit | ||||
sequence number. The 16-bit sequence number is needed to support | ||||
some types of legacy clients. The 28-bit sequence number is used in | ||||
situations where it is necessary to ensure that, in high-speed networks, | ||||
the sequence number space does not wrap whilst packets are in flight. | ||||
</t> | ||||
<t> | ||||
The LSP used to forward the DetNet packet is not restricted regarding any | ||||
method used for establishing that LSP (for example, MPLS-LDP, MPLS-TE, | ||||
MPLS-TP <xref target="RFC5921" format="default"/>, MPLS Segment Routing | ||||
<xref target="RFC8660" format="default"/>, etc.). The F-Label(s) and the | ||||
S-Label may be used alone or together to indicate the required queue | ||||
processing as well as the forwarding parameters. Note that the possible | ||||
use of Penultimate Hop Popping (PHP) means that the S-Label may be the only | ||||
label received at the terminating DetNet service. | ||||
</t> | ||||
</section> | ||||
<section anchor="pwSolution" numbered="true" toc="default"> | ||||
<name>MPLS Data Plane Encapsulation</name> | ||||
<t> | ||||
<xref target="fig_pw_mpls" format="default"/> illustrates a DetNet data plan | ||||
e MPLS | ||||
encapsulation. The MPLS-based encapsulation of the DetNet flows | encapsulation. The MPLS-based encapsulation of the DetNet flows | |||
is well suited for the scenarios described in | is well suited for the scenarios described in | |||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. | <xref target="RFC8938" format="default"/>. | |||
Furthermore, an end-to-end DetNet | Furthermore, an end-to-end DetNet | |||
service i.e., native DetNet deployment (see <xref | service, i.e., native DetNet deployment (see <xref | |||
target="sec_mpls_dt_dp_scen"/>) is also possible if DetNet end | target="sec_mpls_dt_dp_scen" format="default"/>), is also possible if | |||
systems are capable of initiating and termination MPLS encapsulated | DetNet end systems are capable of initiating and terminating | |||
packets. | MPLS-encapsulated packets.</t> | |||
</t> | <t>The MPLS-based DetNet data plane encapsulation consists of:</t> | |||
<t> | <ul spacing="normal"> | |||
The MPLS-based DetNet data plane encapsulation consists of: | ||||
<list style="symbols"> | ||||
<t> | ||||
DetNet control word (d-CW) containing sequencing information for packet re | ||||
plication and | ||||
duplicate elimination purposes, and the OAM indicator.</t> | ||||
<t> | ||||
DetNet service Label (S-Label) that identifies a DetNet flow at | ||||
the receiving DetNet service sub-layer processing node. | ||||
</t> | ||||
<t> | ||||
Zero or more Detnet MPLS Forwarding label(s) (F-Label) used to direct the | ||||
packet along the label | ||||
switched path (LSP) to the next DetNet service sub-layer processing node a | ||||
long the path. When Penultimate Hop Popping is in | ||||
use there may be no label F-Label in the protocol stack on the final hop. | ||||
</t> | ||||
<t> | ||||
The necessary data-link encapsulation is then applied prior to transmissio | ||||
n over the physical | ||||
media. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
<figure title="Encapsulation of a DetNet App-Flow in an MPLS PSN" anchor="fig_ | <li>A DetNet Control Word (d-CW) containing sequencing information for | |||
pw_mpls"> | packet replication and duplicate elimination purposes, and the OAM | |||
<artwork align="center"><![CDATA[ | indicator.</li> | |||
<li>A DetNet service label (S-Label) that identifies a DetNet flow at | ||||
the receiving DetNet service sub-layer processing node.</li> | ||||
<li>Zero or more DetNet MPLS forwarding label(s) (F-Label) used to | ||||
direct the packet along the Label Switched Path (LSP) to the next | ||||
DetNet service sub-layer processing node along the path. When | ||||
PHP is in use, there may be no F-Label in the | ||||
protocol stack on the final hop.</li> | ||||
<li>The necessary data-link encapsulation is then applied prior to | ||||
transmission over the physical media.</li> | ||||
</ul> | ||||
<figure anchor="fig_pw_mpls"> | ||||
<name>Encapsulation of a DetNet App-Flow in an MPLS PSN</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
DetNet MPLS-based encapsulation | DetNet MPLS-based encapsulation | |||
+---------------------------------+ | +---------------------------------+ | |||
| | | | | | |||
| DetNet App-Flow | | | DetNet App-Flow | | |||
| Payload Packet | | | Payload Packet | | |||
| | | | | | |||
+---------------------------------+ <--\ | +---------------------------------+ <--\ | |||
| DetNet Control Word | | | | DetNet Control Word | | | |||
+---------------------------------+ +--> DetNet data plane | +---------------------------------+ +--> DetNet data plane | |||
| S-Label | | MPLS encapsulation | | S-Label | | MPLS encapsulation | |||
+---------------------------------+ | | +---------------------------------+ | | |||
| [ F-Label(s) ] | | | | [ F-Label(s) ] | | | |||
+---------------------------------+ <--/ | +---------------------------------+ <--/ | |||
| Data-Link | | | Data-Link | | |||
+---------------------------------+ | +---------------------------------+ | |||
| Physical | | | Physical | | |||
+---------------------------------+ | +---------------------------------+ | |||
]]> | ]]></artwork> | |||
</artwork></figure> | </figure> | |||
<section anchor="dn-sn" numbered="true" toc="default"> | ||||
<section title="DetNet Control Word and the DetNet Sequence Number" | <name>DetNet Control Word and DetNet Sequence Number</name> | |||
anchor="dn-sn"> | <t> | |||
<t> | A DetNet Control Word (d-CW) conforms to the Generic PW MPLS Control | |||
A DetNet control word (d-CW) conforms to the Generic PW MPLS Control | Word (PWMCW) defined in <xref target="RFC4385" format="default"/>. The d-CW f | |||
Word (PWMCW) defined in <xref target="RFC4385"/>. The d-CW formatted | ormatted | |||
as shown in <xref target="fig_detnet_cw"/> MUST be present in all | as shown in <xref target="fig_detnet_cw" format="default"/> <bcp14>MUST</bcp1 | |||
DetNet packets containing app-flow data. | 4> be present in all | |||
This format of the d-CW was created in order (1) to allow larger sequence num | DetNet packets containing App-flow data. | |||
ber | This format of the d-CW was created in order to (1) allow larger sequence num | |||
ber | ||||
space to avoid sequence number rollover frequency in some applications | space to avoid sequence number rollover frequency in some applications | |||
and (2) to allow sequence numbering systems that include the value zero | and (2) allow sequence numbering systems that include the value zero | |||
as a valid sequence number, which simplifies implementation. | as a valid sequence number, which simplifies implementation. | |||
</t> | </t> | |||
<figure title="DetNet Control Word" anchor="fig_detnet_cw"> | <figure anchor="fig_detnet_cw"> | |||
<artwork align="center"><![CDATA[ | <name>DetNet Control Word</name> | |||
<artwork align="center" name="" type="" 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|0 0 0 0| Sequence Number | | |0 0 0 0| Sequence Number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]> | ]]></artwork> | |||
</artwork></figure> | </figure> | |||
<dl newline="true" spacing="normal"> | ||||
<t> | <dt>(bits 0 to 3)</dt> | |||
<list style="hanging"> | <dd>Per <xref target="RFC4385" format="default"/>, | |||
<t hangText="(bits 0 to 3)"> | <bcp14>MUST</bcp14> be set to zero (0).</dd> | |||
<vspace blankLines="1"/> | <dt>Sequence Number (bits 4 to 31)</dt> | |||
Per <xref target="RFC4385"/>, MUST be set to zero (0). | <dd>An unsigned value implementing the DetNet sequence number. The | |||
</t> | sequence number space is a circular one with no restriction on the | |||
<t hangText="Sequence Number (bits 4 to 31)"> | initial value.</dd> | |||
<vspace blankLines="1"/> | </dl> | |||
An unsigned value implementing the DetNet sequence number. | <t> | |||
The sequence number space is a circular one with no | A separate sequence number space <bcp14>MUST</bcp14> be maintained by | |||
restriction on initial value. | the node that adds the d-CW for each DetNet App-flow, i.e., DetNet service. | |||
</t> | The following Sequence Number field lengths <bcp14>MUST</bcp14> be supported: | |||
</list> | </t> | |||
</t> | <ul spacing="normal"> | |||
<t> | <li>0 bits</li> | |||
A separate sequence number space MUST be maintained by | <li>16 bits</li> | |||
the node that adds the d-CW for each DetNet app-flow, i.e., DetNet service. | <li>28 bits</li> | |||
The following sequence number field lengths MUST be supported: | </ul> | |||
<list style="bullets"> | <t>The sequence number length <bcp14>MUST</bcp14> be provisioned on | |||
<t>0 bits</t> | a per-DetNet-service basis via configuration, i.e., via the | |||
<t>16 bits</t> | Controller Plane described in <xref target="RFC8938" | |||
<t>28 bits</t> | format="default"/>. | |||
</list> | </t> | |||
The sequence number length MUST be provisioned on a per | <t> | |||
Detnet service basis via | A 0-bit Sequence Number field length indicates that there is no | |||
configuration, i.e., via the controller plane described in | ||||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. | ||||
</t> | ||||
<t> | ||||
A 0 bit sequence number field length indicates that there is no | ||||
DetNet sequence number used for the flow. When the length is zero, | DetNet sequence number used for the flow. When the length is zero, | |||
the sequence number field MUST be set to zero (0) on all packets | the Sequence Number field <bcp14>MUST</bcp14> be set to zero (0) on all pack ets | |||
sent for the flow. | sent for the flow. | |||
</t> | </t> | |||
<t> | ||||
<t> | When the Sequence Number field length is 16 or 28 bits for a flow, | |||
When the sequence number field length is 16 or 28 bits for a flow, | the sequence number <bcp14>MUST</bcp14> be incremented by one for each new A | |||
the sequence number MUST be incremented by one for each new app-flow | pp-flow | |||
packet sent. When the field length is 16 bits, d-CW bits 4 to 15 | packet sent. When the field length is 16 bits, d-CW bits 4 to 15 | |||
MUST be set to zero (0). The values carried in this field can wrap | <bcp14>MUST</bcp14> be set to zero (0). The values carried in this field can wrap, | |||
and it is important to note that zero (0) is a valid field value. | and it is important to note that zero (0) is a valid field value. | |||
For example, where the sequence number size is 16 bits, the sequence | For example, where the sequence number size is 16 bits, the sequence | |||
will contain: 65535, 0, 1, where zero (0) is an ordinary | will contain: 65535, 0, 1, where zero (0) is an ordinary | |||
sequence number. | sequence number. | |||
</t> | </t> | |||
<t> | <t> It is important to note that this document differs from <xref | |||
It is important to note that this document differs from <xref | target="RFC4448" format="default"/>, where a sequence number of zero | |||
target="RFC4448"/> where a sequence number of zero (0) is used to | (0) is used to indicate that the sequence number check algorithm is | |||
indicate that the sequence number check algorithm is not used. | not used. | |||
</t> | </t> | |||
<t> | <t>The sequence number is optionally used during receive processing, | |||
The sequence number is optionally used during receive processing as | as described below in Sections <xref target="pef-requirements" | |||
described below in <xref target="pef-requirements"/> and <xref | format="counter"/> and <xref target="pof-requirements" | |||
target="pof-requirements"/>. | format="counter"/>. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="flow-identification" title="S-Labels"> | <section anchor="flow-identification" numbered="true" toc="default"> | |||
<t> | <name>S-Labels</name> | |||
<t> | ||||
A DetNet flow at the DetNet service sub-layer is identified by | A DetNet flow at the DetNet service sub-layer is identified by | |||
an S-Label. MPLS-aware DetNet end systems | an S-Label. MPLS-aware DetNet end systems | |||
and edge nodes, which are by definition MPLS ingress and egress | and edge nodes, which are by definition MPLS ingress and egress | |||
nodes, MUST add (push) and remove (pop) a DetNet service-specific d-CW and S | nodes, <bcp14>MUST</bcp14> add (push) and remove (pop) a DetNet | |||
-Label. Relay nodes MAY | service-specific d-CW and S-Label. Relay nodes <bcp14>MAY</bcp14> | |||
swap S-Label values when processing a DetNet flow, i.e., incoming and | swap S-Label values when processing a DetNet flow, i.e., incoming and | |||
outgoing S-Labels of a DetNet flow can be different. | outgoing S-Labels of a DetNet flow can be different. | |||
</t> | </t> | |||
<t> | <t> | |||
S-Label values MUST be provisioned per DetNet service via | S-Label values <bcp14>MUST</bcp14> be provisioned per DetNet service via | |||
configuration, i.e., via | configuration, i.e., via | |||
the controller plane described in | the Controller Plane described in | |||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. | <xref target="RFC8938" format="default"/>. | |||
Note that S-Labels provide identification at the downstream | Note that S-Labels provide identification at the downstream | |||
DetNet service sub-layer receiver, not the sender. As such, | DetNet service sub-layer receiver, not the sender. As such, | |||
S-Labels MUST be allocated by the entity that controls the service | S-Labels <bcp14>MUST</bcp14> be allocated by the entity that controls the se | |||
sub-layer receiving node's label space, and MAY be allocated from | rvice | |||
the platform label space <xref target="RFC3031"/>. | sub-layer receiving a node's label space and <bcp14>MAY</bcp14> be allocated | |||
Because S-Labels are local to each node rather than being a | from | |||
the platform label space <xref target="RFC3031" format="default"/>. | ||||
Because S-Labels are local to each node, rather than being a | ||||
global identifier within a domain, they must be advertised to their | global identifier within a domain, they must be advertised to their | |||
upstream DetNet service-aware peer nodes (i.e., a DetNet MPLS End | upstream DetNet service-aware peer nodes (i.e., a DetNet MPLS end | |||
System or a DetNet Relay or Edge Node) and interpreted in the | system or a DetNet relay or edge node) and interpreted in the | |||
context of their received F-Label(s). | context of their received F-Label(s). | |||
In some PREOF topologies, the node performing replication will be | In some PREOF topologies, the node performing replication will be | |||
sending to multiple nodes performing PEF or POF, and may need to | sending to multiple nodes performing PEF or POF and may need to | |||
send different S-Label values for the different member flows for the | send different S-Label values for the different member flows for the | |||
same DetNet service. | same DetNet service. | |||
</t> | </t> | |||
<t> | <t> | |||
An S-Label will normally be at the bottom of the label stack once | An S-Label will normally be at the bottom of the label stack once | |||
the last F-Label is removed, immediately preceding the d-CW. | the last F-Label is removed, immediately preceding the d-CW. | |||
To support service sub-layer level OAM, an OAM Associated Channel | To support OAM at the service sub-layer level, an OAM Associated Channel | |||
Header (ACH) <xref target="RFC4385"/> | Header (ACH) <xref target="RFC4385" format="default"/> | |||
together with a Generic Associated Channel Label (GAL) <xref | together with a Generic Associated Channel Label (GAL) <xref | |||
target="RFC5586"/> MAY be used in place of a d-CW. | target="RFC5586" format="default"/> <bcp14>MAY</bcp14> be used in place of | |||
</t> | a d-CW. | |||
<t> | </t> | |||
Similarly, an Entropy Label Indicator/Entropy Label (ELI/EL) <xref | <t> | |||
target="RFC6790"/> MAY be carried below the S-Label in the label stack in | Similarly, an Entropy Label Indicator (ELI) and Entropy Label (EL) <xref | |||
target="RFC6790" format="default"/> <bcp14>MAY</bcp14> be carried below | ||||
the S-Label in the label stack in | ||||
networks where DetNet flows would otherwise receive ECMP treatment. When | networks where DetNet flows would otherwise receive ECMP treatment. When | |||
ELs are used, the same EL value SHOULD be used for all of the packets | ELs are used, the same EL value <bcp14>SHOULD</bcp14> be used for all of the packets | |||
sent using a specific S-Label to force the flow to follow the same path. | sent using a specific S-Label to force the flow to follow the same path. | |||
However, as outlined in <xref | However, as outlined in <xref target="RFC8938" format="default"/>, the use o | |||
target="I-D.ietf-detnet-data-plane-framework"/> the use of ECMP for DetNet | f ECMP for DetNet | |||
flows is NOT RECOMMENDED. ECMP MAY be used for non-DetNet flows within a | flows is <bcp14>NOT RECOMMENDED</bcp14>. ECMP <bcp14>MAY</bcp14> be used for | |||
non-DetNet flows within a | ||||
DetNet domain. | DetNet domain. | |||
</t> | </t> | |||
<t> | <t> | |||
When receiving a DetNet MPLS packet, an implementation MUST identify | When receiving a DetNet MPLS packet, an implementation <bcp14>MUST</bcp14> | |||
identify | ||||
the DetNet service associated with the incoming packet based on the | the DetNet service associated with the incoming packet based on the | |||
S-Label. When a node is using platform labels for S-Labels, no | S-Label. When a node is using platform labels for S-Labels, no | |||
additional information is needed as the S-label uniquely identifies | additional information is needed, as the S-Label uniquely identifies | |||
the DetNet service. In the case where platform labels are not used, zero | the DetNet service. In the case where platform labels are not used, zero | |||
or more F-Labels proceeding the S-Label MUST be used together with | or more F-Labels proceeding the S-Label <bcp14>MUST</bcp14> be used togethe r with | |||
the S-Label to uniquely identify the DetNet service associated with a | the S-Label to uniquely identify the DetNet service associated with a | |||
received packet. | received packet. | |||
The incoming interface MAY also be used together with | The incoming interface <bcp14>MAY</bcp14> also be used together with | |||
any present F-Label(s) and the S-Label to uniquely identify an | any present F-Label(s) and the S-Label to uniquely identify an | |||
incoming DetNet service, for example, in the case where PHP is used. Note | incoming DetNet service, for example, in the case where PHP is used. | |||
that choice to use platform label space | Note that the choice to use the platform label space | |||
for S-Label or S-Label plus one or more F-Labels to identify | for an S-Label or an S-Label plus one or more F-Labels to identify | |||
DetNet services is a local implementation choice, with one caveat. When on e | DetNet services is a local implementation choice, with one caveat. When on e | |||
or more F-labels, or incoming interface, is needed together with an | or more F-Labels, or the incoming interface, is needed together with an | |||
S-Label to uniquely identify a service, the controller plane must ensure th | S-Label to uniquely identify a service, the Controller Plane must ensure th | |||
at | at | |||
incoming DetNet MPLS packets arrive with the needed information | incoming DetNet MPLS packets arrive with the needed information | |||
(F-label(s) and/or incoming interface) and provision the needed | (F-Label(s) and/or the incoming interface) and provision the needed | |||
information. The provisioned information MUST then be used to | information. The provisioned information <bcp14>MUST</bcp14> then be used t | |||
o | ||||
identify incoming DetNet service based on the combination of S-Label | identify incoming DetNet service based on the combination of S-Label | |||
and F-Label(s) or incoming interface. | and F-Label(s) or the incoming interface. | |||
</t> | </t> | |||
<t> | <t> | |||
The use of platform labels for S-Labels matches other pseudowire | The use of platform labels for S-Labels matches other pseudowire | |||
encapsulations for consistency but there is no hard requirement in | encapsulations for consistency, but there is no hard requirement in | |||
this regard. | this regard. | |||
</t> | </t> | |||
<t> | <t>Implementation details of PREOF are out of scope for | |||
Implementation details of PREOF functions are out of scope for this documen | this document. <xref target="IEEE802.1CB-2017" format="default"/> | |||
t. | defines equivalent replication and elimination-specific aspects, | |||
<xref target="IEEE802.1CB-2017"/> defines equivalent replication and elimin | which can be applied to PRF and PEF.</t> | |||
ation | <section anchor="prf-requirements" numbered="true" toc="default"> | |||
specific aspects, which can be applied to PRF and PEF. | <name>Packet Replication Function Processing</name> | |||
</t> | <t> | |||
The Packet Replication Function (PRF) <bcp14>MAY</bcp14> be supported | ||||
<section anchor="prf-requirements" title="Packet Replication Function | ||||
Processing"> | ||||
<t> | ||||
The Packet Replication Function (PRF) function MAY be supported | ||||
by an implementation for outgoing DetNet flows. The use of the PRF | by an implementation for outgoing DetNet flows. The use of the PRF | |||
for a particular DetNet service MUST be provisioned via configuration, | for a particular DetNet service <bcp14>MUST</bcp14> be provisioned via co | |||
i.e., via the controller plane described in | nfiguration, | |||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. When replication | i.e., via the Controller Plane described in | |||
is configured, the same app-flow data will be sent over multiple | <xref target="RFC8938" format="default"/>. When replication | |||
is configured, the same App-flow data will be sent over multiple | ||||
outgoing DetNet member flows using forwarding sub-layer LSPs. | outgoing DetNet member flows using forwarding sub-layer LSPs. | |||
An S-Label value MUST be configured per outgoing member flow. | An S-Label value <bcp14>MUST</bcp14> be configured per outgoing member fl | |||
The same d-CW field value MUST be used on all outgoing member flows for | ow. | |||
The same d-CW field value <bcp14>MUST</bcp14> be used on all outgoing mem | ||||
ber flows for | ||||
each replicated MPLS packet. | each replicated MPLS packet. | |||
<!-- PRF MUST NOT be used with DetNet services configured | </t> | |||
with a d-CW sequence number field length of 0 bits. | </section> | |||
[Note: What if multiple receivers? We may use the PRF for serving multipl | <section anchor="pef-requirements" numbered="true" toc="default"> | |||
e end-points.] --> | <name>Packet Elimination Function Processing</name> | |||
</t> | <t> | |||
</section> | Implementations <bcp14>MAY</bcp14> support the Packet Elimination Functio | |||
<section anchor="pef-requirements" title="Packet Elimination Function | n (PEF) | |||
Processing"> | ||||
<t> | ||||
Implementations MAY support the Packet Elimination Function (PEF) | ||||
for received DetNet MPLS flows. When supported, use of the PEF | for received DetNet MPLS flows. When supported, use of the PEF | |||
for a particular DetNet service MUST be provisioned via configuration, | for a particular DetNet service <bcp14>MUST</bcp14> be provisioned via co | |||
i.e., via the controller plane described in | nfiguration, | |||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. | i.e., via the Controller Plane described in | |||
</t> | <xref target="RFC8938" format="default"/>. | |||
<t> | </t> | |||
<t> | ||||
After a DetNet service is identified for a received DetNet MPLS packet , | After a DetNet service is identified for a received DetNet MPLS packet , | |||
as described above, if PEF is configured for that DetNet service, | as described above, if PEF is configured for that DetNet service, | |||
duplicate (replicated) instances of a particular sequence number MUST be | duplicate (replicated) instances of a particular sequence number <bcp1 4>MUST</bcp14> be | |||
discarded. | discarded. | |||
The specific mechanisms used for an implementation to identify which | The specific mechanisms used for an implementation to identify which | |||
received packets are duplicates and which are new is an | received packets are duplicates and which are new is an | |||
implementation choice. Note that per <xref target="dn-sn"/> | implementation choice. Note that, per <xref target="dn-sn" format="defa | |||
the sequence number field length may be 16 or 28 bits, and the | ult"/>, | |||
field value can wrap. PEF MUST NOT be used with DetNet flows configured | the Sequence Number field length may be 16 or 28 bits, and the | |||
with a d-CW sequence number field length of 0 bits. | field value can wrap. PEF <bcp14>MUST NOT</bcp14> be used with DetNet flo | |||
</t> | ws configured | |||
<t> | with a d-CW Sequence Number field length of 0 bits. | |||
An implementation MAY constrain the maximum number of sequence numbers | </t> | |||
that are tracked on either a platform-wide or per flow basis. | <t> | |||
Some implementations MAY support the provisioning of | An implementation <bcp14>MAY</bcp14> constrain the maximum number of s | |||
equence numbers | ||||
that are tracked on either a platform-wide or per-flow basis. | ||||
Some implementations <bcp14>MAY</bcp14> support the provisioning of | ||||
the maximum number of sequence numbers that are tracked on | the maximum number of sequence numbers that are tracked on | |||
either a platform-wide or per flow basis. | either a platform-wide or per-flow basis. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="pof-requirements" title="Packet Ordering Function | <section anchor="pof-requirements" numbered="true" toc="default"> | |||
Processing"> | <name>Packet Ordering Function Processing</name> | |||
<t> | <t> | |||
A function that is related to in-order delivery is the Packet Ordering Fu nction | A function that is related to in-order delivery is the Packet Ordering Fu nction | |||
(POF). Implementations MAY support POF. When | (POF). Implementations <bcp14>MAY</bcp14> support POF. When | |||
supported, use of the POF for a particular DetNet service MUST be | supported, use of the POF for a particular DetNet service <bcp14>MUST</bc | |||
provisioned via configuration, i.e., via the controller plane | p14> be | |||
provisioned via configuration, i.e., via the Controller Plane | ||||
described by | described by | |||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. | <xref target="RFC8938" format="default"/>. | |||
Implementations MAY require that PEF and POF be used in combination. | Implementations <bcp14>MAY</bcp14> require that PEF and POF be used in co | |||
There is no requirement related to the order of execution of the Packet | mbination. | |||
Elimination and Ordering Functions in an implementation. | There is no requirement related to the order of execution of the PEF and | |||
</t> | POF in an implementation. | |||
<t> | </t> | |||
After a DetNet service is identified for a received DetNet MPLS packet | <t> | |||
, | After a DetNet service is identified for a received DetNet MPLS | |||
as described above, if POF is configured for that DetNet service, pack | packet, as described above, if POF is configured for that DetNet | |||
ets | service, packets <bcp14>MUST</bcp14> be processed in the order | |||
MUST be processed in the order indicated in the received d-CW sequence | indicated in the received d-CW Sequence Number field, which may not | |||
number field, which may not be in the order the packets are received. | be in the order the packets are received. | |||
As defined in | As defined in <xref | |||
<xref target="dn-sn"/> the sequence number field length may be 16 | target="dn-sn" format="default"/>, the Sequence Number field length | |||
or 28 bits, is incremented by one (1) for each new MPLS packet | may be 16 or 28 bits, the sequence number is incremented by one (1) fo | |||
sent for a particular DetNet service, and the field value can wrap. The | r each new | |||
specific mechanisms used | MPLS packet sent for a particular DetNet service, and the field | |||
for an implementation to identify the order of received packets | value can wrap. The specific mechanisms used for an implementation | |||
is an implementation choice. | to identify the order of received packets is an implementation | |||
</t> | choice. | |||
<t> | </t> | |||
An implementation MAY constrain the maximum number of out of order | <t> | |||
packets that can be processed, on either a platform-wide or per flow | An implementation <bcp14>MAY</bcp14> constrain the maximum number of out- | |||
basis. The number of out of order packets that can be processed also | of-order | |||
packets that can be processed on either a platform-wide or per-flow | ||||
basis. The number of out-of-order packets that can be processed also | ||||
impacts the latency of a flow. | impacts the latency of a flow. | |||
</t> | </t> | |||
<t> | <t> | |||
The latency impact on the system resources needed to support a | The latency impact on the system resources needed to support a | |||
specific DetNet flow will need to be evaluated by the controller plane | specific DetNet flow will need to be evaluated by the Controller Plane | |||
based on that flow's traffic specification. An example traffic | based on that flow's traffic specification. An example traffic | |||
specification that can be used with MPLS with Traffic Engineering | specification that can be used with | |||
(MPLS-TE) can be found in <xref target="RFC2212"/>. | MPLS-TE can be found in <xref target="RFC2212" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
DetNet implementations can use flow-specific requirements (e.g., maximum | DetNet implementations can use flow-specific requirements (e.g., maximum | |||
number of out-of-order packets, maximum latency of the flow) for | number of out-of-order packets and maximum latency of the flow) for | |||
configuration of POF-related buffers. POF implementation details | configuration of POF-related buffers. POF implementation details | |||
are out-of-scope for this document and POF configuration paramete rs | are out of scope for this document, and POF configuration paramet ers | |||
are implementation specific. The Controller Plane identifies and | are implementation specific. The Controller Plane identifies and | |||
sets the POF configuration parameters. | sets the POF configuration parameters. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="f-labels" title="F-Labels"> | <section anchor="f-labels" numbered="true" toc="default"> | |||
<t> | <name>F-Labels</name> | |||
<t> | ||||
F-Labels support the DetNet forwarding sub-layer. F-Labels | F-Labels support the DetNet forwarding sub-layer. F-Labels | |||
are used to provide LSP-based connectivity between DetNet service | are used to provide LSP-based connectivity between DetNet service | |||
sub-layer processing nodes. | sub-layer processing nodes. | |||
</t> | </t> | |||
<section anchor="f-labels-ssl" | <section anchor="f-labels-ssl" numbered="true" toc="default"> | |||
title="Service Sub-Layer Related Processing"> | <name>Service Sub-Layer-Related Processing</name> | |||
<t> | ||||
<t> | DetNet MPLS end systems, edge nodes, and relay nodes may operate at | |||
DetNet MPLS end systems, edge nodes and relay nodes may operate at | ||||
the DetNet service sub-layer with understanding of DetNet services and their | the DetNet service sub-layer with understanding of DetNet services and their | |||
requirements. As mentioned earlier, when operating at this layer | requirements. As mentioned earlier, when operating at this layer, | |||
such nodes can push, pop or swap (pop then push) S-Labels. In all | such nodes can push, pop, or swap (pop then push) S-Labels. In all | |||
cases, the F-Label(s) used for a DetNet service are always replaced an | cases, the F-Label(s) used for a DetNet service are always replaced, a | |||
d | nd | |||
the following procedures apply. | the following procedures apply. | |||
</t> | </t> | |||
<t> | <t> | |||
When sending a DetNet flow, zero or more F-Labels MAY be pushed | When sending a DetNet flow, zero or more F-Labels <bcp14>MAY</bcp14> be | |||
pushed | ||||
on top of an S-Label by the node pushing an S-Label. The | on top of an S-Label by the node pushing an S-Label. The | |||
F-Label(s) to be pushed when sending a particular DetNet service MUST | F-Label(s) to be pushed when sending a particular DetNet service <bcp14 >MUST</bcp14> | |||
be provisioned per outgoing S-Label via configuration, i.e., via the | be provisioned per outgoing S-Label via configuration, i.e., via the | |||
controller plane discussed in | Controller Plane discussed in <xref target="RFC8938" format="default"/> | |||
<xref target="I-D.ietf-detnet-data-plane-framework"/>. | . | |||
F-Label(s) can also provide context for an S-Label. | F-Label(s) can also provide context for an S-Label. To | |||
To | allow for the omission of F-Label(s), an implementation <bcp14>SHOULD</ | |||
allow for the omission of F-Label(s), an implementation SHOULD | bcp14> | |||
also allow an outgoing interface to be configured per S-Label. | also allow an outgoing interface to be configured per S-Label. | |||
</t> | </t> | |||
<t> | <t> | |||
Note, when PRF | Note that when PRF | |||
is supported, the same app-flow data will be sent over multiple | is supported, the same App-flow data will be sent over multiple | |||
outgoing DetNet member flows using forwarding sub-layer | outgoing DetNet member flows using forwarding sub-layer | |||
LSPs. This means that | LSPs. This means that an | |||
implementation may be sending different sets of | implementation may be sending different sets of | |||
F-Labels per DetNet member flow, each with a different S-Label. | F-Labels per DetNet member flow, each with a different S-Label. | |||
</t> | </t> | |||
<t> | <t> | |||
When a single set of F-Labels is provisioned for a particular | When a single set of F-Labels is provisioned for a particular | |||
outgoing S-Label, that set of F-labels MUST be pushed after | outgoing S-Label, that set of F-Labels <bcp14>MUST</bcp14> be pushed afte r | |||
the S-Label is pushed. | the S-Label is pushed. | |||
The outgoing packet is then forwarded as | The outgoing packet is then forwarded, as | |||
described below in <xref target="f-labels-all"/>. When a single | described below in <xref target="f-labels-all" format="default"/>. When a | |||
single | ||||
outgoing interface is provisioned, the outgoing packet is then | outgoing interface is provisioned, the outgoing packet is then | |||
forwarded as described below in <xref target="f-labels-all"/>. | forwarded, as described below in <xref target="f-labels-all" format="defa | |||
</t> | ult"/>. | |||
<t> | </t> | |||
<t> | ||||
When multiple sets of outgoing F-Labels or interfaces are provisioned for | When multiple sets of outgoing F-Labels or interfaces are provisioned for | |||
a particular DetNet service (i.e., for PRF), a copy of the outgoing packe t, including | a particular DetNet service (i.e., for PRF), a copy of the outgoing packe t, including | |||
the pushed member flow-specific S-Label, MUST be made per F-label set and outgoing | the pushed member flow-specific S-Label, <bcp14>MUST</bcp14> be made per F-Label set and outgoing | |||
interface. Each set of provisioned F-Labels are then pushed onto | interface. Each set of provisioned F-Labels are then pushed onto | |||
a copy of the packet. Each copy is then forwarded as described | a copy of the packet. Each copy is then forwarded, as described | |||
below in <xref target="f-labels-all"/>. | below in <xref target="f-labels-all" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
As described in the previous section, when receiving a DetNet MPLS flow, an implementation | As described in the previous section, when receiving a DetNet MPLS flow, an implementation | |||
identifies the DetNet service associated with the incoming packet based | identifies the DetNet service associated with the incoming packet based | |||
on the S-Label. When a node is using platform labels for | on the S-Label. When a node is using platform labels for | |||
S-Labels, any F-Labels can be popped and the S-label uniquely | S-Labels, any F-Labels can be popped, and the S-Label uniquely | |||
identifies the DetNet service. In the case where platform labels are | identifies the DetNet service. In the case where platform labels are | |||
not used, incoming F-Label(s) and, optionally, the incoming interface MUS T also be provisioned for a | not used, incoming F-Label(s) and, optionally, the incoming interface <bc p14>MUST</bcp14> also be provisioned for a | |||
DetNet service. | DetNet service. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="f-labels-all" | <section anchor="f-labels-all" numbered="true" toc="default"> | |||
title="Common F-Label Processing"> | <name>Common F-Label Processing</name> | |||
<t> | <t> | |||
All DetNet aware MPLS nodes process F-Labels as needed to meet | All DetNet-aware MPLS nodes process F-Labels as needed to meet | |||
the service requirements of the DetNet flow or flows carried in | the service requirements of the DetNet flow or flows carried in | |||
the LSPs represented by the F-Labels. This includes normal | the LSPs represented by the F-Labels. This includes normal | |||
push, pop and swap operations. Such processing is essentially | push, pop, and swap operations. Such processing is essentially | |||
the same type of processing provided for TE LSPs, although the | the same type of processing provided for TE LSPs, although the | |||
specific service parameters, or traffic specification, can | specific service parameters, or traffic specification, can | |||
differ. When the DetNet service parameters of the DetNet flow or | differ. When the DetNet service parameters of the DetNet flow or | |||
flows carried in an LSP represented by an F-Label can be met by | flows carried in an LSP represented by an F-Label can be met by | |||
an existing TE mechanism, the forwarding sub-layer processing | an existing TE mechanism, the forwarding sub-layer processing | |||
node MAY be a DetNet unaware, i.e., standard, MPLS LSR. Such | node <bcp14>MAY</bcp14> be a DetNet-unaware, i.e., standard, MPLS LSR. Such | |||
TE LSPs may provide LSP forwarding service as defined in, but | TE LSPs may provide LSP forwarding service as defined in, but | |||
not limited to, <xref target="RFC3209"/>, <xref | not limited, to the following: <xref target="RFC3209" format="default"/ | |||
target="RFC3270"/>, <xref target="RFC3272"/>, <xref | >, <xref | |||
target="RFC3473"/>, <xref target="RFC4875"/>, <xref | target="RFC3270" format="default"/>, <xref target="RFC3272" | |||
target="RFC5440"/>, and <xref target="RFC8306"/>. | format="default"/>, <xref target="RFC3473" format="default"/>, <xref | |||
</t> | target="RFC4875" format="default"/>, <xref target="RFC5440" | |||
<t> | format="default"/>, and <xref target="RFC8306" format="default"/>. | |||
</t> | ||||
<t> | ||||
More specifically, as mentioned above, the DetNet forwarding | More specifically, as mentioned above, the DetNet forwarding | |||
sub-layer provides explicit routes and allocated resources, and | sub-layer provides explicit routes and allocated resources, and | |||
F-Labels are used to map to each. Explicit routes are | F-Labels are used to map to each. Explicit routes are | |||
supported based on the topmost (outermost) F-Label that is | supported based on the topmost (outermost) F-Label that is | |||
pushed or swapped and the LSP that corresponds to this label. | pushed or swapped and the LSP that corresponds to this label. | |||
This topmost (outgoing) label MUST be associated with a | This topmost (outgoing) label <bcp14>MUST</bcp14> be associated with a | |||
provisioned outgoing interface and, for non-point-to-point | provisioned outgoing interface and, for non-point-to-point | |||
outgoing interfaces, a next hop LSR. Note that this | outgoing interfaces, a next-hop LSR. Note that this | |||
information MUST be provisioned via configuration or the | information <bcp14>MUST</bcp14> be provisioned via configuration or the | |||
controller plane. In the previously mentioned special case | Controller Plane. In the previously mentioned special case | |||
where there are no added F-labels and the outgoing interface is | where there are no added F-Labels and the outgoing interface is | |||
not a point-to-point interface, the outgoing interface MUST | not a point-to-point interface, the outgoing interface <bcp14>MUST</bcp | |||
also be associated with a next hop LSR. | 14> | |||
</t> | also be associated with a next-hop LSR. | |||
<t> | </t> | |||
Resources may be allocated in a hierarchical fashion per LSP | <t> | |||
that is represented by each F-Label. Each LSP MAY be | Resources may be allocated in a hierarchical fashion per each LSP | |||
that is represented by each F-Label. Each LSP <bcp14>MAY</bcp14> be | ||||
provisioned with a service parameter that dictates the | provisioned with a service parameter that dictates the | |||
specific traffic treatment to be received by the traffic | specific traffic treatment to be received by the traffic | |||
carried over that LSP. Implementations of this document MUST | carried over that LSP. Implementations of this document <bcp14>MUST</b cp14> | |||
ensure that traffic carried over each LSP represented by one or more | ensure that traffic carried over each LSP represented by one or more | |||
F-Labels receives the traffic treatment provisioned for that | F-Labels receives the traffic treatment provisioned for that | |||
LSP. Typical mechanisms used to provide different treatment to | LSP. Typical mechanisms used to provide different treatment to | |||
different flows includes the allocation of system resources | different flows include the allocation of system resources | |||
(such as queues and buffers) and provisioning of related | (such as queues and buffers) and provisioning of related | |||
parameters (such as shaping, and policing) that may be found in | parameters (such as shaping and policing) that may be found in | |||
implementations of <xref target="RFC2205">Resource ReSerVation Protocol | implementations of the Resource ReSerVation Protocol (RSVP) <xref | |||
(RSVP)</xref> (RSVP) and RSVP-TE <xref target="RFC3209"/> and | target="RFC2205" format="default"/> and RSVP-TE <xref | |||
<xref target="RFC3473"/>. Support can also be | target="RFC3209" format="default"/> | |||
provided via an underlying network technology such IEEE802.1 | <xref target="RFC3473" format="default"/>. Support can also be | |||
TSN <xref target="I-D.ietf-detnet-mpls-over-tsn"/>. | provided via an underlying network technology, such as IEEE 802.1 | |||
TSN <xref target="I-D.ietf-detnet-mpls-over-tsn" format="default"/>. | ||||
The specific mechanisms selected by a DetNet node to ensure DetNet | The specific mechanisms selected by a DetNet node to ensure DetNet | |||
service delivery requirements are met for supported DetNet | service delivery requirements are met for supported DetNet | |||
flows is outside the scope of this document. | flows is outside the scope of this document. | |||
</t> | </t> | |||
<t> | <t> | |||
Packets that are marked in a way that do not correspond to | Packets that are marked in a way that do not correspond to | |||
allocated resources, e.g., lack a provisioned F-Label, can | allocated resources, e.g., lack a provisioned F-Label, can | |||
disrupt the QoS offered to properly reserved DetNet flows by | disrupt the QoS offered to properly reserved DetNet flows by | |||
using resources allocated to the reserved flows. Therefore, | using resources allocated to the reserved flows. Therefore, | |||
the network nodes of a DetNet network: | the network nodes of a DetNet network: | |||
<list style="symbols"> | </t> | |||
<t> | <ul spacing="normal"> | |||
MUST defend the DetNet QoS by discarding or remarking (to | <li> | |||
an allocated DetNet flow or non-competing non-DetNet flow) | <bcp14>MUST</bcp14> defend the DetNet QoS by discarding or remarkin | |||
g (to | ||||
an allocated DetNet flow or noncompeting non-DetNet flow) | ||||
packets received that are not associated with a completed | packets received that are not associated with a completed | |||
resource allocation. | resource allocation. | |||
</t> | </li> | |||
<t> | <li> | |||
MUST NOT use a DetNet allocated resource, e.g. a queue or | <bcp14>MUST NOT</bcp14> use a DetNet allocated resource, e.g., a qu | |||
eue or | ||||
shaper reserved for DetNet flows, for any packet that does | shaper reserved for DetNet flows, for any packet that does | |||
match the corresponding DetNet flow. | match the corresponding DetNet flow. | |||
</t> | </li> | |||
<t> | <li> | |||
MUST ensure a QoS flow does not exceed its allocated | <bcp14>MUST</bcp14> ensure a QoS flow does not exceed its allocated | |||
resources or provisioned service level, | resources or provisioned service level. | |||
</t> | </li> | |||
<t> | <li> | |||
MUST ensure a CoS flow or service class does not impact the | <bcp14>MUST</bcp14> ensure a CoS flow or service class does not imp | |||
act the | ||||
service delivered to other flows. This requirement is | service delivered to other flows. This requirement is | |||
similar to the requirement for MPLS LSRs that CoS LSPs do | similar to the requirement for MPLS LSRs that CoS LSPs do | |||
not impact the resources allocated to TE LSPs, e.g., via | not impact the resources allocated to TE LSPs, e.g., via | |||
<xref target="RFC3473"/>. | <xref target="RFC3473" format="default"/>. | |||
</t> | </li> | |||
</list> | </ul> | |||
</t> | <t> | |||
<t> | ||||
Subsequent sections provide additional considerations related | Subsequent sections provide additional considerations related | |||
to CoS (<xref target="CoS"/>), QoS (<xref target="QoS"/>) and | to CoS (<xref target="CoS" format="default"/>), QoS (<xref target="QoS" | |||
aggregation (<xref target="FAG"/>). | format="default"/>), and | |||
</t> | aggregation (<xref target="FAG" format="default"/>). | |||
</section> | </t> | |||
</section> | </section> | |||
</section> | ||||
</section> | </section> | |||
<section anchor="oam-indication" numbered="true" toc="default"> | ||||
<name>OAM Indication</name> | ||||
<section anchor="oam-indication" title="OAM Indication"> | ||||
<!-- LB: why only type 1, if keep it, need conformance language --> | ||||
<t> | <t> | |||
OAM follows the procedures set out in <xref target="RFC5085"/> with the | OAM follows the procedures set out in <xref target="RFC5085" format="default "/> with the | |||
restriction that only Virtual Circuit Connectivity Verification | restriction that only Virtual Circuit Connectivity Verification | |||
(VCCV) type 1 is supported.</t> | (VCCV) type 1 is supported.</t> | |||
<t>As shown in Figure 3 of <xref target="RFC5085" format="default"/>, wh | ||||
<t>As shown in Figure 3 of <xref target="RFC5085"/> when the first nibble of | en the first nibble of | |||
the d-CW is 0x0 the payload following the d-CW is normal user | the d-CW is 0x0, the payload following the d-CW is normal user | |||
data. However, when the first nibble of the d-CW is 0x1, the | data. However, when the first nibble of the d-CW is 0x1, the | |||
payload that follows the d-CW is an OAM payload with the OAM | payload that follows the d-CW is an OAM payload with the OAM | |||
type indicated by the value in the d-CW Channel Type field.</t> | type indicated by the value in the d-CW Channel Type field.</t> | |||
<t>The reader is referred to <xref target="RFC5085"/> for a more detailed | <t>The reader is referred to <xref target="RFC5085" format="default"/> f | |||
description of the Associated Channel mechanism, and to the | or a more detailed | |||
DetNet work on OAM for more information DetNet OAM. | description of the Associated Channel mechanism and to the | |||
</t> | DetNet work on OAM <xref target="I-D.ietf-detnet-mpls-oam" format="default"/ | |||
<t> Additional considerations on DetNet-specific OAM are subjects | > for more information about DetNet OAM. | |||
</t> | ||||
<t> Additional considerations on DetNet-specific OAM are subjects | ||||
for further study. | for further study. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="FAG" numbered="true" toc="default"> | ||||
<section anchor="FAG" title="Flow Aggregation"> | <name>Flow Aggregation</name> | |||
<t> | <t> | |||
The ability to aggregate individual flows, and their associated | The ability to aggregate individual flows and their associated | |||
resource control, into a larger aggregate is an important technique | resource control into a larger aggregate is an important technique | |||
for improving scaling of control in the data, management and control | for improving scaling of control in the data, management, and control | |||
planes. The DetNet data plane allows for the aggregation of DetNet flows, | planes. The DetNet data plane allows for the aggregation of DetNet flows | |||
to improved scaling. There are two methods of supporting flow | to improved scaling. There are two methods of supporting flow | |||
aggregation covered in this section. | aggregation covered in this section. | |||
</t> | </t> | |||
<t> | <t> | |||
The resource control and management aspects of aggregation | The resource control and management aspects of aggregation | |||
(including the configuration of queuing, shaping, and policing) are | (including the configuration of queuing, shaping, and policing) are | |||
the responsibility of the DetNet controller plane and is out of scope of thi | the responsibility of the DetNet Controller Plane and are out of scope for t | |||
s | his | |||
documents. It is also the responsibility of the controller | document. It is also the responsibility of the Controller | |||
plane to ensure that consistent aggregation methods are used. | Plane to ensure that consistent aggregation methods are used. | |||
</t> | </t> | |||
<section anchor="aggregation-at-the-lsp" title="Aggregation Via LSP Hierarchy | <section anchor="aggregation-at-the-lsp" numbered="true" toc="default"> | |||
"> | <name>Aggregation via LSP Hierarchy</name> | |||
<t> | <t> | |||
DetNet flows forwarded via MPLS can leverage MPLS-TE's existing | DetNet flows forwarded via MPLS can leverage MPLS-TE's existing | |||
support for hierarchical LSPs (H-LSPs), see <xref target="RFC4206"/>. H-LS | support for hierarchical LSPs (H-LSPs); see <xref target="RFC4206" format=" | |||
Ps are | default"/>. H-LSPs are | |||
typically used to aggregate control and resources, they may also be | typically used to aggregate control and resources; they may also be | |||
used to provide OAM or protection for the aggregated LSPs. Arbitrary | used to provide OAM or protection for the aggregated LSPs. Arbitrary | |||
levels of aggregation naturally falls out of the definition for | levels of aggregation naturally fall out of the definition for | |||
hierarchy and the MPLS label stack <xref target="RFC3032"/>. DetNet nodes | hierarchy and the MPLS label stack <xref target="RFC3032" format="default"/ | |||
which | >. DetNet nodes that | |||
support aggregation (LSP hierarchy) map one or more LSPs (labels) | support aggregation (LSP hierarchy) map one or more LSPs (labels) | |||
into and from an H-LSP. Both carried LSPs and H-LSPs may or may not | into and from an H-LSP. | |||
use the TC field, i.e., L-LSPs or E-LSPs <xref target="RFC3270"/>. Such no | Both carried LSPs and H-LSPs may or may not | |||
des will need to | use the Traffic Class (TC) field, i.e., L-LSPs (Label-Only-Inferred-PSC LSP | |||
s) | ||||
or E-LSPs (EXP-Inferred-PSC LSPs <xref | ||||
target="RFC3270" format="default"/>, which were renamed to "Explicitly TC-e | ||||
ncoded-PSC LSPs" in <xref target="RFC5462" format="default" sectionFormat="of" s | ||||
ection="2.2"/>). Such nodes will need to | ||||
ensure that individual LSPs and H-LSPs receive the traffic | ensure that individual LSPs and H-LSPs receive the traffic | |||
treatment required to ensure the required | treatment required to ensure the required | |||
DetNet service is preserved. | DetNet service is preserved. | |||
</t> | </t> | |||
<t> | <t> | |||
Additional details of the traffic control capabilities needed at a | Additional details of the traffic control capabilities needed at a | |||
DetNet-aware node may be covered in the new service definitions | DetNet-aware node may be covered in the new service definitions | |||
mentioned above or in separate future documents. Controller plane | mentioned above or in separate future documents. Controller Plane | |||
mechanisms will also need to ensure that the service required on | mechanisms will also need to ensure that the service required on | |||
the aggregate flow are provided, which may include the discarding | the aggregate flow are provided, which may include the discarding | |||
or remarking mentioned in the previous sections. | or remarking mentioned in the previous sections. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="aggregating-detnet-flows-as-a-new-detnet-flow" | <section anchor="aggregating-detnet-flows-as-a-new-detnet-flow" numbered | |||
title="Aggregating DetNet Flows as a new DetNet flow"> | ="true" toc="default"> | |||
<t> | <name>Aggregating DetNet Flows as a New DetNet Flow</name> | |||
<t> | ||||
An aggregate can be built by layering DetNet flows, including both | An aggregate can be built by layering DetNet flows, including both | |||
their S-Label and, when present, F-Labels as shown below: | their S-Label and (when present) F-Labels, as shown below: | |||
</t> | </t> | |||
<figure title="DetNet Aggregation as a new DetNet Flow" anchor="fig_detnet_a | <figure anchor="fig_detnet_agg_flow"> | |||
gg_flow"> | <name>DetNet Aggregation as a New DetNet Flow</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
<artwork><![CDATA[ | ||||
+---------------------------------+ | +---------------------------------+ | |||
| | | | | | |||
| DetNet Flow | | | DetNet Flow | | |||
| Payload Packet | | | Payload Packet | | |||
| | | | | | |||
+---------------------------------+ <--\ | +---------------------------------+ <--\ | |||
| DetNet Control Word | | | | DetNet Control Word | | | |||
+=================================+ | | +=================================+ | | |||
| S-Label | | | | S-Label | | | |||
+---------------------------------+ | | +---------------------------------+ | | |||
skipping to change at line 1016 ¶ | skipping to change at line 997 ¶ | |||
| DetNet Control Word | | | | DetNet Control Word | | | |||
+=================================+ | | +=================================+ | | |||
| A-Label | | | | A-Label | | | |||
+---------------------------------+ | | +---------------------------------+ | | |||
| F-Label(s) | <--/ | | F-Label(s) | <--/ | |||
+---------------------------------+ | +---------------------------------+ | |||
| Data-Link | | | Data-Link | | |||
+---------------------------------+ | +---------------------------------+ | |||
| Physical | | | Physical | | |||
+---------------------------------+ | +---------------------------------+ | |||
]]></artwork></figure> | ]]></artwork> | |||
</figure> | ||||
<t> | <t> | |||
Both the aggregation label, which is referred to as an A-Label, and the ind ividual flow's S-Label | Both the aggregation label, which is referred to as an A-Label, and the ind ividual flow's S-Label | |||
have their MPLS S bit | have their MPLS S bit | |||
set indicating bottom of stack, and the d-CW allows the PREOF | set indicating the bottom of stack, and the d-CW allows the PREOF | |||
to work. An A-Label is a special case of an S-Label, whose | to work. An A-Label is a special case of an S-Label, whose | |||
properties are known only at the aggregation and deaggregation | properties are known only at the aggregation and deaggregation | |||
end-points. | end points. | |||
</t> | </t> | |||
<t> | <t> | |||
It is a property of the A-Label that what follows is a d-CW | It is a property of the A-Label that what follows is a d-CW | |||
followed by an MPLS label stack. A | followed by an MPLS label stack. A | |||
relay node processing the A-Label would not know the underlying | relay node processing the A-Label would not know the underlying | |||
payload type, and the A-Label would be processed as a normal | payload type, and the A-Label would be processed as a normal | |||
S-Label. This would only be known to a node that was a peer of the | S-Label. This would only be known to a node that was a peer of the | |||
node imposing the S-Label. However there is no real need for it to | node imposing the S-Label. However, there is no real need for it to | |||
know the payload type during aggregation processing. | know the payload type during aggregation processing. | |||
</t> | </t> | |||
<t> | <t> | |||
As in the previous section, nodes supporting this type of | As in the previous section, nodes supporting this type of | |||
aggregation will need to ensure that individual and aggregated | aggregation will need to ensure that individual and aggregated | |||
flows receive the traffic treatment required to ensure the | flows receive the traffic treatment required to ensure the | |||
required DetNet service is preserved. Also, it is the controller | required DetNet service is preserved. Also, it is the Controller | |||
plane's responsibility to ensure that the service required on | Plane's responsibility to ensure that the service required on | |||
the aggregate flow are properly provisioned. | the aggregate flow is properly provisioned. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section title="Service Sub-Layer Considerations"> | <section numbered="true" toc="default"> | |||
<t> | <name>Service Sub-Layer Considerations</name> | |||
The edge and relay node internal procedures related to PREOF are | <t> | |||
The internal procedures for edge and relay nodes related to PREOF are | ||||
implementation specific. The order of a packet elimination or | implementation specific. The order of a packet elimination or | |||
replication is out of scope in this specification. | replication is out of scope for this specification. | |||
</t> | </t> | |||
<t> | <t> | |||
It is important that the DetNet layer is configured such that a | It is important that the DetNet layer is configured such that a | |||
DetNet node never receives its own replicated packets. If it were | DetNet node never receives its own replicated packets. If it were | |||
to receive such packets the replication function would make the | to receive such packets, the replication function would make the | |||
loop more destructive of bandwidth than a conventional unicast | loop more destructive of bandwidth than a conventional unicast | |||
loop. Ultimately the TTL in the S-Label will cause the packet to | loop. Ultimately, the TTL in the S-Label will cause the packet to | |||
die during a transient loop, but given the sensitivity of applications | die during a transient loop, but given the sensitivity of applications | |||
to packet latency the impact on the DetNet application would be | to packet latency, the impact on the DetNet application would be | |||
severe. | severe. | |||
To avoid the problem of a transient forwarding loop, changes to an | To avoid the problem of a transient forwarding loop, changes to an | |||
LSP supporting DetNet MUST be loop-free. | LSP supporting DetNet <bcp14>MUST</bcp14> be loop-free. | |||
</t> | </t> | |||
<section anchor="sec_t_pe" numbered="true" toc="default"> | ||||
<section title="Edge Node Processing" anchor="sec_t_pe"> | <name>Edge Node Processing</name> | |||
<t> | <t> | |||
A DetNet Edge node operates in the DetNet forwarding sub-layer | A DetNet edge node operates in the DetNet forwarding sub-layer | |||
and service sub-layer. An edge node is responsible for matching | and service sub-layer. An edge node is responsible for matching | |||
incoming packets to the service they require and encapsulating | incoming packets to the service they require and encapsulating | |||
them accordingly. An edge node may perform PRF, PEF, and or POF. | them accordingly. An edge node may perform PRF, PEF, and/or POF. | |||
Details on encapsulation can be found in <xref | Details on encapsulation can be found in <xref target="pwSolution" | |||
target="pwSolution"/>; details on PRF can be found in <xref | format="default"/>; details on PRF can be found in <xref | |||
target="prf-requirements"/>; details on PEF can be found in <xref | target="prf-requirements" format="default"/>; details on PEF can be | |||
target="pef-requirements"/>; and details on POF can be found in | found in <xref target="pef-requirements" format="default"/>; and | |||
<xref target="pof-requirements"/>. | details on POF can be found in | |||
</t> | <xref target="pof-requirements" format="default"/>. | |||
</section> | </t> | |||
</section> | ||||
<section title="Relay Node Processing" anchor="sec_s_pe"> | <section anchor="sec_s_pe" numbered="true" toc="default"> | |||
<t> | <name>Relay Node Processing</name> | |||
A DetNet Relay node operates in the DetNet forwarding sub-layer and servi | <t> | |||
ce sub-layer. For | A DetNet relay node operates in the DetNet forwarding sub-layer and servi | |||
DetNet using MPLS forwarding related processing is performed on the F-Lab | ce sub-layer. | |||
el. This | For | |||
DetNet using MPLS, forwarding-related processing is performed on the F-La | ||||
bel. This | ||||
processing is done within an extended forwarder function. Whether an | processing is done within an extended forwarder function. Whether an | |||
incoming DetNet flow receives DetNet specific processing depends | incoming DetNet flow receives DetNet-specific processing depends | |||
on how the forwarding is programmed. Some relay nodes may be DetNet | on how the forwarding is programmed. Some relay nodes may be DetNet | |||
service aware for certain DetNet services, while for other DetNet service s | service aware for certain DetNet services, while, for other DetNet servic es, | |||
these nodes may perform as unmodified LSRs that only understand | these nodes may perform as unmodified LSRs that only understand | |||
how to switch MPLS-TE LSPs, i.e., as a transit node, | how to switch MPLS-TE LSPs, i.e., as a transit node; | |||
see <xref target="FAG"/>. Again, this is entirely up to | see <xref target="FAG" format="default"/>. Again, this is entirely up to | |||
how the forwarding has been programmed. | how the forwarding has been programmed. | |||
</t> | </t> | |||
<t> | <t> | |||
During the elimination and replication process the | During the elimination and replication process, the | |||
sequence number of an incoming DetNet packet MUST be preserved and | sequence number of an incoming DetNet packet <bcp14>MUST</bcp14> be prese | |||
rved and | ||||
carried in the corresponding outgoing DetNet | carried in the corresponding outgoing DetNet | |||
packet. For example, a relay node that performs both PEF and PRF | packet. For example, a relay node that performs both PEF and PRF | |||
first performs PEF on incoming packets to create a compound | first performs PEF on incoming packets to create a compound | |||
flow. It then performs PRF and copies the app-flow data and the | flow. It then performs PRF and copies the App-flow data and the | |||
d-CW into packets for each outgoing DetNet member flow. | d-CW into packets for each outgoing DetNet member flow. | |||
</t> | </t> | |||
<t> | <t> | |||
The internal design of a relay node is out of scope of this | The internal design of a relay node is out of scope for this | |||
document. However the reader's attention is drawn to the need to | document. However, the reader's attention is drawn to the need to | |||
make any PREOF state available to the packet processor(s) dealing | make any PREOF state available to the packet processor(s) dealing | |||
with packets to which the PREOF functions must be applied, and to | with packets to which PREOF must be applied and to | |||
maintain that state is such a way that it is available to the | maintain that state in such a way that it is available to the | |||
packet processor operation on the next packet in the DetNet flow | packet processor operation on the next packet in the DetNet flow | |||
(which may be a duplicate, a late packet, or the next packet in | (which may be a duplicate, a late packet, or the next packet in | |||
sequence). | sequence). | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Forwarding Sub-Layer Considerations</name> | ||||
<section title="Forwarding Sub-Layer Considerations"> | <section anchor="CoS" numbered="true" toc="default"> | |||
<!-- maybe move this to be under section 5? --> | <name>Class of Service</name> | |||
<section title="Class of Service" anchor="CoS"> | <t> | |||
<t> | Class of Service (CoS) and Quality of Service (QoS) are terms that | |||
Class and quality of service, i.e., CoS and QoS, are terms that | are often used interchangeably and confused with each other. | |||
are often used interchangeably and confused with each other. In | In the context of DetNet, CoS is used to refer to mechanisms that provide | |||
the context of DetNet, CoS is used to refer to mechanisms that | traffic-forwarding treatment based on non-flow-specific traffic classification, | |||
provide traffic forwarding treatment based on aggregate group | and QoS is used to refer to mechanisms that provide traffic-forwarding | |||
basis and QoS is used to refer to mechanisms that provide traffic | treatment based on DetNet flow-specific traffic classification. | |||
forwarding treatment based on a specific DetNet flow basis. | Examples of existing network-level CoS mechanisms include | |||
Examples of existing network level CoS mechanisms include | Differentiated Services (Diffserv), which is enabled by the IP header Dif | |||
DiffServ which is enabled by IP header differentiated services | ferentiated Services | |||
code point (DSCP) field <xref target="RFC2474"/> and MPLS label | Code Point (DSCP) field <xref target="RFC2474" format="default"/> and MPL | |||
traffic class field <xref target="RFC5462"/>, and at Layer-2, by | S label | |||
IEEE 802.1p priority code point (PCP). | Traffic Class field <xref target="RFC5462" format="default"/> and at | |||
</t> | Layer 2 by IEEE 802.1p Priority Code Point (PCP). | |||
<t> | </t> | |||
<t> | ||||
CoS for DetNet flows carried in PWs and MPLS is provided using | CoS for DetNet flows carried in PWs and MPLS is provided using | |||
the existing MPLS Differentiated Services (DiffServ) architecture | the existing MPLS Differentiated Services (Diffserv) architecture | |||
<xref target="RFC3270"/>. Both E-LSP and L-LSP MPLS DiffServ | <xref target="RFC3270" format="default"/>. Both E-LSP and L-LSP MPLS Dif | |||
modes MAY be used to support DetNet flows. The Traffic Class | fserv | |||
modes <bcp14>MAY</bcp14> be used to support DetNet flows. The Traffic Cl | ||||
ass | ||||
field (formerly the EXP field) of an MPLS label follows the | field (formerly the EXP field) of an MPLS label follows the | |||
definition of <xref target="RFC5462"/> and <xref | definition of <xref target="RFC5462" format="default"/> and <xref | |||
target="RFC3270"/>. The Uniform, Pipe, and Short Pipe DiffServ | target="RFC3270" format="default"/>. The Uniform, Pipe, and Short Pipe | |||
tunneling and TTL processing models are described in <xref | Diffserv tunneling and TTL processing models are described in <xref | |||
target="RFC3270"/> and <xref target="RFC3443"/> and MAY be used | target="RFC3270" format="default"/> and <xref target="RFC3443" | |||
for MPLS LSPs supporting DetNet flows. MPLS Explicit Congestion Notificat | format="default"/> and <bcp14>MAY</bcp14> be used for MPLS LSPs | |||
ion (ECN) MAY also be used | supporting DetNet flows. MPLS Explicit Congestion Notification (ECN) | |||
as defined in ECN <xref target="RFC5129"/> and updated by <xref | <bcp14>MAY</bcp14> also be used, as defined in ECN <xref | |||
target="RFC5462"/>. | target="RFC5129" format="default"/> and updated by <xref | |||
</t> | target="RFC5462" format="default"/>. | |||
</section> | </t> | |||
</section> | ||||
<section title="Quality of Service" anchor="QoS"> | <section anchor="QoS" numbered="true" toc="default"> | |||
<t> | <name>Quality of Service</name> | |||
In addition to explicit routes, and packet replication and | <t> | |||
elimination, described in <xref target="dn-dt-solution"/> above, | In addition to explicit routes and packet replication and | |||
elimination (described in <xref target="dn-dt-solution" format="default"/ | ||||
> above), | ||||
DetNet provides zero congestion loss and bounded latency and | DetNet provides zero congestion loss and bounded latency and | |||
jitter. As described in <xref | jitter. As described in <xref target="RFC8655" format="default"/>, there | |||
target="RFC8655"/>, there are different | are different | |||
mechanisms that may be used separately or in combination to | mechanisms that may be used separately or in combination to | |||
deliver a zero congestion loss service. This includes Quality of | deliver a zero congestion loss service. This includes | |||
Service (QoS) mechanisms at the MPLS layer, that may be combined | QoS mechanisms at the MPLS layer, which may be combined | |||
with the mechanisms defined by the underlying network layer such | with the mechanisms defined by the underlying network layer, such | |||
as 802.1TSN. | as IEEE 802.1 TSN. | |||
</t> | </t> | |||
<t> | <t> | |||
Quality of Service (QoS) mechanisms for flow specific traffic | QoS mechanisms for flow-specific traffic | |||
treatment typically includes a guarantee/agreement for the | treatment typically include a guarantee/agreement for the | |||
service, and allocation of resources to support the service. | service and allocation of resources to support the service. | |||
Example QoS mechanisms include discrete resource allocation, | Example QoS mechanisms include discrete resource allocation, | |||
admission control, flow identification and isolation, and | admission control, flow identification and isolation, and | |||
sometimes path control, traffic protection, shaping, policing and | sometimes path control, traffic protection, shaping, policing, and | |||
remarking. Example protocols that support QoS control include | remarking. Example protocols that support QoS control include the | |||
<xref target="RFC2205">Resource ReSerVation Protocol | Resource ReSerVation Protocol (RSVP) | |||
(RSVP)</xref> (RSVP) and RSVP-TE <xref target="RFC3209"/> and | <xref target="RFC2205" format="default"/> and RSVP-TE <xref target="RFC32 | |||
<xref target="RFC3473"/>. The existing MPLS mechanisms defined | 09" format="default"/> | |||
to support CoS <xref target="RFC3270"/> can also be used to | <xref target="RFC3473" format="default"/>. The existing MPLS mechanisms | |||
defined | ||||
to support CoS <xref target="RFC3270" format="default"/> can also be used | ||||
to | ||||
reserve resources for specific traffic classes. | reserve resources for specific traffic classes. | |||
</t> | </t> | |||
<t> | <t> | |||
A baseline set of QoS capabilities for DetNet flows carried in PWs | A baseline set of QoS capabilities for DetNet flows carried in PWs | |||
and MPLS can be provided by MPLS with Traffic Engineering (MPLS-TE) | and MPLS can be provided by MPLS-TE | |||
<xref target="RFC3209"/> and <xref target="RFC3473"/>. TE LSPs can | <xref target="RFC3209" format="default"/> <xref target="RFC3473" format=" | |||
default"/>. TE LSPs can | ||||
also support explicit routes (path pinning). Current service | also support explicit routes (path pinning). Current service | |||
definitions for packet TE LSPs can be found in "Specification of | definitions for packet TE LSPs can be found in "Specification of | |||
the Controlled Load Quality of Service", <xref target="RFC2211"/>, | the Controlled-Load Network Element Service" <xref target="RFC2211" forma | |||
"Specification of Guaranteed Quality of Service", <xref | t="default"/>, | |||
target="RFC2212"/>, and "Ethernet Traffic Parameters", <xref | "Specification of Guaranteed Quality of Service" <xref | |||
target="RFC6003"/>. Additional service definitions are expected in | target="RFC2212" format="default"/>, and "Ethernet Traffic Parameters" | |||
<xref target="RFC6003" format="default"/>. Additional service | ||||
definitions are expected in | ||||
future documents to support the full range of DetNet services. | future documents to support the full range of DetNet services. | |||
In all cases, the existing label-based marking mechanisms defined | In all cases, the existing label-based marking mechanisms defined | |||
for TE-LSPs and even E-LSPs are use to support the identification | for TE LSPs and even E-LSPs are used to support the identification | |||
of flows requiring DetNet QoS. | of flows requiring DetNet QoS. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | ||||
</section> | </section> | |||
</section> | ||||
<!-- ===================================================================== --> | ||||
<section anchor="mc_summary" | <section anchor="mc_summary" numbered="true" toc="default"> | |||
title="Management and Control Information Summary"> | <name>Management and Control Information Summary</name> | |||
<t> | <t> | |||
The specific information needed for the processing of each DetNet | The specific information needed for the processing of each DetNet | |||
service depends on the DetNet node type and the functions being | service depends on the DetNet node type and the functions being | |||
provided on the node. This section summarizes based on the DetNet | provided on the node. This section summarizes this information based on the DetNet | |||
sub-layer and if the DetNet traffic is being sent or received. All | sub-layer and if the DetNet traffic is being sent or received. All | |||
DetNet node types are DetNet forwarding sub-layer aware, while all | DetNet node types are DetNet forwarding sub-layer aware, while all | |||
but transit nodes are service sub-layer aware. This is shown in <xref | but transit nodes are service sub-layer aware. This is shown in <xref | |||
target="fig_dn_mpls_detnet"/>. | target="fig_dn_mpls_detnet" format="default"/>. | |||
</t> | </t> | |||
<!-- LB: this seems duplicative | ||||
<t> | ||||
For DetNet management there are a number of approaches that could be use | ||||
d to provide | ||||
explicit routes and resource allocation in the MPLS forwarding sub-layer | ||||
: | ||||
<list style="symbols"> | ||||
<t> | ||||
The path could be explicitly set up by a controller which | ||||
calculates the path and | ||||
explicitly configures each node along that path with the | ||||
appropriate forwarding and resource allocation information. | ||||
</t> | ||||
<t> | ||||
The path could be set up using RSVP-TE signaling. | ||||
</t> | ||||
<t> | ||||
The path could be implemented using | ||||
MPLS-based segment routing when extended to support resource | ||||
allocation. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
--> | ||||
<t> | <t> | |||
Much like other MPLS labels, there are a number of alternatives | Much like other MPLS labels, there are a number of alternatives | |||
available for DetNet S-Label and F-Label advertisement to an | available for DetNet S-Label and F-Label advertisement to an | |||
upstream peer node. These include distributed signaling | upstream peer node. These include distributed signaling | |||
protocols such as RSVP-TE, centralized label distribution via a | protocols (such as RSVP-TE), centralized label distribution via a | |||
controller that manages both the sender and the receiver using | controller that manages both the sender and the receiver using the | |||
NETCONF/YANG, BGP, PCEP, etc., and hybrid combinations of the | Network Configuration Protocol (NETCONF) and YANG, BGP, the Path Computa | |||
two. The details of the controller plane solution required for | tion | |||
Element Communication Protocol (PCEP), etc., and hybrid combinations of t | ||||
he | ||||
two. The details of the Controller Plane solution required for | ||||
the label distribution and the management of the label number | the label distribution and the management of the label number | |||
space are out of scope of this document. | space are out of scope for this document. | |||
There are particular DetNet considerations and requirements that | Particular DetNet considerations and requirements | |||
are discussed in <xref target="I-D.ietf-detnet-data-plane-framework"/>. | are discussed in <xref target="RFC8938" format="default"/>. | |||
Conformance language is not used in the summary since it applies to | Conformance language is not used in the summary, since it applies to | |||
future mechanisms such as those that may be provided in signaling | future mechanisms, such as those that may be provided in signaling | |||
and YANG models, e.g., <xref target="I-D.ietf-detnet-yang"/>. | and YANG models, e.g., <xref target="I-D.ietf-detnet-yang" format="default"/ | |||
</t> | >. | |||
<section anchor="mc_summary_ssl" | ||||
title="Service Sub-Layer Information Summary"> | ||||
<t> | ||||
The following summarizes the information that is needed on service | ||||
sub-layer aware nodes that transmit DetNet MPLS traffic, on a per service ba | ||||
sis: | ||||
<list style="symbols"> | ||||
<t> | ||||
App-Flow identification information, e.g., IP information as | ||||
defined in <xref target="I-D.ietf-detnet-ip-over-mpls"/>. Note, | ||||
this information is not needed on DetNet relay nodes. | ||||
</t> | ||||
<t> | ||||
The sequence number length to be used for the service. Valid | ||||
values include 0, 16 and 28 bits. 0 bits cannot be used when | ||||
PEF or POF is configured for the service. | ||||
</t> | ||||
<t> | ||||
If PRF is to be provided for the service. | ||||
</t> | ||||
<t> | ||||
The outgoing S-Label for each of the service's outgoing DetNet (member) | ||||
flows. | ||||
</t> | ||||
<t> | ||||
The forwarding sub-layer information associated with the output | ||||
of the service sub-layer. Note that when the PRF function is | ||||
provisioned, this information is per DetNet member flow. | ||||
Logically the forwarding sub-layer information is a pointer to | ||||
further details of | ||||
transmission of Detnet flows at the forwarding sub-layer. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
The following summarizes the information that is needed on service | ||||
sub-layer aware nodes that receive DetNet MPLS traffic, on a per | ||||
service basis: | ||||
<list style="symbols"> | ||||
<t> | ||||
The forwarding sub-layer information associated with the input | ||||
of the service sub-layer. Note that when the PEF function is | ||||
provisioned, this information is per DetNet member flow. | ||||
Logically the forwarding sub-layer information is a pointer to | ||||
further details of | ||||
the reception of Detnet flows at the forwarding sub-layer or | ||||
A-Label. | ||||
</t> | ||||
<t> | ||||
The incoming S-Label for the service. | ||||
</t> | ||||
<t> | ||||
If PEF or POF is to be provided for the service. | ||||
</t> | ||||
<t> | ||||
The sequence number length to be used for the service. Valid | ||||
values included 0, 16 and 28 bits. 0 bits cannot be used when | ||||
PEF or POF are configured for the service. | ||||
</t> | ||||
<t> | ||||
App-Flow identification information, e.g., IP information as | ||||
defined in <xref target="I-D.ietf-detnet-ip-over-mpls"/>. Note, | ||||
this information is not needed on DetNet relay nodes. | ||||
</t> | </t> | |||
</list> | <section anchor="mc_summary_ssl" numbered="true" toc="default"> | |||
</t> | <name>Service Sub-Layer Information Summary</name> | |||
<section anchor="mc_summary_ssl_agg" | <t> | |||
title="Service Aggregation Information Summary"> | The following summarizes the information that is needed (on a per-service | |||
<t> | basis) on nodes that are service sub-layer aware and transmit DetNet | |||
Nodes performing aggregation using A-Labels, per Section <xref | MPLS traffic: | |||
target="aggregating-detnet-flows-as-a-new-detnet-flow"/>, require | </t> | |||
<ul spacing="normal"> | ||||
<li>App-flow identification information, e.g., IP information as | ||||
defined in <xref target="I-D.ietf-detnet-ip-over-mpls" | ||||
format="default"/>. Note that this information is not needed on DetNet | ||||
relay nodes.</li> | ||||
<li>The sequence number length to be used for the service. Valid | ||||
values include 0, 16, and 28 bits. 0 bits cannot be used when PEF or | ||||
POF is configured for the service.</li> | ||||
<li>If PRF is to be provided for the service.</li> | ||||
<li>The outgoing S-Label for each of the service's outgoing DetNet | ||||
(member) flows.</li> | ||||
<li>The forwarding sub-layer information associated with the output | ||||
of the service sub-layer. Note that when PRF is | ||||
provisioned, this information is per DetNet member flow. Logically, | ||||
the forwarding sub-layer information is a pointer to further details | ||||
of transmission of DetNet flows at the forwarding sub-layer.</li> | ||||
</ul> | ||||
<t> | ||||
The following summarizes the information that is needed (on a per-service ba | ||||
sis) on nodes that are service | ||||
sub-layer aware and receive DetNet MPLS traffic: | ||||
</t> | ||||
<ul spacing="normal"> | ||||
<li>The forwarding sub-layer information associated with the input | ||||
of the service sub-layer. Note that when PEF is | ||||
provisioned, this information is per DetNet member flow. Logically, | ||||
the forwarding sub-layer information is a pointer to further details | ||||
of the reception of DetNet flows at the forwarding sub-layer or | ||||
A-Label.</li> | ||||
<li>The incoming S-Label for the service.</li> | ||||
<li>If PEF or POF is to be provided for the service.</li> | ||||
<li>The sequence number length to be used for the service. Valid | ||||
values included 0, 16, and 28 bits. 0 bits cannot be used when PEF or | ||||
POF are configured for the service.</li> | ||||
<li>App-flow identification information, e.g., IP information as | ||||
defined in <xref target="I-D.ietf-detnet-ip-over-mpls" | ||||
format="default"/>. Note that this information is not needed on DetNet | ||||
relay nodes.</li> | ||||
</ul> | ||||
<section anchor="mc_summary_ssl_agg" numbered="true" toc="default"> | ||||
<name>Service Aggregation Information Summary</name> | ||||
<t> | ||||
Nodes performing aggregation using A-Labels, per <xref target="aggregating | ||||
-detnet-flows-as-a-new-detnet-flow" format="default"/>, require | ||||
the additional information summarized in this section. | the additional information summarized in this section. | |||
</t> | </t> | |||
<t> | <t> | |||
The following summarizes the additional information that is needed on | The following summarizes the additional information that is needed on | |||
a node that sends aggregated flows using A-Labels: | a node that sends aggregated flows using A-Labels: | |||
<list style="symbols"> | </t> | |||
<t> | <ul spacing="normal"> | |||
The S-Labels or F-Labels that are to be carried over each | <li>The S-Labels or F-Labels that are to be carried over each | |||
aggregated service. | aggregated service.</li> | |||
</t> | <li>The A-Label associated with each aggregated service.</li> | |||
<t>The A-Label associated with each aggregated service.</t> | <li>The other S-Label information summarized above.</li> | |||
<t>The other S-Label information summarized above.</t> | </ul> | |||
</list> | <t> | |||
</t> | ||||
<t> | ||||
On the receiving node, the A-Label provides the forwarding context | On the receiving node, the A-Label provides the forwarding context | |||
of an incoming interface or an F-Label and is used in subsequent | of an incoming interface or an F-Label and is used in subsequent | |||
service or forwarding sub-layer receive processing, as | service or forwarding sub-layer receive processing, as | |||
appropriated. The related additional configuration that may be | appropriate. The related additional configuration that may be | |||
provided is discussed elsewhere in this section. | provided is discussed elsewhere in this section. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="mc_summary_fsl" | <section anchor="mc_summary_fsl" numbered="true" toc="default"> | |||
title="Forwarding Sub-Layer Information Summary"> | <name>Forwarding Sub-Layer Information Summary</name> | |||
<t> | ||||
The following summarizes the information that is needed on | ||||
forwarding sub-layer aware nodes that send DetNet MPLS traffic, on | ||||
a per forwarding sub-layer flow basis: | ||||
<list style="symbols"> | ||||
<t> | <t> | |||
The outgoing F-Label stack to be pushed. The stack may include | The following summarizes the information that is needed (on a per-forwardi | |||
H-LSP labels. | ng-sub-layer-flow basis) on nodes that are | |||
forwarding sub-layer aware and send DetNet MPLS traffic: | ||||
</t> | </t> | |||
<t> | <ul spacing="normal"> | |||
<li> | ||||
The outgoing F-Label stack to be pushed. The stack may include | ||||
H-LSP labels.</li> | ||||
<li> | ||||
The traffic parameters associated with a specific label in | The traffic parameters associated with a specific label in | |||
the stack. Note that there may be multiple sets of traffic | the stack. Note that there may be multiple sets of traffic | |||
parameters associated with specific labels in the stack, e.g., | parameters associated with specific labels in the stack, e.g., | |||
when H-LSPs are used. | when H-LSPs are used.</li> | |||
</t> | <li> | |||
<t> | Outgoing interface and, for unicast traffic, the next-hop | |||
Outgoing interface and, for unicast traffic, the next hop | information.</li> | |||
information. | <li> | |||
</t> | Sub-network-specific parameters on a technology-specific | |||
basis. For example, see <xref target="I-D.ietf-detnet-mpls-over-tsn" | ||||
format="default"/>.</li> | ||||
</ul> | ||||
<t> | <t> | |||
Sub-network specific parameters on a technology specific | The following summarizes the information that is needed (on a | |||
basis. For example, see <xref | per-forwarding-sub-layer-flow basis) on nodes that are forwarding | |||
target="I-D.ietf-detnet-mpls-over-tsn"/>. | sub-layer aware and receive DetNet MPLS traffic: | |||
</t> | </t> | |||
</list> | <ul spacing="normal"> | |||
</t> | <li> | |||
<t> | ||||
The following summarizes the information that is needed on | ||||
forwarding sub-layer aware nodes that receive DetNet MPLS traffic, on | ||||
a per forwarding sub-layer flow basis: | ||||
<list style="symbols"> | ||||
<t> | ||||
The incoming interface. For some implementations and | The incoming interface. For some implementations and | |||
deployment scenarios, this information may not be needed. | deployment scenarios, this information may not be needed.</li> | |||
</t> | <li> | |||
<t> | ||||
The incoming F-Label stack to be popped. The stack may include | The incoming F-Label stack to be popped. The stack may include | |||
H-LSP labels. | H-LSP labels.</li> | |||
</t> | <li> | |||
<t> | ||||
How the incoming forwarding sub-layer flow is to be handled, | How the incoming forwarding sub-layer flow is to be handled, | |||
i.e., forwarded as a transit node, or provided to the service | i.e., forwarded as a transit node or provided to the service | |||
sub-layer. | sub-layer.</li> | |||
</t> | </ul> | |||
</list> | <t> | |||
</t> | It is the responsibility of the DetNet Controller Plane to | |||
<t> | ||||
It is the responsibility of the DetNet controller plane to | ||||
properly provision both flow identification information and | properly provision both flow identification information and | |||
the flow-specific resources needed to provided the traffic | the flow-specific resources needed to provide the traffic | |||
treatment needed to meet each flow's service requirements. | treatment needed to meet each flow's service requirements. | |||
This applies for aggregated and individual flows. | This applies for aggregated and individual flows. | |||
</t> | </t> | |||
</section> | ||||
</section> | </section> | |||
</section> | ||||
<!-- ===================================================================== --> | ||||
<section title="Security Considerations"> | <section numbered="true" toc="default"> | |||
<t> | <name>Security Considerations</name> | |||
<t> | ||||
Detailed security considerations for DetNet are cataloged in | Detailed security considerations for DetNet are cataloged in | |||
<xref target="I-D.ietf-detnet-security"/>, and more general security consider | <xref target="I-D.ietf-detnet-security" format="default"/>, and more general | |||
ations | security considerations | |||
are described in <xref target="RFC8655"/>. This section | are described in <xref target="RFC8655" format="default"/>. This section | |||
considers exclusively security considerations which are specific to the DetNe | exclusively considers security considerations that are specific to the DetNet | |||
t | ||||
MPLS data plane. The considerations raised related to MPLS networks | MPLS data plane. The considerations raised related to MPLS networks | |||
in general in <xref target="RFC5920"/> are equally applicable to the | in general in <xref target="RFC5920" format="default"/> are equally applicabl e to | |||
the DetNet MPLS data plane. | the DetNet MPLS data plane. | |||
</t> | </t> | |||
<t> | <t> | |||
Security aspects which are unique to DetNet are those whose aim is to | Security aspects that are unique to DetNet are those whose aim is to | |||
protect the support of specific quality of service aspects of DetNet, which a | protect the support of specific QoS aspects of DetNet, which are | |||
re | ||||
primarily to deliver data flows with extremely low packet loss rates | primarily to deliver data flows with extremely low packet loss rates | |||
and bounded end-to-end delivery latency. | and bounded end-to-end delivery latency. | |||
Achieving such loss rates and bounded latency may not be possible | Achieving such loss rates and bounded latency may not be possible | |||
in the face of a highly capable adversary, such as the one | in the face of a highly capable adversary, such as the one | |||
envisioned by the Internet Threat Model of BCP 72 that can | envisioned by the Internet Threat Model of BCP 72 <xref target="RFC3552"/ > that can | |||
arbitrarily drop or delay any or all traffic. In order to | arbitrarily drop or delay any or all traffic. In order to | |||
present meaningful security considerations, we consider a | present meaningful security considerations, we consider a | |||
somewhat weaker attacker who does not control the physical links | somewhat weaker attacker who does not control the physical links | |||
of the DetNet domain, but may have the ability to control a | of the DetNet domain but may have the ability to control a | |||
network node within the boundary of the DetNet domain. | network node within the boundary of the DetNet domain. | |||
</t> | </t> | |||
<t> | <t> | |||
An additional consideration for the DetNet data plane is to maintain | An additional consideration for the DetNet data plane is to maintain | |||
integrity of data and delivery of the associated DetNet service traversing | integrity of data and delivery of the associated DetNet service traversing | |||
the DetNet network. | the DetNet network. | |||
Application flows can be protected through whatever means are | Application flows can be protected through whatever means are | |||
provided by the underlying technology. For example, encryption may be | provided by the underlying technology. For example, encryption may be | |||
used, such as that provided by IPsec <xref target="RFC4301"/> for IP | used, such as that provided by IPsec <xref target="RFC4301" format="default" | |||
flows and/or by an underlying sub-net using MACSec | /> for IP | |||
<xref target="IEEE802.1AE-2018"/> for IP over Ethernet (Layer-2) flows. | flows and/or by an underlying sub-network using MACsec | |||
<xref target="IEEE802.1AE-2018" format="default"/> for IP over Ethernet | ||||
(Layer 2) flows. | ||||
MPLS doesn't provide any native security services to account for | MPLS doesn't provide any native security services to account for | |||
confidentiality and integrity. | confidentiality and integrity. | |||
</t> | </t> | |||
<t> | <t> | |||
From a data plane perspective this document does not add or modify any | From a data plane perspective, this document does not add or modify any | |||
application header information. | application header information. | |||
</t> | </t> | |||
<t> | <t> | |||
At the management and control level DetNet flows are identified on a | At the management and control level, DetNet flows are identified on a | |||
per-flow basis, which may provide controller plane | per-flow basis, which may provide Controller Plane | |||
attackers with additional information about the data flows (when | attackers with additional information about the data flows (when | |||
compared to controller planes that do not include per-flow identification). | compared to Controller Planes that do not include per-flow identification). | |||
This is an inherent property of DetNet which has security | This is an inherent property of DetNet that has security | |||
implications that should be considered when determining if DetNet is | implications that should be considered when determining if DetNet is | |||
a suitable technology for any given use case. | a suitable technology for any given use case. | |||
</t> | </t> | |||
<t> | <t> | |||
To provide uninterrupted availability of the DetNet | To provide uninterrupted availability of the DetNet | |||
service, provisions can be made against DOS attacks and delay | service, provisions can be made against DoS attacks and delay | |||
attacks. To protect against DOS attacks, excess traffic due to | attacks. To protect against DoS attacks, excess traffic due to | |||
malicious or malfunctioning devices is prevented or mitigated | malicious or malfunctioning devices is prevented or mitigated | |||
through the use of existing mechanisms, for example by policing and | through the use of existing mechanisms, for example, by policing and | |||
shaping incoming traffic. To prevent DetNet packets | shaping incoming traffic. To prevent DetNet packets from | |||
having their delay manipulated by an external entity, precautions need | having their delay manipulated by an external entity, precautions need | |||
to be taken to ensure that all devices on an LSP are those intended to | to be taken to ensure that all devices on an LSP are those intended to | |||
be there by the network operator and that they are well behaved. In | be there by the network operator and that they are well behaved. In | |||
addition to physical security, technical methods such as authentication | addition to physical security, technical methods, such as authentication | |||
and authorization of network equipment and the instrumentation and | and authorization of network equipment and the instrumentation and | |||
monitoring of the LSP packet delay may be used. If a delay attack is | monitoring of the LSP packet delay, may be used. If a delay attack is | |||
suspected, traffic may be moved to an alternate path, for example | suspected, traffic may be moved to an alternate path, for example, | |||
through changing the LSP or management of the PREOF configuration. | through changing the LSP or management of the PREOF configuration. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="iana" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t>This document has no IANA actions.</t> | ||||
</section> | ||||
<section anchor="iana" title="IANA Considerations"> | </middle> | |||
<t> | <back> | |||
This document makes no IANA requests. | ||||
</t> | ||||
</section> | ||||
<section anchor="acks" title="Acknowledgements"> | <displayreference target="I-D.ietf-detnet-ip-over-mpls" to="DetNet-IP-over-MPLS" | |||
<t> | /> | |||
The authors wish to thank Pat Thaler, Norman Finn, Loa Anderson, | <displayreference target="I-D.ietf-detnet-mpls-over-tsn" to="DetNet-MPLS-over-TS | |||
David Black, | N"/> | |||
Rodney Cummings, Ethan Grossman, Tal Mizrahi, David Mozes, Craig | <displayreference target="I-D.ietf-detnet-security" to="DetNet-Security"/> | |||
Gunther, | <displayreference target="I-D.ietf-detnet-yang" to="DetNet-YANG"/> | |||
George Swallow, Yuanlong Jiang, Jeong-dong Ryoo and Carlos J. Be | <displayreference target="I-D.ietf-detnet-mpls-oam" to="DetNet-MPLS-OAM"/> | |||
rnardos for their | ||||
various contributions to this work. | ||||
</t> | ||||
</section> | ||||
<section anchor="Contributors" title="Contributors"> | <references> | |||
<t> | <name>References</name> | |||
RFC7322 limits the number of authors listed on the front page of a | <references> | |||
draft to a maximum of 5. The editor wishes to thank and acknowledge | <name>Normative References</name> | |||
the following author for contributing text to this draft. | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</t> | FC.2119.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2211.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2212.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3031.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3032.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3209.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3270.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3443.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3473.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4206.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5129.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5085.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5462.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5586.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4385.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6790.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8655.xml"/> | ||||
<figure> <artwork><![CDATA[ | <xi:include | |||
Don Fedyk | href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8938.xml"/> | |||
LabN Consulting, L.L.C. | ||||
Email: dfedyk@labn.net | ||||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
</middle> | </references> | |||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2205.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2474.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3272.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3552.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3985.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4448.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4875.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4301.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5440.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5920.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5921.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6073.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6003.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8306.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8660.xml"/> | ||||
<xi:include | ||||
href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8939.xml"/> | ||||
<back> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.draft-i | |||
<references title="Normative References"> | etf-detnet-mpls-oam.xml"/> | |||
<?rfc include="reference.RFC.2119"?> | ||||
<?rfc include="reference.RFC.2211"?> | ||||
<?rfc include="reference.RFC.2212"?> | ||||
<?rfc include="reference.RFC.3031"?> | ||||
<?rfc include="reference.RFC.3032"?> | ||||
<?rfc include="reference.RFC.3209"?> | ||||
<?rfc include="reference.RFC.3270"?> | ||||
<?rfc include="reference.RFC.3443"?> | ||||
<?rfc include="reference.RFC.3473"?> | ||||
<?rfc include="reference.RFC.4206"?> | ||||
<?rfc include="reference.RFC.5129"?> | ||||
<?rfc include="reference.RFC.5085"?> | ||||
<?rfc include="reference.RFC.5462"?> | ||||
<?rfc include="reference.RFC.5586"?> | ||||
<?rfc include="reference.RFC.4385"?> | ||||
<?rfc include="reference.RFC.6790"?> | ||||
<?rfc include="reference.RFC.8174"?> | ||||
<?rfc include="reference.RFC.8655"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-data-plane-framework"?> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include="reference.RFC.2205"?> | ||||
<?rfc include="reference.RFC.2474"?> | ||||
<?rfc include="reference.RFC.3272"?> | ||||
<?rfc include="reference.RFC.3985"?> | ||||
<?rfc include="reference.RFC.4448"?> | ||||
<?rfc include="reference.RFC.4875"?> | ||||
<?rfc include="reference.RFC.4301"?> | ||||
<?rfc include="reference.RFC.5440"?> | ||||
<?rfc include="reference.RFC.5920"?> | ||||
<?rfc include="reference.RFC.5921"?> | ||||
<?rfc include="reference.RFC.6073"?> | ||||
<?rfc include="reference.RFC.6003"?> | ||||
<?rfc include="reference.RFC.8306"?> | ||||
<?rfc include="reference.RFC.8660"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-ip"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-ip-over-mpls"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-mpls-over-tsn"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-security"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-yang"?> | ||||
<reference anchor="IEEE802.1AE-2018" | ||||
target="https://ieeexplore.ieee.org/document/8585421"> | ||||
<front> | ||||
<title>IEEE Std 802.1AE-2018 MAC Security (MACsec)</title> | ||||
<author> | ||||
<organization>IEEE Standards Association</organization> | ||||
</author> | ||||
<date year="2018" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="IEEE802.1CB-2017" | ||||
target="https://ieeexplore.ieee.org/document/8091139"> | ||||
<front> | ||||
<title>IEEE Std 802.1CB-2017 Frame Replication and Elimination for | ||||
Reliability</title> | ||||
<author> | ||||
<organization>IEEE Standards Association</organization> | ||||
</author> | ||||
<date year="2017" /> | ||||
</front> | ||||
</reference> | ||||
</references> | <reference anchor='I-D.ietf-detnet-ip-over-mpls'> | |||
<front> | ||||
<title>DetNet Data Plane: IP over MPLS</title> | ||||
<author initials='B' surname='Varga' fullname='Balazs Varga' role='editor'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='L' surname='Berger' fullname='Lou Berger'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='D' surname='Fedyk' fullname='Don Fedyk'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='S' surname='Bryant' fullname='Stewart Bryant'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='J' surname='Korhonen' fullname='Jouni Korhonen'> | ||||
<organization /> | ||||
</author> | ||||
<date month='October' day='11' year='2020' /> | ||||
</front> | ||||
<seriesInfo name='Internet-Draft' value='draft-ietf-detnet-ip-over-mpls-09' /> | ||||
<format type='TXT' | ||||
target='http://www.ietf.org/internet-drafts/draft-ietf-detnet-ip-over-mpl | ||||
s-09.txt' /> | ||||
</reference> | ||||
</back> | <reference anchor='I-D.ietf-detnet-mpls-over-tsn'> | |||
</rfc> | <front> | |||
<title>DetNet Data Plane: MPLS over IEEE 802.1 Time Sensitive Networking (TSN)</ | ||||
title> | ||||
<author initials='B' surname='Varga' fullname='Balazs Varga' role='editor'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='J' surname='Farkas' fullname='Janos Farkas'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='A' surname='Malis' fullname='Andrew Malis'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='S' surname='Bryant' fullname='Stewart Bryant'> | ||||
<organization /> | ||||
</author> | ||||
<date month='December' day="13" year='2020' /> | ||||
</front> | ||||
<seriesInfo name='Internet-Draft' value='draft-ietf-detnet-mpls-over-tsn-05' /> | ||||
<format type='TXT' | ||||
target='http://www.ietf.org/internet-drafts/draft-ietf-detnet-mpls-over- | ||||
tsn-05.txt' /> | ||||
</reference> | ||||
<reference anchor='I-D.ietf-detnet-security'> | ||||
<front> | ||||
<title>Deterministic Networking (DetNet) Security Considerations</title> | ||||
<author initials='E' surname='Grossman' fullname='Ethan Grossman' role='editor'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='A' surname='Hacker' fullname='Andrew Hacker'> | ||||
<organization /> | ||||
</author> | ||||
<date month='December' day="11" year='2020' /> | ||||
</front> | ||||
<seriesInfo name='Internet-Draft' value='draft-ietf-detnet-security-13' /> | ||||
<format type='TXT' | ||||
target='http://www.ietf.org/internet-drafts/draft-ietf-detnet-security-1 | ||||
3.txt' /> | ||||
</reference> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | ||||
.ietf-detnet-yang.xml"/> | ||||
<reference anchor="IEEE802.1AE-2018" target="https://ieeexplore.ieee.org | ||||
/document/8585421"> | ||||
<front> | ||||
<title>IEEE Standard for Local and metropolitan area | ||||
networks-Media Access Control (MAC) Security</title> | ||||
<author> | ||||
<organization>IEEE</organization> | ||||
</author> | ||||
<date month="December" year="2018"/> | ||||
</front> | ||||
<seriesInfo name="IEEE" value="802.1AE-2018"/> | ||||
<seriesInfo name="DOI" value="10.1109/IEEESTD.2018.8585421"/> | ||||
</reference> | ||||
<reference anchor="IEEE802.1CB-2017" target="https://ieeexplore.ieee.org | ||||
/document/8091139"> | ||||
<front> | ||||
<title>IEEE Standard for Local and metropolitan area networks-- | ||||
Frame Replication and Elimination for Reliability</title> | ||||
<author> | ||||
<organization>IEEE</organization> | ||||
</author> | ||||
<date month="October" year="2017"/> | ||||
</front> | ||||
<seriesInfo name="IEEE" value="802.1CB-2017"/> | ||||
<seriesInfo name="DOI" value="10.1109/IEEESTD.2017.8091139"/> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="acks" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t> | ||||
The authors wish to thank <contact fullname="Pat Thaler"/>, | ||||
<contact fullname="Norman Finn"/>, <contact fullname="Loa | ||||
Anderson"/>, <contact fullname="David Black"/>, | ||||
<contact fullname="Rodney Cummings"/>, <contact | ||||
fullname="Ethan Grossman"/>, <contact fullname="Tal | ||||
Mizrahi"/>, <contact fullname="David Mozes"/>, <contact | ||||
fullname="Craig Gunther"/>, | ||||
<contact fullname="George Swallow"/>, <contact | ||||
fullname="Yuanlong Jiang"/>, <contact fullname="Jeong-dong | ||||
Ryoo"/>, and <contact fullname="Carlos J. Bernardos"/> for their | ||||
various contributions to this work. | ||||
</t> | ||||
</section> | ||||
<section anchor="Contributors" numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<t> | ||||
The editor of this document wishes to thank and acknowledge the | ||||
following person who contributed substantially to the content of this | ||||
document and should be considered a coauthor: | ||||
</t> | ||||
<contact fullname="Don Fedyk"> | ||||
<organization>LabN Consulting, L.L.C.</organization> | ||||
<address> | ||||
<postal/> | ||||
<email>dfedyk@labn.net</email> | ||||
</address> | ||||
</contact> | ||||
</section> | ||||
</back> | ||||
</rfc> | ||||
End of changes. 233 change blocks. | ||||
1133 lines changed or deleted | 1136 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |