Network Working Group X. Geng
Internet-Draft M. Chen
Intended status: Standards Track Huawei
Expires: January 3, 2019 Z. Li
China Mobile
R. Rehman
Cisco
July 02, 2018

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

Abstract

This document defines a YANG data model for Deterministic Networking (DetNet). It covers the model of DetNet device, service layer and transport layer. It also covers the DetNet topology YANG model.

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 January 3, 2019.

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 a YANG data model for Deterministic Networking (DetNet). It covers the model of DetNet device, DetNet service layer and DetNet transport layer. It also covers the DetNet topology. The models defined in this document can be used for DetNet device capability configuration, DetNet flow configuration, DetNet flow status reporting and DetNet topology discovery.

2. Terminologies

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

3. Model Overview

3.1. Modules Relationship

     +--------------------+                    
     |ietf-detnet-topology|          
     +--------------------+                     
      
     +-------------------+                     +--------------+
     |ietf-detnet-device |           --------->|ietf-detnet-ip|
     +-------------------+         /           +--------------+
                                  /    DetNet ip data plane solution
     +------------------+        /
     |ietf-detnet-static|o-----+
     +------------------+       \    DetNet mpls data plane solution
                                 \            +----------------+
                                   ---------> |ietf-detnet-mpls|
                                              +----------------+
                                                       o
                                                       |
                                                       V
                                               +--------------+
                                               |ietf-detnet-sr|                  
                                               +--------------+    
Figure 1 : Relationship of DetNet configuration yang modules

3.2. Design Considerations

There are 6 yang models defined in this draft. The ietf-detnet-topology model covers the DetNet topology that can be used for DetNet topology discovery; the ietf-detnet-device model covers the DetNet device configuration; the ietf-detnet-static covers the static DetNet flow configuration. The ietf-detnet-ip and ietf-detnet-mpls are augmentations to ietf-detnet-static, which covers the IP encapsulation and MPLS encapsulation respectively. The ietf-detnet-sr is an augmentation to ietf-detnet-mpls. The ietf-detnet-ip, ietf-detnet-mpls and ietf-detnet-mpls will be defined in future once the data plane encapsulations are stabilized.

4. DetNet Topology Attributes

This section introduces the topology related attributes for DetNet.

4.1. Node Type

[I-D.ietf-detnet-architecture] introduces three types of DetNet nodes which play different roles with different functions. To differentiate to which type a node belong, Node Type is introduced. It also implies DetNet node capabilities, which is useful for path computation.

4.2. PREOF Capability

Packet Replication, Elimination and Ordering Function (PREOF) are defined in [I-D.ietf-detnet-architecture], a PREOF capable node SHOULD advertise its capabilities that are necessary for the path computation nodes when compute a DetNet flow path. PREOF capability is actually consist of Packet Replication Function (PRF), Packet Elimination Function (PEF), Packet Ordering Function (POF).

4.3. Queuing Management Algorithm Capability

Queuing Management Algorithms are for congestion protection, which include scheduling, shaping and preemption. IEEE defines several queuing management algorithms for Time Sensitive Networking (TSN), most of them can be reused by DetNet. This document introduces the following types to identify the corresponding Queuing Management Algorithms:

4.4. Resource Reservation Base

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

4.5. 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.

4.6. 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 node to the neighboring Port on a different node.

Operations causing Packet Processing Delay includes: Per-Stream Filtering and Policing (PSFP) ([IEEE802.1Qci]), Flow Classification, Forwarding Information Base (FIB) lookup, and etc. It covers the processes from the packet being received by the node to the packet being sent to the output queue.

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.

4.7. 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.

5. DetNet Configuration Attributes

DetNet configuration attributes include two parts: DetNet device related attributes (Section 5.1) and DetNet flow related attributes (Section 5.2).

5.1. DetNet Device Configuration Attribute

DetNet device configuration is flow irrelevant, and it covers PREOF and interfaces configurations. The interface configuration part is defined in IEEE, which are mainly about how to configure the queuing management algorithms and relevant parameters.

For DetNet device configuration, the following attributes are included:

5.2. DetNet Flow Configuration Attributes

