Network Working Group X. Geng
Internet-Draft M. Chen
Intended status: Standards Track Huawei
Expires: September 6, 2018 Z. Li
China Mobile
March 05, 2018

DetNet Configuration YANG Model
draft-geng-detnet-conf-yang-01

Abstract

This document defines a YANG data Model for Deterministic Networking (DetNet), covering the device / link capabilities and resources. It can be used in network capability advertising, device configuration and status reporting.

Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on September 6, 2018.

Copyright Notice

Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

A lot of use cases in industry and other areas require the network to provide service that can satisfy strict quality requirements, e.g., extremely low packet loss rate, bounded low latency and jitter, together with other best effort flows [I-D.ietf-detnet-use-cases]. Deterministic Networking (DetNet) is able to provide high quality deterministic service in layer 3 in an IP/MPLS network.

[I-D.ietf-detnet-architecture] defines the whole picture of DetNet; [I-D.dt-detnet-dp-sol] defines DetNet flow encapsulation and forwarding process;

As defined in the [I-D.ietf-detnet-flow-information-model] , DetNet information model can be distinguished as:

      User                  Network Operator
              flow/service
       /\      info model    +---+
      /  \ <---------------> | X |    management/control
      ----                   +-+-+       plane entity
                               ^
                               |   configuration
                               |     info model
                        +------------+
                        v      |     |
                       +-+     |     v  Network
                       +-+     v    +-+  nodes
                              +-+   +-+
                              +-+

They are shown in the Figure 1.

[I-D.ietf-detnet-flow-information-model] defines the user network interface (UNI), including flow/service information model.

This document defines DetNet configuration information model and YANG data Model, covering the device / link capabilities and resources. It can be used in network capability advertising, device configuration and status reporting. The YANG model is protocol irrelevant, and serves as a base data model that other DetNet specific models can augment.

2. Terminologies

This documents uses the terminologies defined in [I-D.ietf-detnet-architecture].

3. DetNet Configuration Attribute

This section defines network attributes for DetNet, which are used for capability advertising/collection (section 3.1 DetNet Topology Attribute), flow configuration (section 3.2 DetNet Path Configuration Attribute/ section 3.3 DetNet Device configuration Attribute) and status reporting (section 3.4 DetNet Status Attribute).

3.1. DetNet Topology Attribute

DetNet Topology Attribute describes the network topology and capability, which is the basis of path computation and flow transmission.

3.1.1. Node Type

Figure 2 shows a basic architecture of a DetNet Network. Three types of DetNet nodes are showed in the picture, which play different roles with different functions, as defined in [I-D.ietf-detnet-architecture].

         
                          Transit          Transit           
                         |<-Tnl->|        |<-Tnl->|               
    End                  V   1   V        V   2   V               End
   System       +--------+       +--------+       +--------+     System
   +---+        |   R1   |=======|   R2   |=======|   R3   |      +---+
   | X.|        |        |       |        |       |        |      |.X |
   | H1|========|        |       |        |       |        |======| H2|
   |   |        |        |       |        |       |        |      |   |
   +---+        |        |=======|        |=======|        |      +---+
       ^        +--------+       +--------+       +--------+      ^
       |         Edge Node        Relay Node       Edge Node      |
       |                                                          |
       |<--------------- End to End DetNet Service -------------->|

Edge node

Edge node is the boundary of a DetNet network, including ingress and egress. The DetNet flow is started at an edge node, then the packet of a DetNet flow is forwarded to the DetNet Network after being encapsulated or recapsulated in the edge node. Once having passed through the network, DetNet flow is ended at another edge node; the packet is decapsulated or recapsulated, and forwarded to the end system or another network. Ingress and Egress may also do repliaction/elimination, flow aggregation/split and load balance [I-D.thubert-tsvwg-detnet-transport]. Edge node can be proxy of the network and connect to the controller through UNI [I-D.ietf-detnet-flow-information-model].

Relay node

Relay node is designed to do replication and elimination in the DetNet network to satisfy the reliability requirement. The packet of a DetNet flow is replicated in one relay node and forwarded to disjoint paths. These paths merge with each other in another relay node, and after the redundant packets being eliminated, only one copy of the flow is forwared to the next hop. Relay node can identify DetNet flow and guide the packet to the next relay node or edge node, so it can also be the tunnul initial/terminal which is very important to guarantee DetNet explicit route.

