Network Working Group X. Geng
Internet-Draft M. Chen
Intended status: Standards Track Huawei Technologies
Expires: July 18, 2019 Z. Li
China Mobile
R. Rahman
Cisco Systems
January 14, 2019

Deterministic Networking (DetNet) Topology YANG Model
draft-ietf-detnet-topology-yang-00

Abstract

This document defines a YANG data model for Deterministic Networking (DetNet) topology discovery and capability configuration.

The YANG module defined in this document conforms to the Network Management Datastore Architecture (NMDA).

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 July 18, 2019.

Copyright Notice

Copyright (c) 2019 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

Deterministic Networking (DetNet) [I-D.ietf-detnet-architecture] is defined to provide high-quality network service with extremely low packet loss rate, bounded low latency and jitter.

DetNet YANG [RFC7950] [RFC6991] models are used for DetNet service configuration, QoS configuration and topology discovery. DetNet service and QoS configuration models are defined in [I-D.ietf-detnet-yang]. This document defines DetNet topology model that can be used for DetNet topology/capability discovery and device configuration. DetNet topology model is an augmentation of the ietf-te-toplogy model [I-D.ietf-teas-yang-te-topo].

2. Terminologies

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

3. DetNet Topology Model

A DetNet topology is composed of a set of DetNet nodes and DetNet links. DetNet nodes represent the network devices that can transport DetNet services, which are connected by DetNet links. A DetNet Link Terminate Point(LTP) is the connection point between a DetNet node and a DetNet link, which represents the port or interface of a DetNet node. The concept of DetNet node/link/LTP are similar as TE node/link/LTP which are defined in [I-D.ietf-teas-yang-te-topo].

Figure 1 shows a simple DetNet topology: A is a DetNet node, B is DetNet a LTP, and C is a DetNet link.

                        +---+           +---+
                        | A |o(B)--(C)--|   |
                        +---+           +---+

                Figure 1. An example of DetNet Topology

[I-D.ietf-teas-yang-te-topo] to cover the following groups of attributes, which are necessary for supporting DetNet congestion protection and service protection:

The above attributes are categorized into three types: node attributes, link attributes and LTP attributes. The detailed descriptions and model definitions are specified in section 3.1, 3.2 and 3.3, respectively.

3.1. DetNet Node Attributes

Section 4.3 of [I-D.finn-detnet-bounded-latency] gives a DetNet time model, which defines that the delay within a node includes five parts: processing delay, regulation delay, queuing delay, output delay and preemption delay. The processing delay, queuing delay and regulation delay are variable in general, but for DetNet, these delays should be bounded, which is the basic assumption of deterministic networking. These bounded delay parameters are necessary to perform DetNet path computation. Among this delay attributes, processing delay and regulation delay are node relevant, and the queuing delay is LTP relevant. In addition, in order to simplify the model and implementation, the processing delay and regulation delay are combined as processing delay, and the preemption delay is included in queuing delay. [Editor notes: more comments and inputs need here].

For the DetNet node attributes, the following variables are introduced:

The modeling structure is shown below:

augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes:
   +--rw detnet-node-attributes
      +--rw minimum-packet-processing-delay?             uint32
      +--rw maximum-packet-processing-delay?             uint32
      +--rw maximum-packet-processing-delay-variation?   uint32

3.2. DetNet Link Attributes

DetNet link attributes include link delay and link bandwidth for DetNet. This document introduces the following link related attributes:

The DetNet link attributes are modeled within a link, and the YANG module structure is shown below:

augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes:
   +--rw detnet-link-attributes
      +--rw maximum-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

3.3. DetNet Link Terminate Point Attributes

The concept of LTP is introduced in [I-D.ietf-teas-yang-te-topo], and this section introduces attributes for DetNet LTP.

PREOF (Packet Replication/Elimination/Ordering Function) is for DetNet service protection, which includes :

The above functions are modeled as a set of capabilities and relevant parameters, which are listed below:

[I-D.finn-detnet-bounded-latency]. Queuing related attributes are listed below:

In addition, DetNet LTP also includes queuing management algorithms and queuing delay attributes. In the context of DetNet, the delay of queuing is bounded, and the bound depends on what queuing management method is used and how many buffers are allocated. More information can be found in

The DetNet LTP attributes are modeled within a LTP, the YANG module structure is shown below:

augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te:
   +--rw detnet-terminate-point-attributes
      +--rw elimination-capability?           boolean
      +--rw replication-capability?           boolean
      +--rw in-ordering-capability
      |  +--rw in-ordering-capability?         boolean
      |  +--rw maximum-out-of-order-packets?   uint32
      +--rw queuing-algorithm-capabilities
      |  +--rw credit-based-shaping?            boolean
      |  +--rw time-aware-shaping?              boolean
      |  +--rw cyclic-queuing-and-forwarding?   boolean
      |  +--rw asynchronous-traffic-shaping?    boolean
      +--rw queues* [queue-identifier]
         +--rw queue-identifier                   uint32
         +--rw queue-buffer-size?                 uint32
         +--rw enabled-queuing-algorithm
         |  +--rw credit-based-shaping?            boolean
         |  +--rw time-aware-shaping?              boolean
         |  +--rw cyclic-queuing-and-forwarding?   boolean
         |  +--rw asynchronous-traffic-shaping?    boolean
         +--rw minimum-queuing-delay?             uint32
         +--rw maximum-queuing-delay?             uint32
         +--rw maximum-queuing-delay-variation?   uint32

