rfc8938xml2.original.xml | rfc8938.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"> | |||
]> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" | ||||
docName="draft-ietf-detnet-data-plane-framework-06" number="8938" | ||||
ipr="trust200902" submissionType="IETF" consensus="true" obsoletes="" | ||||
updates="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" | ||||
version="3"> | ||||
<!-- xml2rfc v2v3 conversion 2.46.0 --> | ||||
<?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="info" | ||||
docName="draft-ietf-detnet-data-plane-framework-06" | ||||
ipr="trust200902" | ||||
submissionType="IETF"> | ||||
<front> | <front> | |||
<title abbrev="DetNet Data Plane Framework"> | <title abbrev="DetNet Data Plane Framework"> | |||
DetNet Data Plane Framework</title> | Deterministic Networking (DetNet) Data Plane Framework</title> | |||
<author role="editor" fullname="Balázs Varga" initials="B." surname=" | <seriesInfo name="RFC" value="8938"/> | |||
Varga"> | <author role="editor" fullname="Balázs Varga" initials="B." surname="Varga"> | |||
<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>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 46 ¶ | skipping to change at line 41 ¶ | |||
<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> | |||
<date month="November" year="2020"/> | ||||
<!-- <author fullname="Jouni Korhonen" initials="J." surname="Korhonen"> | ||||
//organization abbrev="Nordic">Nordic Semiconductor</organization | ||||
<address> | ||||
<email>jouni.nospam@gmail.com</email> | ||||
</address> | ||||
</author> --> | ||||
<date /> | ||||
<workgroup>DetNet</workgroup> | ||||
<abstract> | <abstract> | |||
<t> | <t> | |||
This document provides an overall framework for the DetNet | This document provides an overall framework for the Deterministic | |||
Networking (DetNet) | ||||
data plane. It covers concepts and considerations that | data plane. It covers concepts and considerations that | |||
are generally common to any Deterministic Networking data plane | are generally common to any DetNet data plane | |||
specification. It describes related controller plane | specification. It describes related Controller Plane | |||
considerations as well. | considerations as well. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<!-- | ||||
*********************************************** | ||||
IESG review comment resolutions in this version: | ||||
DONE | ||||
- Sabrina Tanamal, IANA, (03-12), OK | ||||
- Christer Holmberg, (03-15), Ready with Nits | ||||
- Yoshifumi Nishida, (04-07), Ready with Nits | ||||
- Murray Kucherawy (04-12), Editorial nits mostly | ||||
- Barry Leiba, (04-15), Editorial comments | ||||
To be discussed: | ||||
- Chris Lonvick, (03-13), Ready with Issues (Ready, as soon as | ||||
I-D.ietf-detnet-security is reviewed and becomes an RFC.) | ||||
*********************************************** | ||||
<middle> | <middle> | |||
<section title="Introduction" anchor="sec_intro"> | <section anchor="sec_intro" numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<t> | <t> | |||
DetNet (Deterministic Networking) provides a capability to carry | DetNet (Deterministic Networking) provides the ability to carry | |||
specified unicast or multicast data flows for real-time applications | specified unicast or multicast data flows for real-time applications | |||
with extremely low packet loss rates and assured maximum end-to-end | with extremely low packet loss rates and assured maximum end-to-end | |||
delivery latency. A description of the general background and concepts | delivery latency. A description of the general background and concepts | |||
of DetNet can be found in <xref target="RFC8655"/>. | of DetNet can be found in <xref target="RFC8655" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
This document describes the concepts needed by any DetNet data plane | This document describes the concepts needed by any DetNet data plane | |||
specification (i.e., the DetNet-specific use of packet header fields) | specification (i.e., the DetNet-specific use of packet header fields) | |||
and provides considerations for any corresponding | and provides considerations for any corresponding | |||
implementation. It covers the building blocks that provide the DetNet | implementation. It covers the building blocks that provide the DetNet | |||
service, the DetNet service sub-layer and the DetNet forwarding | service, the DetNet service sub&nbhy;layer, and the DetNet forwarding | |||
sub-layer functions as described in the DetNet Architecture. | sub&nbhy;layer functions as described in the DetNet architecture | |||
<xref target="RFC8655"/>. | ||||
</t> | </t> | |||
<t> | <t> | |||
The DetNet Architecture models the DetNet related data plane functions | The DetNet architecture models the DetNet-related data plane functions | |||
as being decomposed into two sub-layers: a service sub-layer and a forwa | as being decomposed into two sub&nbhy;layers: a service sub&nbhy;layer a | |||
rding | nd a forwarding | |||
sub-layer. The service sub-layer is used to provide DetNet service | sub&nbhy;layer. The service sub&nbhy;layer is used to provide DetNet se | |||
protection and reordering. The forwarding sub-layer leverages Traffic | rvice | |||
Engineering mechanisms and provides congestion protection (low loss, | protection and reordering. The forwarding sub&nbhy;layer leverages traff | |||
ic | ||||
engineering mechanisms and provides congestion protection (low loss, | ||||
assured latency, and limited out-of-order delivery). A particular | assured latency, and limited out-of-order delivery). A particular | |||
forwarding sub-layer may have capabilities that are not available on | forwarding sub&nbhy;layer may have capabilities that are not available o | |||
other forwarding-sub layers. DetNet makes use of the existing | n | |||
forwarding sub-layers with their respective capabilities and does not | other forwarding sub&nbhy;layers. DetNet makes use of the existing | |||
require 1:1 equivalence between different forwarding sub-layer | forwarding sub&nbhy;layers with their respective capabilities and does n | |||
ot | ||||
require 1:1 equivalence between different forwarding sub&nbhy;layer | ||||
capabilities. | capabilities. | |||
</t> | </t> | |||
<t> | <t> | |||
As part of the service sub-layer functions, this document describes | As part of the service sub&nbhy;layer functions, this document describes | |||
typical DetNet node data plane operation. It describes the functionality | typical DetNet node data plane operation. It describes the functionality | |||
and operation of the Packet Replication (PRF), Packet Elimination | and operation of the Packet Replication Function (PRF), the Packet | |||
(PEF), and the Packet Ordering (POF) functions within the service | Elimination Function (PEF), and the Packet Ordering Function (POF) withi | |||
sub-layer. Furthermore, it describes the forwarding sub-layer. | n the service | |||
sub&nbhy;layer. Furthermore, it describes the forwarding sub&nbhy;layer. | ||||
</t> | </t> | |||
<t> | <t> | |||
As defined in <xref target="RFC8655"/>, | As defined in <xref target="RFC8655" format="default"/>, | |||
DetNet flows may be carried over network technologies that can pr | DetNet flows may be carried over network technologies that can provide | |||
ovide | service characteristics required by DetNet. For example, DetNet MPLS fl | |||
the DetNet required service characteristics. For example, DetNet MPLS | ows can be carried over IEEE 802.1 Time-Sensitive | |||
flows can be carried over IEEE 802.1 Time Sensitive Network (TSN) <xref | Networking (TSN) sub-networks <xref target="IEEE802.1TSNTG" | |||
target="IEEE802.1TSNTG"/> sub-networks. However, IEEE 802.1 TSN | format="default"/>. However, IEEE 802.1 TSN support is not required in | |||
support is not required in DetNet. TSN frame preemption is an example | DetNet. TSN frame preemption is an example of a forwarding layer capability | |||
of a forwarding layer capability that is typically not replicated in | that is typically not replicated in other forwarding technologies. Most of | |||
other forwarding technologies. Most of DetNet benefits can be gained by | DetNet's benefits can be gained by running over a data-link layer that has | |||
running over a data link layer that has not been specifically enhanced | not been specifically enhanced to support all TSN capabilities, but for such | |||
to support all TSN capabilities but for such networks and traffic | networks and traffic mixes, delay and jitter performance may vary due to the | |||
mixes delay and jitter performance may vary due to the forwarding | forwarding sub&nbhy;layer's intrinsic properties. | |||
sub-layer intrinsic properties. | ||||
</t> | </t> | |||
<t> | <t> | |||
Different application flows, such as Ethernet or IP, can be mapped | Different application flows, such as Ethernet or IP, can be mapped | |||
on top of DetNet. DetNet can optionally reuse header information | on top of DetNet. DetNet can optionally reuse header information | |||
provided by, or shared with, applications. An example of shared header | provided by, or shared with, applications. An example of shared header | |||
fields can be found in <xref target="I-D.ietf-detnet-ip"/>. | fields can be found in <xref target="RFC8939" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
This document also covers | This document also covers | |||
basic concepts related to the controller plane and Operations, | basic concepts related to the Controller Plane and Operations, | |||
Administration, and Maintenance (OAM). | Administration, and Maintenance (OAM). | |||
Data plane OAM specifics are out of scope for this document. | Data plane OAM specifics are out of scope for this document. | |||
</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"> | |||
<name>Terms Used in This Document</name> | ||||
<t> | <t> | |||
This document uses the terminology established in the DetNet | This document uses the terminology established in the DetNet | |||
architecture <xref target="RFC8655"/>, | architecture <xref target="RFC8655" format="default"/>, and | |||
and the reader is assumed to be familiar with that document | it is assumed that the reader is familiar with that document | |||
and its terminology. | and its terminology. | |||
</t> | </t> | |||
</section> | </section> | |||
<?rfc subcompact="yes" ?> | <section numbered="true" toc="default"> | |||
<section title="Abbreviations"> | <name>Abbreviations</name> | |||
<t> | <t> | |||
The following abbreviations are used in this document: | The following abbreviations are used in this document: | |||
<list style="hanging" hangIndent="14"> | ||||
<t hangText="BGP">Border Gateway Protocol.</t> | ||||
<t hangText="d-CW">DetNet Control Word.</t> | ||||
<t hangText="DetNet">Deterministic Networking.</t> | ||||
<t hangText="DN">DetNet.</t> | ||||
<t hangText="GMPLS">Generalized Multiprotocol Label Switching.</t> | ||||
<t hangText="GRE">Generic Routing Encapsulation.</t> | ||||
<t hangText="IPSec">IP Security.</t> | ||||
<t hangText="L2">Layer 2.</t> | ||||
<t hangText="LSP">Label Switched Path.</t> | ||||
<t hangText="MPLS">Multiprotocol Label Switching.</t> | ||||
<t hangText="OAM">Operations, Administration, and Maintenance.</t> | ||||
<t hangText="PCEP">Path Computation Element Communication Protocol.< | ||||
/t> | ||||
<t hangText="PEF">Packet Elimination Function.</t> | ||||
<t hangText="PRF">Packet Replication Function.</t> | ||||
<t hangText="PREOF">Packet Replication, Elimination and Ordering Fun | ||||
ctions.</t> | ||||
<t hangText="POF">Packet Ordering Function.</t> | ||||
<t hangText="PSN">Packet Switched Network.</t> | ||||
<t hangText="QoS">Quality of Service.</t> | ||||
<t hangText="S-Label">DetNet "service" label.</t> | ||||
<t hangText="TDM">Time-Division Multiplexing.</t> | ||||
<t hangText="TSN">Time-Sensitive Network.</t> | ||||
<t hangText="YANG">Yet Another Next Generation.</t> | ||||
</list> | ||||
</t> | </t> | |||
<dl newline="false" indent="12"> | ||||
<dt>BGP</dt> | ||||
<dd>Border Gateway Protocol</dd> | ||||
<dt>CoS</dt> | ||||
<dd>Class of Service</dd> | ||||
<dt>d-CW</dt> | ||||
<dd>DetNet Control Word</dd> | ||||
<dt>DetNet</dt> | ||||
<dd>Deterministic Networking</dd> | ||||
<dt>DN</dt> | ||||
<dd>DetNet</dd> | ||||
<dt>GMPLS</dt> | ||||
<dd>Generalized Multiprotocol Label Switching</dd> | ||||
<dt>GRE</dt> | ||||
<dd>Generic Routing Encapsulation</dd> | ||||
<dt>IPsec</dt> | ||||
<dd>IP Security</dd> | ||||
<dt>L2</dt> | ||||
<dd>Layer 2</dd> | ||||
<dt>LSP</dt> | ||||
<dd>Label Switched Path</dd> | ||||
<dt>MPLS</dt> | ||||
<dd>Multiprotocol Label Switching</dd> | ||||
<dt>OAM</dt> | ||||
<dd>Operations, Administration, and Maintenance</dd> | ||||
<dt>PCEP</dt> | ||||
<dd>Path Computation Element Communication Protocol</dd> | ||||
<dt>PEF</dt> | ||||
<dd>Packet Elimination Function</dd> | ||||
<dt>POF</dt> | ||||
<dd>Packet Ordering Function</dd> | ||||
<dt>PREOF</dt> | ||||
<dd>Packet Replication, Elimination, and Ordering Functions</dd> | ||||
<dt>PRF</dt> | ||||
<dd>Packet Replication Function</dd> | ||||
<dt>PSN</dt> | ||||
<dd>Packet Switched Network</dd> | ||||
<dt>QoS</dt> | ||||
<dd>Quality of Service</dd> | ||||
<dt>S-Label</dt> | ||||
<dd>DetNet "service" label</dd> | ||||
<dt>TDM</dt> | ||||
<dd>Time-Division Multiplexing</dd> | ||||
<dt>TSN</dt> | ||||
<dd>Time-Sensitive Networking</dd> | ||||
<dt>YANG</dt> | ||||
<dd>Yet Another Next Generation</dd> | ||||
</dl> | ||||
</section> | </section> | |||
</section> <!-- end of terminology --> | </section> | |||
<?rfc subcompact="no" ?> | <section anchor="sec_dt_dp" numbered="true" toc="default"> | |||
<section title="DetNet Data Plane Overview" anchor="sec_dt_dp"> | <name>Overview of the DetNet Data Plane</name> | |||
<t> | <t> | |||
This document describes how application flows, or app-flows, are | This document describes how application flows, or App-flows <xref | |||
carried over DetNet networks. The DetNet Architecture <xref | target="RFC8655"/>, are | |||
target="RFC8655"/> models the DetNet-related | carried over DetNet networks. The DetNet architecture <xref target="RFC8 | |||
data plane functions as decomposed into two sub-layers: a service | 655" format="default"/> models the DetNet-related | |||
sub-layer and a forwarding sub-layer. | data plane functions as decomposed into two sub&nbhy;layers: a s | |||
</t> | ervice | |||
sub&nbhy;layer and a forwarding sub&nbhy;layer. | ||||
<t> | </t> | |||
<xref target="ProtStack1"/>, reproduced from <xref target="RFC8655"/>, | <t> | |||
shows a logical DetNet service with the two sub-layers. | <xref target="ProtStack1" format="default"/>, reproduced from <xref targ | |||
et="RFC8655" format="default"/>, | ||||
shows a logical DetNet service with the two sub&nbhy;layers. | ||||
</t> | </t> | |||
<figure align="center" anchor="ProtStack1" | <figure anchor="ProtStack1"> | |||
title="DetNet data plane protocol stack"> | <name>DetNet Data Plane Protocol Stack</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| packets going | ^ packets coming ^ | | packets going | ^ packets coming ^ | |||
v down the stack v | up the stack | | v down the stack v | up the stack | | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
| Source | | Destination | | | Source | | Destination | | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
| Service sub-layer: | | Service sub-layer: | | | Service sub-layer: | | Service sub-layer: | | |||
| Packet sequencing | | Duplicate elimination | | | Packet sequencing | | Duplicate elimination | | |||
| Flow replication | | Flow merging | | | Flow replication | | Flow merging | | |||
| Packet encoding | | Packet decoding | | | Packet encoding | | Packet decoding | | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
| Forwarding sub-layer: | | Forwarding sub-layer: | | | Forwarding sub-layer: | | Forwarding sub-layer: | | |||
| Resource allocation | | Resource allocation | | | Resource allocation | | Resource allocation | | |||
| Explicit routes | | Explicit routes | | | Explicit routes | | Explicit routes | | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
| Lower layers | | Lower layers | | | Lower layers | | Lower layers | | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
v ^ | v ^ | |||
\_________________________/ | \_________________________/]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | <t> | |||
<t> | The DetNet forwarding sub&nbhy;layer may be directly provided by the De | |||
The DetNet forwarding sub-layer may be directly provided by the DetNet | tNet | |||
service sub-layer, for example by IP tunnels or MPLS. | service sub&nbhy;layer -- for example, by IP tunnels or MPLS. | |||
Alternatively, an overlay approach | Alternatively, an overlay approach | |||
may be used in which the packet is natively carried between key nodes | may be used in which the packet is natively carried between key nodes | |||
within the DetNet network (say between PREOF nodes) and a sub-layer is | within the DetNet network (say, between PREOF nodes), and a sub&nbhy;la yer is | |||
used to provide the information needed to reach the next hop in the | used to provide the information needed to reach the next hop in the | |||
overlay. | overlay. | |||
</t> | </t> | |||
<t> | <t> | |||
The forwarding sub-layer provides the QoS related functions needed by | The forwarding sub&nbhy;layer provides the QoS-related functions needed | |||
by | ||||
the DetNet flow. It may do this directly through the use of queuing | the DetNet flow. It may do this directly through the use of queuing | |||
techniques and traffic engineering methods, or it may do this through | techniques and traffic engineering methods, or it may do this through | |||
the assistance of its underlying connectivity. For example it may call | the assistance of its underlying connectivity. For example, it may call | |||
upon Ethernet TSN capabilities defined in IEEE 802.1 TSN <xref | upon Ethernet TSN capabilities defined in IEEE 802.1 TSN <xref target=" | |||
target="IEEE802.1TSNTG"/>. The forwarding sub-layer uses | IEEE802.1TSNTG" format="default"/>. The forwarding sub&nbhy;layer uses | |||
buffer resources for packet queuing, as well as reservation and | buffer resources for packet queuing, as well as reservation and | |||
allocation of bandwidth capacity resources. | allocation of bandwidth capacity resources. | |||
</t> | </t> | |||
<t> | <t> | |||
The service sub-layer provides additional support beyond the | The service sub&nbhy;layer provides additional support beyond the | |||
connectivity function of the forwarding sub-layer. See <xref | connectivity function of the forwarding sub&nbhy;layer. See | |||
target="PREOF"/> as an example for Packet Replication, Elimination, | <xref target="PREOF" format="default"/> regarding PREOF. The POF uses | |||
and Ordering functions. The ordering function (POF) uses sequen | sequence numbers | |||
ce numbers | added to packets, enabling a range of packet order protection from | |||
added to packets enabling a range of packet order protection from | ||||
simple ordering and dropping out-of-order packets to more complex | simple ordering and dropping out-of-order packets to more complex | |||
reordering of a fixed number of out-of-order, minimally delayed | reordering of a fixed number of out-of-order, minimally delayed | |||
packets. Reordering requires buffer resources and has impact on the | packets. Reordering requires buffer resources and has an impact on the | |||
delay and jitter of packets in the DetNet flow. | delay and jitter of packets in the DetNet flow. | |||
</t> | </t> | |||
<t> | <t> | |||
The method of instantiating each of the layers is specific to the | The method of instantiating each of the layers is specific to the | |||
particular DetNet data plane method, and more than one approach | particular DetNet data plane method, and more than one approach may | |||
may | be applicable to a given network type. | |||
be applicable to a given network type. | </t> | |||
</t> | <section anchor="sec_dp_char" numbered="true" toc="default"> | |||
<name>Data Plane Characteristics</name> | ||||
<section title="Data Plane Characteristics" anchor="sec_dp_char"> | ||||
<t> | <t> | |||
There are two major characteristics to the data plane: the technology an d | The data plane has two major characteristics: the technology and | |||
the encapsulation, as discussed below. | the encapsulation, as discussed below. | |||
</t> | </t> | |||
<section title="Data Plane Technology" anchor="sec_dp_tech"> | <section anchor="sec_dp_tech" numbered="true" toc="default"> | |||
<t> | <name>Data Plane Technology</name> | |||
The DetNet data plane is provided by the DetNet service and forwarding | <t> | |||
sub layers. | The DetNet data plane is provided by the DetNet service and forwarding | |||
The DetNet service sub-layer | sub&nbhy;layers. | |||
The DetNet service sub&nbhy;layer | ||||
generally provides its functions for the DetNet application flows by us ing or applying | generally provides its functions for the DetNet application flows by us ing or applying | |||
existing standardized headers and/or encapsulations. The Detnet | existing standardized headers and/or encapsulations. The DetNet | |||
forwarding sub-layer may provide capabilities leveraging that same | forwarding sub&nbhy;layer may provide capabilities leveraging that same | |||
header or encapsulation technology (e.g., DN IP or DN MPLS) or it | header or encapsulation technology (e.g., DN IP or DN MPLS), or it | |||
may be achieved by other technologies as shown in <xref | may be achieved via other technologies, as shown in <xref | |||
target="dn_svc_encaps"/>. | target="dn_svc_encaps" format="default"/> below. | |||
DetNet is currently defined for operation over packet-switched (IP) | DetNet is currently defined for operation over packet-switched (IP) | |||
networks or label-switched (MPLS) networks. | networks or label-switched (MPLS) networks. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Encapsulation" anchor="sec_dp_enc | <section anchor="sec_dp_encap" numbered="true" toc="default"> | |||
ap"> | <name>Encapsulation</name> | |||
<t> | <t> | |||
DetNet encodes specific flow attributes | DetNet encodes specific flow attributes | |||
(flow identity and sequence number) in packets. | (flow identity and sequence number) in packets. | |||
For example, in DetNet IP, | For example, in DetNet IP, | |||
zero encapsulation is used and no sequence number | zero encapsulation is used, and no sequence number | |||
is available, and in DetNet MPLS, DetNet-specific information may be a | is available; in DetNet MPLS, DetNet-specific information may be added | |||
dded | explicitly to the packets in the form of an S-Label and a d-CW | |||
explicitly to the packets in the form of S-label and d-CW | <xref target="DetNet-MPLS" format="default"/>. | |||
<xref target="I-D.ietf-detnet-mpls"/> . | </t> | |||
</t> | <t> | |||
<t> | ||||
The encapsulation of a DetNet flow allows it to be sent over a | The encapsulation of a DetNet flow allows it to be sent over a | |||
data plane technology other than its native type. | data plane technology other than its native type. | |||
DetNet uses header information to perform traffic classificatio n, | DetNet uses header information to perform traffic classificatio n, | |||
i.e., identify DetNet flows, and provide DetNet service and | i.e., identify DetNet flows, and provide DetNet service and | |||
forwarding functions. As mentioned above, DetNet may add header s, | forwarding functions. As mentioned above, DetNet may add header s, | |||
as is the case for DN MPLS, or may use headers that are already | as is the case for DN MPLS, or may use headers that are already | |||
present, as is the case in DN IP. | present, as is the case for DN IP. | |||
<xref target="dn_svc_encaps"/> illustrates some relationships | <xref target="dn_svc_encaps" format="default"/> illustrates some rela | |||
tionships | ||||
between the components. | between the components. | |||
</t> | </t> | |||
<figure anchor="dn_svc_encaps"> | ||||
<figure anchor="dn_svc_encaps" align="center" | <name>DetNet Service Examples</name> | |||
title="DetNet Service Examples"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+-----+ | +-----+ | |||
| TSN | | | TSN | | |||
+-------+ +-+-----+-+ | +-------+ +-+-----+-+ | |||
| DN IP | | DN MPLS | | | DN IP | | DN MPLS | | |||
+--+--+----+----+ +-+---+-----+-+ | +--+--+----+----+ +-+---+-----+-+ | |||
| TSN | DN MPLS | | TSN | DN IP | | | TSN | DN MPLS | | TSN | DN IP | | |||
+-----+---------+ +-----+-------+ | +-----+---------+ +-----+-------+]]></artwork> | |||
</figure> | ||||
]]></artwork> | <t> | |||
</figure> | ||||
<t> | ||||
The use of encapsulation is also required if additional information | The use of encapsulation is also required if additional information | |||
(metadata) is needed by the DetNet data plane and there is either | (metadata) is needed by the DetNet data plane and either (1) the | |||
no ability to include it in the client data packet, or the | re is | |||
no ability to include it in the client data packet or (2) the | ||||
specification of the client data plane does not permit the | specification of the client data plane does not permit the | |||
modification of the packet to include additional data. An example of | modification of the packet to include additional data. An example of | |||
such metadata is the inclusion of a sequence number required by the | such metadata is the inclusion of a sequence number required by | |||
PREOF function. | PREOF. | |||
</t> | </t> | |||
<t> | <t> | |||
Encapsulation may also be used to carry or aggregate flows for equipm ent with limited | Encapsulation may also be used to carry or aggregate flows for equipm ent with limited | |||
DetNet capability. | DetNet capability. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec_dp_metadata" numbered="true" toc="default"> | ||||
<section title="DetNet-specific Metadata" anchor="sec_dp_metadata"> | <name>DetNet-Specific Metadata</name> | |||
<t> | <t> | |||
The DetNet data plane can provide or carry the following metadata: | The DetNet data plane can provide or carry the following metadata: | |||
<list style="numbers"> | </t> | |||
<t> | <ol spacing="normal" type="1"> | |||
<li> | ||||
Flow-ID | Flow-ID | |||
</t> | </li> | |||
<t> | <li> | |||
Sequence Number | Sequence number | |||
</t> | </li> | |||
</list> | </ol> | |||
</t> | <t> | |||
<t> | The DetNet data plane framework supports a Flow-ID (for identification | |||
The DetNet data plane framework supports a Flow-ID (for identi | of the | |||
fication of the | flow or aggregate flow) and/or a sequence number (for PREOF) for each | |||
flow or aggregate flow) and/or a Sequence Number (for PREOF) f | DetNet flow. The Flow-ID is used by both the service and forwarding su | |||
or each | b&nbhy;layers, | |||
DetNet flow. The Flow-ID is used by both the service and forwa | but the sequence number is only used by the service layer. Metadata ca | |||
rding sub-layers, | n also be | |||
but the sequence number is only used by the ser | used for OAM indications and instrumentation of DetNet data plane | |||
vice layer. Metadata can also be | operation. | |||
used for OAM indications and instrumentation of DetNet data pl | </t> | |||
ane | <t> | |||
operation. | Metadata inclusion can be implicit or explicit. Explicit inclusions | |||
</t> | involve a dedicated header field that is used to include metadata | |||
<t> | in a DetNet packet. In the implicit method, part of an already-existi | |||
Metadata inclusion can be implicit or explicit. Explicit incl | ng | |||
usions | header field is used to encode the metadata. | |||
involve a dedicated header field that is used t | </t> | |||
o include metadata | <t> | |||
in a DetNet packet. In the implicit method, pa | ||||
rt of an already existing | ||||
header field is used to encode the metadata. | ||||
</t> | ||||
<t> | ||||
Explicit inclusion of metadata is possible through the use of | Explicit inclusion of metadata is possible through the use of | |||
IP options or IP extension headers. New IP options are almost impossib le | IP options or IP extension headers. New IP options are almost impossib le | |||
to get standardized or to deploy in an operational network and will | to get standardized or to deploy in an operational network and will | |||
not be discussed further in this text. IPv6 extensions headers are | not be discussed further in this text. IPv6 extension headers are | |||
finding popularity in current IPv6 development work, particularly | finding popularity in current IPv6 development work, particularly | |||
in connection with Segment Routing of IPv6 (SRv6) and IP OAM. The desi gn | in connection with Segment Routing of IPv6 (SRv6) and IP OAM. The desi gn | |||
of a new IPv6 extension header or the modification of an existing one is | of a new IPv6 extension header or the modification of an existing one is | |||
a technique available in the tool box of the DetNet IP data plane desi gner. | a technique available in the toolbox of the DetNet IP data plane desig ner. | |||
</t> | </t> | |||
<t> | <t> | |||
Explicit inclusion of metadata in an IP packet is also possible | Explicit inclusion of metadata in an IP packet is also possible | |||
through the inclusion of an MPLS label stack and the MPLS DetNet | through the inclusion of an MPLS label stack and the MPLS d-CW, | |||
Control Word using one of the methods for carrying MPLS over IP <xref | using one of the methods for carrying MPLS over IP <xref target="DetNe | |||
target="I-D.ietf-detnet-mpls-over-udp-ip"/>. This is described | t-MPLS-over-UDP-IP" format="default"/>. This is described in more | |||
in more | detail in <xref target="subnet_considerations" format="default"/>. | |||
detail in <xref target="subnet_considerations"/>. | ||||
</t> | </t> | |||
<t> | <t> | |||
Implicit metadata in IP can be included through the use of the network | Implicit metadata in IP can be included through the use of the network | |||
programming paradigm <xref | programming paradigm <xref target="SRv6-Network-Prog" format="default" | |||
target="I-D.ietf-spring-srv6-network-programming"/> in which t | />, in which the | |||
he | ||||
suffix of an IPv6 address is used to encode additional information | suffix of an IPv6 address is used to encode additional information | |||
for use by the network of the receiving host. | for use by the network of the receiving host. | |||
</t> | </t> | |||
<t> | <t> | |||
An MPLS example of explicit metadata is the sequence number | An MPLS example of explicit metadata is the sequence number | |||
used by the PREOF function, or even the case where all the | used by PREOF, or even the case where all the | |||
essential information being included into the DetNet over MPLS | essential information is included in the DetNet-over-MPLS | |||
label stack (the DetNet Control Word and the DetNet Service lab | label stack (the d-CW and the DetNet S-Label). | |||
el). | </t> | |||
</t> | ||||
</section> | </section> | |||
<section anchor="sec_dt_ip_dp" numbered="true" toc="default"> | ||||
<section title="DetNet IP Data Plane" anchor="sec_dt_ip_dp"> | <name>DetNet IP Data Plane</name> | |||
<t> | <t> | |||
An IP data plane may operate natively or through the use of an | An IP data plane may operate natively or through the use of an | |||
encapsulation. | encapsulation. | |||
Many types of IP encapsulation can satisfy DetNet requirements | Many types of IP encapsulation can satisfy DetNet requirements, | |||
and it is anticipated that more than one encapsulation | and it is anticipated that more than one encapsulation | |||
may be deployed, for example GRE, IPSec. | may be deployed -- for example, GRE, IPsec. | |||
</t> | </t> | |||
<t> | <t> | |||
One method of operating an IP DetNet data plane without encapsulation | One method of operating an IP DetNet data plane without encapsulation | |||
is to use "6-tuple" based flow identification, where "6-tuple" refers | is to use 6-tuple-based flow identification, where "6-tuple" refers | |||
to information carried in IP and higher layer protocol headers. | to information carried in IP-layer and higher-layer protocol headers. | |||
General background on the use of IP headers, and "6-tuples", to | General background on the use of IP headers and 6-tuples to | |||
identify flows and support Quality of Service (QoS) can be found in | identify flows and support QoS can be found in | |||
<xref target="RFC3670"/>. <xref target="RFC7657"/> provides | <xref target="RFC3670" format="default"/>. The extra field in the | |||
useful background on differentiated services (DiffServ) | 6-tuple is the DSCP field in the packet. <xref target="RFC7657" format= | |||
and "tuple" based flow identification. DetNet flow aggregation may | "default"/> provides | |||
be enabled via the use of wildcards, masks, prefixes and ranges. The | useful background on differentiated services (Diffserv) | |||
operation of this method is described in detail in <xref | and tuple-based flow identification. DetNet flow aggregation may | |||
target="I-D.ietf-detnet-ip"/>. | be enabled via the use of wildcards, masks, prefixes, and ranges. The | |||
operation of this method is described in detail in <xref target="RFC89 | ||||
39" format="default"/>. | ||||
</t> | </t> | |||
<t> | <t> | |||
The DetNet forwarding plane may use explicit route capabilities and | The DetNet forwarding plane may use explicit route capabilities and | |||
traffic engineering capabilities to provide a forwarding sub-layer | traffic engineering capabilities to provide a forwarding sub&nbhy;laye r | |||
that is responsible for providing resource allocation and explicit | that is responsible for providing resource allocation and explicit | |||
routes. It is possible to include such information in a native IP pac | routes. It is possible to include such information in a native IP | |||
ket | packet either explicitly or implicitly. | |||
explicitly, or implicitly. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section title="DetNet MPLS Data Plane" anchor="sec_dt_mpls_dp"> | <section anchor="sec_dt_mpls_dp" numbered="true" toc="default"> | |||
<name>DetNet MPLS Data Plane</name> | ||||
<t> | <t> | |||
MPLS provides a forwarding sub-layer for traffic over implicit | MPLS provides a forwarding sub&nbhy;layer for traffic over implicit | |||
and explicit paths to the point in the network where the next | and explicit paths to the point in the network where the next | |||
DetNet service sub-layer action needs to take place. It does this | DetNet service sub&nbhy;layer action needs to take place. It does this | |||
through the use of a stack of one or more labels with various | through the use of a stack of one or more labels with various | |||
forwarding semantics. | forwarding semantics. | |||
</t> | </t> | |||
<t> | <t> | |||
MPLS also provides the ability to identify a service instance | MPLS also provides the ability to identify a service instance | |||
that is used to process the packet through the use of a label that | that is used to process the packet through the use of a label that | |||
maps the packet to a service instance. | maps the packet to a service instance. | |||
</t> | </t> | |||
<t> | <t> | |||
In cases where metadata is needed to process an MPLS encapsulated | In cases where metadata is needed to process an MPLS-encapsulated | |||
packet at the service sub-layer, the d-CW <xref target="I-D.ietf-detne | packet at the service sub&nbhy;layer, the d-CW <xref | |||
t-mpls"/>, | target="DetNet-MPLS" format="default"/> can be used. Although such d- | |||
<xref target="RFC4385"/> can be used. | CWs | |||
Although such d-CWs | ||||
are frequently 32 bits long, there is no architectural constraint on | are frequently 32 bits long, there is no architectural constraint on | |||
the size of this structure, only the requirement that it is fully | the size of this structure -- only the requirement that it be fully | |||
understood by all parties operating on it in the DetNet service | understood by all parties operating on it in the DetNet service | |||
sub-layer. The operation of this method is described in detail in | sub&nbhy;layer. The operation of this method is described in detail i | |||
<xref target="I-D.ietf-detnet-mpls"/>. | n | |||
<xref target="DetNet-MPLS" format="default"/>. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="further_dn_dp_consid" numbered="true" toc="default"> | ||||
<section title="Further DetNet Data Plane Considerations" anchor="further_dn_dp_ | <name>Further DetNet Data Plane Considerations</name> | |||
consid"> | <t> | |||
<t> | ||||
This section provides informative considerations related to | This section provides informative considerations related to | |||
providing DetNet service to flows which are identified | providing DetNet service to flows that are identified | |||
based on their header information. | based on their header information. | |||
</t> | </t> | |||
<section title="Per Flow Related Functions" anchor="further_dn_dp_pf"> | <section anchor="further_dn_dp_pf" numbered="true" toc="default"> | |||
<t> | <name>Functions Provided on a Per-Flow Basis</name> | |||
At a high level, the following functions are provided on a per flow basi | <t> | |||
s. | At a high level, the following functions are provided on a per-flow basi | |||
</t> | s. | |||
<section title="Reservation and Allocation of resources"> | </t> | |||
<t> | <section numbered="true" toc="default"> | |||
<name>Reservation and Allocation of Resources</name> | ||||
<t> | ||||
Resources might be reserved in order to make them available for allocati on to specific DetNet | Resources might be reserved in order to make them available for allocati on to specific DetNet | |||
flows. This can eliminate packet contention and packet loss for D etNet | flows. This can eliminate packet contention and packet loss for DetNet | |||
traffic. This also can reduce jitter for DetNet traffic. Resources | traffic. This also can reduce jitter for DetNet traffic. Resources | |||
allocated to a DetNet flow protect it from other traffic flows. On the | allocated to a DetNet flow protect it from other traffic flows. On the | |||
other hand, DetNet flows are assumed to behave with respect to the | other hand, it is assumed that DetNet flows behave in accordance with th | |||
reserved traffic profile. | e | |||
It must be possible to detect misbehaving DetNet flows | reserved traffic profile. It must be possible to detect misbehaving DetN | |||
and to ensure that they do not compromise QoS of other flows. | et flows | |||
and to ensure that they do not compromise QoS of other flows. | ||||
Queuing, policing, and shaping policies can be used to ensure | Queuing, policing, and shaping policies can be used to ensure | |||
that the allocation of resources reserved for DetNet is met. | that the allocation of resources reserved for DetNet is met. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Explicit routes"> | <section numbered="true" toc="default"> | |||
<t> | <name>Explicit Routes</name> | |||
A flow can be routed over a specific, pre-computed path. This allows con | <t> | |||
trol of the network | A flow can be routed over a specific, precomputed path. This allows cont | |||
rol of network | ||||
delay by steering the packet with the ability to influence the physical | delay by steering the packet with the ability to influence the physical | |||
path. Explicit routes complement reservation by ensuring that a | path. Explicit routes complement reservation by ensuring that a | |||
consistent path can be associated with its resources for the duration | consistent path can be associated with its resources for the duration | |||
of that path. Coupled with the traffic mechanism, this limits | of that path. Coupled with the traffic mechanism, this limits | |||
misordering and bounds latency. Explicit route computation can | misordering and bounds latency. Explicit route computation can | |||
encompass a wide set of constraints and can optimize the path for a cert ain | encompass a wide set of constraints and can optimize the path for a cert ain | |||
characteristic, e.g., highest bandwidth or lowest jitter. In these case s | characteristic, e.g., highest bandwidth or lowest jitter. In these case s, | |||
the "best" path for any set of characteristics may not be a shortest | the "best" path for any set of characteristics may not be a shortest | |||
path. The selection of path can take into account multiple network | path. The selection of the path can take into account multiple network | |||
metrics. Some of these metrics are measured and distributed by the | metrics. Some of these metrics are measured and distributed by the | |||
routing system as traffic engineering metrics. | routing system as traffic engineering metrics. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Service protection"> | <section numbered="true" toc="default"> | |||
<t> | <name>Service Protection</name> | |||
Service protection involves use of multiple packet streams using multipl | <t> | |||
e paths, for example 1+1 or | Service protection involves the use of multiple packet streams using | |||
multiple paths -- for example, 1+1 or | ||||
1:1 linear protection. For DetNet, this primarily relates to packet | 1:1 linear protection. For DetNet, this primarily relates to packet | |||
replication and elimination capabilities. | replication and elimination capabilities. | |||
MPLS offers a number of protection schemes. | MPLS offers a number of protection schemes. | |||
MPLS hitless protection can be used to switch traffic to an already esta blished path | MPLS hitless protection can be used to switch traffic to an already-esta blished path | |||
in order to restore delivery rapidly after a failure. | in order to restore delivery rapidly after a failure. | |||
Path changes, even in the case of failure recovery, can lead to the out | Path changes, even in the case of failure recovery, can lead to the out- | |||
of | of-order delivery of data requiring POFs either | |||
order delivery of data requiring packet ordering functions either | ||||
within the DetNet service or at a high layer in the application | within the DetNet service or at a high layer in the application | |||
traffic. Establishment of new paths after a failure is out of scope | traffic. Establishment of new paths after a failure is out of scope | |||
for DetNet services. | for DetNet services. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Network Coding"> | <section numbered="true" toc="default"> | |||
<t> | <name>Network Coding</name> | |||
Network Coding <xref target="nwcrg"/>, | <t> | |||
Network Coding <xref target="nwcrg" format="default"/>, | ||||
not to be confused with network programming, | not to be confused with network programming, | |||
comprises | comprises | |||
several techniques where multiple data flows are encoded. These | several techniques where multiple data flows are encoded. These | |||
resulting flows can then be sent on different paths. The encoding | resulting flows can then be sent on different paths. The encoding | |||
operation can combine flows and error recovery information. When the | operation can combine flows and error recovery information. When the | |||
encoded flows are decoded and recombined the original flows can be | encoded flows are decoded and recombined, the original flows can be | |||
recovered. Note that Network coding uses an alternative to packet by | recovered. Note that Network Coding uses an alternative to | |||
packet PREOF. Therefore, for certain network topologies and traffic | packet-by-packet PREOF. Therefore, for certain network topologies and tr | |||
affic | ||||
loads, Network Coding can be used to improve a network's throughput, | loads, Network Coding can be used to improve a network's throughput, | |||
efficiency, latency, and scalability, as well as resilience to | efficiency, latency, and scalability, as well as resilience to | |||
partition, attacks, and eavesdropping, as compared to traditional | partition, attacks, and eavesdropping, as compared to traditional | |||
methods. DetNet could use Network coding as an alternative to | methods. DetNet could use Network Coding as an alternative to | |||
other protection means. Network coding is often applied in wireless | other means of protection. Network Coding is often applied in wireless | |||
networks and is being explored for other network types. | networks and is being explored for other network types. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Load sharing"> | <section numbered="true" toc="default"> | |||
<t> | <name>Load-Sharing</name> | |||
Use of packet-by-packet load sharing of the same DetNet flow over | <t> | |||
multiple paths is not recommended except for the cases listed above | The use of packet-by-packet load-sharing of the same DetNet flow over | |||
where PREOF is utilized to improve protection of traffic and maintain or | multiple paths is not recommended, except for the cases listed above | |||
der. | where PREOF are utilized to improve protection of traffic and maintain o | |||
Packet-by-packet load sharing, e.g., via ECMP or UCMP, impacts ordering | rder. | |||
and | Packet-by-packet load-sharing, e.g., via Equal-Cost Multipath (ECMP) | |||
possibly jitter. | or Unequal-Cost Multipath (UCMP), impacts ordering and, | |||
</t> | possibly, jitter. | |||
<!-- I think this section below should refer to OAM for the various underl | </t> | |||
ying | ||||
technology the one area that may be for consideration is how detnet c | ||||
an identify | ||||
specific tunneled traffic. Of course that allows for security vulnera | ||||
bilities --> | ||||
</section> | </section> | |||
<section title="Troubleshooting"> | <section numbered="true" toc="default"> | |||
<t> | <name>Troubleshooting</name> | |||
Detnet leverages many different forwarding sub-layers, each of which | <t> | |||
supports various tools to troubleshoot connectivity, for example | DetNet leverages many different forwarding sub&nbhy;layers, each of which | |||
identification of misbehaving flows. The DetNet Service layer can | supports various tools to troubleshoot connectivity -- for example, | |||
identification of misbehaving flows. The DetNet service layer can | ||||
leverage existing mechanisms to troubleshoot or monitor flows, such as | leverage existing mechanisms to troubleshoot or monitor flows, such as | |||
those in use by IP and MPLS networks. At the Application layer a clie nt | those in use by IP and MPLS networks. At the Application layer, a cli ent | |||
of a DetNet service can use existing techniques to detect and monitor | of a DetNet service can use existing techniques to detect and monitor | |||
delay and loss. | delay and loss. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Flow recognition for analytics"> | <section numbered="true" toc="default"> | |||
<t> | <name>Flow Recognition for Analytics</name> | |||
Network analytics can be inherited from the technologies of the Service | <t> | |||
and Forwarding sub-layers. At the DetNet service edge, packet and bit | Network analytics can be inherited from the technologies of the service | |||
counters (e.g. sent, received, dropped, and out-of-sequence) can be | and forwarding sub&nbhy;layers. At the DetNet service edge, packet an | |||
d bit | ||||
counters (e.g., sent, received, dropped, out of sequence) can be | ||||
maintained. | maintained. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Correlation of events with flows"> | <section numbered="true" toc="default"> | |||
<t> | <name>Correlation of Events with Flows</name> | |||
<t> | ||||
The provider of a DetNet service may provide other capabilities to | The provider of a DetNet service may provide other capabilities to | |||
monitor flows, such as more detailed loss statistics and time stamping | monitor flows, such as more detailed loss statistics and timestamping | |||
of events. The details of these capabilities are out of scope | of events. Details regarding these capabilities are out of scope | |||
for this document. | for this document. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> <!-- End of Per Flow Related Functions --> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Service Protection"> | <name>Service Protection</name> | |||
<t> | <t> | |||
Service protection allows DetNet services to increase reliability and | Service protection allows DetNet services to increase reliability and | |||
maintain a DetNet Service Assurance in the case of network congestion or | maintain a desired level of service assurance in the case of network | |||
network failure. Detnet relies on the underlying technology capabilities | congestion or network failure. DetNet relies on the underlying technology | |||
capabilities | ||||
for various protection schemes. Protection schemes enable partial or | for various protection schemes. Protection schemes enable partial or | |||
complete coverage of the network paths and active protection with | complete coverage of the network paths and active protection with | |||
combinations of PRF, PEF, and POF. | combinations of the PRF, PEF, and POF. | |||
</t> | </t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Linear Service Protection"> | <name>Linear Service Protection</name> | |||
<t> | <t> | |||
An example DetNet MPLS network fragment and packet flow is illustrated i | An example DetNet MPLS network fragment and its packet flow are illustra | |||
n | ted in | |||
<xref target="dn_protection_flow"/>. | <xref target="dn_protection_flow" format="default"/>. | |||
</t> | </t> | |||
<figure anchor="dn_protection_flow"> | ||||
<figure anchor="dn_protection_flow" align="center" | <name>Example of Packet Flow Protected by DetNet</name> | |||
title="Example Packet Flow in DetNet Protected Network"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
1 1.1 1.1 1.2.1 1.2.1 1.2.2 | 1 1.1 1.1 1.2.1 1.2.1 1.2.2 | |||
CE1----EN1--------R1-------R2-------R3--------EN2-----CE2 | CE1----EN1--------R1-------R2-------R3--------EN2-----CE2 | |||
\ 1.2.1 / / | \ 1.2.1 / / | |||
\1.2 /-----+ / | \1.2 /------+ / | |||
+------R4------------------------+ | +------R4------------------------+ | |||
1.2.2 | 1.2.2]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | ||||
<t> | <t> | |||
In <xref target="dn_protection_flow"/> the numbers are used to identify the | In <xref target="dn_protection_flow" format="default"/>, the numbers are us | |||
instance of a packet. Packet 1 is the original packet, and packets 1.1, an | ed to identify the | |||
d | instance of a packet. Packet 1 is the original packet. Packets 1.1 and | |||
1.2 are two first generation copies of packet 1. Packet 1.2.1 is a second | 1.2 are two first-generation copies of packet 1, packet 1.2.1 is a | |||
generation copy of packet 1.2, etc. Note that these numbers never appear i | second-generation copy of packet 1.2, and so on. Note that these numbers n | |||
n | ever appear in | |||
the packet, and are not to be confused with sequence numbers, labels or any | the packet and are not to be confused with sequence numbers, labels, or any | |||
other identifier that appears in the packet. They simply indicate the | other identifiers that appear in the packet. They simply indicate the | |||
generation number of the original packet so that its passage through the | generation number of the original packet so that its passage through the | |||
network fragment can be identified to the reader. | network fragment can be identified for the reader. | |||
</t> | </t> | |||
<t> | <t> | |||
Customer Equipment CE1 sends a packet into the DetNet enabled network. Thi | Customer Equipment device CE1 sends a packet into the DetNet-enabled networ | |||
s | k. This | |||
is packet (1). Edge Node EN1 encapsulates the packet as a DetNet packet an | is packet 1. Edge Node EN1 encapsulates the packet as a DetNet packet and | |||
d | sends it to Relay Node R1 (packet 1.1). EN1 makes a copy of the packet | |||
sends it to Relay node R1 (packet 1.1). EN1 makes a copy of the packet | (1.2), encapsulates it, and sends this copy to Relay Node R4. | |||
(1.2), encapsulates it and sends this copy to Relay node R4. | </t> | |||
</t> | <t> | |||
<t> | Note that R1 may be directly attached to EN1, or there may be one or more | |||
Note that along the path from EN1 to R1 there may be zero or more nodes | nodes on the path that, for clarity, are not shown in <xref | |||
which, for clarity, are not shown. The same is true for any other path | target="dn_protection_flow" format="default"/>. The same | |||
between two DetNet entities shown in <xref target="dn_protection_flow"/>. | holds true for any other path between two DetNet entities as shown in | |||
</t> | the figure. | |||
<t> | </t> | |||
Relay node R4 has been configured to send one copy of the packet to Relay | <t> | |||
Relay Node R4 has been configured to send one copy of the packet to Relay | ||||
Node R2 (packet 1.2.1) and one copy to Edge Node EN2 (packet 1.2.2). | Node R2 (packet 1.2.1) and one copy to Edge Node EN2 (packet 1.2.2). | |||
</t> | </t> | |||
<t> | <t> | |||
R2 receives packet copy 1.2.1 before packet copy 1.1 arrives, and, having | R2 receives packet copy 1.2.1 before packet copy 1.1 arrives and, having | |||
been configured to perform packet elimination on this DetNet flow, forwards | been configured to perform packet elimination on this DetNet flow, forwards | |||
packet 1.2.1 to Relay Node R3. Packet copy 1.1 is of no further use and so | packet 1.2.1 to Relay Node R3. Packet copy 1.1 is of no further use and so | |||
is discarded by R2. | is discarded by R2. | |||
</t> | </t> | |||
<t> | <t> | |||
Edge Node EN2 receives packet copy 1.2.2 from R4 before it receives packet | Edge Node EN2 receives packet copy 1.2.2 from R4 before it receives packet | |||
copy 1.2.1 from R2 via relay Node R3. EN2 therefore strips any DetNet | copy 1.2.1 from R2 via Relay Node R3. EN2 therefore strips any DetNet | |||
encapsulation from packet copy 1.2.2 and forwards the packet to CE2. When | encapsulation from packet copy 1.2.2 and forwards the packet to CE2. When | |||
EN2 receives the later packet copy 1.2.1 this is discarded. | EN2 receives packet copy 1.2.1 later on, the copy is discarded. | |||
</t> | </t> | |||
<t> | <t> | |||
The above is of course illustrative of many network scenarios that can be | The above is of course illustrative of many network scenarios that can be | |||
configured. | configured. | |||
</t> | </t> | |||
<t> | <t> | |||
This example also illustrates 1:1 protection scheme meaning there is | This example also illustrates a 1:1 protection scheme, meaning there is | |||
traffic over each segment of the end-to-end path. Local DetNet | traffic over each segment of the end-to-end path. Local DetNet | |||
relay nodes determine which packets are eliminated and which packets are | relay nodes determine which packets are eliminated and which packets are | |||
forwarded. A 1+1 scheme where only one path is used for traffic at a | forwarded. A 1+1 scheme where only one path is used for traffic at a | |||
time could use the same topology. In this case there is no PRF function | time could use the same topology. In this case, there is no PRF, | |||
<!-- we have a comment that PRF function is redundant, a F alreaady means funct | ||||
ion --> | ||||
and traffic is switched upon detection of failure. An OAM scheme that | and traffic is switched upon detection of failure. An OAM scheme that | |||
monitors the paths to detect the loss of path or traffic is required to | monitors the paths to detect the loss of a path or traffic is required to | |||
initiate the switch. A POF may still be used in this case to | initiate the switch. A POF may still be used in this case to | |||
prevent misordering of packets. In both cases the protection paths are | prevent misordering of packets. In both cases, the protection paths are | |||
established and maintained for the duration of the DetNet service. | established and maintained for the duration of the DetNet service. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Path Differential Delay"> | <section numbered="true" toc="default"> | |||
<t> | <name>Path Differential Delay</name> | |||
In the preceding example, proper working of duplicate | <t> | |||
elimination and reordering of packets are dependent | In the preceding example, proper operation of duplicate | |||
elimination and the reordering of packets are dependent | ||||
on the number of out-of-order packets that can be | on the number of out-of-order packets that can be | |||
buffered and the delay difference of arriving packets. | buffered and the difference in delay of the arriving packets. | |||
DetNet uses flow-specific requirements (e.g., maximum | DetNet uses flow-specific requirements (e.g., maximum | |||
number of out-of-order packets, maximum latency | number of out-of-order packets, maximum latency | |||
of the flow) for configuration of POF-related buffers. | of the flow) for configuration of POF-related buffers. | |||
If the differential delay between paths is excessively large | If the differential delay between paths is excessively large | |||
or there is excessive mis-ordering of the packets, then packets may | or there is excessive misordering of the packets, then packets may | |||
be dropped instead of being reordered. | be dropped instead of being reordered. | |||
Likewise, PEF | Likewise, the PEF | |||
uses the sequence number to identify duplicate packets, and large | uses the sequence number to identify duplicate packets, and large | |||
differential delays combined with high numbers of packets may exceed | differential delays combined with high numbers of packets may exceed | |||
the ability of the PEF to work properly. | the PEF's ability to work properly. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Ring Service Protection"> | <section numbered="true" toc="default"> | |||
<t> | <name>Ring Service Protection</name> | |||
<t> | ||||
Ring protection may also be supported if the underlying technology | Ring protection may also be supported if the underlying technology | |||
supports it. Many of the same concepts apply, however rings are normally | supports it. Many of the same concepts apply; however, rings are normally | |||
1+1 protection for data efficiency reasons. <xref target="RFC8227"/> is an | 1+1 protection for data efficiency reasons. <xref target="RFC8227" format=" | |||
example of MPLS-TP data plane that supports Ring protection. | default"/> provides an example of an MPLS Transport Profile (MPLS-TP) data plane | |||
</t> | that supports ring protection. | |||
</section> | </t> | |||
</section> | </section> | |||
</section> | ||||
<section title="Aggregation Considerations" anchor = "aggregation"> | <section anchor="aggregation" numbered="true" toc="default"> | |||
<t> | <name>Aggregation Considerations</name> | |||
<t> | ||||
The DetNet data plane also allows for the aggregation of DetNet flows, which | The DetNet data plane also allows for the aggregation of DetNet flows, which | |||
can improve scalability by reducing the per-hop state. How this is accomplish ed is data | can improve scalability by reducing the per-hop state. How this is accomplish ed is data | |||
plane or control plane dependent. When DetNet flows are aggregated, transit | plane or control plane dependent. When DetNet flows are aggregated, transit | |||
nodes provide service to the aggregate and not on a per-DetNet flow basis. | nodes provide service to the aggregate and not on a per-DetNet-flow basis. | |||
When aggregating DetNet flows, the flows should be compatible, i.e., the same or | When aggregating DetNet flows, the flows should be compatible, i.e., the same or | |||
very similar QoS and CoS characteristics. In this case, nodes performing | very similar QoS and CoS characteristics. In this case, nodes performing | |||
aggregation will ensure that per-flow service requirements are achieved. | aggregation will ensure that per-flow service requirements are achieved. | |||
</t> | </t> | |||
<t> | <t> | |||
If bandwidth reservations are used, the reservation should be the | If bandwidth reservations are used, the reservation should be the | |||
sum of all the individual reservations; in other words, the reservations | sum of all the individual reservations; in other words, the reservations | |||
should not add up to an over-subscription of bandwidth reservation. If | should not add up to an oversubscription of bandwidth reservation. If | |||
maximum delay bounds are used, the system should ensure that the aggregate | maximum delay bounds are used, the system should ensure that the aggregate | |||
does not exceed the delay bounds of the individual flows. | does not exceed the delay bounds of the individual flows. | |||
</t> | </t> | |||
<t> | <t> | |||
<!-- DetNet encapsulation is a data plane mechanism that can be used to aggreg | When | |||
ate | ||||
traffic. Encapsulation can either be in the same service type or in a | ||||
different service type see <xref target="dn_svc_encaps"/> for example.--> When | ||||
an encapsulation is used, the choice of reserving a maximum resource level and | an encapsulation is used, the choice of reserving a maximum resource level and | |||
then tracking the services in the aggregated service or adjusting the | then tracking the services in the aggregated service or adjusting the | |||
aggregated resources as the services are added is implementation and | aggregated resources as the services are added is implementation and | |||
technology specific. | technology specific. | |||
</t> | </t> | |||
<t> | <t> | |||
DetNet flows at edges must be able to handle rejection to an aggregation | DetNet flows at edges must be able to handle rejection to an aggregation | |||
group due to lack of resources as well as conditions where | group due to lack of resources as well as conditions where | |||
requirements are not satisfied. | requirements are not satisfied. | |||
</t> | </t> | |||
<section title="IP Aggregation" anchor = "ip-agg"> | <section anchor="ip-agg" numbered="true" toc="default"> | |||
<t> | <name>IP Aggregation</name> | |||
IP aggregation has both data plane and controller plane aspects. For the | <t> | |||
IP aggregation has both data plane and Controller Plane aspects. For the | ||||
data plane, flows may be aggregated for treatment based on shared | data plane, flows may be aggregated for treatment based on shared | |||
characteristics such as 6-tuple <xref target="I-D.ietf-detnet-ip"/>. | characteristics such as 6-tuple <xref target="RFC8939" format="default"/>. | |||
Alternatively, an IP encapsulation may be | Alternatively, an IP encapsulation may be | |||
used to tunnel an aggregate number of DetNet Flows between relay nodes. | used to tunnel an aggregate number of DetNet flows between relay nodes. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="MPLS Aggregation" anchor = "mpls-agg"> | <section anchor="mpls-agg" numbered="true" toc="default"> | |||
<t> | <name>MPLS Aggregation</name> | |||
MPLS aggregation also has data plane and controller plane aspects. MPLS | <t> | |||
flows are often tunneled in a forwarding sub-layer, under the reservation | MPLS aggregation also has data plane and Controller Plane aspects. MPLS | |||
flows are often tunneled in a forwarding sub&nbhy;layer, under the reservatio | ||||
n | ||||
associated with that MPLS tunnel. | associated with that MPLS tunnel. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section title="End-System-Specific Considerations"> | <section numbered="true" toc="default"> | |||
<t> | <name>End-System-Specific Considerations</name> | |||
Data-flows requiring DetNet service are generated and terminated on | <t> | |||
end-systems. Encapsulation depends on the application and its | Data flows requiring DetNet service are generated and terminated on | |||
preferences. For example, in a DetNet MPLS domain the sub-layer functions use | end systems. Encapsulation depends on the application and its | |||
the d-CWs, | preferences. For example, in a DetNet MPLS domain, the sub&nbhy;layer functio | |||
S-Labels and F-Labels to provide DetNet services. However, an | ns use the d-CWs, | |||
application may exchange further flow related parameters (e.g., | S-Labels, and F-Labels <xref target="DetNet-MPLS"/> to provide DetNet service | |||
time-stamp), which are not provided by DetNet functions. | s. However, an | |||
</t> | application may exchange further flow-related parameters (e.g., | |||
timestamps) that are not provided by DetNet functions. | ||||
</t> | ||||
<t> | <t> | |||
As a general rule, DetNet domains are capable of forwarding any | As a general rule, DetNet domains are capable of forwarding any | |||
DetNet flows and the DetNet domain does not mandate the | DetNet flows, and the DetNet domain does not mandate the | |||
end-system or edge node encapsulation format. Unless there is a | encapsulation format for end systems or edge nodes. Unless | |||
proxy of some form present, end-systems peer with similar end-systems | some form of proxy is present, end systems peer with similar end systems | |||
using the same application encapsulation format. For example, as | using the same application encapsulation format. For example, as | |||
shown in <xref target="fig_es_connect"/>, IP applications peer with | shown in <xref target="fig_es_connect" format="default"/>, IP applications pe | |||
IP applications and Ethernet applications peer with Ethernet | er with | |||
IP applications, and Ethernet applications peer with Ethernet | ||||
applications. | applications. | |||
</t> | </t> | |||
<figure anchor="fig_es_connect"> | ||||
<figure title="End-Systems and The DetNet MPLS Domain" anchor="fig_es_connect" | <name>End Systems and the DetNet MPLS Domain</name> | |||
> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+-----+ | +-----+ | |||
| X | +-----+ | | X | +-----+ | |||
+-----+ | X | | +-----+ | X | | |||
| Eth | ________ +-----+ | | Eth | ________ +-----+ | |||
+-----+ _____ / \ | Eth | | +-----+ _____ / \ | Eth | | |||
\ / \__/ \___ +-----+ | \ / \__/ \___ +-----+ | |||
\ / \ / | \ / \ / | |||
0======== tunnel-1 ========0_ | 0======== tunnel-1 ========0_ | |||
| \ | | \ | |||
\ | | \ | | |||
0========= tunnel-2 =========0 | 0========= tunnel-2 =========0 | |||
/ \ __/ \ | / \ __/ \ | |||
+-----+ \__ DetNet MPLS domain / \ | +-----+ \__ DetNet MPLS domain / \ | |||
| X | \ __ / +-----+ | | X | \ __ / +-----+ | |||
+-----+ \_______/ \_____/ | X | | +-----+ \_______/ \_____/ | X | | |||
| IP | +-----+ | | IP | +-----+ | |||
+-----+ | IP | | +-----+ | IP | | |||
+-----+ | +-----+]]></artwork> | |||
]]> | </figure> | |||
</artwork></figure> | </section> | |||
<section anchor="subnet_considerations" numbered="true" toc="default"> | ||||
</section> | <name>Sub-network Considerations</name> | |||
<section title="Sub-Network Considerations" anchor="subnet_considerations"> | <t> | |||
<t> | ||||
Any of the DetNet service types may be transported by another | Any of the DetNet service types may be transported by another | |||
DetNet service. MPLS nodes may be interconnected by different sub-network | DetNet service. MPLS nodes may be interconnected by different sub-network | |||
technologies, which may include point-to-point links. Each of these | technologies, which may include point-to-point links. Each of these | |||
sub-network technologies needs to provide appropriate service to DetNet | sub-network technologies needs to provide appropriate service to DetNet | |||
flows. In some cases, e.g., on dedicated point-to-point links or TDM | flows. In some cases, e.g., on dedicated point-to-point links or TDM | |||
technologies, all that is required is for a DetNet node to appropriately | technologies, all that is required is for a DetNet node to appropriately | |||
queue its output traffic. In other cases, DetNet nodes will need to map | queue its output traffic. In other cases, DetNet nodes will need to map | |||
DetNet flows to the flow semantics (i.e., identifiers) and mechanisms used | DetNet flows to the flow semantics (i.e., identifiers) and mechanisms used | |||
by an underlying sub-network technology. <xref | by an underlying sub-network technology. <xref | |||
target="fig_dn_mpls_sn_ex"/> shows several examples of header | target="fig_dn_mpls_sn_ex" format="default"/> shows several examples of | |||
formats that can be used to carry DetNet MPLS flows over different | sub-network encapsulations that can be used to carry DetNet MPLS flows over | |||
sub-network technologies. L2 represents a generic layer-2 encapsulation | different | |||
sub-network technologies. L2 represents a generic Layer 2 encapsulation | ||||
that might be used on a point-to-point link. TSN represents the | that might be used on a point-to-point link. TSN represents the | |||
encapsulation used on an IEEE 802.1 TSN network, as described in <xref | encapsulation used on an IEEE 802.1 TSN network, as described in <xref targ | |||
target="I-D.ietf-detnet-mpls-over-tsn"/>. UDP/IP represents the en | et="DetNet-MPLS-over-TSN" format="default"/>. UDP/IP represents the encapsulati | |||
capsulation | on | |||
used on a DetNet IP PSN, as described in <xref | used on a DetNet IP PSN, as described in <xref target="DetNet-MPLS-over-UDP | |||
target="I-D.ietf-detnet-mpls-over-udp-ip"/>. | -IP" format="default"/>. | |||
</t> | </t> | |||
<figure anchor="fig_dn_mpls_sn_ex"> | ||||
<figure title="Example DetNet MPLS Sub-Network Formats" anchor="fig_dn_mpls_sn | <name>Example DetNet MPLS Encapsulations in Sub-networks</name> | |||
_ex"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"><![CDATA[ | ||||
+------+ +------+ +------+ | +------+ +------+ +------+ | |||
App-Flow | X | | X | | X | | App-flow | X | | X | | X | | |||
+-----+======+--+======+--+======+-----+ | +-----+======+--+======+--+======+-----+ | |||
DetNet-MPLS | d-CW | | d-CW | | d-CW | | DetNet-MPLS | d-CW | | d-CW | | d-CW | | |||
+------+ +------+ +------+ | +------+ +------+ +------+ | |||
|Labels| |Labels| |Labels| | |Labels| |Labels| |Labels| | |||
+-----+======+--+======+--+======+-----+ | +-----+======+--+======+--+======+-----+ | |||
Sub-Network | L2 | | TSN | | UDP | | Sub-network | L2 | | TSN | | UDP | | |||
+------+ +------+ +------+ | +------+ +------+ +------+ | |||
| IP | | | IP | | |||
+------+ | +------+ | |||
| L2 | | | L2 | | |||
+------+ | +------+]]></artwork> | |||
]]> | </figure> | |||
</artwork></figure> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="cp_considerations" numbered="true" toc="default"> | ||||
</section> | <name>Controller Plane (Management and Control) Considerations</name> | |||
<!-- ================================================================= --> | <section anchor="control-management-requirements" numbered="true" toc="def | |||
ault"> | ||||
<section title="Controller Plane (Management and Control) | <name>DetNet Controller Plane Requirements</name> | |||
Considerations" anchor="cp_considerations"> | <t> | |||
<section title="DetNet Controller Plane Requirements" | ||||
anchor="control-management-requirements"> | ||||
<t> | ||||
The Controller Plane corresponds to the aggregation of the Control and | The Controller Plane corresponds to the aggregation of the Control and | |||
Management Planes discussed in <xref target="RFC7426"/> and | Management Planes discussed in <xref target="RFC7426" format="default"/> | |||
<xref target="RFC8655"/>. While more details of any DetNet controller | and | |||
plane are out of the scope of this document, there are particular | <xref target="RFC8655" format="default"/>. While more details regarding | |||
considerations and requirements for such that result from the unique | any DetNet Controller | |||
Plane are out of scope for this document, there are particular | ||||
considerations and requirements for the Controller Plane that result fro | ||||
m the unique | ||||
characteristics of the DetNet architecture and | characteristics of the DetNet architecture and | |||
data plane as defined herein. | data plane as defined herein. | |||
</t> | </t> | |||
<t> | <t> | |||
The primary requirements of the DetNet controller plane are | The primary requirements of the DetNet Controller Plane are | |||
that it must be able to: | that it must be able to: | |||
<list style="symbols"> | </t> | |||
<t> | <ul spacing="normal"> | |||
Instantiate DetNet flows in a DetNet domain (which may | <li> | |||
include some or all of explicit path determination, link | Instantiate DetNet flows in a DetNet domain (which may, for example, | |||
include some or all of the following: explicit path determination, l | ||||
ink | ||||
bandwidth reservations, restricting flows to IEEE 802.1 TSN | bandwidth reservations, restricting flows to IEEE 802.1 TSN | |||
links, node buffer and other resource reservations, | links, node buffer and other resource reservations, | |||
specification of required queuing disciplines along the | specification of required queuing disciplines along the | |||
path, ability to manage bidirectional flows, etc.) as needed | path, ability to manage bidirectional flows, etc.) as needed | |||
for a flow. | for a flow. | |||
</t> | </li> | |||
<t> | <li> | |||
In the case of MPLS, manage DetNet S-Label and F-Label allocation | In the case of MPLS, manage DetNet S-Label and F-Label allocation | |||
and distribution, where the DetNet MPLS encapsulation is in use see | and distribution. In cases where the DetNet MPLS encapsulation is | |||
<xref target="I-D.ietf-detnet-mpls"/>. | being used, see <xref target="DetNet-MPLS" format="default"/>. | |||
</t> | </li> | |||
<t> | <li> | |||
Support DetNet flow aggregation. | Support DetNet flow aggregation. | |||
</t> | </li> | |||
<t> | <li> | |||
Advertise static and dynamic node and link resources such | Advertise static and dynamic node and link resources such | |||
as capabilities and adjacencies to other network nodes (for | as capabilities and adjacencies to other network nodes (for | |||
dynamic signaling approaches) or to network controllers (for | dynamic signaling approaches) or to network controllers (for | |||
centralized approaches). | centralized approaches). | |||
</t> | </li> | |||
<t> | <li> | |||
Scale to handle the number of DetNet flows expected in a | Scale to handle the number of DetNet flows expected in a | |||
domain (which may require per-flow signaling or | domain (which may require per-flow signaling or | |||
provisioning). | provisioning). | |||
</t> | </li> | |||
<t> | <li> | |||
Provision flow identification information at each of the nodes | Provision flow identification information at each of the nodes | |||
along the path. Flow identification may differ depending on the | along the path. Flow identification may differ, depending on the | |||
location in the network and the DetNet functionality (e.g. transit | location in the network and the DetNet functionality (e.g., transit | |||
node vs. relay node). | node vs. relay node). | |||
</t> | </li> | |||
</list> | </ul> | |||
</t> | <t> | |||
<t> | ||||
These requirements, as stated earlier, could be satisfied using | These requirements, as stated earlier, could be satisfied using | |||
distributed control protocol signaling (such as RSVP-TE), | distributed control protocol signaling (such as RSVP-TE), | |||
centralized network management provisioning mechanisms (such as | centralized network management provisioning mechanisms (BGP, PCEP, YANG, | |||
BGP, PCEP, YANG <xref | <xref target="I-D.ietf-detnet-flow-information-model" format="default"/>, etc.) | |||
target="I-D.ietf-detnet-flow-information-model"/>, etc.) or hybrid | , or hybrid | |||
combinations of the two, and could also make use of MPLS-based | combinations of the two, and could also make use of MPLS-based | |||
segment routing. | segment routing. | |||
</t> | </t> | |||
<t> | <t> | |||
In the abstract, the results of either distributed signaling | In the abstract, the results of either distributed signaling | |||
or centralized provisioning are equivalent from a DetNet data | or centralized provisioning are equivalent from a DetNet data plane | |||
plane perspective - flows are instantiated, explicit routes | perspective -- flows are instantiated, explicit routes | |||
are determined, resources are reserved, and packets are | are determined, resources are reserved, and packets are | |||
forwarded through the domain using the DetNet data plane. | forwarded through the domain using the DetNet data plane. | |||
</t> | </t> | |||
<t> | <t> | |||
However, from a practical and implementation standpoint, controller plan | However, from a practical and implementation standpoint, Controller Plan | |||
e alternatives are not | e alternatives are not | |||
equivalent at all. Some approaches are more scalable than others in | equivalent at all. Some approaches are more scalable than others in | |||
terms of signaling load on the network. Some alternatives can take advan tage of | terms of signaling load on the network. Some alternatives can take advan tage of | |||
global tracking of resources in the DetNet domain for better overall | global tracking of resources in the DetNet domain for better overall | |||
network resource optimization. Some solutions are more resilient than ot hers if | network resource optimization. Some solutions are more resilient than ot hers if | |||
link, node, or management equipment failures occur. While a detailed | link, node, or management equipment failures occur. While a detailed | |||
analysis of the control plane alternatives is out of the scope of this | analysis of the control plane alternatives is out of scope for this | |||
document, the requirements from this document can be used as the basis | document, the requirements from this document can be used as the basis | |||
of a later analysis of the alternatives. | of a future analysis of the alternatives. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="gen_cp_considerations" numbered="true" toc="default"> | ||||
<section title="Generic Controller Plane Considerations" anchor="gen_cp_consid | <name>Generic Controller Plane Considerations</name> | |||
erations"> | <t> | |||
<t> | ||||
This section covers control plane considerations that are | This section covers control plane considerations that are | |||
independent of the data plane technology used for DetNet service | independent of the data plane technology used for DetNet service | |||
delivery. | delivery. | |||
</t> | </t> | |||
<t> | <t> | |||
While the management plane and control planes are traditionally | While the management plane and the control plane are traditionally | |||
considered separately, from the data plane perspective there is no | considered separately, from a data plane perspective, there is no | |||
practical difference based on the origin of flow provisioning | practical difference based on the origin of flow-provisioning | |||
information, and the DetNet architecture <xref | information, and the DetNet architecture <xref target="RFC8655" format="de | |||
target="RFC8655"/> refers to these collectively | fault"/> refers to these collectively | |||
as the 'Controller Plane'. This document therefore does not | as the "Controller Plane". This document therefore does not | |||
distinguish between information provided by distributed control | distinguish between information provided by distributed control plane prot | |||
plane protocols, e.g., RSVP-TE <xref target="RFC3209"/> and <xref | ocols (e.g., RSVP-TE <xref target="RFC3209" format="default"/> <xref target="RFC | |||
target="RFC3473"/>, or by centralized network management mechanisms, | 3473" format="default"/>) or centralized network management mechanisms | |||
e.g., RestConf <xref target="RFC8040"/>, YANG <xref | (e.g., RESTCONF <xref target="RFC8040" format="default"/>, YANG <xref targ | |||
target="RFC7950"/>, and the Path Computation Element Communication | et="RFC7950" format="default"/>, PCEP <xref target="I-D.ietf-pce-pcep-extension- | |||
Protocol (PCEP) <xref | for-pce-controller" format="default"/>), or any | |||
target="I-D.ietf-pce-pcep-extension-for-pce-controller"/> or any | ||||
combination thereof. Specific considerations and requirements for | combination thereof. Specific considerations and requirements for | |||
the DetNet Controller Plane are discussed in <xref | the DetNet Controller Plane are discussed in <xref target="control-managem | |||
target="control-management-requirements"/>. | ent-requirements" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
Each respective data plane document also covers the control plane consider ations | Each respective data plane document also covers the control plane consider ations | |||
for that technology. For example, <xref target="I-D.ietf-detnet-ip"/> cov | for that technology. For example, <xref target="RFC8939" | |||
ers IP | format="default"/> also covers IP | |||
control plane normative considerations and <xref | control plane normative considerations, and <xref target="DetNet-MPLS" | |||
target="I-D.ietf-detnet-mpls"/> covers MPLS control plane | format="default"/> also covers MPLS control plane | |||
normative considerations. | normative considerations. | |||
</t> | </t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Flow Aggregation Control"> | <name>Flow Aggregation Control</name> | |||
<t> | <t> | |||
Flow aggregation means that multiple app-flows are served by a single ne | Flow aggregation means that multiple App-flows are served by a single ne | |||
w DetNet | w DetNet | |||
flow. There are many techniques to achieve aggregation. For example, | flow. There are many techniques to achieve aggregation. For example, | |||
in the case of IP, IP flows that share 6-tuple attributes or flo | in the case of IP, IP flows that share 6-tuple attributes or flo | |||
w | w | |||
identifiers at the DetNet sub-layer can be grouped. | identifiers at the DetNet sub&nbhy;layer can be grouped. | |||
Another example includes aggregation accomplished through the us e of | Another example includes aggregation accomplished through the us e of | |||
hierarchical LSPs in MPLS and tunnels. | hierarchical LSPs in MPLS and tunnels. | |||
</t> | </t> | |||
<t> | <t> | |||
Control of aggregation involves a set of procedures listed here. | Control of aggregation involves a set of procedures listed here. | |||
Aggregation may use some or all of these capabilities and the order may | Aggregation may use some or all of these capabilities, and the order may | |||
vary: | vary: | |||
<list style="symbols"> | </t> | |||
<t> Traffic engineering resource collection and distribution: | <dl newline="true" spacing="normal"> | |||
<list style="empty"> | <dt>Traffic engineering resource collection and distribution:</dt> | |||
<t> | <dd>Available resources are tracked through control plane or | |||
Available resources are tracked through control plane or | ||||
management plane databases and distributed amongst controllers | management plane databases and distributed amongst controllers | |||
or nodes that can manage resources. | or nodes that can manage resources.</dd> | |||
</t> | <dt>Path computation and resource allocation:</dt> | |||
</list> | <dd>When DetNet services are provisioned or requested, one or more | |||
</t> | ||||
<t> Path computation and resource allocation: | ||||
<list style="empty"> | ||||
<t> | ||||
When DetNet services are provisioned or requested, one or more | ||||
paths meeting the requirements are selected and the resources | paths meeting the requirements are selected and the resources | |||
verified and recorded. | verified and recorded.</dd> | |||
</t> | <dt>Resource assignment and data plane coordination:</dt> | |||
</list> | <dd>The assignment of resources along the path depends on the techn | |||
</t> | ology and | |||
<t> Resource assignment and data plane co-ordination: | includes assignment of specific links, coordination of | |||
<list style="empty"> | queuing, and other traffic management capabilities such as policing a | |||
<t> | nd shaping.</dd> | |||
The assignment of resources along the path depends on the technol | <dt>Assigned resource recording and updating:</dt> | |||
ogy and | <dd>Depending on the specific technology, the assigned resources ar | |||
includes assignment of specific links, coordination of | e | |||
queueing, and other traffic management capabilities su | updated and distributed in the databases, preventing oversubscription | |||
ch as policing and shaping. | .</dd> | |||
</t> | </dl> | |||
</list> | </section> | |||
</t> | <section numbered="true" toc="default"> | |||
<t> Assigned Resource recording and updating: | <name>Explicit Routes</name> | |||
<list style="empty"> | <t> | |||
<t> | ||||
Depending on the specific technology, the assigned resources are | ||||
updated and distributed in the databases, preventing over-sub | ||||
scription. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
<section title="Explicit Routes"> | ||||
<t> | ||||
Explicit routes are used to ensure that packets are routed through the | Explicit routes are used to ensure that packets are routed through the | |||
resources that have been reserved for them, and hence provide the | resources that have been reserved for them and hence provide the | |||
DetNet application with the required service. A requirement for the | DetNet application with the required service. A requirement for the | |||
DetNet Controller Plane will be the ability to assign a particular | DetNet Controller Plane will be the ability to assign a particular | |||
identified DetNet IP flow to a path through the DetNet domain that has | identified DetNet IP flow to a path through the DetNet domain that has | |||
been assigned the required per-node resources. This provides the | been assigned the required per-node resources. This provides the | |||
appropriate traffic treatment for the flow and also includes particular | appropriate traffic treatment for the flow and also includes particular | |||
links as a part of the path that are able to support the DetNet flow. | links as a part of the path that are able to support the DetNet flow. | |||
For example, by using IEEE 802.1 TSN links (as discussed in | For example, by using IEEE 802.1 TSN links (as discussed in | |||
<xref target="I-D.ietf-detnet-mpls-over-tsn"/> ) DetNet parameters can b e maintained. | <xref target="DetNet-MPLS-over-TSN" format="default"/>), DetNet paramete rs can be maintained. | |||
Further considerations and requirements for the DetNet Controller Plane | Further considerations and requirements for the DetNet Controller Plane | |||
are discussed in <xref target="control-management-requirements"/>. | are discussed in <xref target="control-management-requirements" format=" | |||
</t> | default"/>. | |||
<t> | </t> | |||
Whether configuring, calculating and instantiating these | <t> | |||
routes is a single-stage or multi-stage process, or in a | Whether configuring, calculating, and instantiating these | |||
centralized or distributed manner, is out of scope of this | routes is a single-stage or multi-stage process, or is performed in a | |||
centralized or distributed manner, is out of scope for this | ||||
document. | document. | |||
</t> | </t> | |||
<t> | <t> | |||
There are several approaches that could be used to provide | There are several approaches that could be used to provide | |||
explicit routes and resource allocation in the DetNet | explicit routes and resource allocation in the DetNet | |||
forwarding sub-layer. For example: | forwarding sub&nbhy;layer. For example: | |||
<list style="symbols"> | </t> | |||
<t> | <ul spacing="normal"> | |||
The path could be explicitly set up by a controller which | <li> | |||
The path could be explicitly set up by a controller that | ||||
calculates the path and explicitly configures each node along that | calculates the path and explicitly configures each node along that | |||
path with the appropriate forwarding and resource allocation | path with the appropriate forwarding and resource allocation | |||
information. | information. | |||
</t> | </li> | |||
<t> | <li> | |||
The path could use a distributed control plane such as | The path could use a distributed control plane such as | |||
<xref target="RFC2205">RSVP</xref> or RSVP-TE <xref | <xref target="RFC2205" format="default">RSVP</xref> or RSVP-TE <xref | |||
target="RFC3473"/> extended to support DetNet IP flows. | target="RFC3473" format="default"/> extended to support DetNet IP flows. | |||
</t> | </li> | |||
<t> | <li> | |||
The path could be implemented using IPv6-based segment | The path could be implemented using IPv6-based segment | |||
routing when extended to support resource allocation. | routing when extended to support resource allocation. | |||
</t> | </li> | |||
</list> | </ul> | |||
See <xref target="control-management-requirements"/> for | <t> | |||
See <xref target="control-management-requirements" format="default"/> fo | ||||
r | ||||
further discussion of these alternatives. In addition, | further discussion of these alternatives. In addition, | |||
<xref target="RFC2386"/> contains useful background information | <xref target="RFC2386" format="default"/> contains useful background inf | |||
on QoS-based routing, and <xref target="RFC5575"/> (being | ormation | |||
updated by <xref target="I-D.ietf-idr-rfc5575bis"/>) discusses | on QoS-based routing, and <xref target="RFC5575" format="default"/> | |||
a specific mechanism used by BGP for traffic flow specification | (which will be | |||
and policy-based routing. | updated by <xref target="I-D.ietf-idr-rfc5575bis" format="default"/>) di | |||
</t> | scusses | |||
</section> | a specific mechanism used by BGP for traffic flow specification | |||
<section title="Contention Loss and Jitter Reduction"> | and policy-based routing. | |||
<t> | </t> | |||
As discussed in <xref target="sec_intro"/>, this document does | </section> | |||
not specify the mechanisms needed to eliminate packet contention, packet | <section numbered="true" toc="default"> | |||
loss | <name>Contention Loss and Jitter Reduction</name> | |||
or reduce jitter for DetNet flows at the DetNet forwarding | <t> | |||
sub-layer. The ability to manage node and link resources to | This document does | |||
not specify the mechanisms needed to eliminate packet contention or pack | ||||
et loss | ||||
or to reduce jitter for DetNet flows at the DetNet forwarding | ||||
sub&nbhy;layer. The ability to manage node and link resources to | ||||
be able to provide these functions is a necessary part of | be able to provide these functions is a necessary part of | |||
the DetNet controller plane. It is also necessary to be | the DetNet Controller Plane. It is also necessary to be | |||
able to control the required queuing mechanisms used to | able to control the required queuing mechanisms used to | |||
provide these functions along a flow's path through the | provide these functions along a flow's path through the | |||
network. See <xref target="I-D.ietf-detnet-ip"/> and <xref | network. See <xref target="RFC8939" format="default"/> and <xref target | |||
target="control-management-requirements"/> for further | ="control-management-requirements" format="default"/> for further | |||
discussion of these requirements. Some forms of protection | discussion of these requirements. Some forms of protection | |||
may minimize packet loss or change | may minimize packet loss or change | |||
jitter characteristics in the cases where packets are reordered when out | jitter characteristics in the cases where packets are reordered when out | |||
-of-order packets are received at the service sub-layer. | -of-order packets are received at the service sub&nbhy;layer. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Bidirectional Traffic"> | <section numbered="true" toc="default"> | |||
<t> | <name>Bidirectional Traffic</name> | |||
In many cases DetNet flows can be considered unidirectional and | <t> | |||
In many cases, DetNet flows can be considered unidirectional and | ||||
independent. However, there are cases where the DetNet service requires | independent. However, there are cases where the DetNet service requires | |||
bidirectional traffic from a DetNet application service perspective. IP and | bidirectional traffic from a DetNet application service perspective. IP and | |||
MPLS typically treat each direction separately and do not force | MPLS typically treat each direction separately and do not force | |||
interdependence of each direction. MPLS has considered bidirectional | interdependence of each direction. The IETF MPLS Working Group has | |||
traffic requirements and the MPLS definitions from <xref | studied bidirectional traffic requirements. The definitions provided in <xref ta | |||
target="RFC5654"/> are useful to illustrate terms such as | rget="RFC5654" format="default"/> are useful to illustrate terms such as | |||
associated bidirectional flows and co-routed bidirectional flows. MPLS | associated bidirectional flows and co-routed bidirectional flows. | |||
MPLS | ||||
defines a point-to-point associated bidirectional LSP as consisting of | defines a point-to-point associated bidirectional LSP as consisting of | |||
two unidirectional point-to-point LSPs, one from A to B and the other | two unidirectional point-to-point LSPs, one from A to B and the other | |||
from B to A, which are regarded as providing a single logical | from B to A, which are regarded as providing a single logical | |||
bidirectional forwarding path. This is analogous to standard IP | bidirectional forwarding path. This is analogous to standard IP | |||
routing. MPLS defines a point-to-point co-routed bidirectional LSP as | routing. MPLS defines a point-to-point co-routed bidirectional LSP as | |||
an associated bidirectional LSP which satisfies the additional | an associated bidirectional LSP that satisfies the additional | |||
constraint that its two unidirectional component LSPs follow the same | constraint that its two unidirectional component LSPs follow the same | |||
path (in terms of both nodes and links) in both directions. An | path (in terms of both nodes and links) in both directions. An | |||
important property of co-routed bidirectional LSPs is that their | important property of co-routed bidirectional LSPs is that their | |||
unidirectional component LSPs share fate. In both types of | unidirectional component LSPs share fate. In both types of | |||
bidirectional LSPs, resource reservations may differ in each direction. | bidirectional LSPs, resource reservations may differ in each direction. | |||
The concepts of associated bidirectional flows and co-routed | The concepts of associated bidirectional flows and co&nbhy;routed | |||
bidirectional flows can also be applied to DetNet IP flows. | bidirectional flows can also be applied to DetNet IP flows. | |||
</t> | </t> | |||
<t> | <t> | |||
While the DetNet IP data plane must support bidirectional | While the DetNet IP data plane must support bidirectional | |||
DetNet flows, there are no special bidirectional features with | DetNet flows, there are no special bidirectional features with | |||
respect to the data plane other than the need for the two | respect to the data plane other than the need for the two | |||
directions of a co-routed bidirectional flow to take the same | directions of a co&nbhy;routed bidirectional flow to take the same | |||
path. That is to say that bidirectional DetNet flows are | path. That is to say, bidirectional DetNet flows are | |||
solely represented at the management and control plane levels, | solely represented at the management plane and control plane levels, | |||
without specific support or knowledge within the DetNet data | without specific support or knowledge within the DetNet data | |||
plane. Fate sharing and associated or co-routed | plane. Fate-sharing and associated or co&nbhy;routed | |||
bidirectional flows, can be managed at the control level. | bidirectional flows can be managed at the control level. | |||
</t> | </t> | |||
<t> | <t> | |||
DetNet's use of PREOF may increase the complexity of using co-routing | DetNet's use of PREOF may increase the complexity of using co&nbhy;routi | |||
bidirectional flows, since if PREOF is used, then the replicatio | ng | |||
n points | bidirectional flows, because if PREOF are used, the replication points | |||
in one direction would have to match the elimination points in t | in one direction would have to match the elimination points in the | |||
he | other direction, and vice versa. In such cases, the optimal points for | |||
other direction, and vice versa. In such cases the optimal point | these functions in one direction may not match the optimal points in | |||
s for | the other, due to network and traffic constraints. | |||
these functions in one direction may not match the optimal point | Furthermore, due to the per-packet service protection nature, | |||
s in | bidirectional forwarding may not be ensured. | |||
the other, due to network and traffic constraints. | ||||
Furthermore, due to the per packet service protection nature, | ||||
bidirectional forwarding per packet may not be ensured. | ||||
The first packet of received member flows is selected by the | The first packet of received member flows is selected by the | |||
elimination function independently of which path it has taken | elimination function independently of which path it has taken | |||
through the network. | through the network. | |||
</t> | </t> | |||
<t> | <t> | |||
Control and management mechanisms need to support bidirectional flows, | Control and management mechanisms need to support bidirectional flows, | |||
but the specification of such mechanisms are out of scope of this | but the specification of such mechanisms is out of scope for this | |||
document. Example control plane solutions for MPLS can be found in <xref | document. Example control plane solutions for MPLS can be found in <xref | |||
target="RFC3473"/> , <xref target="RFC6387"/> and <xref | target="RFC3473" format="default"/>, <xref target="RFC6387" format="default"/>, | |||
target="RFC7551"/>. These requirements are included in <xref | and <xref target="RFC7551" format="default"/>. These requirements are included | |||
target="control-management-requirements"/>. | in <xref target="control-management-requirements" format="default"/>. | |||
</t> | </t> | |||
<!-- | ||||
--> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="PREOF" numbered="true" toc="default"> | ||||
<section title="Packet Replication, Elimination, and Ordering (PREOF)" ancho | <name>Packet Replication, Elimination, and Ordering Functions (PREOF)</n | |||
r="PREOF"> | ame> | |||
<t> | <t> | |||
The controller plane protocol solution required for managing the | The Controller Plane protocol solution required for managing the | |||
PREOF processing is outside the scope of this document. That | processing of PREOF is outside the scope of this document. That | |||
said, it should be noted that the ability to determine, for a | said, it should be noted that the ability to determine, for a | |||
particular flow, optimal packet replication and elimination | particular flow, optimal packet replication and elimination | |||
points in the DetNet domain requires explicit support. There may | points in the DetNet domain requires explicit support. There may | |||
be existing capabilities that can be used, or extended, for example GMPL | be existing capabilities that can be used or extended -- for example, GM | |||
S | PLS | |||
end-to-end recovery <xref target="RFC4872"/> and GMPLS segment | end-to-end recovery <xref target="RFC4872" format="default"/> and GMPLS | |||
recovery <xref target="RFC4873"/>. | segment | |||
</t> | recovery <xref target="RFC4873" format="default"/>. | |||
</t> | ||||
</section> | ||||
</section> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>Security Considerations</name> | ||||
<!-- ===================================================================== - | <t> | |||
-> | ||||
<section title="Security Considerations"> | ||||
<t> | ||||
Security considerations for DetNet are described in detail in | Security considerations for DetNet are described in detail in | |||
<xref target="I-D.ietf-detnet-security"/>. General security considerations | <xref target="DetNet-Security" format="default"/>. General security consider | |||
for DetNet architecture are described in <xref target="RFC8655"/>. This sect | ations | |||
ion | for the DetNet architecture are described in <xref target="RFC8655" format=" | |||
default"/>. This section | ||||
considers architecture-level DetNet security considerations applicable to al l data planes. | considers architecture-level DetNet security considerations applicable to al l data planes. | |||
</t> | </t> | |||
<t> | <t> | |||
Part of what makes DetNet unique is its ability to provide specific and | Part of what makes DetNet unique is its ability to provide specific and | |||
reliable quality of service (delivering data flows with extremely low | reliable QoS (delivering data flows with extremely low | |||
packet loss rates and bounded end-to-end delivery latency), and the | packet loss rates and bounded end-to-end delivery latency), and the | |||
security-related aspects of protecting that quality of service are | security-related aspects of protecting that QoS are | |||
similarly unique. | similarly unique. | |||
</t> | </t> | |||
<t> | <t> | |||
As for all communications protocols, | As for all communications protocols, | |||
the primary consideration for the data plane is to maintain | the primary consideration for the 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 is | Application flows can be protected through whatever means is | |||
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 Ethernet (Layer-2) flows. | flows and/or by an underlying sub-network using MACsec | |||
</t> | <xref target="IEEE802.1AE-2018" format="default"/> for Ethernet (Layer 2) f | |||
<t> | lows. | |||
At the management and control level DetNet flows are identified on a | </t> | |||
per-flow basis, which may provide controller plane | <t> | |||
At the management and control levels, DetNet flows are identified on a | ||||
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 can be prevented or mitigated, | malicious or malfunctioning devices can be prevented or mitigated -- | |||
for example through the use of existing mechanisms such as policing and sha | for example, through the use of existing mechanisms such as policing and sh | |||
ping applied at | aping applied at | |||
the input of a DetNet domain. To prevent DetNet packets from | the input of a DetNet domain. To prevent DetNet packets from | |||
being delayed by an entity external to a DetNet domain, DetNet | being delayed by an entity external to a DetNet domain, DetNet | |||
technology definition can allow for the mitigation of | technology definitions can allow for the mitigation of | |||
Man-In-The-Middle attacks, for example through use of | man-in-the-middle attacks -- for example, through the use of | |||
authentication and authorization of devices within the DetNet domain. | authentication and authorization of devices within the DetNet domain. | |||
</t> | </t> | |||
<t> | <t> | |||
In order to prevent or mitigate DetNet attacks on other networks via | In order to prevent or mitigate DetNet attacks on other networks via | |||
flow escape, edge devices can for example use existing mechanism such | flow escape, edge devices can, for example, use existing mechanisms suc h | |||
as policing and shaping applied at the output of a DetNet domain. | as policing and shaping applied at the output of a DetNet domain. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="iana" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t> | ||||
This document has no IANA actions. | ||||
</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<section anchor="iana" title="IANA Considerations"> | <displayreference target="I-D.ietf-pce-pcep-extension-for-pce-controller" to="PC | |||
<t> | ECC"/> | |||
This document makes no IANA requests. | <displayreference target="I-D.ietf-detnet-flow-information-model" to="DetNet-Flo | |||
</t> | w-Info"/> | |||
</section> | <displayreference target="I-D.ietf-idr-rfc5575bis" to="Flow-Spec-Rules"/> | |||
<section anchor="acks" title="Acknowledgements"> | <references> | |||
<t> | <name>References</name> | |||
The authors wish to thank Pat Thaler, Norman Finn, Loa Anderson, David | <references> | |||
Black, Rodney Cummings, Ethan Grossman, Tal Mizrahi, David Mozes, Craig | <name>Normative References</name> | |||
Gunther, George Swallow, Yuanlong Jiang and Carlos J. Bernardos for their | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8655. | |||
various contributions to this work. | xml"/> | |||
</t> | </references> | |||
</section> | <references> | |||
<section anchor="contrib" title="Contributors"> | <name>Informative References</name> | |||
<t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3209. | |||
The following people contributed substantially to the content of this | xml"/> | |||
document: | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3473. | |||
<?rfc subcompact="yes" ?> | xml"/> | |||
<list style=""> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2205. | |||
<t> Don Fedyk </t> | xml"/> | |||
<t> Jouni Korhonen</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2386. | |||
</list> | xml"/> | |||
<?rfc subcompact="no" ?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4872. | |||
</t> | xml"/> | |||
</section> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4873. | |||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7657. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3670. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5575. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5654. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6387. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7950. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7551. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8040. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8227. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4301. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7426. | ||||
xml"/> | ||||
</middle> | <!-- draft-ietf-pce-pcep-extension-for-pce-controller (I-D Exists) --> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-pcep-e | ||||
xtension-for-pce-controller.xml"/> | ||||
<back> | <!-- draft-ietf-detnet-flow-information-model (Waiting for Writeup) --> | |||
<references title="Normative References"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-detnet-flo | |||
<?rfc include="reference.RFC.8655"?> | w-information-model.xml"/> | |||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include="reference.RFC.3209"?> | ||||
<?rfc include="reference.RFC.3473"?> | ||||
<?rfc include="reference.RFC.4385"?> | ||||
<?rfc include="reference.RFC.2205"?> | ||||
<?rfc include="reference.RFC.2386"?> | ||||
<?rfc include="reference.RFC.4872"?> | ||||
<?rfc include="reference.RFC.4873"?> | ||||
<?rfc include="reference.RFC.7657"?> | ||||
<?rfc include="reference.RFC.3670"?> | ||||
<?rfc include="reference.RFC.5575"?> | ||||
<?rfc include="reference.RFC.5654"?> | ||||
<?rfc include="reference.RFC.6387"?> | ||||
<?rfc include="reference.RFC.7950"?> | ||||
<?rfc include="reference.RFC.7551"?> | ||||
<?rfc include="reference.RFC.8040"?> | ||||
<?rfc include="reference.RFC.8227"?> | ||||
<?rfc include="reference.RFC.4301"?> | ||||
<?rfc include="reference.RFC.7426"?> | ||||
<?rfc include="reference.I-D.ietf-pce-pcep-extension-for-pce-controller"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-flow-information-model"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-ip"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-mpls"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-mpls-over-tsn"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-mpls-over-udp-ip"?> | ||||
<?rfc include="reference.I-D.ietf-detnet-security"?> | ||||
<?rfc include="reference.I-D.ietf-idr-rfc5575bis"?> | ||||
<!--reference anchor='I-D.ietf-detnet-ip-over-tsn'> | <!-- draft-ietf-detnet-ip (RFC 8939) --> | |||
<front> | <reference anchor="RFC8939" target="https://www.rfc-editor.org/info/rfc8939"> | |||
<title>DetNet Data Plane: IP over IEEE 802.1 Time Sensitive Networking (T | <front> | |||
SN) | <title>Deterministic Networking (DetNet) Data Plane: IP</title> | |||
</title> | <author initials="B" surname="Varga" fullname="Balazs Varga" role="editor"> | |||
<author> | <organization/> | |||
<organization>Korhonen, J., Varga, B.</organization> | </author> | |||
</author> | <author initials="J" surname="Farkas" fullname="Janos Farkas"> | |||
<date year='2018' /> | <organization/> | |||
</front> | </author> | |||
</reference--> | <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> | ||||
<date month='November' year='2020'/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8939"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8939"/> | ||||
</reference> | ||||
<?rfc include="reference.I-D.ietf-spring-srv6-network-programming"?> | <!-- draft-ietf-detnet-mpls (RFC-EDITOR) --> | |||
<!-- Have to do long way; Balazs Varga is an editor --> | ||||
<reference anchor="DetNet-MPLS" target="https://tools.ietf.org/html/draf | ||||
t-ietf-detnet-mpls-13"> | ||||
<front> | ||||
<title>DetNet Data Plane: MPLS</title> | ||||
<author initials="B" surname="Varga" fullname="Balazs Varga" role="e | ||||
ditor"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="J" surname="Farkas" fullname="Janos Farkas"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="L" surname="Berger" fullname="Lou Berger"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="A" surname="Malis" fullname="Andrew Malis"> | ||||
<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-mpls-13"/> | ||||
</reference> | ||||
<!--reference anchor="IEEE8021Q" | <!-- draft-ietf-detnet-mpls-over-tsn (I-D Exists) --> | |||
target="http://standards.ieee.org/about/get/"> | <!-- Have to do long way; Balazs Varga is an editor --> | |||
<front> | <reference anchor="DetNet-MPLS-over-TSN" target="https://tools.ietf.org/ | |||
<title>Standard for Local and metropolitan area networks-Bridges and Bridg | html/draft-ietf-detnet-mpls-over-tsn-04"> | |||
ed Networks (IEEE Std 802.1Q-2014) | <front> | |||
</title> | <title>DetNet Data Plane: MPLS over IEEE 802.1 Time Sensitive Networ | |||
<author> | king (TSN)</title> | |||
<organization>IEEE 802.1</organization> | <author initials="B" surname="Varga" fullname="Balazs Varga" role="e | |||
</author> | ditor"> | |||
<date year="2014"/> | <organization/> | |||
</front> | </author> | |||
<format type="PDF" target="http://standards.ieee.org/about/get/"/> | <author initials="J" surname="Farkas" fullname="Janos Farkas"> | |||
</reference--> | <organization/> | |||
<reference anchor="IEEE802.1TSNTG" target="http://www.ieee802.org/1/tsn"> | </author> | |||
<front> | <author initials="A" surname="Malis" fullname="Andrew Malis"> | |||
<title>IEEE 802.1 Time-Sensitive Networking Task Group</title> | <organization/> | |||
<author> | </author> | |||
<organization>IEEE Standards Association</organization> | <author initials="S" surname="Bryant" fullname="Stewart Bryant"> | |||
</author> | <organization/> | |||
<date></date> | </author> | |||
</front> | <date month="November" day="2" year="2020"/> | |||
</reference> | </front> | |||
<reference anchor="IEEE802.1AE-2018" target="https://ieeexplore.ieee.org/doc | <seriesInfo name="Internet-Draft" value="draft-ietf-detnet-mpls-over-t | |||
ument/8585421"> | sn-04"/> | |||
<front> | </reference> | |||
<title>IEEE Std 802.1AE-2018 MAC Security (MACsec)</title> | ||||
<author> | ||||
<organization>IEEE Standards Association</organization> | ||||
</author> | ||||
<date year="2018" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="nwcrg" target="https://datatracker.ietf.org/rg/nwcrg/abou | ||||
t"> | ||||
<front> | ||||
<title>Coding for efficient NetWork Communications Research Group (nwcrg | ||||
)</title> | ||||
<author> | ||||
<organization>IRTF</organization> | ||||
</author> | ||||
<date year="" /> | ||||
</front> | ||||
</reference> | ||||
<!--reference anchor="IEEE8021CB" | <!-- draft-ietf-detnet-mpls-over-udp-ip (Waiting for Writeup) --> | |||
target="http://www.ieee802.org/1/files/private/cb-drafts/d2/802-1CB-d2-1.pdf | <!-- Have to do long way; Balazs Varga is an editor --> | |||
"> | <reference anchor="DetNet-MPLS-over-UDP-IP" target="https://tools.ietf.o | |||
<front> | rg/html/draft-ietf-detnet-mpls-over-udp-ip-07"> | |||
<title>Draft Standard for Local and metropolitan area networks - Seamles | <front> | |||
s Redundancy</title> | <title>DetNet Data Plane: MPLS over UDP/IP</title> | |||
<author initials="N. F." surname="Finn" fullname="Norman Finn"> | <author initials="B" surname="Varga" fullname="Balazs Varga" role="e | |||
<organization>IEEE 802.1</organization> | ditor"> | |||
</author> | <organization/> | |||
<date month="December" year="2015"/> | </author> | |||
</front> | <author initials="J" surname="Farkas" fullname="Janos Farkas"> | |||
<seriesInfo name="IEEE P802.1CB /D2.1" value="P802.1CB"/> | <organization/> | |||
<format type="PDF" target="http://www.ieee802.org/1/files/private/cb-drafts/ | </author> | |||
d2/802-1CB-d2-1.pdf"/> | <author initials="L" surname="Berger" fullname="Lou Berger"> | |||
</reference--> | <organization/> | |||
</author> | ||||
<author initials="A" surname="Malis" fullname="Andrew Malis"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="S" surname="Bryant" fullname="Stewart Bryant"> | ||||
<organization/> | ||||
</author> | ||||
<date month="October" day="11" year="2020"/> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-detnet-mpls-over-u | ||||
dp-ip-07"/> | ||||
</reference> | ||||
<!--reference anchor="G.8275.1" | <!-- draft-ietf-detnet-security (Waiting for Writeup) --> | |||
target="https://www.itu.int/rec/T-REC-G.8275.1/en"> | <!-- Have to do long way; Ethan Grossman is an editor --> | |||
<front> | <reference anchor="DetNet-Security" target="https://tools.ietf.org/html/ | |||
<title>Precision time protocol telecom profile for phase/time synchroniza | draft-ietf-detnet-security-12"> | |||
tion with full timing support from the network</title> | <front> | |||
<author> | <title>Deterministic Networking (DetNet) Security Considerations</ti | |||
<organization>International Telecommunication Union</organization> | tle> | |||
</author> | <author initials="E" surname="Grossman" fullname="Ethan Grossman" r | |||
<date month="June" year="2016"/> | ole="editor"> | |||
</front> | <organization/> | |||
<seriesInfo name="ITU-T G.8275.1/Y.1369.1" value="G.8275.1"/> | </author> | |||
</reference--> | <author initials="T" surname="Mizrahi" fullname="Tal Mizrahi"> | |||
<organization/> | ||||
</author> | ||||
<author initials="A" surname="Hacker" fullname="Andrew Hacker"> | ||||
<organization/> | ||||
</author> | ||||
<date month="October" day="2" year="2020"/> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-detnet-security-12 | ||||
"/> | ||||
</reference> | ||||
<!--reference anchor="G.8275.2" | <!-- draft-ietf-idr-rfc5575bis (MISSREF) --> | |||
target="https://www.itu.int/rec/T-REC-G.8275.2/en"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-idr-rfc557 | |||
<front> | 5bis.xml"/> | |||
<title>Precision time protocol telecom profile for phase/time synchroniza | ||||
tion with partial timing support from the network</title> | ||||
<author> | ||||
<organization>International Telecommunication Union</organization> | ||||
</author> | ||||
<date month="June" year="2016"/> | ||||
</front> | ||||
<seriesInfo name="ITU-T G.8275.2/Y.1369.2" value="G.8275.2"/> | ||||
</reference--> | ||||
</references> | <!-- draft-ietf-spring-srv6-network-programming (ESG Eval::AD Followup) --> | |||
<!-- Had to do long way; 2 coauthors are also editors --> | ||||
<reference anchor="SRv6-Network-Prog" target="https://tools.ietf.org/html/dra | ||||
ft-ietf-spring-srv6-network-programming-24"> | ||||
<front> | ||||
<title>SRv6 Network Programming</title> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
role="editor"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="P" surname="Camarillo" fullname="Pablo Camarillo" | ||||
role="editor"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="J" surname="Leddy" fullname="John Leddy"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="D" surname="Voyer" fullname="Daniel Voyer"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="S" surname="Matsushima" fullname="Satoru Matsushim | ||||
a"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="Z" surname="Li" fullname="Zhenbin Li"> | ||||
<organization/> | ||||
</author> | ||||
<date month="October" day="7" year="2020"/> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-spring-srv6-networ | ||||
k-programming-24"/> | ||||
</reference> | ||||
</back> | <reference anchor="IEEE802.1TSNTG" target="https://1.ieee802.org/tsn/"> | |||
<front> | ||||
<title>Time-Sensitive Networking (TSN) Task Group</title> | ||||
<author> | ||||
<organization>IEEE</organization> | ||||
</author> | ||||
<date/> | ||||
</front> | ||||
</reference> | ||||
<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 Std' value='802.1AE-2018' /> | ||||
<seriesInfo name="DOI" value="10.1109/IEEESTD.2018.8585421"/> | ||||
</reference> | ||||
<reference anchor="nwcrg" target="https://datatracker.ietf.org/rg/nwcrg/ | ||||
about"> | ||||
<front> | ||||
<title>Coding for efficient NetWork Communications Research Group (n | ||||
wcrg)</title> | ||||
<author> | ||||
<organization>IRTF</organization> | ||||
</author> | ||||
<!-- <date year=""/> --> | ||||
</front> | ||||
</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 Andersson"/>, <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"/>, and | ||||
<contact fullname="Carlos J. Bernardos"/> for their various contributions | ||||
to this work. | ||||
</t> | ||||
</section> | ||||
<section anchor="contrib" numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<t> | ||||
The following people contributed substantially to the content of this | ||||
document:</t> | ||||
<ul empty="true" spacing="compact"> | ||||
<li><t><contact fullname="Don Fedyk"/></t></li> | ||||
<li><t><contact fullname="Jouni Korhonen"/></t></li> | ||||
</ul> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 204 change blocks. | ||||
981 lines changed or deleted | 1086 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/ |