Internet-Draft Traffic-TE-YANG October 2021
Dhody Expires 27 April 2022 [Page]
TEAS Working Group
Intended Status:
Standards Track
D. Dhody
Huawei Technologies

Traffic Mapping YANG model for Traffic Engineering (TE)


This document provides a YANG data model to map traffic to Traffic Engineering (TE) paths. This model providers operator a seamless control and management of which traffic to send on the underlying TE resources.

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

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

1. Introduction

Data models are a representation of objects that can be configured or monitored within a system. Within the IETF, YANG [RFC7950] is the language of choice for documenting data models, and YANG models have been produced to allow configuration or modeling of a variety of network devices, protocol instances, and network services.

There are various YANG models to establish paths in the network, such as:

These models do not include an exact mechanism to describe the traffic that needs to be mapped to the paths. Thus an operator lacks a way to simply use the YANG model to tell requirements such as the traffic from source X on port Y should go on a TE path with delay less than Z. The YANG model defined in this document fills this gap.

To achieve this goal, the YANG model defined in this document utilizes the concept borrowed from:

  • BGP FlowSpec: Where the description of traffic flows is done by the combination of multiple Flow Specification Components and their dissemination as traffic flow specifications (Flow Specifications) is described for BGP in [RFC8955]. In BGP, a Flow Specification is comprised of traffic filtering rules and is associated with actions to perform on the packets that match the Flow Specification. The BGP routers that receive a Flow Specification can classify received packets according to the traffic filtering rules and can direct packets based on the associated actions.
  • Path Computation Element (PCE) FlowSpec: Extends the idea to PCE Communication Protocol (PCEP) [I-D.ietf-pce-pcep-flowspec].
  • Access Control List (ACL): A basic elements used to configure device-forwarding behavior in form of a user-ordered set of rules that is used to filter traffic on a networking device. Each rule is represented by an Access Control Entry (ACE). Each ACE has a group of match criteria and a group of actions [RFC8519].

The YANG model includes two key concepts:

  • Traffic Description: The various fields that needs to be matched to identify a traffic flow.
  • Action: The associated action that needs to be taken. For the purpose of this YANG model the action is to simply point to the TE resource in form of the TE tunnel, SR Policy etc.

Note: The RFC Editor will replace XXXX with the number assigned to the RFC once this draft becomes an RFC.

2. Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2.1. Tree Diagrams

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

2.2. Prefixes in Data Node Names

In this document, names of data nodes and other data model objects are often used without a prefix, as long as it is clear from the context in which YANG module each name is defined. Otherwise, names are prefixed using the standard prefix associated with the corresponding YANG module, as shown in Table 1.

Table 1
Prefix YANG module Reference
yang ietf-yang-types [RFC6991]
te ietf-te [I-D.ietf-teas-yang-te]
rt ietf-routing [RFC8349]
sr-policy ietf-sr-policy [I-D.ietf-spring-sr-policy-yang]
ietf-ns ietf-network-slice [I-D.ietf-teas-ietf-network-slice-nbi-yang]
acl ietf-access-control-list [RFC8519]

2.3. References in the Model

Following documents are referenced in the model defined in this document -

Table 2
Document Reference
YANG Data Model for Network Access Control Lists (ACLs) [RFC8519]
A YANG Data Model for Traffic Engineering Tunnels and Interfaces [I-D.ietf-teas-yang-te]
YANG Data Model for Segment Routing Policy [I-D.ietf-spring-sr-policy-yang]

3. Discussion Items

For describing the traffic, currently the YANG models uses:

  • The match criteria grouping from the [I-D.ietf-teas-ietf-network-slice-nbi-yang]. If this document gets WG backing, then it might be a good idea to move the grouping to this document instead.
  • The ACL Name. Should that be ACE instead?
  • The match action granularity in case of IETF network slice and VN needs to be discussed.
  • The match action for SFC is not handled yet.

4. Tree Structure

module: ietf-traffic-map
  +--rw traffic-map
     +--rw maps* [id]
        +--rw id         string
        +--rw traffic
        |  +--rw id?                        string
        |  +--rw (type)?
        |     +--:(match-criteria)
        |     |  +--rw ns-match-criteria
        |     |     +--rw ns-match-criterion* [match-type]
        |     |        +--rw match-type    identityref
        |     |        +--rw values* [index]
        |     |           +--rw index    uint8
        |     |           +--rw value?   string
        |     +--:(acl)
        |     |  +--rw acl?                 -> /acl:acls/acl/name
        |     +--:(flowspec)
        |     +--:(other)
        +--rw action
        |  +--rw te-tunnel*   te:tunnel-ref
        |  +--rw sr-policy* [policy-color-ref policy-endpoint-ref]
        |  |  +--rw policy-color-ref       leafref
        |  |  +--rw policy-endpoint-ref    leafref
        |  +--rw other
        +--ro stats
           +--ro matched-packets?   yang:counter64
           +--ro matched-octets?    yang:counter64

5. YANG Model

<CODE BEGINS> file "ietf-traffic-map@2021-10-24.yang"
module ietf-traffic-map {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-traffic-map";
  prefix tm;