DetNet flow configuration attributes include three parts: DetNet service proxy instance configuration, DetNet service instance configuration and DetNet transport layer instance configuration.

             |<---------- End to End DetNet Service ------>|   
             |           Transit           Transit         |  
      (AC)   |        |<-Tunnel->|        |<-Tnl->|        |  (AC)   
 End    |    V        V     1    V        V   2   V        V   |    End
 System |    +--------+          +--------+       +--------+   |  System
 +---+  |    |   E1   |==========|   R1   |=======|   E2   |   |   +---+
 |   |--|----|--------|          | -------|       |--------|---|---|   |
 |CE1|  |    | DSPI 1 |          |        |       | DSPI 2 |   |   |CE2|
 |   |       |+-------+          |        |       +-------+|       |   |
 +---+       || DSI 1 |          |  DSI 2 |       | DSI 3 ||       +---+
             ||       +          | +------+       |       ||
             || +-----+          | |DTI 2 |..DF2..|       ||
             || |DTI 1|...DF1....| +------+       |       ||
             || +-----+          | |DTI 3 |..DF3..|       ||
     ^       |+-------+          | +------+       +-------+| 
             +--------+==========+--------+=======+--------+       ^
              Edge Node          Relay Node       Edge Node        
                 |                                   |
                 |<-------- DetNet Service --------->|
DF: DetNet Flow
DTI: DetNet Transport Instance
DSI: DetNet Service Instance
DSP: DetNet Service Proxy Instance

Figure 2: End to end DetNet Flow Configuration

5.2.1. DetNet Service Proxy Instance

DetNet Flow to Service Mapping covers the function of DetNet service proxy defined in [I-D.ietf-detnet-architecture], as showed in the picture below:

  
  +-------------+--------------+--------------+
  |  In-coming  |              |DetNet Service|
  |    Flow 1   |              |  Instance 1  |
  +-------------+    Flow      +--------------+
  |  In-coming  |              |DetNet Service| 
  |   Flow 2    |   Service    |  Instance 2  |
  +-------------+              +--------------+
  |  In-coming  |   Mapping    |              |
  |   Flow 3    |              |DetNet Service| 
  +-------------+              | Instance 3   |
  |  In-coming  |              |              |
  |   Flow 4    |              |              |
  +-------------+--------------+--------------+                    

Figure 3: DetNet Service Proxy Instance in Ingress Node

At the ingress node, incoming DetNet flows outside the DetNet domain will be mapped to a DetNet service instance. If flow aggregation is allowed, multiple incoming flows can be mapped onto single DetNet service instance.

  +--------------+--------------+--------------+
  |DetNet Service|              |  Out-going   |
  |  Instance 1  |              |    Flow 1    |
  +--------------+    Flow      +--------------+
  |DetNet Service|              |  Out-going   | 
  |  Instance 2  |   Service    |    Flow 2    |
  +--------------+              +--------------+
  |              |   Mapping    |  Out-going   |
  |DetNet Service|              |    Flow 3    | 
  |  Instance 3  |              +--------------+
  |              |              |  Out-going   |
  |              |              |    Flow 4    |
  +--------------+--------------+--------------+  

Figure 4: DetNet Service Proxy Instance in Egress Node

At the egress node, a DetNet service instance will be mapped onto out-going flow. If flow aggregation is allowed, a DetNet Service Instance can be mapped onto multiple out-going flows.

DetNet service proxy instance includes: in-coming/out-going flow, DetNet service instance, and the mapping relationship between in-coming/out-going flow list and DetNet service instance list.

The in-coming/out-going flows are identified by the following attributes:

DetNet service instance attributes are specified in section 5.2.2.

5.2.2. DetNet Service Instance

DetNet Service Instance (DSI) covers the functions of DetNet service layer, including flow PRF (Packet Replication Function), PEF(Packet Elimination Function) and POF(Packet Ordering Function).

  +--------------+--------------+--------------+
  | In-segment 1 |              |              |
  |              |              |              |
  +--------------+   Segment    |              |
  | In-segment 2 |              |  Out-segment | 
  |              |   Mapping    |              |
  +--------------+              |  +-----------+
  | In-segment 3 |     Base     |  |           |
  |              |              |  |  DetNet   | 
  +--------------+              |  | Transport |
  | In-segment 3 |              |  | Instance 1|
  |              |              |  +-----------+
  +--------------+--------------+--------------+ 

