Internet-Draft MPLS-TE Topology YANG Model October 2021
Busi, et al. Expires 28 April 2022 [Page]
Workgroup:
TEAS Working Group
Internet-Draft:
draft-busizheng-teas-yang-te-mpls-topology-02
Published:
Intended Status:
Standards Track
Expires:
Authors:
I. Busi
Huawei Technologies
A. Guo
Futurewei Inc.
X. Liu
Volta Networks
T. Saad
Juniper Networks
R. Gandhi
Cisco Systems, Inc.

A YANG Data Model for MPLS-TE Topology

Abstract

This document describes a YANG data model for Multi-Protocol Label Switching (MPLS) with Traffic Engineering (MPLS-TE) networks.

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 28 April 2022.

1. Introduction

This document describes a YANG data model for Multi-Protocol Label Switching (MPLS) with Traffic Engineering (MPLS-TE) networks.

This document also defines a collection of common data types and groupings in YANG data modeling language for MPLS-TE networks. These derived common types and groupings are intended to be imported by the MPLS-TE topology model, defined in this document, as well as by the MPLS-TE tunnel model, defined in [I-D.ietf-teas-yang-te-mpls].

Multi-Protocol Label Switching - Transport Profile (MPLS-TP) is a profile of the MPLS protocol that is used in packet switched transport networks and operated in a similar manner to other existing transport technologies (e.g., OTN), as described in [RFC5921]. The YANG model defined in this document can also be for MPLS-TP networks.

1.1. Tree Diagram

A simplified graphical representation of the data model is used in Section 5.1 of this this document. The meaning of the symbols in these diagrams is defined in [RFC8340].

1.2. Prefixes in Data Node Names

In this document, names of data nodes and other data model objects are prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in Table 1.

Table 1: Prefixes and corresponding YANG modules
Prefix YANG module Reference
rt-types ietf-routing-types [RFC8294]
tet ietf-te-topology [RFC8795]
tet-pkt ietf-te-topology-packet [I-D.ietf-teas-yang-l3-te-topo]
te-packet-types ietf-te-packet-types [I-D.ietf-teas-yang-l3-te-topo]
mte-types ietf-mpls-te-types This document
tet-mpls ietf-te-mpls-topology This document

2. MPLS-TE Types Overview

The module ietf-mpls-te-types contains the following YANG types and groupings which can be reused by MPLS-TE YANG models:

load-balancing-type

This identify defines the types of load-balancing algorithms used on bundled MPLS-TE link.

te-mpls-label-hop

This grouping is used for the augmentation of TE label for MPLS-TE path.

3. MPLS-TE Topology Model Overview

The MPLS-TE technology specific topology model augments the ietf-te- topology-packet YANG module, defined in [I-D.ietf-teas-yang-l3-te-topo], which in turns augment the generic ietf-te-topology YANG module, defined in [RFC8795], as shown in Figure 1.

                  +------------------+    o: augment
     TE generic   | ietf-te-topology |
                  +------------------+
                            o
                            |
                            |
                            |
               +-------------------------+
     Packet TE | ietf-te-topology-packet |
               +-------------------------+
                            o
                            |
                            |
                            |
                +-----------------------+
     MPLS-TE    | ietf-te-mpls-topology |
                +-----------------------+
Figure 1: Relationship between MPLS-TE, Packet-TE and TE topology models

Given the guidance for augmentation in [RFC8795], the following technology-specific augmentations need to be provided:

  • A network-type to indicate that the TE topology is an MPLS-TE Topology, as follow:
      augment /nw:networks/nw:network/nw:network-types/tet:te-topology
              /tet-pkt:packet:
        +--rw mpls-topology!

Note: TE Bandwidth Augmentations for paths, LSPs and links are provided by the ietf-te-topology-packet module, defined in [I-D.ietf-teas-yang-l3-te-topo].

3.1. TE Label Augmentations

In MPLS-TE, the label allocation is done by NE, information about label values availability is not necessary to be provided to the controller. Moreover, MPLS-TE tunnels are currently established within a single domain.

Therefore this document does not define any MPLS-TE technology-specific augmentations, of the TE Topology model, for the TE label since no TE label related attributes should be instantiated for MPLS-TE Topologies.

Open issue: shall this module allows the setup of MPLS-TE multi-domain tunnels?

3.2. MPLS-TP Topology

Multi-Protocol Label Switching - Transport Profile (MPLS-TP) is a profile of the MPLS protocol that is used in packet switched transport networks and operated in a similar manner to other existing transport technologies (e.g., OTN), as described in [RFC5921].

Therefore YANG model defined in this document can also be applicable for MPLS-TP networks.

However, as described in [RFC5921], MPLS-TP networks support bidirectional LSPs and require no ECMP and no PHP. When reporting the topology for an MPLS-TP network, additional information is required to indicate whether the network support these MPLS-TP characteristics.

