<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dhody-teas-te-traffic-yang-06" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Traffic-TE-YANG">Traffic Mapping YANG model for Traffic Engineering (TE)</title>
    <seriesInfo name="Internet-Draft" value="draft-dhody-teas-te-traffic-yang-06"/>
    <author initials="D." surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>IN</country>
        </postal>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>Routing</area>
    <workgroup>TEAS Working Group</workgroup>
    <abstract>
      <?line 46?>

<t>This document provides a YANG data model to map traffic to Traffic Engineering (TE) paths. This model provides the operator a seamless control and management of which traffic to send on the underlying TE resources.</t>
    </abstract>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Data models are a representation of objects that can be configured or monitored within a system.  Within the IETF, YANG <xref target="RFC7950"/> is the language of choice for documenting data models, and YANG models have been produced to allow the configuration or modelling of a variety of network devices, protocol instances, and network services.</t>
      <t>There are various YANG models to establish paths in the network, such as:</t>
      <ul spacing="normal">
        <li>
          <t>TE Tunnels <xref target="I-D.ietf-teas-yang-te"/></t>
        </li>
        <li>
          <t>Segment Routing (SR) Policy <xref target="I-D.ietf-spring-sr-policy-yang"/></t>
        </li>
        <li>
          <t>Service Function Chaining (SFC)</t>
        </li>
        <li>
          <t>Virtual Network (VN)</t>
        </li>
        <li>
          <t>IETF Network Slice</t>
        </li>
      </ul>
      <t>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.</t>
      <t>To achieve this goal, the YANG model defined in this document utilizes the concept borrowed from:</t>
      <ul spacing="normal">
        <li>
          <t>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 <xref target="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.</t>
        </li>
        <li>
          <t>Path Computation Element (PCE) FlowSpec: Extends the idea to PCE Communication Protocol (PCEP) <xref target="RFC9168"/>.</t>
        </li>
        <li>
          <t>Access Control List (ACL): A basic element used to configure device-forwarding behaviour in the form of a user-ordered set of rules that are 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 <xref target="RFC8519"/>.</t>
        </li>
        <li>
          <t>Flow: Elements in the packet in the IP/UDP/TCP header to match particular flows.</t>
        </li>
      </ul>
      <t>The YANG model includes two key concepts:</t>
      <ul spacing="normal">
        <li>
          <t>Traffic Description: The various fields that need to be matched to identify a traffic flow.</t>
        </li>
        <li>
          <t>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 the form of the TE tunnel, SR Policy etc.</t>
        </li>
      </ul>
      <t>Note: The RFC Editor will replace XXXX with the number assigned to the RFC once this draft becomes an RFC.</t>
      <section anchor="tree-diagrams">
        <name>Tree Diagrams</name>
        <t>A simplified graphical representation of the data model is used in this document.  The meaning of the symbols in these diagrams is defined in <xref target="RFC8340"/>.</t>
      </section>
      <section anchor="prefixes-in-data-node-names">
        <name>Prefixes in Data Node Names</name>
        <t>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 the 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.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="center">YANG module</th>
              <th align="right">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">inet</td>
              <td align="center">ietf-inet-types</td>
              <td align="right">
                <xref target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="center">ietf-yang-types</td>
              <td align="right">
                <xref target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">te</td>
              <td align="center">ietf-te</td>
              <td align="right">
                <xref target="I-D.ietf-teas-yang-te"/></td>
            </tr>
            <tr>
              <td align="left">rt</td>
              <td align="center">ietf-routing</td>
              <td align="right">
                <xref target="RFC8349"/></td>
            </tr>
            <tr>
              <td align="left">sr-policy</td>
              <td align="center">ietf-sr-policy</td>
              <td align="right">
                <xref target="I-D.ietf-spring-sr-policy-yang"/></td>
            </tr>
            <tr>
              <td align="left">ietf-nss</td>
              <td align="center">ietf-network-slice-service</td>
              <td align="right">
                <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/></td>
            </tr>
            <tr>
              <td align="left">acl</td>
              <td align="center">ietf-access-control-list</td>
              <td align="right">
                <xref target="RFC8519"/></td>
            </tr>
            <tr>
              <td align="left">packet-fields</td>
              <td align="center">ietf-packet-fields</td>
              <td align="right">
                <xref target="RFC8519"/></td>
            </tr>
            <tr>
              <td align="left">vpn-common</td>
              <td align="center">ietf-vpn-common</td>
              <td align="right">
                <xref target="RFC9181"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="references-in-the-model">
        <name>References in the Model</name>
        <t>The following documents are referenced in the model defined in this document -</t>
        <table>
          <thead>
            <tr>
              <th align="left">Document</th>
              <th align="center">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">YANG Data Model for Network Access Control Lists (ACLs)</td>
              <td align="center">
                <xref target="RFC8519"/></td>
            </tr>
            <tr>
              <td align="left">A YANG Data Model for Traffic Engineering Tunnels and Interfaces</td>
              <td align="center">
                <xref target="I-D.ietf-teas-yang-te"/></td>
            </tr>
            <tr>
              <td align="left">YANG Data Model for Segment Routing Policy</td>
              <td align="center">
                <xref target="I-D.ietf-spring-sr-policy-yang"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="discussion-items">
      <name>Discussion Items</name>
      <t>For describing the traffic, currently, the YANG models use:</t>
      <ul spacing="normal">
        <li>
          <t>The match criteria grouping from the <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/>.</t>
        </li>
        <li>
          <t>The ACL Name. Should that be ACE instead?</t>
        </li>
        <li>
          <t>The match action granularity in the case of IETF network slice and VN needs to be discussed.</t>
        </li>
        <li>
          <t>The match action for SFC has not been handled yet.</t>
        </li>
      </ul>
    </section>
    <section anchor="tree-structure">
      <name>Tree Structure</name>
      <sourcecode type="Tree"><![CDATA[
module: ietf-traffic-map
  +--rw traffic-map
     +--rw maps* [id]
        +--rw id         string
        +--rw traffic
        |  +--rw id?                      string
        |  +--rw (type)?
        |     +--:(match-criteria)
        |     |  +--rw match-criterion* [index]
        |     |     +--rw index         uint32
        |     |     +--rw match-type    identityref
        |     |     +--rw value*        string
        |     +--:(acl)
        |     |  +--rw acl?               -> /acl:acls/acl/name
        |     +--:(flowspec)
        |     +--:(interface)
        |     |  +--rw node?              string
        |     |  +--rw if-name?           string
        |     +--:(flow)
        |     |  +--rw (l3)?
        |     |  |  +--:(ipv4)
        |     |  |  |  +--rw ipv4
        |     |  |  |        ...
        |     |  |  +--:(ipv6)
        |     |  |     +--rw ipv6
        |     |  |           ...
        |     |  +--rw (l4)?
        |     |     +--:(tcp)
        |     |     |  +--rw tcp
        |     |     |        ...
        |     |     +--:(udp)
        |     |        +--rw udp
        |     |              ...
        |     +--:(other)
        +--rw action
        |  +--rw te-tunnel*   te:tunnel-ref
        |  +--rw sr-policy* [headend policy-color-ref policy-endpoint-ref]
        |  |  +--rw headend                inet:ip-address-no-zone
        |  |  +--rw policy-color-ref       leafref
        |  |  +--rw policy-endpoint-ref    leafref
        |  +--rw other
        +--ro stats
           +--ro matched-packets?   yang:counter64
           +--ro matched-octets?    yang:counter64
]]></sourcecode>
    </section>
    <section anchor="yang-model">
      <name>YANG Model</name>
      <sourcecode type="YANG"><![CDATA[
<CODE BEGINS> file "ietf-traffic-map@2026-11-02.yang"
module ietf-traffic-map {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-traffic-map";
  prefix tm;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-te {
    prefix te;
    reference
      "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC8349: A YANG Data Model for Routing Management";
  }
  import ietf-sr-policy {
    prefix sr-policy;
    reference
      "I-D.ietf-spring-sr-policy-yang: YANG Data Model for Segment
       Routing Policy";
  }
  import ietf-network-slice-service {
    prefix ietf-nss;
    reference
      "I-D.ietf-teas-ietf-network-slice-nbi-yang: IETF
       Network Slice Service YANG Model";
  }
  import ietf-packet-fields {
    prefix packet-fields;
    reference
      "RFC 8519: YANG Data Model for Network Access
       Control Lists (ACLs)";
  }
  import ietf-access-control-list {
    prefix acl;
    reference
      "RFC 8519: YANG Data Model for Network Access Control
       Lists (ACLs)";
  }
  import ietf-vpn-common {
    prefix vpn-common;
    reference
      "RFC 9181: A Common YANG Data Model for Layer 2 and
       Layer 3 VPNs";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:  <https://datatracker.ietf.org/wg/teas/about/>
     WG List:  <mailto:teas@ietf.org>
     Editor: Dhruv Dhody <dhruv.ietf@gmail.com>";
  description
    "This module contains a YANG module to map traffic to
     Traffic Engineering (TE) paths.

     Copyright (c) 2026 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 Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://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 2026-11-02 {
    description
      "Initial version.";
    reference
      "RFC XXXX: Traffic Mapping YANG model for Traffic
       Engineering (TE)";
  }

  grouping traffic-description {
    description
      "The traffic description";
    leaf id {
      type string;
      description
        "The identifier for Traffic Description";
    }
    choice type {
      description
        "The various ways the traffic can be described";
      case match-criteria {
        description
          "Use the match criteria";
        list match-criterion {
          key "index";
          description
            "List of traffic match criteria.";
          leaf index {
            type uint32;
            description
              "The entry index.";
          }
          leaf match-type {
            type identityref {
              base ietf-nss:service-match-type;
            }
            mandatory true;
            description
              "Identifies an entry in the list of the
               match criteria.";
          }
          leaf-list value {
            type string;
            description
              "Describes the slice service match criteria, e.g.
               IP address, VLAN, etc.";
          }
        }
      }
      case acl {
        description
          "Reference to ACL";
        leaf acl {
          type leafref {
            path "/acl:acls/acl:acl/acl:name";
          }
          description
            "The ACL Name. The action part of the ACL is not
             used.";
          reference
            "RFC8519: YANG Data Model for Network Access Control
             Lists (ACLs)";
        }
      }
      case flowspec {
        description
          "Based on FlowSpec component type - TODO";
      }
      case interface {
        description
          "All traffic received on an interface";
        leaf node {
          type string;
          description
            "The node identifier";
        }
        leaf if-name {
          type string;
          description
            "The interface name on the node";
        }
      }
      case flow {
        description
          "Match particular flows";
        choice l3 {
          description
            "Either IPv4 or IPv6.";
          container ipv4 {
            description
              "Rule set that matches the IPv4 header.";
            uses packet-fields:acl-ip-header-fields;
            uses packet-fields:acl-ipv4-header-fields;
          }
          container ipv6 {
            description
              "Rule set that matches the IPv6 header.";
            uses packet-fields:acl-ip-header-fields;
            uses packet-fields:acl-ipv6-header-fields;
          }
        }
        choice l4 {
          description
            "Includes Layer-4-specific information.
             This version focuses on TCP and UDP.";
          container tcp {
            description
              "Rule set that matches the TCP header.";
            uses packet-fields:acl-tcp-header-fields;
            uses vpn-common:ports;
          }
          container udp {
            description
              "Rule set that matches the UDP header.";
            uses packet-fields:acl-udp-header-fields;
            uses vpn-common:ports;
          }
        }
      }
      case other {
        description
          "TODO";
      }
    }
  }

  grouping te-ref {
    description
      "Reference to TE paths";
    leaf-list te-tunnel {
      type te:tunnel-ref;
      description
        "Reference to TE Tunnels";
      reference
        "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
         Engineering Tunnels and Interfaces";
    }
    list sr-policy {
      key "headend policy-color-ref policy-endpoint-ref";
      description
        "SR Policy";
      reference
        "I-D.ietf-spring-sr-policy-yang: YANG Data Model for
         Segment Routing Policy";
      /*Headend needs to be added*/
      leaf headend {
        type inet:ip-address-no-zone;
        description
          "SR Policy headend";
      }
      leaf policy-color-ref {
        type leafref {
          path "/rt:routing/sr-policy:segment-routing"
             + "/sr-policy:traffic-engineering/sr-policy:policies"
             + "/sr-policy:policy/sr-policy:color";
        }
        description
          "Reference to sr-policy color";
      }
      leaf policy-endpoint-ref {
        type leafref {
          path "/rt:routing/sr-policy:segment-routing"
             + "/sr-policy:traffic-engineering/sr-policy:policies"
             + "/sr-policy:policy/sr-policy:endpoint";
        }
        description
          "Reference to sr-policy endpoint";
      }
    }
    container other {
      description
        "To dp - VN, IETF Network Slice, SFC, etc";
    }
  }

  /* Configuration data nodes */

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

<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to make the following allocation for the URIs in the "ns" registry within the "IETF XML Registry Group" <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   --------------------------------------------------------------------
   URI: urn:ietf:params:xml:ns:yang:ietf-traffic-map
   Registrant Contact: The IESG.
   XML: N/A, the requested URI is an XML namespace.
   --------------------------------------------------------------------
]]></artwork>
      <t>IANA is requested to make the following allocation for the YANG module in the "YANG Module Names" registry <xref target="RFC6020"/>:</t>
      <artwork><![CDATA[
   --------------------------------------------------------------------
   name:         ietf-traffic-map
   namespace:    urn:ietf:params:xml:ns:yang:ietf-traffic-map
   prefix:       tm
   reference:    RFC XXXX
   --------------------------------------------------------------------
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="RFC8519">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="RFC9181">
          <front>
            <title>A Common YANG Data Model for Layer 2 and Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="I-D.ietf-teas-yang-te">
          <front>
            <title>A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths, and Interfaces</title>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Alef Edge</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <date day="26" month="March" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data pertinent to TE
   tunnels, TE LSPs, and TE interfaces that are independent of any
   technology or dataplane encapsulation.  The model is divided into two
   YANG modules that address both device-specific and device-independent
   data, supporting configuration, operational state, Remote Procedure
   Calls (RPCs), and event notifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-44"/>
        </reference>
        <reference anchor="I-D.ietf-spring-sr-policy-yang">
          <front>
            <title>YANG Data Model for Segment Routing Policy</title>
            <author fullname="Tarik Saleh" initials="T." surname="Saleh">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Syed Kamran Raza" initials="S. K." surname="Raza">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Satoru Matsushima" initials="S." surname="Matsushima">
              <organization>SoftBank</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for Segment Routing (SR)
   Policy that can be used for configuring, instantiating, and managing
   SR policies.  The model is generic and applies equally to the MPLS
   and SRv6 instantiations of SR policies.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-sr-policy-yang-08"/>
        </reference>
        <reference anchor="I-D.ietf-teas-ietf-network-slice-nbi-yang">
          <front>
            <title>A YANG Data Model for the RFC 9543 Network Slice Service</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Reza Rokui" initials="R." surname="Rokui">
              <organization>Ciena</organization>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems, Inc</organization>
            </author>
            <author fullname="John Mullooly" initials="J." surname="Mullooly">
              <organization>Cisco Systems, Inc</organization>
            </author>
            <date day="26" month="May" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for RFC 9543 Network Slice
   Service.  The model can be used in the Network Slice Service
   interface between a customer and a provider that offers RFC 9543
   Network Slice Services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slice-nbi-yang-26"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8955">
          <front>
            <title>Dissemination of Flow Specification Rules</title>
            <author fullname="C. Loibl" initials="C." surname="Loibl"/>
            <author fullname="S. Hares" initials="S." surname="Hares"/>
            <author fullname="R. Raszuk" initials="R." surname="Raszuk"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="M. Bacher" initials="M." surname="Bacher"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>This document defines a Border Gateway Protocol Network Layer Reachability Information (BGP NLRI) encoding format that can be used to distribute (intra-domain and inter-domain) traffic Flow Specifications for IPv4 unicast and IPv4 BGP/MPLS VPN services. This allows the routing system to propagate information regarding more specific components of the traffic aggregate defined by an IP destination prefix.</t>
              <t>It also specifies BGP Extended Community encoding formats, which can be used to propagate Traffic Filtering Actions along with the Flow Specification NLRI. Those Traffic Filtering Actions encode actions a routing system can take if the packet matches the Flow Specification.</t>
              <t>This document obsoletes both RFC 5575 and RFC 7674.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8955"/>
          <seriesInfo name="DOI" value="10.17487/RFC8955"/>
        </reference>
        <reference anchor="RFC9168">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extension for Flow Specification</title>
            <author fullname="D. Dhody" initials="D." surname="Dhody"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>The Path Computation Element (PCE) is a functional component capable of selecting paths through a traffic engineering (TE) network. These paths may be supplied in response to requests for computation or may be unsolicited requests issued by the PCE to network elements. Both approaches use the PCE Communication Protocol (PCEP) to convey the details of the computed path.</t>
              <t>Traffic flows may be categorized and described using "Flow Specifications". RFC 8955 defines the Flow Specification and describes how Flow Specification components are used to describe traffic flows. RFC 8955 also defines how Flow Specifications may be distributed in BGP to allow specific traffic flows to be associated with routes.</t>
              <t>This document specifies a set of extensions to PCEP to support dissemination of Flow Specifications. This allows a PCE to indicate what traffic should be placed on each path that it is aware of.</t>
              <t>The extensions defined in this document include the creation, update, and withdrawal of Flow Specifications via PCEP and can be applied to tunnels initiated by the PCE or to tunnels where control is delegated to the PCE by the Path Computation Client (PCC). Furthermore, a PCC requesting a new path can include Flow Specifications in the request to indicate the purpose of the tunnel allowing the PCE to factor this into the path computation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9168"/>
          <seriesInfo name="DOI" value="10.17487/RFC9168"/>
        </reference>
      </references>
    </references>
    <?line 507?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Adrian Farrel for the motivation behind this document.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>To be added in future revisions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