Figure 5: DetNet Service Instance

DetNet Service Instance includes: in-segment list, out-segment list and the mapping relationship between in-segment list and out-segment list. When the DetNet service instance operates Packet Elimination Function(PEF), multiple in-segments will be mapped onto single out-segment (as showed in figure 4); when the DetNet service instance operates Packet Replication Function(PRF) in the relay node, single in-segment will be mapped onto multiple out-segments; When the DetNet service instance operate both PEF and PRF in the relay node, multiple in-segments will be mapped onto multiple out-segments.

In-segment attributes include:

Out-segment attributes include:

DetNet transport instance attributes are specified in section 5.2.3.

The Flow Identification are closely related to the data plane encapsulations that are under developing. This part will be augmented by the corresponding yang model(ietf-detnet-mpls/ietf-detnet-ip).

5.2.3. DetNet Transport Instance

DetNet Transport Instance (DTI) covers the functions of DetNet transport layer, it describes the DetNet tunnel that is used to transmit DetNet flows between DetNet service instances.

DetNet Transport Instance attributes include:

The tunnel attributes are closely related to the data plane encapsulations that are under developing. This part will be augmented by the corresponding yang model(ietf-detnet-mpls/ietf-detnet-ip).

6. DetNet Yang Structure

6.1. DetNet Topology Model Tree Diagram

module: ietf-te-detnet-topology
  augment /nw:networks/nw:network/nw:node:
    +--rw detnet-performance-metric-attributes
    |  +--rw maximum-detnet-reservable-bandwidth
    |  |  +--rw te-bandwidth
    |  |     +--rw (technology)?
    |  |        +--:(generic)
    |  |           +--rw generic?   te-bandwidth
    |  +--rw reserved-detnet-bandwidth
    |  |  +--rw te-bandwidth
    |  |     +--rw (technology)?
    |  |        +--:(generic)
    |  |           +--rw generic?   te-bandwidth
    |  +--rw available-detnet-bandwidth
    |  |  +--rw te-bandwidth
    |  |     +--rw (technology)?
    |  |        +--:(generic)
    |  |           +--rw generic?   te-bandwidth
    |  +--rw minimum-detnet-device-delay?           uint32
    |  +--rw maximum-detnet-device-delay?           uint32
    +--rw detnet-queuing-management-algorithm
       +--rw queuing-management-algorithm?   enumeration
  augment /nw:networks/nw:network/nt:link:
    +--rw detnet-node-type
    |  +--rw detnet-node-type?   enumeration
    +--rw detnet-resource-reservation-attributes
    |  +--rw MaxFanInPorts?      uint32
    |  +--rw MaxPacketSize?      uint32
    |  +--rw MaxDetNetClasses?   uint32
    +--rw detnet-elimination-capability?            boolean
    +--rw detnet-replication-capability?            boolean

6.2. DetNet Flow Configuration Model Tree Diagram

