This section provides considerations related to providing DetNet service to flows that are identified based on their header information.
Data flows requiring DetNet service are generated and terminated on end systems. This document deals only with IP end systems. The protocols used by an IP end system are specific to an application, and end systems peer with other end systems. DetNet's use of 6-tuple IP flow identification means that DetNet must be aware of not only the format of the IP header, but also of the next protocol value carried within an IP packet (see
Section 5.1.1.3).
For DetNet-unaware IP end systems, service-level proxy functions are needed inside the DetNet domain.
When IP end systems are DetNet aware, no application-level or service-level proxy functions are needed inside the DetNet domain. End systems need to ensure that DetNet service requirements are met when processing packets associated to a DetNet flow. When sending packets, this means that packets are appropriately shaped on transmission and receive appropriate traffic treatment on the connected sub-network; see Sections [
4.3.2] and [
4.2] for more details. When receiving packets, this means that there are appropriate local node resources, e.g., buffers, to receive and process the packets of that DetNet flow.
An important additional consideration for DetNet-aware end systems is avoiding IP fragmentation. Full 6-tuple flow identification is not possible on IP fragments, as fragments don't include the transport headers or their port information. As such, it is important that applications and/or end systems use an IP packet size that will avoid fragmentation within the network when sending DetNet flows. The maximum size can be learned via Path MTU Discovery [
RFC 1191] [
RFC 8201] or via the Controller Plane. Note that Path MTU Discovery relies on ICMP, which may not follow the same path as an individual DetNet flow.
In order to maximize reuse of existing mechanisms, DetNet-aware applications and end systems
SHOULD NOT mix DetNet and non-DetNet traffic within a single 5-tuple.
As a general rule, DetNet IP domains need to be able to forward any DetNet flow identified by the IP 6-tuple. Doing otherwise would limit the number of 6-tuple flow ID combinations that could be used by the end systems. From a practical standpoint, this means that all nodes along the end-to-end path of DetNet flows need to agree on what fields are used for flow identification. Possible consequences of not having such an agreement include some flows interfering with other flows, and the traffic treatment expected for a service not being provided.
From a connection-type perspective, two scenarios are identified:
-
DN attached: the end system is directly connected to an edge node or the end system is behind a sub-network. (See ES1 and ES2 in Figure 3.)
-
DN integrated: the end system is part of the DetNet domain. (See ES3 in Figure 3.)
L3 (IP) end systems may use any of these connection types. A DetNet domain allows communication between any end systems using the same encapsulation format, independent of their connection type and DetNet capability. DN-attached end systems have no knowledge about the DetNet domain and its encapsulation format. See
Figure 3 for L3 end system connection examples.
____+----+
+----+ _____ / | ES3|
| ES1|____ / \__/ +----+___
+----+ \ / \
+ |
____ \ _/
+----+ __/ \ +__ DetNet IP domain /
| ES2|____/ L2/L3 |___/ \ __ __/
+----+ \_______/ \_______/ \___/
Within a DetNet domain, the DetNet-enabled IP routers are interconnected by links and sub-networks to support end-to-end delivery of DetNet flows. From a DetNet architecture perspective, these routers are DetNet relays, as they must be DetNet service aware. Such routers identify DetNet flows based on the IP 6-tuple and ensure that the traffic treatment required by the DetNet service is provided on both the node and any attached sub-network.
This solution provides DetNet functions end to end, but it does so on a per-link and per-sub-network basis. Congestion protection, latency control, and resource allocation (queuing, policing, shaping) are supported using the underlying link/sub-network-specific mechanisms. However, service protection (PRF and PEF) is not provided end to end at the DetNet layer. Instead, service protection can be provided on a per-link (underlying L2 link) and per-sub-network basis.
The DetNet service flow is mapped to the link/sub-network-specific resources using an underlying system-specific means. This implies that each DetNet-aware node on the path looks into the forwarded DetNet service flow packet and utilizes, for example, a 6-tuple to find out the required mapping within a node.
As noted earlier, service protection must be implemented within each link/sub-network independently, using the domain-specific mechanisms. This is due to the lack of unified end-to-end sequencing information that could be used by the intermediate nodes. Therefore, service protection (if enabled) cannot be provided end to end, only within sub-networks. This is shown for a scenario with three sub-networks in
Figure 4, where each sub-network can provide service protection between its borders. "R" and "E" denote replication and elimination points within the sub-network.
<-------------------- DetNet IP ------------------------>
______
____ / \__
____ / \__/ \___ ______
+----+ __/ +====+ +==+ \ +----+
|src |__/ Sub-N1 ) | | \ Sub-N3\____| dst|
+----+ \_______/ \ Sub-network 2 | \______/ +----+
\_ _/
\ __ __/
\_______/ \___/
+---+ +---------E--------+ +-----+
+----+ | | | | | | | +----+
|src |----R E--------R +---+ E------R E------+ dst|
+----+ | | | | | | | +----+
+---+ +-----R------------+ +-----+
If end-to-end service protection is desired, it can be implemented -- for example, by the DetNet end systems using Layer 4 (L4) transport protocols or application protocols. However, these protocols are out of the scope of this document.
Note that not mixing DetNet and non-DetNet traffic within a single 5-tuple, as described above, enables simpler 5-tuple filters to be used (or reused) at the edges of a DetNet network to prevent non-congestion-responsive DetNet traffic from escaping the DetNet domain.
Class of Service (CoS) for DetNet flows carried in IPv4 and IPv6 is provided using the standard DSCP field [
RFC 2474] and related mechanisms.
One additional consideration for DetNet nodes that support CoS services is that they must ensure that the CoS service classes do not impact the congestion protection and latency control mechanisms used to provide DetNet QoS. This requirement is similar to the requirement for MPLS Label Switching Routers (LSRs) that CoS LSPs cannot impact the resources allocated to TE LSPs [
RFC 3473].
Quality of Service (QoS) for DetNet service flows carried in IP must be provided locally by the DetNet-aware hosts and routers supporting DetNet flows. Such support leverages the underlying network layer such as 802.1 TSN. The node-internal traffic control mechanisms used to deliver QoS for IP-encapsulated DetNet flows are outside the scope of this document. From an encapsulation perspective, the combination of the 6-tuple (the typical 5-tuple enhanced with the DSCP) and optionally the flow label uniquely identifies a DetNet IP flow.
Packets that are identified as part of a DetNet IP flow but that have not been the subject of a completed reservation can disrupt the QoS offered to properly reserved DetNet flows by using resources allocated to the reserved flows. Therefore, the network nodes of a DetNet network
MUST ensure that no DetNet-allocated resource, e.g., queue or shaper, is used by such flows. There are multiple methods that may be used by an implementation to defend service delivery to reserved DetNet flows, including but not limited to:
-
Treating packets associated with an incomplete reservation as non-DetNet traffic.
-
Discarding packets associated with an incomplete reservation.
-
Re-marking packets associated with an incomplete reservation. Re-marking can be accomplished by changing the value of the DSCP field to a value that results in the packet no longer matching any other reserved DetNet IP flow.
While path selection algorithms and mechanisms are out of the scope of the DetNet data plane definition, it is important to highlight the implications of DetNet IP flow identification on path selection and next hops. As mentioned above, the DetNet IP data plane identifies flows using 6-tuple header information as well as the optional (flow label) header field. DetNet generally allows for both flow-specific traffic treatment and flow-specific next hops.
In non-DetNet IP forwarding, it is generally assumed that the same series of next hops, i.e., the same path, will be used for a particular 5-tuple or, in some cases (e.g., [
RFC 5120]), for a particular 6-tuple. Using different next hops for different 5-tuples does not take any special consideration for DetNet-aware applications.
Care should be taken when using different next hops for the same 5-tuple. As discussed in [
RFC 7657], unexpected behavior can occur when a single 5-tuple application flow experiences reordering due to being split across multiple next hops. Understanding of the application and transport protocol impact of using different next hops for the same 5-tuple is required. Again, this only indirectly impacts path selection for DetNet flows and this document.
As described in [
RFC 8938], the ability to aggregate individual flows and their associated resource control into a larger aggregate is an important technique for improving scaling by reducing the state per hop. DetNet IP data plane aggregation can take place within a single node, when that node maintains state about both the aggregated and individual flows. It can also take place between nodes, when one node maintains state about only flow aggregates while the other node maintains state on all or a portion of the component flows. In either case, the management or control function that provisions the aggregate flows must ensure that adequate resources are allocated and configured to provide the combined service requirements of the individual flows. As DetNet is concerned about latency and jitter, more than just bandwidth needs to be considered.
From a single node perspective, the aggregation of IP flows impacts DetNet IP data plane flow identification and resource allocation. As discussed above, IP flow identification uses the IP 6-tuple for flow identification. DetNet IP flows can be aggregated using any of the 6-tuple fields and optionally also by the flow label. The use of prefixes, wildcards, lists, and value ranges allows a DetNet node to identify aggregate DetNet flows. From a resource allocation perspective, DetNet nodes ought to provide service to an aggregate rather than on a component flow basis.
It is the responsibility of the DetNet Controller Plane to properly provision the use of these aggregation mechanisms. This includes ensuring that aggregated flows have compatible (e.g., the same or very similar) QoS and/or CoS characteristics; see
Section 4.3.2. It also includes ensuring that per-component-flow service requirements are satisfied by the aggregate; see
Section 5.3.
The DetNet Controller Plane
MUST ensure that non-congestion-responsive DetNet traffic is not forwarded outside a DetNet domain.
While the DetNet IP data plane must support bidirectional DetNet flows, there are no special bidirectional features within the data plane. The special case of co-routed bidirectional DetNet flows is solely represented at the management and control plane levels, without specific support or knowledge within the DetNet data plane. Fate sharing and associated or co-routed bidirectional flows can be managed at the control level.
Control and management mechanisms need to support bidirectional flows, but the specification of such mechanisms is out of the scope of this document. An example control plane solution for MPLS can be found in [
RFC 7551].