Transit node

The node between relay node/edge node is transit node, just like the p node in MPLS. Packet is transmitted through transit node hop by hop. If the DetNet service requires bounded latency, every node in the network is supposed to do congestion protection, with some queuing management algorithm to guanrantee per hop latency, including the transit node.

NodeType attribute specifies which type of DetNet node one device belongs to. It indicates DetNet node capability, which can be used in path computation. These three nodes are explianed in capability ascending order above, that is to say normally, the DetNet node capability: Edge node>Relay node> Transit node; the more capable node type can play a less capable node's role, for example, using a Relay node as a transit node. However, this attribute doesn't implicate specific functions of the node, which have their own corresponding attributes stated in the following text.

3.1.2. Replication Capability

ReplicationCapability specifies whether a DetNet node has the capability of packet replication. A DetNet Node with replication capability can: 1) identify the packets that need to be replicated; 2) do packet replication; 3) encapsulate the replicated packets and send them to different next hop.

3.1.3. Elimination Capability

EliminationCapability specifies whether a DetNet node has the capability of packet elimination. DetNet Node with elimination capability can: 1) record the packets that have been received from different port; 2) Filter the redundant packets from the same flow and eliminate the redundant packets; 3) encapsulate the first-received packets and send them to the right next hop.

3.1.4. Queuing Management Algorithm

Queuing Management Algorithm is the most important method of congestion protection, including scheduling, shaping and preemption. IEEE defines some queuing management algorithms to guarantee TSN service quality, most of them can be used in DetNet, for example:

This attribute specifies which type of Queuing Management Algorithm(s) is(are) used in the output queue for DetNet (except for IEEE802.1Qci, which is normally used in input queue).

Editor's Note: Every queuing management algorithm has its parameters, which are to be defined in the next step work. However, one of the concerns of this part of work is whether it is out of the charter's scope.

3.1.5. Resource Reservation Base

There is a set of parameters that inflence reservation operation for the entire device. Those parameters are contained in Reservation Base attribute, including the following parameters:

3.1.6. Bandwidth Metric

[I-D.ietf-teas-yang-te-topo] defines the following parameters for bandwidth reservation:

Considering the features of DetNet, bandwidth reservation parameters for DetNet are defined as follows to augment the te-topology:

For example, there are three classes of DetNet service A, B, and C, with A the lowest latency and C the highest. 'Maximum DetNet Reservable Bandwidth(N)' can be presented as 'MaxBw(N)'; DetNet Unreserved Bandwidth(N) can be presented as 'UnBw(N)'. MaxBw(A) can be used by A; MaxBw(B) can by used by A&B, and MaxBw(C) can be used by A&B&C. So, if MaxBw(A)=10, MaxBw(B)=25, MaxBw(C)=40, and we allocate 15 to A, 30 to B and 10 to C, then UnBw(A)=0, UnBw(B)= 0, UnBw(C)=20.

3.1.7. Delay Metric

Delay Metric is used to describe the delay of every hop, which includes the following parameters:

Link Delay specifies the delay along the network media for a packet transmitted from the specified Port of this station to the neighboring Port on a different station.

Operations causing Packet Processing Delay includes: Per-Stream Filtering and Policing([IEEE802.1Qci]), Flow Classification, Looking up in Forwarding Information Base, and etc. It covers the process from the packet being received by the node to the packet being sent to the output queue. It is packet length dependent.

Queuing Delay specifies the delay for a packet in the output queue. It is determined by the Queuing Management Algorithm and Port Transmission Rate.

The delay of every hop is the sum of link delay, packet processing delay and output queuing delay.

Editor's Note: The delay metric is also discussed in IEEE with other considerations, which can be found: <http://www.ieee802.org/1/files/public/docs2017/cr-finn-timing-model-0617-v00.pdf> and <http://www.ieee802.org/1/files/public/docs2017/cr-specht-bridge-timing-0917-v01.pdf>. More discussions are needed here.

3.1.8. Synchronization Accuracy