module: ietf-detnet
    +--rw detnet-config
    |  +--rw (detnet-node-type)?
    |     +--:(detnet-transit-node-type)
    |     |  +--rw detnet-transport-instance
    |     +--:(detnet-relay-node-type)
    |     |  +--rw control-plane-protocal
    |     |  |  +--rw name?   string
    |     |  +--rw segment-mapping-base
    |     |     +--rw segment-mapping* [segment-mapping-id]
    |     |        +--rw segment-mapping-id    uint32
    |     |        +--rw active?               boolean
    |     |        +--rw last-updated?         yang:date-and-time
    |     |        +--rw in-segment
    |     |        |  +--rw in-segment-list
    |     |        |     +--rw in-segment* [in-segment-id]
    |     |        |        +--rw in-segment-id                 uint32
    |     |        |        +--rw incoming-interface?           if:interface-ref
    |     |        |        +--rw operation?                    segment-operation-type
    |     |        |        +--rw (in-segment-type)?
    |     |        |           +--:(non-detnet-in-segment)
    |     |        |              +--rw sequence-number-generation
    |     |        |                 +--rw bit-number?    uint32
    |     |        |                 +--rw upper-bound?   uint32
    |     |        |                 +--rw lower-bound?   uint32
    |     |        +--rw out-segment
    |     |           +--rw out-segment-list
    |     |              +--rw out-segment* [out-segment-id]
    |     |                 +--rw out-segment-id               uint32
    |     |                 +--rw outgoing-interface?          if:interface-ref
    |     |                 +--rw detnet-transport-instance
    |     |                    +--rw detnet-transport-instance
    |     +--:(detnet-edge-node-type)
    |        +--rw flow-to-detnet-mapping-base
    |           +--rw flow-to-detnet-mappings* [flow-to-detnet-mapping-id]
    |              +--rw flow-to-detnet-mapping-id    uint16
    |              +--rw client-flows
    |              |  +--rw client-flows* [client-flow-id]
    |              |     +--rw client-flow-id           uint16
    |              |     +--rw flow-id?                 uint16
    |              |     +--rw flow-identification
    |              |     |  +--rw source-ip-address?         inet:ip-address
    |              |     |  +--rw destination-ip-address?    inet:ip-address
    |              |     |  +--rw source-mac-address?        yang:mac-address
    |              |     |  +--rw destination-mac-address?   yang:mac-address
    |              |     |  +--rw ipv6-flow-label?           uint32
    |              |     |  +--rw mpls-label?                rt-types:mpls-label
    |              |     +--rw traffic-specification
    |              |        +--rw max-packets-per-interval?      uint16
    |              |        +--rw max-packet-size?               uint16
    |              |        +--rw queuing-algorithm-selection?   uint8
    |              +--rw detnet-service-instance
    |                 +--rw control-plane-protocal
    |                 |  +--rw name?   string
    |                 +--rw segment-mapping-base
    |                    +--rw segment-mapping* [segment-mapping-id]
    |                       +--rw segment-mapping-id    uint32
    |                       +--rw active?               boolean
    |                       +--rw last-updated?         yang:date-and-time
    |                       +--rw in-segment
    |                       |  +--rw in-segment-list
    |                       |     +--rw in-segment* [in-segment-id]
    |                       |        +--rw in-segment-id                 uint32
    |                       |        +--rw incoming-interface?           if:interface-ref
    |                       |        +--rw operation?                    segment-operation-type
    |                       |        +--rw (in-segment-type)?
    |                       |           +--:(non-detnet-in-segment)
    |                       |              +--rw sequence-number-generation
    |                       |                 +--rw bit-number?    uint32
    |                       |                 +--rw upper-bound?   uint32
    |                       |                 +--rw lower-bound?   uint32
    |                       +--rw out-segment
    |                          +--rw out-segment-list
    |                             +--rw out-segment* [out-segment-id]
    |                                +--rw out-segment-id               uint32
    |                                +--rw outgoing-interface?          if:interface-ref
    |                                +--rw detnet-transport-instance
    |                                   +--rw detnet-transport-instance
    +--ro detnet-state
       +--ro (detnet-node-type)?
          +--:(detnet-transit-node-type)
          |  +--ro detnet-transport-instance
          +--:(detnet-relay-node-type)
          |  +--ro control-plane-protocal
          |  |  +--ro name?   string
          |  +--ro segment-mapping-base
          |     +--ro segment-mapping* [segment-mapping-id]
          |        +--ro segment-mapping-id    uint32
          |        +--ro active?               boolean
          |        +--ro last-updated?         yang:date-and-time
          |        +--ro in-segment
          |        |  +--ro in-segment-list
          |        |     +--ro in-segment* [in-segment-id]
          |        |        +--ro in-segment-id                 uint32
          |        |        +--ro incoming-interface?           if:interface-ref
          |        |        +--ro operation?                    segment-operation-type
          |        |        +--ro (in-segment-type)?
          |        |           +--:(non-detnet-in-segment)
          |        |              +--ro sequence-number-generation
          |        |                 +--ro bit-number?    uint32
          |        |                 +--ro upper-bound?   uint32
          |        |                 +--ro lower-bound?   uint32
          |        +--ro out-segment
          |           +--ro out-segment-list
          |              +--ro out-segment* [out-segment-id]
          |                 +--ro out-segment-id               uint32
          |                 +--ro outgoing-interface?          if:interface-ref
          |                 +--ro detnet-transport-instance
          |                    +--ro detnet-transport-instance
          +--:(detnet-edge-node-type)
             +--ro flow-to-detnet-mapping-base
                +--ro flow-to-detnet-mappings* [flow-to-detnet-mapping-id]
                   +--ro flow-to-detnet-mapping-id    uint16
                   +--ro client-flows
                   |  +--ro client-flows* [client-flow-id]
                   |     +--ro client-flow-id           uint16
                   |     +--ro flow-id?                 uint16
                   |     +--ro flow-identification
                   |     |  +--ro source-ip-address?         inet:ip-address
                   |     |  +--ro destination-ip-address?    inet:ip-address
                   |     |  +--ro source-mac-address?        yang:mac-address
                   |     |  +--ro destination-mac-address?   yang:mac-address
                   |     |  +--ro ipv6-flow-label?           uint32
                   |     |  +--ro mpls-label?                rt-types:mpls-label
                   |     +--ro traffic-specification
                   |        +--ro max-packets-per-interval?      uint16
                   |        +--ro max-packet-size?               uint16
                   |        +--ro queuing-algorithm-selection?   uint8
                   +--ro detnet-service-instance
                      +--ro control-plane-protocal
                      |  +--ro name?   string
                      +--ro segment-mapping-base
                         +--ro segment-mapping* [segment-mapping-id]
                            +--ro segment-mapping-id    uint32
                            +--ro active?               boolean
                            +--ro last-updated?         yang:date-and-time
                            +--ro in-segment
                            |  +--ro in-segment-list
                            |     +--ro in-segment* [in-segment-id]
                            |        +--ro in-segment-id                 uint32
                            |        +--ro incoming-interface?           if:interface-ref
                            |        +--ro operation?                    segment-operation-type
                            |        +--ro (in-segment-type)?
                            |           +--:(non-detnet-in-segment)
                            |              +--ro sequence-number-generation
                            |                 +--ro bit-number?    uint32
                            |                 +--ro upper-bound?   uint32
                            |                 +--ro lower-bound?   uint32
                            +--ro out-segment
                               +--ro out-segment-list
                                  +--ro out-segment* [out-segment-id]
                                     +--ro out-segment-id               uint32
                                     +--ro outgoing-interface?          if:interface-ref
                                     +--ro detnet-transport-instance
                                        +--ro detnet-transport-instance