It is worth noting that [RFC8795] is already capable to model TE topologies supporting either unidirectional or bidirectional LSPs: all bidirectional TE links can support bidirectional LSPs and all the links can support unidirectional LSPs and it is always possible to associated unidirectional LSPs as long as they belong to the same tunnel.

When setting up bidirectional LSPs (e.g., MPLS-TP LSPs) only bidirectional TE Links are selected by path computation.

In order to allow reporting that ECMP is not affecting forwarding the packets of a given LSP, the load-balancing-type attribute reports whether a LAG or TE Bundled Link performs load-balancing on a per-flow or per-top-label:

    augment /nw:networks/nw:network/nt:link/tet:te:
      +--rw load-balancing-type?   mte-types:load-balancing-type

When setting up LSPs which do not requires ECMP (e.g., MPLS-TP LSPs) only Links that are not part of a LAG or TE Bundle or that performs per-top-label load balancing are selected by path computation.

It is assumed that almost all the MPLS-TE nodes are capable to support Ultimate Hop Popping (UHP). However, if some interfaces are not able to support UHP, they can report it in the MPLS-TE topology:

    augment /nw:networks/nw:network/nw:node/nt:termination-point
            /tet:te:
      +--ro uhp-incapable?   empty

When setting up LSPs which do not requires PHP (e.g., MPLS-TP LSPs) only the interfaces (LTPs) which are capable to support UHP in the destination node are selected by path computation.

4. YANG model for common MPLS-TE Types

<CODE BEGINS> file "ietf-mpls-te-types@2021-10-12.yang"

module ietf-mpls-te-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-te-types";

  prefix "mte-types";

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

  organization
    "Internet Engineering Task Force (IETF) TEAS WG";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Italo Busi
               <mailto:italo.busi@huawei.com>

     Editor:   Haomian Zheng
               <mailto:zhenghaomian@huawei.com>

     Editor:   Aihua Guo
               <mailto:aihuaguo.ietf@gmail.com>

     Editor:   Xufeng Liu
               <mailto:xufeng.liu.ietf@gmail.com>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Tarek Saad
               <mailto:tsaad@juniper.net>

     Editor:   Rakesh Gandhi
               <mailto:rgandhi@cisco.com>

     Editor:   Igor Bryskin
               <mailto:i_bryskin@yahoo.com>

     Editor:   Yanlei Zheng
               <mailto:zhengyanlei@chinaunicom.cn>";

  description
    "This module defines technology-specific MPLS-TE types
     data model.

     Copyright (c) 2021 IETF Trust and the persons identified
     as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with
     or without modification, is permitted pursuant to, and
     subject to the license terms contained in, the Simplified
     BSD License set forth in Section 4.c of the IETF Trust's
     Legal Provisions Relating to IETF Documents
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision 2021-10-12 {
    description
      "Initial Version";
    reference
      "draft-busizheng-teas-yang-te-mpls-topology-02";
  }

  /*
  * Typedefs
  */

  typedef load-balancing-type {
    type enumeration {
      enum per-flow {
        description
          "The load-balancing algorithm ensures that packets
           characterized as the same flow (e.g. based on IP 5-tuple)
           that egress on a LAG or a bundled TE link are forwarded
           on the same component link.

           Packets for different flows within the same LSP can be
           forwarded on different component links.";
      }
      enum per-top-label {
        description
          "The load-balancing algorithm ensures incoming MPLS
           packets with the same top MPLS label and that egress on
           on a LAG or bundled TE link are forwarded on the same
           component link.

           Packets for different flows within the same LSP are
           forwarded on the same component link.";
      }
    }
    description
      "The type of load balancing used on bundled links.";
  }  // typedef load-balancing-type

  /*
  * Groupings
  */

  grouping te-mpls-label-hop {
    description
      "MPLS-TE Label Hop.";

    leaf mpls-label {
      type rt-types:mpls-label;
      description
        "MPLS Label.";
    }
  }  // grouping te-mpls-label-hop
}

<CODE ENDS>
Figure 2: MPLS-TE Types YANG model

5. YANG model for MPLS-TE Topology

5.1. YANG Tree

Figure 3 below shows the tree diagram of the YANG model defined in module ietf-te-mpls-topology.yang.

module: ietf-te-mpls-topology

  augment /nw:networks/nw:network/nw:network-types/tet:te-topology
            /tet-pkt:packet:
    +--rw mpls-topology!
  augment /nw:networks/nw:network/nt:link/tet:te:
    +--rw load-balancing-type?   mte-types:load-balancing-type
  augment /nw:networks/nw:network/nw:node/nt:termination-point
            /tet:te:
    +--ro uhp-incapable?   empty
Figure 3: MPLS-TE topology YANG tree

5.2. YANG Code

<CODE BEGINS> file "ietf-te-mpls-topology@2021-07-12.yang"

module ietf-te-mpls-topology {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls-topology";

  prefix "tet-mpls";

  import ietf-network {
    prefix "nw";
  }

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

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

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

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

  organization
    "Internet Engineering Task Force (IETF) TEAS WG";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Italo Busi
               <mailto:italo.busi@huawei.com>