Most of the DetNet service requires clock synchronization. Synchronization Accuracy is necessary for queuing algorithm configuration and delay prediction. For example, Synchronization Accuracy is an important parameter when calculating the guard band for CQF[IEEE802.1Qch].

Editor's Note: The method used to achieve time synchronization is not specified in this draft.

3.2. DetNet Path Configuration Attribute

Path Attribute is used for path configuration in DetNet Edge Node(Ingress).

3.2.1. Path Constrains

DetNet path constrains are mainly based on the application requirement, including maximum latency/number of replication trees, and traffic specification, which can be used to calculate bandwidth requirement[I-D.ietf-detnet-flow-information-model]. There may be other path constrains when the path is established, which can be added in this attribute in the future version.

3.2.2. Explicit Routing

Explicit routing attribute describes an end-to-end path for DetNet flow, by listing nodes along the path in order and specifying their types. The DetNet node type has been specified in section 4.1.1. If service protection is needed, DetNet flow is replicated in relay node, going through different paths, and eliminated in another relay node. It makes the DetNet route a point-to-multipoint-to-point (P-MP-P) path. In [RFC4875], explicit routing of a P-MP LSP is represented by a P-MP tree. Similarly, a P-MP-P tree is needed in DetNet, and the rules of building the tree is to be defined.

3.3. DetNet Flow Configuration Attribute

DetNet Configuration Attribute is used for path configuration after the path has been calculated, preparing for the DetNet Flow Transportation.

3.3.1. Flow Identification

Flow Identification is data plane relevant, and it is defined in [I-D.ietf-detnet-flow-information-model].

3.3.2. Traffic Specification

Traffic Specification is defined in[I-D.ietf-detnet-flow-information-model] .

3.3.3. Encapsulation

[I-D.dt-detnet-dp-sol] defines more than one data plane protocols for DetNet service, and DetNet Encapsulation attribute specifies the type of encapsulation used in the node, including:

Notes: In one DetNet domain, the encapsulation should be the same; When a flow goes across different domains, the encapsulation needs to be changed. For example, when an DetNet Edge Node connects two TSN domains, at the entry or exit boundary of the DetNet domain, the encapsulation needs to be changed accordingly. Parameters in the encapsulation also needs to do the mapping. for example, the translation from flow Unique ID defined [IEEE802.1Qcc] to DetNet flow ID defined in [I-D.dt-detnet-dp-sol] should be defined in the configuration of the edge node .

3.3.4. Flow Priority

Flow Priority attribute specifies the priority reserved for DetNet flow in PSN header. The transit node can distinguish DetNet flow from non-DetNet flow by DetNet priority. And, if more than one DetNet priority is defined, it can also be used to describe DetNet flows with different quality requirements, e.g. , low latency DetNet flows and high latency DetNet flows.

Notes: In one DetNet domain, the priority reserved for DetNet should be the same. When crossing DetNet domains, the priority should be translated accordingly. For example, the priority transition from TSN domain to DetNet domain is defined in [I-D.varga-detnet-service-model] Annex 2 "Integrating Layer 3 and Layer 2 QoS".

This attribute is also data plane relevant. If there is no priority reserved for DetNet, other attribute should be specified to distinguish DetNet flows. The mapping from flow priority to output queue also makes it necessary to take queuing management algorithm(section 3.1.4) into consideration when defining the DetNet priority.

3.3.5. Queuing Parameters

Queuing Management Algorithm Type is described in section 3.1.4. Different algorithm use different parameters to manage queue. In a fully-centralized configuration model, the parameters can be distributed by CNC; in a distributed configuration model, the device can configure itself based on the application requirement and flow traffic specification information.

The queuing management configuration parameters and the corresponding YANG model are being defined in IEEE. For example, when stream policing and filtering defined in[IEEE802.1Qci] is deployed in one node, the parameter of Stream filter instance table ([IEEE802.1Qci] 8.6.5.1.1), Stream gate instance table ([IEEE802.1Qci] 8.6.5.1.2), Flow meter instance table ([IEEE802.1Qci] 8.6.5.1.3) should be configured by CNC or other control plane protocol.

3.3.6. Replication Function