6.3. DetNet Device Configuration Model Tree Diagram

module: ietf-detnet-device
    +--rw detnet-device-config
    |  +--rw PEF-enabled?         boolean
    |  +--rw PRF-enabled?         boolean
    |  +--rw POF-enabled?         boolean
    |  +--rw detnet-interfaces
    +--ro detnet-device-states
       +--ro PEF-enabled?         boolean
       +--ro PRF-enabled?         boolean
       +--ro POF-enabled?         boolean
       +--ro detnet-interfaces

7. DetNet YANG Model

7.1. DetNet Topology YANG Model

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

    
    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>
     
      Eidtor:   Reshad Rahman
                <rrahman@cisco.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>

7.2. DetNet Flow Configuration YANG Model

<CODE BEGINS> file "ietf-flow-detnet@2018-06-26.yang"
  module ietf-flow-detnet {
    namespace "urn:ietf:params:xml:ns:yang:ietf-flow-detnet";
    prefix "detnet";
  
    import ietf-yang-types {
      prefix "yang";
    }
  
    import ietf-interfaces {
      prefix "if";
    }
    
    import ietf-inet-types{
      prefix "inet";
    }
 
    import ietf-routing-types {
      prefix "rt-types";
    }
  
    organization "IETF 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>
       Editor:  Zhenqiang Li
                <lizhenqiang@chinamobile.com>
       Eidtor:   Reshad Rahman
                <rrahman@cisco.com>";
    description
      "This YAGN module describes the parameters needed 
       for DetNet configuration";
    
    revision "2018-06-26" {
      description "Latest revision for ietf-detnet";
      reference 
        "RFC XXXX: YANG Data Model for ietf-detnet";
    }
           
    identity detnet-node-type {
      description
        "base detnet-node-type";
    }
      
    identity detnet-edge-node-type {
      base detnet-node-type;
      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).";
    }

    identity detnet-relay-node-type {
      base detnet-node-type;
      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.";
    }

    identity detnet-transit-node-type {
      base detnet-node-type;
      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.";
    }
      
    identity detnet-transport-layer {
      description
        "The layer that optionally provides congestion 
         protection for DetNet flows over paths provided 
         by the underlying network.";
    }
               
    identity detnet-service-layer {
      description
        "The layer at which service protection is 
         provided, either packet sequencing, replication, 
         and elimination or packet encoding";
    }
                       
    typedef segment-operation-type {
      type enumeration {
        enum replication {
          description
            "One of the Packet Replication and 
             Elimination Function (PREF), which does 
             the packet elimination 
             processing of DetNet flow packets in  
             edge or relay nodes.";  
        }
        enum elimination {
          description
            "One of the Packet Replication and 
             Elimination Function (PREF), which does 
             the packet replication processing of 
             DetNet flow packets in 
             edge or relay nodes.";
        }
        enum elimination-and-replication {
          description
            "One of the Packet Replication and
             Elimination Function (PREF), which does 
             the packet elimination and replication 
             processing of DetNet flow packets in 
             edge or relay nodes.";
        }
      }
      description
        "";
    }
    grouping detnet-transport-instance{ 
      description
        "";
      container detnet-transport-instance{
        description
          "the contents of detnet transport instance
           depend on data plane solution of this detnet
           domain";
      }
    }

    grouping sequence-number-generation {
      description
        "";
      leaf bit-number{
        type uint32;
        description
          "";
      }
      leaf upper-bound {
        type uint32;
          description
            "";
      }
      leaf lower-bound {
        type uint32;
        description
          "";
      }
    }

    grouping in-segment-content {
      description
        "in-segment grouping in the detnet service 
         layer";
      container in-segment-list {
        description 
          "";
        list in-segment {
          key "in-segment-id";
          description
            "";
          leaf in-segment-id{
            type uint32;
            description
              "";
          }
          leaf incoming-interface {
            type if:interface-ref;
            description
              "Name of the incoming 
               interface."; 
          }
          leaf operation {
            type segment-operation-type;
            description
              "";
          }
          choice in-segment-type{
            description
              "";
            case non-detnet-in-segment{
              description
                "";
              container sequence-number-generation{
                description
                  "";
                uses sequence-number-generation;
              }
            }
          }
        }
      }
    } 

    grouping out-segment-content{
      description
        "";
      container out-segment-list {
        description
          "";
        list out-segment{
          key "out-segment-id";
            description
              "";
          leaf out-segment-id{
            type uint32;
            description
              "";
          }
          leaf outgoing-interface {
            type if:interface-ref;
            description
              "Name of the outgoing interface.";
          }
          container detnet-transport-instance{
            description
              "";
            uses detnet-transport-instance;
          }
        }
      }
    }

    grouping segment-mapping-metadata{
      description
        "";
      leaf active {
        type boolean;
        description
          "Whether the segment mapping base is active 
           or not";
      }
      leaf last-updated {
        type yang:date-and-time;
        description
          "Time stamp of the last modification of the 
           mapping. If the mapping was never modified, 
           it is the time when the mapping was 
           inserted into the RIB.";
      }
    }

    grouping detnet-service-instance{
      description
        "";
      container control-plane-protocal{
        description
            "";
        leaf name{
          type string;
          description
            "the name of the control plane protocal";
        }
      }
      container segment-mapping-base{
        description
          "";
        list segment-mapping{
          key "segment-mapping-id";
          description
            "";
          leaf segment-mapping-id{
            type uint32;
              description
                "";
          }
          uses segment-mapping-metadata;
          container in-segment{
            description
              "";
            uses in-segment-content;
          }
          container out-segment{
            description
              "";
            uses out-segment-content;
          }
        }
      }
    }

    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 client-flow{
      description
        "";
      leaf flow-id{
        type uint16;
        description
          "";
      } 
      container flow-identification{
        description
          "";
        uses flow-identfication;
      }
      container traffic-specification{
        description
          "";
        uses traffic-specification;
      }
    }

    grouping flow-to-detnet-mapping{
      description
        "";
      container flow-to-detnet-mapping-base{
        description
          "";
        list flow-to-detnet-mappings{
          key "flow-to-detnet-mapping-id";
          description
            "";
          leaf flow-to-detnet-mapping-id{
            type uint16;
            description
              "";
          }
          container client-flows{
            description
              "";
            list client-flows{
              key "client-flow-id";
              description
                "";
              leaf client-flow-id{
              type uint16;
              description
                "";
              }
              uses client-flow;
            }
          } 
          container detnet-service-instance{
            description
              "";
            uses detnet-service-instance;
          }
        }
      }
    }

    /* Congfiguration Data */

    container detnet-config{
      description
        "";
      choice detnet-node-type{
        description
        "";
        case detnet-transit-node-type{
          description
            "";
          uses detnet-transport-instance;
        }
        case detnet-relay-node-type{
          description
            "";
          uses detnet-service-instance;
        }
        case detnet-edge-node-type{
          description
            "";
          uses flow-to-detnet-mapping;
        }
      }
    }

    /* Status Data */

    container detnet-state{
      config "false";
      description
        "";
      choice detnet-node-type{
        description
        "";
        case detnet-transit-node-type{
          description
            "";
          uses detnet-transport-instance;
        }
        case detnet-relay-node-type{
          description
            "";
          uses detnet-service-instance;
        }
        case detnet-edge-node-type{
          description
            "";
          uses flow-to-detnet-mapping;
        }
      }
    }
  }