  import ietf-yang-types {
    prefix yang;
      "RFC 6991: Common YANG Data Types";
  import ietf-te {
    prefix te;
      "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  import ietf-routing {
    prefix rt;
      "RFC8349: A YANG Data Model for Routing Management";
  import ietf-sr-policy {
    prefix sr-policy;
      "I-D.ietf-spring-sr-policy-yang: YANG Data Model for Segment
       Routing Policy";
  import ietf-network-slice {
    prefix ietf-ns;
      "I-D.ietf-teas-ietf-network-slice-nbi-yang: IETF
       Network Slice Service YANG Model";
  import ietf-access-control-list {
    prefix acl;
      "RFC8519: YANG Data Model for Network Access Control
       Lists (ACLs)";

    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
    "WG Web:  <>
     WG List:  <>
     Editor: Dhruv Dhody <>";
    "This module contains a YANG module to map traffic to
     Traffic Engineering (TE) paths.

     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

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

  revision 2021-10-24 {
      "initial version.";
      "RFC XXXX: Traffic Mapping YANG model for Traffic
       Engineering (TE)";

  grouping traffic-description {
      "The traffic description";
    leaf id {
      type string;
        "The identifier for Traffic Description";
    choice type {
        "The various ways the traffic can be described";
      case match-criteria {
          "Use the match criteria";
        uses ietf-ns:ns-match-criteria;
      case acl {
          "Reference to ACL";
        leaf acl {
          type leafref {
            path "/acl:acls/acl:acl/acl:name";
            "The ACL Name. The action part of the ACL is not
            "RFC8519: YANG Data Model for Network Access Control
             Lists (ACLs)";
      case flowspec {
          "Based on FlowSpec component type - TODO";
      case other {

  grouping te-ref {
      "Reference to TE paths";
    leaf-list te-tunnel {
      type te:tunnel-ref;
        "Reference to TE Tunnels";
        "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
         Engineering Tunnels and Interfaces";
    list sr-policy {
      key "policy-color-ref policy-endpoint-ref";
        "SR Policy";
        "I-D.ietf-spring-sr-policy-yang: YANG Data Model for
         Segment Routing Policy";
      leaf policy-color-ref {
        type leafref {
          + "/sr-policy:traffic-engineering/sr-policy:policies"
          + "/sr-policy:policy/sr-policy:color";
          "Reference to sr-policy color";
      leaf policy-endpoint-ref {
        type leafref {
          + "/sr-policy:traffic-engineering/sr-policy:policies"
          + "/sr-policy:policy/sr-policy:endpoint";
          "Reference to sr-policy endpoint";
    container other {
        "To dp - VN, IETF Network Slice, SFC etc";

  /* Configuration data nodes */

  container traffic-map {
      "AP configurations";
    list maps {
      key "id";
        "traffic map identifier";
      leaf id {
        type string;
          "The identifier for Traffic Maps";
      container traffic {
          "The traffic description";
        uses traffic-description;
      container action {
          "The action is limited to identifying the TE resource";
        uses te-ref;
      container stats {
        config false;
        leaf matched-packets {
          type yang:counter64;
            "The number of packets that matched the traffic
        leaf matched-octets {
          type yang:counter64;
            "The number of octets (byte) that matched the traffic


7. IANA Considerations

IANA is requested to make the following allocation for the URIs in the "ns" subregistry within the "IETF XML Registry" [RFC3688]:

   URI: urn:ietf:params:xml:ns:yang:ietf-traffic-map
   Registrant Contact: The IESG.
   XML: N/A, the requested URI is an XML namespace.

IANA is requested to make the following allocation for the YANG module in the "YANG Module Names" registry [RFC6020]:

   name:         ietf-traffic-map
   namespace:    urn:ietf:params:xml:ns:yang:ietf-traffic-map
   prefix:       tm
   reference:    RFC XXXX

8. References

8.1. Normative References

Raza, K., Sawaya, R., Shunwan, Z., Voyer, D., Durrani, M., Matsushima, S., and V. P. Beeram, "YANG Data Model for Segment Routing Policy", Work in Progress, Internet-Draft, draft-ietf-spring-sr-policy-yang-01, , <>.
Wu, B., Dhody, D., Rokui, R., Saad, T., and L. Han, "IETF Network Slice Service YANG Model", Work in Progress, Internet-Draft, draft-ietf-teas-ietf-network-slice-nbi-yang-00, , <>.
Saad, T., Gandhi, R., Liu, X., Beeram, V. P., Bryskin, I., and O. G. D. Dios, "A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths and Interfaces", Work in Progress, Internet-Draft, draft-ietf-teas-yang-te-27, , <>.
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <>.
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, , <>.
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, , <>.
Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, , <>.
Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, , <>.
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <>.
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, , <>.
Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, , <>.
Jethanandani, M., Agarwal, S., Huang, L., and D. Blair, "YANG Data Model for Network Access Control Lists (ACLs)", RFC 8519, DOI 10.17487/RFC8519, , <>.

8.2. Informative References

Dhody, D., Farrel, A., and Z. Li, "PCEP Extension for Flow Specification", Work in Progress, Internet-Draft, draft-ietf-pce-pcep-flowspec-13, , <>.
Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M. Bacher, "Dissemination of Flow Specification Rules", RFC 8955, DOI 10.17487/RFC8955, , <>.

Appendix A. Acknowledgments

Thanks to Adrian Farrel for the motivation behind this document.

Appendix B. Examples

TO be added in future revisions.

Author's Address

Dhruv Dhody
Huawei Technologies
Divyashree Techno Park, Whitefield
Bangalore 560066