This attribute specifies whether the node will do replication to the packet of this flow. Configuration of Replication in relay node is defined in [IEEE802.1CB].

3.3.7. Elimination Function

This attribute specifies whether the node will do elimination to the packet of a flow. For a multicast flow, elimination can be performed on some ports, but not on others in one node. Configuration of Elimination in relay node is defined in [IEEE802.1CB].

3.3.8. Routing

Routing configuration is data plane relevant, but no matter what the encapsulation is, the following attributes should be contained:

[I-D.dt-detnet-dp-sol]

It is also relevent to the data plane identification. Take MPLS solution defined in

as an example:

Transit Node: Operation at a transit (P) node is normal MPLS forwarding. The outer label is either swapped or popped as required, and the packet is forwarded along the LSP.

Relay Node: S-lable is used to identfiy the flow and indicate whether the packet should be replicated or eliminated or both. In ono of the relay nodes in the path, the parameter table can be as follows:

  ______________________________________________________________
  | Incoming |         |             |             | Outcoming |
  | S-Label  | Flow ID | Replication | Elimination | S-Label   |
  --------------------------------------------------------------
  | Label-1  | Flow 1  |     Yes     |     No      |  Label-5  |
  --------------------------------------------------------------
  | Label-2  | Flow 2  |     No      |     Yes     |  Label-6  |
  --------------------------------------------------------------
  | Label-3  | Flow 3  |    Yes      |     Yes     |  Label-7  |
  --------------------------------------------------------------

In this table, Lable-1/ Lable-2/ Label-3 are distributed from the current relay node to the previous relay node in the path; Lable-5/ Lable-6/ Label-7 are distributed from the next relay node to the current relay node in the path;

3.4. DetNet Status Attribute

The DetNet status attributes are provided by the device for each DetNet flow. The Status Attributes describe the status of the flow when it is transmitted in the network.

3.4.1. Performance Status

Performance Status contains:

3.4.2. Replication/Elimination Status

Detailed discussion of Replication/Elimination status is specified in [IEEE802.1CB].

If the S-label indicates that the packet is supposed to be eliminated, the relay node should read the sequence number of the packet and see whether this packet has been received before. For example, the parameters of one relay node can be:

  _____________________________
  | Flow ID | Sequence Number | 
  -----------------------------
  | Flow 1  |      1001       |
  -----------------------------
  | Flow 1  |      1002       |
  -----------------------------
  | Flow 1  |      1003       |
  -----------------------------

4. DetNet Configuration YANG Model

This section specifies the network management information that is used for the fully centralized DetNet configuration model. YANG model for other configuration model is to be defined in the future version of the draft.

4.1. DetNet Topology YANG Model