4. DetNet Topology YANG Structure

module: ietf-detnet-topology
augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
   +--rw detnet-topology!
augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes:
   +--rw detnet-node-attributes
      +--rw minimum-packet-processing-delay?             uint32
      +--rw maximum-packet-processing-delay?             uint32
      +--rw maximum-packet-processing-delay-variation?   uint32
augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes:
   +--rw detnet-link-attributes
      +--rw maximum-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
augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te:
   +--rw detnet-terminate-point-attributes
      +--rw elimination-capability?           boolean
      +--rw replication-capability?           boolean
      +--rw in-ordering-capability
      |  +--rw in-ordering-capability?         boolean
      |  +--rw maximum-out-of-order-packets?   uint32
      +--rw queuing-algorithm-capabilities
      |  +--rw credit-based-shaping?            boolean
      |  +--rw time-aware-shaping?              boolean
      |  +--rw cyclic-queuing-and-forwarding?   boolean
      |  +--rw asynchronous-traffic-shaping?    boolean
      +--rw queues* [queue-identifier]
         +--rw queue-identifier                   uint32
         +--rw queue-buffer-size?                 uint32
         +--rw enabled-queuing-algorithm
         |  +--rw credit-based-shaping?            boolean
         |  +--rw time-aware-shaping?              boolean
         |  +--rw cyclic-queuing-and-forwarding?   boolean
         |  +--rw asynchronous-traffic-shaping?    boolean
         +--rw minimum-queuing-delay?             uint32
         +--rw maximum-queuing-delay?             uint32
         +--rw maximum-queuing-delay-variation?   uint32

5. DetNet Topology YANG Model

<CODE BEGINS> file "ietf-detnet-topology@20190114.yang"
  module ietf-detnet-topology {  
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-topology";
  prefix "detnet-topology";
   
  import ietf-te-types {
    prefix "te-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>
      
              Janos Farkas
              <janos.farkas@ericsson.com>

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

    Editor:   Mach Chen
              <mailto:mach.chen@huawei.com>
      
    Editor:   Zhenqiang Li
              <lizhenqiang@chinamobile.com>
      
    Editor:   Reshad Rahman
              <rrahman@cisco.com>";

  description
    "This YANG module augments the 'ietf-te-topology'
     module with DetNet related capabilities and 
     parameters.";
 
    revision "2018-09-10" {
      description "Initial revision";
      reference "RFC XXXX: draft-geng-detnet-config-yang-05";
    }


  grouping detnet-queuing-algorithms {
    description
      "Relationship with IEEE 802.1 TSN YANG models is TBD.";
  }

  grouping detnet-node-attributes{
    description 
      "DetNet node related attributes.";
    leaf minimum-packet-processing-delay{
      type uint32;
      description
        "Minimum packet processing delay
         in a node. The unit of the delay
         is microsecond(us)";
    }
    leaf maximum-packet-processing-delay{
      type uint32;
      description
        "Maximum packet processing delay
         in a node. The unit of the delay
         is microsecond(us)";
    }
    leaf maximum-packet-processing-delay-variation{
      type uint32;
      description
        "Maximum packet processing delay 
         variation in a node. The unit of
         the delay variation is microsecond(us)";
    }    
  }
  
  grouping detnet-link-attributes{
    description 
      "DetNet link related attributes.";
  
    container maximum-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 is  
         available for new DetNet flows on this link.";
    }
  }
  
  grouping detnet-terminate-point-attributes{
    description 
      "DetNet terminate point related attributes.";
    
    leaf elimination-capability{
      type boolean;
      description 
        "Indicates whether a node is able to do packet 
         elimination.";
      reference
        "Section 3.2.2.3 of
         draft-ietf-detnet-architecture";
       
    }
    leaf replication-capability{
      type boolean;
      description 
        "Indicates whether a node is able to do packet 
         replication.";
      reference
        "Section 3.2.2.2 of
         draft-ietf-detnet-architecture";
    }
    container in-ordering-capability {
      description
        "Indicates the parameters needed for
         packet in-ordering.";
      reference
        "Section 3.2.2.1 of  
         draft-ietf-detnet-architecture";
      
      leaf in-ordering-capability {
        type boolean;
      description
        "Indicates whether a node is able to do packet 
         in-ordering.";
      }
      leaf maximum-out-of-order-packets {
      type uint32;
      description
        "The maximum number of out-of-order packets.";
      }
    }
    
    container queuing-algorithm-capabilities {
      description
        "All queuing algorithms that a LTP supports.";
      uses detnet-queuing-algorithms;
    }    
    
    list queues {
      key "queue-identifier";
      description
        "A list of DetNet queues.";     
      leaf queue-identifier {
        type uint32;
        description
          "The identifier of the queue.";
      }      
      leaf queue-buffer-size {
        type uint32;
        description
          "The size of the queue with unit of bytes.";
      }
      
      container enabled-queuing-algorithm {
        description
          "The queuing algorithms that are enabled on the queue.";
           uses detnet-queuing-algorithms;
      }
      
      leaf minimum-queuing-delay{
        type uint32;
        description
          "The minimum queuing delay of the queue.
           The unit of the delay is microsecond(us)";
      }
      leaf maximum-queuing-delay{
        type uint32;
        description
          "The maximum queuing delay of the queue.
           The unit of the delay is microsecond(us)";
      }
      leaf maximum-queuing-delay-variation{
        type uint32;
        description
          "The maximum queuing delay variation of the queue.
           The unit of the delay variation is microsecond(us)";
      }  
    }  
  }
    
   augment "/nw:networks/nw:network/nw:network-types/tet:te-topology"{
    description
      "Introduce new network type for TE topology.";
    container detnet-topology {
      presence "Indicates DetNet topology.";
      description
        "Its presence identifies the DetNet topology type";
    }
  }
  
  augment "/nw:networks/nw:network/nw:node/tet:te/"
          + "tet:te-node-attributes" {
      when "../../../nw:network-types/tet:te-topology/"
      + "detnet-topology:detnet-topology" {
        description
          "Augmentation parameters apply only for networks with
           DetNet topology type.";
      }
    description 
      "Augmentation parameters apply for DetNet node attributes.";
    container detnet-node-attributes {
      description 
        "Attributes for DetNet node.";
      uses detnet-node-attributes;     
    }
  }
  
  augment "/nw:networks/nw:network/nt:link/tet:te/"
            + "tet:te-link-attributes" {
    when "../../../nw:network-types/tet:te-topology/"
         + "detnet-topology:detnet-topology" {
      description
        "Augmentation parameters apply only for networks with
        DetNet topology type.";
    }
    description 
      "Augmentation parameters apply for DetNet link attributes.";
    container detnet-link-attributes {
      description 
        "Attributes for DetNet link.";
      uses detnet-link-attributes;
    }
  }
  
  augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
             + "tet:te" {
      when "../../../nw:network-types/tet:te-topology/"
            + "detnet-topology:detnet-topology" {
        description
          "Augmentation parameters apply only for networks with
           DetNet topology type.";
      }
    description 
      "Augmentation parameters apply for DetNet
       link termination point.";
    container detnet-terminate-point-attributes {
      description 
        "Attributes for DetNet link terminate point.";
      uses detnet-terminate-point-attributes;  
    }
  }
 } //topology module