<CODE ENDS>

7.3. DetNet Device Configuration Yang Model

  <CODE BEGINS> file "ietf-detnet-device@2018-06-29.yang"
  module ietf-detnet-device {
    namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-device";
    prefix "detnet-device";

    organization "IETF 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>
       Editor:  Zhenqiang Li
                <lizhenqiang@chinamobile.com> 
       Eidtor:  Reshad Rahman
                <rrahman@cisco.com>";       
       description
         "This YAGN module describes the parameters needed 
          for DetNet configuration in device";
    revision "2018-06-29" {
      description 
        "Latest revision for ietf-detnet-device";
      reference 
        "RFC XXXX: YANG Data Model for ietf-detnet-device";
    }
  
    grouping detnet-device-parameters {
      description
        "Parameters of queuing, bandwidth on device.";			 
      leaf PEF-enabled {
        type boolean;
        description
          "A Packet Elimination Function (PEF) eliminates duplicate
           copies of packets to prevent excess packets flooding the
           network or duplicate packets being sent out of the DetNet
           domain.  PEF can be implemented by an edge node, a relay
           node, or an end system.";
      }
      leaf PRF-enabled {
        type boolean;
        description
          "A Packet Replication Function (PRF) replicates DetNet flow
           packets and forwards them to one or more next hops in the
           DetNet domain.  The number of packet copies sent to each next
           hop is a DetNet flow specific parameter at the node doing the
           replication.  PRF can be implemented by an edge node, a relay
           node, or an end system.";
      }
      leaf POF-enabled {
        type boolean;
        description
          "A Packet Ordering Function (POF) re-orders packets within a
           DetNet flow that are received out of order.  This function
           can be implemented by an edge node, a relay node, or an end
           system.";
      }

      container detnet-interfaces {
        description
          "A list of interfaces that are DetNet enabled.";
      //Edior notes: This is heavily related to the YANG models
      //defined in IEEE Qcw project.
      }
    }    
  
    container detnet-device-config {
      description
        "DetNet device configurations.";
      uses detnet-device-parameters; 
    }

    container detnet-device-states {
      config false;
      description
        "DetNet device states.";
      uses detnet-device-parameters; 
    }
  }
<CODE ENDS>

8. 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.

8.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.

8.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.

8.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.

9. IANA Considerations

This document makes no request of IANA.

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

10. Security Considerations

11. Acknowledgements

12. References

12.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-06, June 2018.
[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.

12.2. Informative References

[I-D.geng-detnet-info-distribution] Geng, X., Chen, M. and Z. Li, "IGP-TE Extensions for DetNet Information Distribution", Internet-Draft draft-geng-detnet-info-distribution-02, March 2018.
[I-D.ietf-detnet-use-cases] Grossman, E., "Deterministic Networking Use Cases", Internet-Draft draft-ietf-detnet-use-cases-17, June 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-15, June 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-18, June 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
Reshad Cisco