<CODE BEGINS> file "ietf-detnet-topology@2018-01-15.yang"
  module ietf-te-detnet-topology {  
    namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-topology";
    prefix "detnet-to";

    
    import ietf-te-types {
      prefix "te-types";
    }

    import ietf-routing-types {
      prefix "rt-types";
    }

    import ietf-te-topology {
      prefix "tet";
    }

    import ietf-network {
      prefix "nw";
    }
    
    import ietf-network-topology {
      prefix "nt";
    }

    organization 
      "IETF Deterministic Networking(detnet)Working Group";

    contact
     "WG Web:   <http://tools.ietf.org/wg/detnet/>
      WG List:  <mailto:detnet@ietf.org>
 
      WG Chair: Lou Berger
                <mailto:lberger@labn.net>

      Editor:   Xuesong Geng
                <mailto:gengxuesong@huawei.com>

      Editor:   Mach Chen
                <mailto:mach.chen@huawei.com>";

    description
      "This YAGN module augments the 'ietf-te-topology'
       module with detnet capability data for detnet 
       configuration";
 
    revision "2018-01-15" {
      description "Initial revision";
      reference "RFC XXXX: YANG Data Model for DetNet Topologies";
      //RFC Ed.: replace XXXX with actual RFC number and remove
      // this note
    }

    grouping detnet-link-info-attributes{
      description 
        "DetNet capability attributes in a DetNet topology";
      container detnet-performance-metric-attributes{
        description
          "Link performance information in real time.";
        uses detnet-performance-metric-attributes;
      }
      container detnet-queuing-management-algorithm{
        description
          "Detnet queuing management algorithm used in 
           output queue";
        uses detnet-queuing-management-algorithm;
      }
    }

    grouping detnet-performance-metric-attributes{
      description
        "Link performance information in real time.";
      container maximum-detnet-reservable-bandwidth{
        uses te-types:te-bandwidth; 
        description
          "This container specifies the maximum bandwidth 
           that is reserved for DetNet on this link.";
      }
      container reserved-detnet-bandwidth{
        uses te-types:te-bandwidth;
        description
          "This container specifies the bandwidth that has 
           been reserved for DetNet on this link.";
      }
      container available-detnet-bandwidth{
        uses te-types:te-bandwidth;
        description
          "This container specifies the bandwidth that can 
           be used for new DetNet flows on this link.";
      }
      leaf minimum-detnet-device-delay{
        type uint32;
        description
          "Minimum delay in the device for DetNet flows";
      }
      leaf maximum-detnet-device-delay{
        type uint32;
        description
          "Maximum delay in the device for DetNet flows";
      }
    }

    grouping detnet-queuing-management-algorithm{
      description
        "Detnet queuing management algorithm used in 
         output queue";
      leaf queuing-management-algorithm{
        type enumeration{
          enum credit-based-shaping{
            reference
              "IEEE P802.1 Qav";
          }
          enum time-aware-shaping{
            reference
              "IEEE P802.1 Qbv";
          }
          enum  cyclic-queuing-and-forwarding{
            reference
              "IEEE P802.1 Qch";
          }
          enum  asynchronous-traffic-shaping{
            reference
              "IEEE P802.1 Qcr";
          }
        }
        description
          "Detnet queuing management algorithm type";
      }
    }


    grouping detnet-node-info-attributes{
      description 
        "DetNet capability attributes in a DetNet node";
      container detnet-node-type{
        description 
          "Three types of DetNet nodes";
        reference
          "draft-ietf-detnet-architecture-03:
           Deterministic Networking Architecture";
        uses detnet-node-type; 
      }
      container detnet-resource-reservation-attributes{
        description 
          "Attributes about resource reservation for
           DetNet flows";
        uses detnet-resource-reservation-attributes;
      }
      leaf detnet-elimination-capability{
        type boolean;
        description 
          "This node is able to do DetNet packet 
           elimination";
      }
      leaf detnet-replication-capability{
        type boolean;
        description 
          "This node is able to do DetNet packet 
           replication";
      }
    }

    grouping detnet-node-type{
      description 
        "This grouping defines three types of DetNet nodes"; 
      reference
        "draft-ietf-detnet-architecture-03:Deterministic 
         Networking Architecture";
      leaf detnet-node-type{
        type enumeration{
          enum edge-node{
            description
              "An instance of a DetNet relay node that  
               includes either a DetNet service layer proxy 
               function for DetNet service protection (e.g. 
               the addition or removal of packet sequencing 
               information) for one or more end systems, or 
               starts or terminate congestion protection at 
               the DetNet transport layer,analogous to a 
               Label Edge Router (LER).";
          }
          enum relay-node{
            description
              "A DetNet node including a service layer 
               function that interconnects different DetNet 
               transport layer paths to provide service 
               protection.A DetNet relay node can be a bridge, 
               a router, a firewall, or any other system that 
               participates in the DetNet service layer. It 
               typically incorporates DetNet transport layer 
               functions as well, in which case it is 
               collocated with a transit node.";
          }
          enum  transit-node{
            description
              "A node operating at the DetNet transport layer, 
               that utilizes link layer and/or network layer 
               switching across multiple links and/or 
               sub-networks to provide paths for DetNet 
               service layer functions.Optionally provides 
               congestion protection over those paths.An MPLS 
               LSR is an example of a DetNet transit node.";
          }
        }
        description 
        "The type this node belongs to, which also determines
         the role the node can play in DetNet ";
      }
    }

    grouping detnet-resource-reservation-attributes{
      description 
        "This grouping describs reservation operation for 
         the entire device";
      leaf MaxFanInPorts{
        type uint32;
        description 
          "maximum number of fan-in ports in the device";
      }
      leaf MaxPacketSize{
        type uint32;
        description 
        "maximum Packet size the device allows";
      }
      leaf MaxDetNetClasses{
        type uint32;
        description 
          "maximum number of traffic classes that can be 
           reserved for DetNet";
      }
    } 

    augment "/nw:networks/nw:network/nw:node" {
      when "../nw:network-types/tet:te-topology" 
      {
        description
        "";
      }
      description 
        "Advertised DetNet link information attributes.";
      uses detnet-link-info-attributes; 
    }

    augment "/nw:networks/nw:network/nt:link" {
      when "../nw:network-types/tet:te-topology"
      {
        description
        "";
      } 
      description 
        "Advertised DetNet node information attributes.";
      uses detnet-node-info-attributes;
    }
  }
