<?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.19 (Ruby 3.0.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dhody-teas-te-traffic-yang-05" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <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-05"/>
    <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="RFC6991"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="center">ietf-yang-types</td>
              <td align="right">
                <xref target="RFC6991"/></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"/>. If this document gets WG backing, then it might be a good idea to move the grouping to this document instead.</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@2024-10-20.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 6991: 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) 2024 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 2024-10-20 {
    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="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </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="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="9" month="October" year="2024"/>
            <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 that is independent of
   any technology or dataplane encapsulation and is divided into two
   YANG modules that cover device-specific, and device independent data.

   This model covers data for configuration, operational state, remote
   procedural calls, and event notifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-37"/>
        </reference>
        <reference anchor="I-D.ietf-spring-sr-policy-yang">
          <front>
            <title>YANG Data Model for Segment Routing Policy</title>
            <author fullname="Syed Kamran Raza" initials="S. K." surname="Raza">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Tarik Saleh" initials="T." surname="Saleh">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Zhuang Shunwan" initials="Z." surname="Shunwan">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Daniel Voyer" initials="D." surname="Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Muhammad Durrani" initials="M." surname="Durrani">
              <organization>Equinix</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="4" month="March" year="2024"/>
            <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-03"/>
        </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="28" month="August" year="2024"/>
            <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-16"/>
        </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>