<CODE ENDS>

6. Open Issues

There are some open issues that are still under discussion:

These issues will be resolved in the following versions of the draft.

7. IANA Considerations

This document makes no request of IANA.

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

8. Security Considerations

<TBD>

9. Acknowledgements

10. References

10.1. Normative References

[I-D.finn-detnet-bounded-latency] Finn, N., Boudec, J., Mohammadpour, E., Zhang, J., Varga, B. and J. Farkas, "DetNet Bounded Latency", Internet-Draft draft-finn-detnet-bounded-latency-02, October 2018.
[I-D.ietf-detnet-architecture] Finn, N., Thubert, P., Varga, B. and J. Farkas, "Deterministic Networking Architecture", Internet-Draft draft-ietf-detnet-architecture-10, December 2018.
[I-D.ietf-detnet-dp-sol-ip] Korhonen, J. and B. Varga, "DetNet IP Data Plane Encapsulation", Internet-Draft draft-ietf-detnet-dp-sol-ip-01, October 2018.
[I-D.ietf-detnet-dp-sol-mpls] Korhonen, J. and B. Varga, "DetNet MPLS Data Plane Encapsulation", Internet-Draft draft-ietf-detnet-dp-sol-mpls-01, October 2018.
[I-D.ietf-detnet-flow-information-model] Farkas, J., Varga, B., Cummings, R., Jiang, Y. and Y. Zha, "DetNet Flow Information Model", Internet-Draft draft-ietf-detnet-flow-information-model-02, October 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, July 2013.
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016.

10.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-03, October 2018.
[I-D.ietf-detnet-use-cases] Grossman, E., "Deterministic Networking Use Cases", Internet-Draft draft-ietf-detnet-use-cases-20, December 2018.
[I-D.ietf-detnet-yang] Geng, X., Chen, M., Li, Z. and R. Rahman, "Deterministic Networking (DetNet) Configuration YANG Model", Internet-Draft draft-ietf-detnet-yang-01, January 2019.
[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-17, October 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, "IEEE 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.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K. and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018.

Authors' Addresses

Xuesong Geng Huawei Technologies EMail: gengxuesong@huawei.com
Mach(Guoyi) Chen Huawei Technologies EMail: mach.chen@huawei.com
Zhenqiang Li China Mobile EMail: lizhenqiang@chinamobile.com
Reshad Rahman Cisco Systems EMail: rrahman@cisco.com