<CODE ENDS>

4.2. DetNet Static Configuration YANG Model

<CODE BEGINS> file "ietf-detnet-static @2018-01-15.yang"
  module ietf-detnet-static {
    namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-static";
    prefix "detnet-static";

    import ietf-routing {
      prefix "rt";
    }

    import ietf-yang-types{
      prefix "yang";
    }
    
    import ietf-inet-types{
      prefix "inet";
    }
   
    import ietf-routing-types {
      prefix "rt-types";
    }
    
    organization 
      "IETF Deterministic Networking(detnet)Working Group";

    contact
     "WG Web:   <http://tools.ietf.org/wg/detnet/>
      WG List:  <mailto: detnet@ietf.org>

      WG Chair: Lou Berger
                <mailto:lberger@labn.net>
 
      Editor:   Xuesong Geng
                <mailto:gengxuesong@huawei.com>
 
      Editor:   Mach Chen
                <mailto:mach.chen@huawei.com>";
 
      description
        "This YAGN module augments the 'ietf-routing'module 
         with detnet flow configuration attribute";
      
      revision "2018-01-15" {
        description "Initial revision";
        reference "RFC XXXX: YANG Data Model for DetNet Topologies";
        //RFC Ed.: replace XXXX with actual RFC number and remove
        // this note
      }

      grouping flow-identfication {
        description
          "DetNet flow identification";
        reference
          "draft-farkas-detnet-flow-information-model";
        leaf source-ip-address {
          type inet:ip-address;
          description
            "Source IP address";
        }    
        leaf destination-ip-address {
          type inet:ip-address;
          description
            "Destination IP address";
        }    
        leaf source-mac-address {
          type yang:mac-address;
          description
            "Source MAC address";
        }    
        leaf destination-mac-address {
          type yang:mac-address;
          description
            "Destination MAC address";
        }    
        leaf ipv6-flow-label {
          type uint32;
          description
            "ipv6 flow label";
        }    
        leaf mpls-label {    
          type rt-types:mpls-label;
          description
            "MPLS Label";
        }
      }
  
      grouping traffic-specification{
        description
          "traffic-specification specifies how the Source 
           transmits packets for the flow.  This is the 
           promise/request of the Source to the network.
           The network uses this traffic specification 
           to allocate resources and adjust queue 
           parameters in network nodes.";
        reference
          "draft-farkas-detnet-flow-information-model";
        leaf max-packets-per-interval{
          type uint16;
          description
            "max-packets-per-interval specifies the maximum 
             number of packets that the application shall 
             transmit in one Interval.";
        }  
        leaf max-packet-size{
          type uint16;
          description
            "max-packet-size specifies maximum packet size 
             that the Source will transmit";
        }
        leaf queuing-algorithm-selection{
          type uint8;
          description
          "";
        }
      }
  
      grouping routing-configuration{
        description
          "configuration parameters direct data plane 
           operations";
        container flow-identification{
          description
            "flow identification";
          uses flow-identfication;
        }
        leaf operation{ 
          type enumeration{
            enum transmission{
              description
                "Operation: transmit ";
            }
            enum replication{
              description
                "Operation: packet replication";
            }
            enum elimination{
              description
                "Operation: packet elimination";
            }
            enum elimination-and-replication{
              description
                "Operation: packet elimination and 
                 replication";
            }
          }
          description
            "The operation will be done to the 
             packet";
        }
      }  
  
      grouping queuing-parameters{
        description
          "The paramters used to configure
           queuing managment algorithm";
      }
  
      grouping replication-function{
        description
          "The paramters used to configure
           packet replication";
      }
  
      grouping elimination-function{
        description
          "The paramters used to configure
           packet elimination";
      }
  
      augment "/rt:routing"{
        description 
          "DetNet node static configuration 
           attributes.";
        uses flow-identfication;
        uses traffic-specification;
        uses routing-configuration;
        uses queuing-parameters;
        uses replication-function;
        uses elimination-function;
      }
    }