     Editor:   Haomian Zheng
               <mailto:zhenghaomian@huawei.com>

     Editor:   Aihua Guo
               <mailto:aihuaguo.ietf@gmail.com>

     Editor:   Xufeng Liu
               <mailto:xufeng.liu.ietf@gmail.com>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Tarek Saad
               <mailto:tsaad@juniper.net>

     Editor:   Rakesh Gandhi
               <mailto:rgandhi@cisco.com>

     Editor:   Igor Bryskin
               <mailto:i_bryskin@yahoo.com>

     Editor:   Yanlei Zheng
               <mailto:zhengyanlei@chinaunicom.cn>";

  description
    "This module defines technology-specific MPLS-TE topology
     data model.

     Copyright (c) 2021 IETF Trust and the persons identified
     as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with
     or without modification, is permitted pursuant to, and
     subject to the license terms contained in, the Simplified
     BSD License set forth in Section 4.c of the IETF Trust's
     Legal Provisions Relating to IETF Documents
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision 2021-10-12 {
    description
      "Initial Version";
    reference
      "draft-busizheng-teas-yang-te-mpls-topology-02";
  }

  /*
   * Augmentations
   */

  augment "/nw:networks/nw:network/nw:network-types/"
        + "tet:te-topology/tet-pkt:packet" {
    description
      "Augment network types to include MPLS-TE Topology Type";
    container mpls-topology {
      presence
        "Indicates an MPLS-TE Topology Type.";
      description
        "Its presence indicates an MPLS-TE Topology";
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te" {
    when "../../nw:network-types/tet:te-topology/"
       + "tet-pkt:packet/tet-mpls:mpls-topology"  {
      description
        "Augment MPLS-TE Topology.";
    }
    description
      "Augment TE Link.";

    leaf load-balancing-type {
      type mte-types:load-balancing-type;
      default 'per-flow';
      description
        "Indicates the type of load-balancing (per-flow or per-LSP)
         performed by the bundled TE Link.

         This leaf is not present when the TE Link is not bundled.";
    }  // leaf load-balancing-type
  }

  augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
        + "tet:te" {
    when "../../../nw:network-types/tet:te-topology/"
       + "tet-pkt:packet/tet-mpls:mpls-topology" {
      description "Augment MPLS-TE Topology.";
    }
    description "Augment LTP.";

    leaf uhp-incapable {
      type empty;
      config false;
      description
        "When present, indicates that the LTP is not capable to
         support Ultimate Hop Popping (UHP).";
    }   // leaf uhp-incapable
  }
}

<CODE ENDS>
Figure 4: MPLS-TE topology YANG module

8. References

8.1. Normative References

[I-D.ietf-teas-yang-l3-te-topo]
Liu, X., Bryskin, I., Beeram, V. P., Saad, T., Shah, H., and O. G. D. Dios, "YANG Data Model for Layer 3 TE Topologies", Work in Progress, Internet-Draft, draft-ietf-teas-yang-l3-te-topo-12, , <https://www.ietf.org/archive/id/draft-ietf-teas-yang-l3-te-topo-12.txt>.
[RFC8294]
Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, "Common YANG Data Types for the Routing Area", RFC 8294, DOI 10.17487/RFC8294, , <https://www.rfc-editor.org/info/rfc8294>.
[RFC8340]
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, , <https://www.rfc-editor.org/info/rfc8340>.
[RFC8795]
Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and O. Gonzalez de Dios, "YANG Data Model for Traffic Engineering (TE) Topologies", RFC 8795, DOI 10.17487/RFC8795, , <https://www.rfc-editor.org/info/rfc8795>.

8.2. Informative References

[I-D.ietf-teas-yang-te-mpls]
Saad, T., Gandhi, R., Liu, X., Beeram, V. P., and I. Bryskin, "A YANG Data Model for MPLS Traffic Engineering Tunnels", Work in Progress, Internet-Draft, draft-ietf-teas-yang-te-mpls-03, , <https://www.ietf.org/archive/id/draft-ietf-teas-yang-te-mpls-03.txt>.
[RFC5921]
Bocci, M., Ed., Bryant, S., Ed., Frost, D., Ed., Levrau, L., and L. Berger, "A Framework for MPLS in Transport Networks", RFC 5921, DOI 10.17487/RFC5921, , <https://www.rfc-editor.org/info/rfc5921>.

Acknowledgments

We thank Loa Andersson for providing useful suggestions for this draft.

This document was prepared using kramdown.

Previous versions of this document was prepared using 2-Word-v2.0.template.dot.

Contributors

Haomian Zheng
Huawei Technologies
Vishnu Pavan Beeram
Juniper Networks
Igor Bryskin
Individual
Yanlei Zheng
China Unicom

Authors' Addresses

Italo Busi
Huawei Technologies
Aihua Guo
Futurewei Inc.
Xufeng Liu
Volta Networks
Tarek Saad
Juniper Networks
Rakesh Gandhi
Cisco Systems, Inc.