This document describes how application flows, or App-flows [
RFC 8655], are carried over DetNet networks. The DetNet architecture [
RFC 8655] models the DetNet-related data plane functions as decomposed into two sub-layers: a service sub-layer and a forwarding sub-layer.
Figure 1, reproduced from [
RFC 8655], shows a logical DetNet service with the two sub-layers.
| packets going | ^ packets coming ^
v down the stack v | up the stack |
+-----------------------+ +-----------------------+
| Source | | Destination |
+-----------------------+ +-----------------------+
| Service sub-layer: | | Service sub-layer: |
| Packet sequencing | | Duplicate elimination |
| Flow replication | | Flow merging |
| Packet encoding | | Packet decoding |
+-----------------------+ +-----------------------+
| Forwarding sub-layer: | | Forwarding sub-layer: |
| Resource allocation | | Resource allocation |
| Explicit routes | | Explicit routes |
+-----------------------+ +-----------------------+
| Lower layers | | Lower layers |
+-----------------------+ +-----------------------+
v ^
\_________________________/
The DetNet forwarding sub-layer may be directly provided by the DetNet service sub-layer -- for example, by IP tunnels or MPLS. Alternatively, an overlay approach 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 used to provide the information needed to reach the next hop in the overlay.
The forwarding sub-layer provides the QoS-related functions needed by the DetNet flow. It may do this directly through the use of queuing techniques and traffic engineering methods, or it may do this through the assistance of its underlying connectivity. For example, it may call upon Ethernet TSN capabilities defined in IEEE 802.1 TSN [
IEEE802.1TSNTG]. The forwarding sub-layer uses buffer resources for packet queuing, as well as reservation and allocation of bandwidth capacity resources.
The service sub-layer provides additional support beyond the connectivity function of the forwarding sub-layer. See
Section 4.3 regarding PREOF. The POF uses sequence numbers added to packets, enabling a range of packet order protection from simple ordering and dropping out-of-order packets to more complex reordering of a fixed number of out-of-order, minimally delayed packets. Reordering requires buffer resources and has an impact on the delay and jitter of packets in the DetNet flow.
The method of instantiating each of the layers is specific to the particular DetNet data plane method, and more than one approach may be applicable to a given network type.
The data plane has two major characteristics: the technology and the encapsulation, as discussed below.
The DetNet data plane is provided by the DetNet service and forwarding sub-layers. The DetNet service sub-layer generally provides its functions for the DetNet application flows by using or applying existing standardized headers and/or encapsulations. The DetNet forwarding sub-layer may provide capabilities leveraging that same header or encapsulation technology (e.g., DN IP or DN MPLS), or it may be achieved via other technologies, as shown in
Figure 2 below. DetNet is currently defined for operation over packet-switched (IP) networks or label-switched (MPLS) networks.
DetNet encodes specific flow attributes (flow identity and sequence number) in packets. For example, in DetNet IP, zero encapsulation is used, and no sequence number is available; in DetNet MPLS, DetNet-specific information may be added explicitly to the packets in the form of an S-Label and a d-CW [
DetNet-MPLS].
The encapsulation of a DetNet flow allows it to be sent over a data plane technology other than its native type. DetNet uses header information to perform traffic classification, i.e., identify DetNet flows, and provide DetNet service and forwarding functions. As mentioned above, DetNet may add headers, as is the case for DN MPLS, or may use headers that are already present, as is the case for DN IP.
Figure 2 illustrates some relationships between the components.
+-----+
| TSN |
+-------+ +-+-----+-+
| DN IP | | DN MPLS |
+--+--+----+----+ +-+---+-----+-+
| TSN | DN MPLS | | TSN | DN IP |
+-----+---------+ +-----+-------+
The use of encapsulation is also required if additional information (metadata) is needed by the DetNet data plane and either (1) there is no ability to include it in the client data packet or (2) the specification of the client data plane does not permit the modification of the packet to include additional data. An example of such metadata is the inclusion of a sequence number required by PREOF.
Encapsulation may also be used to carry or aggregate flows for equipment with limited DetNet capability.
The DetNet data plane can provide or carry the following metadata:
-
Flow-ID
-
Sequence number
The DetNet data plane framework supports a Flow-ID (for identification of the flow or aggregate flow) and/or a sequence number (for PREOF) for each DetNet flow. The Flow-ID is used by both the service and forwarding sub-layers, but the sequence number is only used by the service layer. Metadata can also be used for OAM indications and instrumentation of DetNet data plane operation.
Metadata inclusion can be implicit or explicit. Explicit inclusions involve a dedicated header field that is used to include metadata in a DetNet packet. In the implicit method, part of an already-existing header field is used to encode the metadata.
Explicit inclusion of metadata is possible through the use of IP options or IP extension headers. New IP options are almost impossible to get standardized or to deploy in an operational network and will not be discussed further in this text. IPv6 extension headers are finding popularity in current IPv6 development work, particularly in connection with Segment Routing of IPv6 (SRv6) and IP OAM. The design of a new IPv6 extension header or the modification of an existing one is a technique available in the toolbox of the DetNet IP data plane designer.
Explicit inclusion of metadata in an IP packet is also possible through the inclusion of an MPLS label stack and the MPLS d-CW, using one of the methods for carrying MPLS over IP [
DetNet-MPLS-over-UDP-IP]. This is described in more detail in
Section 3.5.5.
Implicit metadata in IP can be included through the use of the network programming paradigm [
SRv6-Network-Prog], in which the suffix of an IPv6 address is used to encode additional information for use by the network of the receiving host.
An MPLS example of explicit metadata is the sequence number used by PREOF, or even the case where all the essential information is included in the DetNet-over-MPLS label stack (the d-CW and the DetNet S-Label).
An IP data plane may operate natively or through the use of an encapsulation. Many types of IP encapsulation can satisfy DetNet requirements, and it is anticipated that more than one encapsulation may be deployed -- for example, GRE, IPsec.
One method of operating an IP DetNet data plane without encapsulation is to use 6-tuple-based flow identification, where "6-tuple" refers to information carried in IP-layer and higher-layer protocol headers. General background on the use of IP headers and 6-tuples to identify flows and support QoS can be found in [
RFC 3670]. The extra field in the 6-tuple is the DSCP field in the packet. [
RFC 7657] provides useful background on differentiated services (Diffserv) and tuple-based flow identification. DetNet flow aggregation may be enabled via the use of wildcards, masks, prefixes, and ranges. The operation of this method is described in detail in [
RFC 8939].
The DetNet forwarding plane may use explicit route capabilities and traffic engineering capabilities to provide a forwarding sub-layer that is responsible for providing resource allocation and explicit routes. It is possible to include such information in a native IP packet either explicitly or implicitly.
MPLS provides a forwarding sub-layer for traffic over implicit and explicit paths to the point in the network where the next DetNet service sub-layer action needs to take place. It does this through the use of a stack of one or more labels with various forwarding semantics.
MPLS also provides the ability to identify a service instance that is used to process the packet through the use of a label that maps the packet to a service instance.
In cases where metadata is needed to process an MPLS-encapsulated packet at the service sub-layer, the d-CW [
DetNet-MPLS] can be used. Although such d-CWs are frequently 32 bits long, there is no architectural constraint on the size of this structure -- only the requirement that it be fully understood by all parties operating on it in the DetNet service sub-layer. The operation of this method is described in detail in [
DetNet-MPLS].
This section provides informative considerations related to providing DetNet service to flows that are identified based on their header information.
At a high level, the following functions are provided on a per-flow basis.
Resources might be reserved in order to make them available for allocation to specific DetNet flows. This can eliminate packet contention and packet loss for DetNet traffic. This also can reduce jitter for DetNet traffic. Resources allocated to a DetNet flow protect it from other traffic flows. On the other hand, it is assumed that DetNet flows behave in accordance with the reserved traffic profile. It must be possible to detect misbehaving DetNet flows and to ensure that they do not compromise QoS of other flows. Queuing, policing, and shaping policies can be used to ensure that the allocation of resources reserved for DetNet is met.
A flow can be routed over a specific, precomputed path. This allows control of network delay by steering the packet with the ability to influence the physical path. Explicit routes complement reservation by ensuring that a consistent path can be associated with its resources for the duration of that path. Coupled with the traffic mechanism, this limits misordering and bounds latency. Explicit route computation can encompass a wide set of constraints and can optimize the path for a certain characteristic, e.g., highest bandwidth or lowest jitter. In these cases, the "best" path for any set of characteristics may not be a shortest path. The selection of the path can take into account multiple network metrics. Some of these metrics are measured and distributed by the routing system as traffic engineering metrics.
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 replication and elimination capabilities. MPLS offers a number of protection schemes. MPLS hitless protection can be used to switch traffic to an already-established path in order to restore delivery rapidly after a failure. Path changes, even in the case of failure recovery, can lead to the out-of-order delivery of data requiring POFs either within the DetNet service or at a high layer in the application traffic. Establishment of new paths after a failure is out of scope for DetNet services.
Network Coding [
nwcrg], not to be confused with network programming, comprises several techniques where multiple data flows are encoded. These resulting flows can then be sent on different paths. The encoding operation can combine flows and error recovery information. When the encoded flows are decoded and recombined, the original flows can be recovered. Note that Network Coding uses an alternative to packet-by-packet PREOF. Therefore, for certain network topologies and traffic loads, Network Coding can be used to improve a network's throughput, efficiency, latency, and scalability, as well as resilience to partition, attacks, and eavesdropping, as compared to traditional methods. DetNet could use Network Coding as an alternative to other means of protection. Network Coding is often applied in wireless networks and is being explored for other network types.
The use of packet-by-packet load-sharing of the same DetNet flow over multiple paths is not recommended, except for the cases listed above where PREOF are utilized to improve protection of traffic and maintain order. Packet-by-packet load-sharing, e.g., via Equal-Cost Multipath (ECMP) or Unequal-Cost Multipath (UCMP), impacts ordering and, possibly, jitter.
DetNet leverages many different forwarding sub-layers, each of which 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 those in use by IP and MPLS networks. At the Application layer, a client of a DetNet service can use existing techniques to detect and monitor delay and loss.
Network analytics can be inherited from the technologies of the service and forwarding sub-layers. At the DetNet service edge, packet and bit counters (e.g., sent, received, dropped, out of sequence) can be maintained.
The provider of a DetNet service may provide other capabilities to monitor flows, such as more detailed loss statistics and timestamping of events. Details regarding these capabilities are out of scope for this document.
Service protection allows DetNet services to increase reliability and maintain a desired level of service assurance in the case of network congestion or network failure. DetNet relies on the underlying technology capabilities for various protection schemes. Protection schemes enable partial or complete coverage of the network paths and active protection with combinations of the PRF, PEF, and POF.
An example DetNet MPLS network fragment and its packet flow are illustrated in
Figure 3.
1 1.1 1.1 1.2.1 1.2.1 1.2.2
CE1----EN1--------R1-------R2-------R3--------EN2-----CE2
\ 1.2.1 / /
\1.2 /------+ /
+------R4------------------------+
1.2.2
In
Figure 3, the numbers are used to identify the 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-generation copy of packet 1.2, and so on. Note that these numbers never appear in the packet and are not to be confused with sequence numbers, labels, or any other identifiers that appear in the packet. They simply indicate the generation number of the original packet so that its passage through the network fragment can be identified for the reader.
Customer Equipment device CE1 sends a packet into the DetNet-enabled network. This is packet 1. Edge Node EN1 encapsulates the packet as a DetNet packet and 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.
Note that R1 may be directly attached to EN1, or there may be one or more nodes on the path that, for clarity, are not shown in
Figure 3. The same holds true for any other path between two DetNet entities as shown in the figure.
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).
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 packet 1.2.1 to Relay Node R3. Packet copy 1.1 is of no further use and so is discarded by R2.
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 encapsulation from packet copy 1.2.2 and forwards the packet to CE2. When EN2 receives packet copy 1.2.1 later on, the copy is discarded.
The above is of course illustrative of many network scenarios that can be configured.
This example also illustrates a 1:1 protection scheme, meaning there is traffic over each segment of the end-to-end path. Local DetNet 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 time could use the same topology. In this case, there is no PRF, and traffic is switched upon detection of failure. An OAM scheme that 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 prevent misordering of packets. In both cases, the protection paths are established and maintained for the duration of the DetNet service.
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 buffered and the difference in delay of the arriving packets. DetNet uses flow-specific requirements (e.g., maximum number of out-of-order packets, maximum latency of the flow) for configuration of POF-related buffers. If the differential delay between paths is excessively large or there is excessive misordering of the packets, then packets may be dropped instead of being reordered. Likewise, the PEF uses the sequence number to identify duplicate packets, and large differential delays combined with high numbers of packets may exceed the PEF's ability to work properly.
Ring protection may also be supported if the underlying technology supports it. Many of the same concepts apply; however, rings are normally 1+1 protection for data efficiency reasons. [
RFC 8227] provides an example of an MPLS Transport Profile (MPLS-TP) data plane that supports ring protection.
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 accomplished is data 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. 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 aggregation will ensure that per-flow service requirements are achieved.
If bandwidth reservations are used, the reservation should be the sum of all the individual reservations; in other words, the reservations should not add up to an oversubscription of bandwidth reservation. If maximum delay bounds are used, the system should ensure that the aggregate does not exceed the delay bounds of the individual flows.
When an encapsulation is used, the choice of reserving a maximum resource level and then tracking the services in the aggregated service or adjusting the aggregated resources as the services are added is implementation and technology specific.
DetNet flows at edges must be able to handle rejection to an aggregation group due to lack of resources as well as conditions where requirements are not satisfied.
IP aggregation has both data plane and Controller Plane aspects. For the data plane, flows may be aggregated for treatment based on shared characteristics such as 6-tuple [
RFC 8939]. Alternatively, an IP encapsulation may be used to tunnel an aggregate number of DetNet flows between relay nodes.
MPLS aggregation also has data plane and Controller Plane aspects. MPLS flows are often tunneled in a forwarding sub-layer, under the reservation associated with that MPLS tunnel.
Data flows requiring DetNet service are generated and terminated on end systems. Encapsulation depends on the application and its preferences. For example, in a DetNet MPLS domain, the sub-layer functions use the d-CWs, S-Labels, and F-Labels [
DetNet-MPLS] to provide DetNet services. However, an application may exchange further flow-related parameters (e.g., timestamps) that are not provided by DetNet functions.
As a general rule, DetNet domains are capable of forwarding any DetNet flows, and the DetNet domain does not mandate the encapsulation format for end systems or edge nodes. Unless some form of proxy is present, end systems peer with similar end systems using the same application encapsulation format. For example, as shown in
Figure 4, IP applications peer with IP applications, and Ethernet applications peer with Ethernet applications.
+-----+
| X | +-----+
+-----+ | X |
| Eth | ________ +-----+
+-----+ _____ / \ | Eth |
\ / \__/ \___ +-----+
\ / \ /
0======== tunnel-1 ========0_
| \
\ |
0========= tunnel-2 =========0
/ \ __/ \
+-----+ \__ DetNet MPLS domain / \
| X | \ __ / +-----+
+-----+ \_______/ \_____/ | X |
| IP | +-----+
+-----+ | IP |
+-----+
Any of the DetNet service types may be transported by another DetNet service. MPLS nodes may be interconnected by different sub-network technologies, which may include point-to-point links. Each of these sub-network technologies needs to provide appropriate service to DetNet 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 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 by an underlying sub-network technology.
Figure 5 shows several examples of sub-network encapsulations that can be used to carry DetNet MPLS flows over different sub-network technologies. L2 represents a generic Layer 2 encapsulation 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 [
DetNet-MPLS-over-TSN]. UDP/IP represents the encapsulation used on a DetNet IP PSN, as described in [
DetNet-MPLS-over-UDP-IP].
+------+ +------+ +------+
App-flow | X | | X | | X |
+-----+======+--+======+--+======+-----+
DetNet-MPLS | d-CW | | d-CW | | d-CW |
+------+ +------+ +------+
|Labels| |Labels| |Labels|
+-----+======+--+======+--+======+-----+
Sub-network | L2 | | TSN | | UDP |
+------+ +------+ +------+
| IP |
+------+
| L2 |
+------+