<CODE ENDS>

5. DetNet Configuration Model Classification

This section defines three classes of DetNet configuration model: fully distributed configuration model, fully centralized configuration model, hybrid configuration model, based on different network architectures, showing how configuration information exchanges between various entities in the network.

5.1. Fully Distributed Configuration Model

In a fully distributed configuration model, UNI information is transmitted over DetNet UNI protocol from the user side to the network side; then UNI information and network configuration information propagate in the network over distributed control plane protocol. For example:

1) IGP collects topology information and DetNet capabilities of network([I-D.geng-detnet-info-distribution]);

2) Control Plane of the Edge Node(Ingress) receives a flow establishment request from UNI and calculates a/some valid path(s);

3) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with explicit route. After receiving the PATH message, the other Edge Node(Egress) sends a Resv message with distributed label and resource reservation request.

Current distributed control plane protocol,e.g., RSVP-TE[RFC3209], SRP[IEEE802.1Qcc], can only reserve bandwidth along the path, while the configuration of a fine-grained schedule, e.g.,Time Aware Shaping(TAS) defined in [IEEE802.1Qbv], is not supported.

The fully distributed configuration model is not covered by this draft. It should be discussed in the future DetNet control plane work.

5.2. Fully Centralized Configuration Model

In the fully centralized configuration model, UNI information is transmitted from Centralized User Configuration (CUC) to Centralized Network Configuration(CNC). Configurations of routers for DetNet flows are performed by CNC with network management protocol.For example:

1) CNC collects topology information and DetNet capability of network through Netconf;

2) CNC receives a flow establishment request from UNI and calculates a/some valid path(s);

3) CNC configures the devices along the path for flow transmission.

5.3. Hybrid Configuration Model

In the hybrid configuration model, controller and control plane protocols work together to offer DetNet service, and there are a lot of possible combinations. For example:

1) CNC collects topology information and DetNet capability of network through IGP/BGP-LS;

2) CNC receives a flow establishment request from UNI and calculates a/some valid path(s);

3) Based on the calculation result, CNC distributes flow path information to Edge Node(Ingress) and other information(e.g. replication/elimination) to the relevant nodes.

4) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with explicit route. After receiving the PATH message, the other Edge Node(Egress) sends a Resv message with distributed label and resource reservation request.

or

1) Controller collects topology information and DetNet capability of network through IGP/BGP-LS;

2) Control Plane of Edge Node(Ingress) receives a flow establishment request from UNI;

3) Edge Node(Ingress) sends the path establishment request to CNC through PCEP;

4) After Calculation, CNC sends back the path information of the flow to the Edge Node(Ingress) through PCEP;

5) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with explicit route. After receiving the PATH message, the other Edge Node(Egress) sends a Resv message with distributed label and resource reservation request.

There are also other variations that can be included in the hybrid model. This draft can not coverer all the control plane data needed in hybrid configuration models. Every solution has there own mechanism and corresponding parameters to make it work.

Editor's Note:

1. There are a lot of optional DetNet configuration models, and different scenario in different use case can choose one of them based on its conditions. Maybe next step of the work is to pick up one or more typical scenarios and give a practical solution.

2. [IEEE802.1Qcc] also defines three TSN configuration models: fully-centralized model, fully-distributed model, centralized Network / distributed User Model. This section defines the configuration model roughly the same, to keep the design of L2 and L3 in the same structure. Hybrid configuration model is slightly different from the 'centralized Network / distributed User Model'. The hybrid configuration model intends to contain more variations.

6. IANA Considerations

This document makes no request of IANA.

Note to RFC Editor: this section may be removed on publication as an RFC.

7. Security Considerations

8. Acknowledgements

9. References

9.1. Normative References

[I-D.dt-detnet-dp-sol] Korhonen, J., Andersson, L., Jiang, Y., Finn, N., Varga, B., Farkas, J., Bernardos, C., Mizrahi, T. and L. Berger, "DetNet Data Plane Encapsulation", Internet-Draft draft-dt-detnet-dp-sol-02, September 2017.
[I-D.ietf-detnet-architecture] Finn, N., Thubert, P., Varga, B. and J. Farkas, "Deterministic Networking Architecture", Internet-Draft draft-ietf-detnet-architecture-04, October 2017.
[I-D.ietf-detnet-flow-information-model] Farkas, J., Varga, B., rodney.cummings@ni.com, r., Jiang, Y. and Y. Zha, "DetNet Flow Information Model", Internet-Draft draft-ietf-detnet-flow-information-model-01, March 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.

9.2. Informative References

[I-D.geng-detnet-info-distribution] Geng, X. and M. Chen, "IGP-TE Extensions for DetNet Information Distribution", Internet-Draft draft-geng-detnet-info-distribution-01, September 2017.
[I-D.ietf-detnet-use-cases] Grossman, E., "Deterministic Networking Use Cases", Internet-Draft draft-ietf-detnet-use-cases-14, February 2018.
[I-D.ietf-teas-yang-te] Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H. and I. Bryskin, "A YANG Data Model for Traffic Engineering Tunnels and Interfaces", Internet-Draft draft-ietf-teas-yang-te-13, March 2018.
[I-D.ietf-teas-yang-te-topo] Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H. and O. Dios, "YANG Data Model for Traffic Engineering (TE) Topologies", Internet-Draft draft-ietf-teas-yang-te-topo-15, February 2018.
[I-D.thubert-tsvwg-detnet-transport] Thubert, P., "A Transport Layer for Deterministic Networks", Internet-Draft draft-thubert-tsvwg-detnet-transport-01, October 2017.
[I-D.varga-detnet-service-model] Varga, B. and J. Farkas, "DetNet Service Model", Internet-Draft draft-varga-detnet-service-model-02, May 2017.
[IEEE802.1CB] , "IEEE, "Frame Replication and Elimination for Reliability (IEEE Draft P802.1CB)", 2017, <http://www.ieee802.org/1/files/private/cb-drafts/>.", 2016.
[IEEE802.1Q-2014] "IEEE, "IEEE Std 802.1Q Bridges and Bridged Networks", 2014, <http://ieeexplore.ieee.org/document/6991462/>.", 2014.
[IEEE802.1Qbu] , "IEEE, "IEEEE Std 802.1Qbu Bridges and Bridged Networks - Amendment 26: Frame Preemption", 2016, <http://ieeexplore.ieee.org/document/7553415/>.", 2016.
[IEEE802.1Qbv] , "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged Networks - Amendment 25: Enhancements for Scheduled Traffic", 2015, <http://ieeexplore.ieee.org/document/7572858/>.", 2016.
[IEEE802.1Qcc] , "IEEE, "Stream Reservation Protocol (SRP) Enhancements and Performance Improvements (IEEE Draft P802.1Qcc)", 2017, <http://www.ieee802.org/1/files/private/cc-drafts/>."
[IEEE802.1Qch] , "IEEE, "Cyclic Queuing and Forwarding (IEEE Draft P802.1Qch)", 2017, <http://www.ieee802.org/1/files/private/ch-drafts/>.", 2016.
[IEEE802.1Qci] , "IEEE, "Per-Stream Filtering and Policing (IEEE Draft P802.1Qci)", 2016, <http://www.ieee802.org/1/files/private/ci-drafts/>.", 2016.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V. and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001.
[RFC4875] Aggarwal, R., Papadimitriou, D. and S. Yasukawa, "Extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE Label Switched Paths (LSPs)", RFC 4875, DOI 10.17487/RFC4875, May 2007.

Authors' Addresses

Xuesong Geng Huawei EMail: gengxuesong@huawei.com
Mach(Guoyi) Chen Huawei EMail: mach.chen@huawei.com
Zhenqiang China Mobile EMail: lizhenqiang@chinamobile.com