<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-teas-yang-te-mpls-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="MPLS TE Tunnels YANG Data Model">A YANG Data Model for MPLS Traffic Engineering Tunnels</title>

    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Cisco Systems Inc</organization>
      <address>
        <email>tsaad@cisco.com</email>
      </address>
    </author>
    <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
      <organization>Cisco Systems Inc</organization>
      <address>
        <email>rgandhi@cisco.com</email>
      </address>
    </author>
    <author initials="X." surname="Liu" fullname="Xufeng Liu">
      <organization>IBM Corporation</organization>
      <address>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="V. P." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="I." surname="Bryskin" fullname="Igor Bryskin">
      <organization>Individual</organization>
      <address>
        <email>i_bryskin@yahoo.com</email>
      </address>
    </author>

    <date year="2023" month="May" day="26"/>

    
    <workgroup>TEAS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines a YANG data model for the configuration and management of
Multiprotocol Label Switching (MPLS) Traffic Engineering (TE) tunnels,
Label Switched Paths (LSPs) and interfaces. The model augments the TE generic YANG
model for MPLS packet dataplane technology.</t>

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



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>YANG <xref target="RFC6020"/> and <xref target="RFC7950"/> is a data modeling language used to define
the contents of a conceptual data store that allows networked devices to be
managed using NETCONF <xref target="RFC6241"/>. YANG has proved relevant beyond its initial
confines, as bindings to other interfaces (e.g. RESTCONF <xref target="RFC8040"/>) and
encoding other than XML (e.g. JSON) are being defined. Furthermore, YANG data
models can be used as the basis of implementation for other interfaces, such as
CLI and programmatic APIs.</t>

<t>This document describes the YANG data model for configuration and management of
MPLS TE tunnels, LSPs, and interfaces.  Other YANG module(s) that model the establishment of
MPLS LSP(s) via signaling protocols such as RSVP-TE (<xref target="RFC3209"/>, <xref target="RFC3473"/>) are described
in separate document(s).</t>

<section anchor="terminology"><name>Terminology</name>

<t>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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t>The terminology for describing YANG data models is found in <xref target="RFC7950"/>.</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 prefixed
using the standard prefix associated with the corresponding YANG imported
modules, as shown in Table 1.</t>

<texttable title="Prefixes and corresponding YANG modules" anchor="tab1">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>yang</c>
      <c>ietf-yang-types</c>
      <c><xref target="RFC6991"/></c>
      <c>inet</c>
      <c>ietf-inet-types</c>
      <c><xref target="RFC6991"/></c>
      <c>rt-types</c>
      <c>ietf-routing-types</c>
      <c><xref target="RFC8294"/></c>
      <c>te</c>
      <c>ietf-te</c>
      <c><xref target="I-D.ietf-teas-yang-te"/></c>
      <c>te-mpls</c>
      <c>ietf-te-mpls</c>
      <c>This document</c>
      <c>te-types</c>
      <c>ietf-te-types</c>
      <c><xref target="RFC8776"/></c>
</texttable>

</section>
<section anchor="acronyms-and-abbreviations"><name>Acronyms and Abbreviations</name>

<ul empty="true"><li>
  <t>MPLS: Multiprotocol Label Switching
LSP: Label Switched Path
LSR: Label Switching Router
LER: Label Edge Router
TE: Traffic Engineering</t>
</li></ul>

</section>
</section>
<section anchor="mpls-te-yang-model"><name>MPLS TE YANG Model</name>

<t>The MPLS TE YANG model covers the configuration, state, RPC and notifications
data pertaining to MPLS TE interfaces, tunnels and LSPs parameters. The data
specific to the signaling protocol used to establish MPLS LSP(s) is outside the
scope of this document and is covered in other documents.</t>

<section anchor="modules-relationship"><name>Module(s) Relationship</name>

<t>The MPLS TE YANG module "ietf-te-mpls" imports the following modules:</t>

<t><list style="symbols">
  <t>ietf-te defined in <xref target="I-D.ietf-teas-yang-te"/></t>
  <t>ietf-te-types and ietf-te-packet-types defined in <xref target="RFC8776"/></t>
  <t>ietf-routing-types defined in <xref target="RFC8294"/></t>
  <t>ietf-mpls-static defined in <xref target="I-D.ietf-mpls-static-yang"/></t>
</list></t>

<t>This module references the following documents:
<xref target="RFC8233"/>, <xref target="RFC4710"/>, <xref target="RFC8570"/>, and <xref target="RFC4124"/>.</t>

<figure title="Relationship of MPLS TE module with TE generic and RSVP-TE
YANG modules" anchor="figctrl"><artwork><![CDATA[
                   +---------+         o: augment
                   | ietf-te |
                   +---------+
                      o  o
                      |  |
                +-----+  +-----+
                |              |
          +---------------+   +--------------+
          | ietf-rsvp-te^ |--o| ietf-te-mpls |
          +---------------+   +--------------+

                X---oY indicates that module X augments module Y
                ^ indicates a module defined in other documents
]]></artwork></figure>

<t>The MPLS TE YANG module "ietf-te-mpls" augments the "ietf-te" TE generic YANG
module as shown in <xref target="figctrl"/>.</t>

</section>
<section anchor="model-tree-diagram"><name>Model Tree Diagram</name>

<t><xref target="fig-globals-tree"/> shows the tree diagram of the MPLS TE YANG model that is
defined in ietf-te-mpls.yang.</t>

<figure title="MPLS TE model configuration and state tree" anchor="fig-globals-tree"><artwork><![CDATA[
module: ietf-te-mpls
  augment /te:te/te-dev:performance-thresholds:
    +--rw throttle
       +--rw one-way-delay-offset?                  uint32
       +--rw measure-interval?                      uint32
       +--rw advertisement-interval?                uint32
       +--rw suppression-interval?                  uint32
       +--rw threshold-out
       |  +--rw one-way-delay?                 uint32
       |  +--rw one-way-residual-bandwidth?
       |  |       rt-types:bandwidth-ieee-float32
       |  +--rw one-way-available-bandwidth?
       |  |       rt-types:bandwidth-ieee-float32
       |  +--rw one-way-utilized-bandwidth?
       |  |       rt-types:bandwidth-ieee-float32
       |  +--rw two-way-delay?                 uint32
       |  +--rw one-way-min-delay?             uint32
       |  +--rw one-way-max-delay?             uint32
       |  +--rw one-way-delay-variation?       uint32
       |  +--rw one-way-packet-loss?           decimal64
       |  +--rw two-way-min-delay?             uint32
       |  +--rw two-way-max-delay?             uint32
       |  +--rw two-way-delay-variation?       uint32
       |  +--rw two-way-packet-loss?           decimal64
       +--rw threshold-in
       |  +--rw one-way-delay?                 uint32
       |  +--rw one-way-residual-bandwidth?
       |  |       rt-types:bandwidth-ieee-float32
       |  +--rw one-way-available-bandwidth?
       |  |       rt-types:bandwidth-ieee-float32
       |  +--rw one-way-utilized-bandwidth?
       |  |       rt-types:bandwidth-ieee-float32
       |  +--rw two-way-delay?                 uint32
       |  +--rw one-way-min-delay?             uint32
       |  +--rw one-way-max-delay?             uint32
       |  +--rw one-way-delay-variation?       uint32
       |  +--rw one-way-packet-loss?           decimal64
       |  +--rw two-way-min-delay?             uint32
       |  +--rw two-way-max-delay?             uint32
       |  +--rw two-way-delay-variation?       uint32
       |  +--rw two-way-packet-loss?           decimal64
       +--rw threshold-accelerated-advertisement
          +--rw one-way-delay?                 uint32
          +--rw one-way-residual-bandwidth?
          |       rt-types:bandwidth-ieee-float32
          +--rw one-way-available-bandwidth?
          |       rt-types:bandwidth-ieee-float32
          +--rw one-way-utilized-bandwidth?
          |       rt-types:bandwidth-ieee-float32
          +--rw two-way-delay?                 uint32
          +--rw one-way-min-delay?             uint32
          +--rw one-way-max-delay?             uint32
          +--rw one-way-delay-variation?       uint32
          +--rw one-way-packet-loss?           decimal64
          +--rw two-way-min-delay?             uint32
          +--rw two-way-max-delay?             uint32
          +--rw two-way-delay-variation?       uint32
          +--rw two-way-packet-loss?           decimal64
  augment /te:te/te:tunnels/te:tunnel:
    +--rw tunnel-igp-shortcut
    |  +--rw shortcut-eligible?   boolean
    |  +--rw metric-type?         identityref
    |  +--rw metric?              int32
    |  +--rw routing-afs*         inet:ip-version
    +--rw forwarding
    |  +--rw binding-label?   rt-types:mpls-label
    |  +--rw load-share?      uint32
    |  +--rw policy-class?    uint8
    +--rw bandwidth-mpls
       +--rw specification-type?
       |       te-packet-types:te-bandwidth-requested-type
       +--rw set-bandwidth?        te-packet-types:bandwidth-kbps
       +--rw class-type?           te-types:te-ds-class
       +--ro state
       |  +--ro signaled-bandwidth?   te-packet-types:bandwidth-kbps
       +--rw auto-bandwidth
          +--rw enabled?            boolean
          +--rw min-bw?             te-packet-types:bandwidth-kbps
          +--rw max-bw?             te-packet-types:bandwidth-kbps
          +--rw adjust-interval?    uint32
          +--rw adjust-threshold?   rt-types:percentage
          +--rw overflow
          |  +--rw enabled?               boolean
          |  +--rw overflow-threshold?    rt-types:percentage
          |  +--rw trigger-event-count?   uint16
          +--rw underflow
             +--rw enabled?               boolean
             +--rw underflow-threshold?   rt-types:percentage
             +--rw trigger-event-count?   uint16
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path:
    +--rw static-lsp-name?   mpls-static:static-lsp-ref
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path:
    +--rw static-lsp-name?   mpls-static:static-lsp-ref
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint:
    +--rw bandwidth
       +--rw specification-type?
       |       te-packet-types:te-bandwidth-requested-type
       +--rw set-bandwidth?        te-packet-types:bandwidth-kbps
       +--rw class-type?           te-types:te-ds-class
       +--ro state
          +--ro signaled-bandwidth?   te-packet-types:bandwidth-kbps
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path
            /te:lsps/te:lsp:
    +--ro performance-metrics-one-way
    |  +--ro one-way-delay?                           uint32
    |  +--ro one-way-delay-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-residual-bandwidth?
    |  |       rt-types:bandwidth-ieee-float32
    |  +--ro one-way-residual-bandwidth-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-available-bandwidth?
    |  |       rt-types:bandwidth-ieee-float32
    |  +--ro one-way-available-bandwidth-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-utilized-bandwidth?
    |  |       rt-types:bandwidth-ieee-float32
    |  +--ro one-way-utilized-bandwidth-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-min-delay?                       uint32
    |  +--ro one-way-min-delay-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-max-delay?                       uint32
    |  +--ro one-way-max-delay-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-delay-variation?                 uint32
    |  +--ro one-way-delay-variation-normality?
    |  |       te-types:performance-metrics-normality
    |  +--ro one-way-packet-loss?                     decimal64
    |  +--ro one-way-packet-loss-normality?
    |          te-types:performance-metrics-normality
    +--ro performance-metrics-two-way
       +--ro two-way-delay?                       uint32
       +--ro two-way-delay-normality?
       |       te-types:performance-metrics-normality
       +--ro two-way-min-delay?                   uint32
       +--ro two-way-min-delay-normality?
       |       te-types:performance-metrics-normality
       +--ro two-way-max-delay?                   uint32
       +--ro two-way-max-delay-normality?
       |       te-types:performance-metrics-normality
       +--ro two-way-delay-variation?             uint32
       +--ro two-way-delay-variation-normality?
       |       te-types:performance-metrics-normality
       +--ro two-way-packet-loss?                 decimal64
       +--ro two-way-packet-loss-normality?
               te-types:performance-metrics-normality
]]></artwork></figure>

</section>
<section anchor="mpls-te-yang-module"><name>MPLS TE YANG Module</name>

<figure title="TE generic YANG module" anchor="fig-basic-te"><artwork><![CDATA[
<CODE BEGINS> file "ietf-te-mpls@2023-05-25.yang"
module ietf-te-mpls {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls";

  /* Replace with IANA when assigned */
  prefix "te-mpls";

  /* Import TE base model */
  import ietf-te {
    prefix te;
    reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic
               Engineering Tunnels and Interfaces";
  }

  /* Import TE MPLS types */
  import ietf-te-packet-types {
    prefix "te-packet-types";
    reference "RFC8776: A YANG Data Model for
               Common Traffic Engineering Types";
  }

  /* Import TE generic types */
  import ietf-te-types {
    prefix te-types;
    reference "RFC8776: A YANG Data Model for
               Common Traffic Engineering Types";
  }

  /* Import routing types */
  import ietf-routing-types {
    prefix rt-types;
    reference "RFC8294: Common YANG Data Types for the Routing Area";
  }

  import ietf-mpls-static {
    prefix mpls-static;
    reference "draft-ietf-mpls-static-yang: A YANG Data Model
               for MPLS Static LSPs";
  }

  import ietf-inet-types {
    prefix inet;
    reference "RFC6991: Common YANG Data Types";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Tarek Saad
               <mailto:tsaad@cisco.com>

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

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

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

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

  description
    "YANG data module for MPLS TE configurations,
     state, RPC and notifications. The model fully conforms to
     the Network Management Datastore Architecture (NMDA).

     Copyright (c) 2018 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
     (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.";

  // RFC Ed.: replace XXXX with actual RFC number and remove this
  // note.

  // RFC Ed.: update the date below with the date of RFC publication
  // and remove this note.

  revision "2023-05-25" {
    description "Latest update to MPLS TE YANG module.";
    reference
      "RFCXXXX: A YANG Data Model for MPLS-TE Tunnels and LSP(s)";
  }

  /* MPLS TE Identities */
  identity tunnel-action-resetup {
    base te-types:tunnel-action-type;
    description "Resetup tunnel action type";
  }

  identity path-metric-loss {
    base te-types:path-metric-type;
    description
      "The path loss metric type (as a packet percentage) that
       encodes a function of the unidirectional loss metrics of all
       links traversed by a P2P path. The basic unit is 0.000003%,
       where (2^24 - 2) or 50.331642% is the highest packet-loss
       percentage that can be expressed.";
    reference "RFC8233, RFC4710, and RFC8570";
  }

  /* MPLS TE tunnel properties*/
  grouping tunnel-igp-shortcut-config {
    description "TE tunnel IGP shortcut configs";
    leaf shortcut-eligible {
      type boolean;
      default "true";
      description
        "Whether this LSP is considered to be eligible for us as a
        shortcut in the IGP. In the case that this leaf is set to
        true, the IGP SPF calculation uses the metric specified to
        determine whether traffic should be carried over this LSP";
    }
    leaf metric-type {
      type identityref {
        base te-types:lsp-metric-type;
      }
      default te-types:lsp-metric-inherited;
      description
        "The type of metric specification that should be used to set
        the LSP(s) metric";
    }
    leaf metric {
      type int32;
      description
        "The value of the metric that should be specified. The value
        supplied in this leaf is used in conjunction with the metric
        type to determine the value of the metric used by the system.
        Where the metric-type is set to lsp-metric-absolute - the
        value of this leaf is used directly; where it is set to
        lsp-metric-relative, the relevant (positive or negative)
        offset is used to formulate the metric; where metric-type
        is lsp-metric-inherited, the value of this leaf is not
        utilized";
    }
    leaf-list routing-afs {
      type inet:ip-version;
      description
        "Address families";
    }
  }

  grouping tunnel-igp-shortcuts {
    description
      "TE tunnel IGP shortcut grouping";
    container tunnel-igp-shortcut {
      description
        "Tunnel IGP shortcut properties";
      uses tunnel-igp-shortcut-config;
    }
  }

  grouping tunnel-forwarding-adjacency-configs {
    description "Tunnel forwarding adjacency grouping";
    leaf binding-label {
      type rt-types:mpls-label;
      description "MPLS tunnel binding label";
    }
    leaf load-share {
      type uint32 {
        range "1..4294967295";
      }
      description "ECMP tunnel forwarding
        load-share factor.";
    }
    leaf policy-class {
      type uint8 {
        range "1..7";
      }
      description
        "The class associated with this tunnel";
    }
  }

  grouping tunnel-forwarding-adjacency {
    description "Properties for using tunnel in forwarding.";
    container forwarding {
      description
        "Tunnel forwarding properties container";
      uses tunnel-forwarding-adjacency-configs;
    }
  }

  /*** End of MPLS TE tunnel configuration/state */
  grouping te-lsp-auto-bandwidth-config {
    description
      "Configuration parameters related to autobandwidth";

    leaf enabled {
      type boolean;
      default false;
      description
        "Enables MPLS auto-bandwidth on the
         LSP";
    }

    leaf min-bw {
      type te-packet-types:bandwidth-kbps;
      description
        "set the minimum bandwidth in Kbps for an
         auto-bandwidth LSP";
    }

    leaf max-bw {
      type te-packet-types:bandwidth-kbps;
      description
        "set the maximum bandwidth in Kbps for an
         auto-bandwidth LSP";
    }

    leaf adjust-interval {
      type uint32;
      description
        "time in seconds between adjustments to
         LSP bandwidth";
    }

    leaf adjust-threshold {
      type rt-types:percentage;
      description
        "percentage difference between the LSP's
         specified bandwidth and its current bandwidth
         allocation -- if the difference is greater than the
         specified percentage, auto-bandwidth adjustment is
         triggered";
    }
  }

  grouping te-lsp-overflow-config {
    description
     "configuration for MPLS LSP bandwidth
      overflow adjustment";

    leaf enabled {
      type boolean;
      default false;
      description
       "Enables MPLS LSP bandwidth overflow
        adjustment on the LSP";
    }

    leaf overflow-threshold {
      type rt-types:percentage;
      description
       "bandwidth percentage change to trigger
        an overflow event";

    }

    leaf trigger-event-count {
      type uint16;
      description
       "number of consecutive overflow sample
        events needed to trigger an overflow adjustment";
    }
  }

  grouping te-lsp-underflow-config {
    description
      "configuration for MPLS LSP bandwidth
      underflow adjustment";

    leaf enabled {
      type boolean;
      default false;
      description
       "enables bandwidth underflow
        adjustment on the LSP";
    }

    leaf underflow-threshold {
      type rt-types:percentage;
      description
       "bandwidth percentage change to trigger
        and underflow event";
    }

    leaf trigger-event-count {
      type uint16;
      description
       "number of consecutive underflow sample
        events needed to trigger an underflow adjustment";
    }
  }
  grouping te-tunnel-bandwidth-config {
    description
      "Configuration parameters related to bandwidth for a tunnel";

    leaf specification-type {
      type te-packet-types:te-bandwidth-requested-type;
      default specified;
      description
        "The method used for setting the bandwidth, either explicitly
         specified or configured";
    }

    leaf set-bandwidth {
      when "../specification-type = 'specified'" {
       description
         "The bandwidth value when bandwidth is explicitly
          specified";
      }
      type te-packet-types:bandwidth-kbps;
      description
       "set bandwidth explicitly, e.g., using
        offline calculation";
    }
    leaf class-type {
      type te-types:te-ds-class;
      description
        "The Class-Type of traffic transported by the LSP.";
      reference "RFC4124: section-4.3.1";
    }
  }

  grouping te-tunnel-bandwidth-state {
    description
      "Operational state parameters relating to bandwidth for
       a tunnel";

    leaf signaled-bandwidth {
      type te-packet-types:bandwidth-kbps;
      description
        "The currently signaled bandwidth of the LSP. In the case
         where the bandwidth is specified explicitly, then this will
         match the value of the set-bandwidth leaf; in cases where
         the bandwidth is dynamically computed by the system, the
         current value of the bandwidth should be reflected.";
    }
  }

  grouping tunnel-bandwidth_top {
    description
      "Top level grouping for specifying bandwidth for a tunnel";

    container bandwidth-mpls {
      description
        "Bandwidth configuration for TE LSPs";

      uses te-tunnel-bandwidth-config;

      container state {
        config false;
        description
          "State parameters related to bandwidth
          configuration of TE tunnels";
        uses te-tunnel-bandwidth-state;
      }

      container auto-bandwidth {
        when "../specification-type = 'auto'" {
          description
            "Include this container for auto bandwidth
            specific configuration";
        }
        description
          "Parameters related to auto-bandwidth";

        uses te-lsp-auto-bandwidth-config;

        container overflow {
          description
            "configuration of MPLS overflow bandwidth
            adjustment for the LSP";

          uses te-lsp-overflow-config;
        }

        container underflow {
          description
            "configuration of MPLS underflow bandwidth
            adjustment for the LSP";

          uses te-lsp-underflow-config;
        }
      }
    }
  }

  grouping te-path-bandwidth_top {
    description
      "Top level grouping for specifying bandwidth for a TE path";

    container bandwidth {
      description
        "Bandwidth configuration for TE LSPs";

      uses te-tunnel-bandwidth-config;
      container state {
        config false;
        description
          "State parameters related to bandwidth
          configuration of TE tunnels";
        uses te-tunnel-bandwidth-state;
      }
    }
  }



  /**
   * MPLS TE augmentations
   */
  augment "/te:te" {
    container performance-thresholds {
      uses "te-packet-types:" +
        "performance-metrics-throttle-container-packet";
        description
          "Performance parameters configurable thresholds";
    }
    description
      "Performance parameters configurable thresholds";
  }

  /* MPLS TE interface augmentations */


  /* MPLS TE tunnel augmentations */
  augment "/te:te/te:tunnels/te:tunnel" {
    description "MPLS TE tunnel config augmentations";
    uses tunnel-igp-shortcuts;
    uses tunnel-forwarding-adjacency;
    uses tunnel-bandwidth_top;
  }

  /* MPLS TE LSPs augmentations */
  augment "/te:te/te:tunnels/te:tunnel/" +
          "te:primary-paths/te:primary-path" {
    when "/te:te/te:tunnels/te:tunnel" +
      "/te:primary-paths/te:primary-path" +
      "/te:signaling-type = 'te-types:path-setup-static'" {
      description
      "When the path is statically provisioned";
    }
    description "MPLS TE LSP augmentation";
    leaf static-lsp-name {
      type mpls-static:static-lsp-ref;
      description "Static LSP name";
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/" +
          "te:secondary-paths/te:secondary-path" {
    when "/te:te/te:tunnels/te:tunnel" +
      "/te:secondary-paths/te:secondary-path/" +
      "te:signaling-type = 'te-types:path-setup-static'" {
      description
      "When the path is statically provisioned";
    }
    description "MPLS TE LSP augmentation";
    leaf static-lsp-name {
      type mpls-static:static-lsp-ref;
      description "Static LSP name";
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/" +
          "te:named-path-constraint" {
    description "foo";
    uses te-path-bandwidth_top;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
          "/te:primary-path/te:lsps/te:lsp" {
    description
      "MPLS TE generic data augmentation pertaining to specific TE
       LSP";
    uses te-packet-types:performance-metrics-attributes-packet;
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document registers the following URIs in the IETF XML registry
<xref target="RFC3688"/>.
Following the format in <xref target="RFC3688"/>, the following registration is
requested to be made.</t>

<figure><artwork><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls
   XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

<t>This document registers a YANG module in the YANG Module Names
registry <xref target="RFC6020"/>.</t>

<figure><artwork><![CDATA[
   name:       ietf-te-mpls
   namespace:  urn:ietf:params:xml:ns:yang:ietf-te-mpls
   prefix:     ietf-te-mpls
   reference:  RFC3209
]]></artwork></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol <xref target="RFC6241"/>.  The lowest NETCONF layer is the
secure transport layer and the mandatory-to-implement secure
transport is SSH <xref target="RFC6242"/>.  The NETCONF access control model
<xref target="RFC8341"/> provides means to restrict access for particular NETCONF
users to a pre-configured subset of all available NETCONF protocol
operations and content.</t>

<t>A number of data nodes defined in this YANG module are
writable/creatable/deletable (i.e., config true, which is the
default).  These data nodes may be considered sensitive or vulnerable
in some network environments.  Write operations (e.g., &lt;edit-config&gt;)
to these data nodes without proper protection can have a negative
effect on MPLS network operations.  Following are the subtrees and data
nodes and their sensitivity/vulnerability:</t>

<t>"/te/tunnels":  The augmentation to this list specifies configuration to
TE tunnels on a device.  Unauthorized access to this list could cause
the device to ignore packets it should receive and process.</t>

<t>"/te/globals":  The augmentation to this target specifies configuration
applicable to the to all or one TE device.  Unauthorized access to this list
could cause the device to ignore packets it should receive and process.</t>

</section>
<section anchor="contributors"><name>Contributors</name>
<figure><artwork><![CDATA[
   Himanshu Shah
   Ciena
   Email: hshah@ciena.com

]]></artwork></figure>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC3209' target='https://www.rfc-editor.org/info/rfc3209'>
<front>
<title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
<author fullname='D. Awduche' initials='D.' surname='Awduche'><organization/></author>
<author fullname='L. Berger' initials='L.' surname='Berger'><organization/></author>
<author fullname='D. Gan' initials='D.' surname='Gan'><organization/></author>
<author fullname='T. Li' initials='T.' surname='Li'><organization/></author>
<author fullname='V. Srinivasan' initials='V.' surname='Srinivasan'><organization/></author>
<author fullname='G. Swallow' initials='G.' surname='Swallow'><organization/></author>
<date month='December' year='2001'/>
<abstract><t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching).  Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels.  A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3209'/>
<seriesInfo name='DOI' value='10.17487/RFC3209'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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='RFC6020' target='https://www.rfc-editor.org/info/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'><organization/></author>
<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='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<date month='June' year='2011'/>
<abstract><t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6241'/>
<seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>



<reference anchor='RFC6991' target='https://www.rfc-editor.org/info/rfc6991'>
<front>
<title>Common YANG Data Types</title>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<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='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'>
<front>
<title>RESTCONF Protocol</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<date month='January' year='2017'/>
<abstract><t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t></abstract>
</front>
<seriesInfo name='RFC' value='8040'/>
<seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>



<reference anchor='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'>
<front>
<title>The YANG 1.1 Data Modeling Language</title>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<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='RFC3473' target='https://www.rfc-editor.org/info/rfc3473'>
<front>
<title>Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions</title>
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organization/></author>
<date month='January' year='2003'/>
<abstract><t>This document describes extensions to Multi-Protocol Label Switching (MPLS) Resource ReserVation Protocol - Traffic Engineering (RSVP-TE) signaling required to support Generalized MPLS.  Generalized MPLS extends the MPLS control plane to encompass time-division (e.g., Synchronous Optical Network and Synchronous Digital Hierarchy, SONET/SDH), wavelength (optical lambdas) and spatial switching (e.g., incoming port or fiber to outgoing port or fiber).  This document presents a RSVP-TE specific description of the extensions.  A generic functional description can be found in separate documents.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3473'/>
<seriesInfo name='DOI' value='10.17487/RFC3473'/>
</reference>



<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<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='RFC8294' target='https://www.rfc-editor.org/info/rfc8294'>
<front>
<title>Common YANG Data Types for the Routing Area</title>
<author fullname='X. Liu' initials='X.' surname='Liu'><organization/></author>
<author fullname='Y. Qu' initials='Y.' surname='Qu'><organization/></author>
<author fullname='A. Lindem' initials='A.' surname='Lindem'><organization/></author>
<author fullname='C. Hopps' initials='C.' surname='Hopps'><organization/></author>
<author fullname='L. Berger' initials='L.' surname='Berger'><organization/></author>
<date month='December' year='2017'/>
<abstract><t>This document defines a collection of common data types using the YANG data modeling language.  These derived common types are designed to be imported by other modules defined in the routing area.</t></abstract>
</front>
<seriesInfo name='RFC' value='8294'/>
<seriesInfo name='DOI' value='10.17487/RFC8294'/>
</reference>


<reference anchor='I-D.ietf-teas-yang-te' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-te-32'>
   <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>IBM Corporation</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>
      <author fullname='Oscar Gonzalez de Dios' initials='O. G.' surname='de Dios'>
         <organization>Telefonica</organization>
      </author>
      <date day='12' month='March' year='2023'/>
      <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-32'/>
   
</reference>



<reference anchor='RFC8776' target='https://www.rfc-editor.org/info/rfc8776'>
<front>
<title>Common YANG Data Types for Traffic Engineering</title>
<author fullname='T. Saad' initials='T.' surname='Saad'><organization/></author>
<author fullname='R. Gandhi' initials='R.' surname='Gandhi'><organization/></author>
<author fullname='X. Liu' initials='X.' surname='Liu'><organization/></author>
<author fullname='V. Beeram' initials='V.' surname='Beeram'><organization/></author>
<author fullname='I. Bryskin' initials='I.' surname='Bryskin'><organization/></author>
<date month='June' year='2020'/>
<abstract><t>This document defines a collection of common data types and groupings in YANG data modeling language. These derived common types and groupings are intended to be imported by modules that model Traffic Engineering (TE) configuration and state capabilities.</t></abstract>
</front>
<seriesInfo name='RFC' value='8776'/>
<seriesInfo name='DOI' value='10.17487/RFC8776'/>
</reference>


<reference anchor='I-D.ietf-mpls-static-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-mpls-static-yang-13'>
   <front>
      <title>A YANG Data Model for MPLS Static LSPs</title>
      <author fullname='Tarek Saad' initials='T.' surname='Saad'>
         <organization>Juniper Networks</organization>
      </author>
      <author fullname='Rakesh Gandhi' initials='R.' surname='Gandhi'>
         <organization>Cisco Systems</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>Volta Networks</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>Huawei Technologies</organization>
      </author>
      <date day='27' month='July' year='2021'/>
      <abstract>
	 <t>   This document contains the specification for the MPLS Static Label
   Switched Paths (LSPs) YANG model.  The model allows for the
   provisioning of static LSP(s) on Label Edge Router(s) LER(s) and
   Label Switched Router(s) LSR(s) devices along a LSP path without the
   dependency on any signaling protocol.  The MPLS Static LSP model
   augments the MPLS base YANG model with specific data to configure and
   manage MPLS Static LSP(s).

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-mpls-static-yang-13'/>
   
</reference>



<reference anchor='RFC8233' target='https://www.rfc-editor.org/info/rfc8233'>
<front>
<title>Extensions to the Path Computation Element Communication Protocol (PCEP) to Compute Service-Aware Label Switched Paths (LSPs)</title>
<author fullname='D. Dhody' initials='D.' surname='Dhody'><organization/></author>
<author fullname='Q. Wu' initials='Q.' surname='Wu'><organization/></author>
<author fullname='V. Manral' initials='V.' surname='Manral'><organization/></author>
<author fullname='Z. Ali' initials='Z.' surname='Ali'><organization/></author>
<author fullname='K. Kumaki' initials='K.' surname='Kumaki'><organization/></author>
<date month='September' year='2017'/>
<abstract><t>In certain networks, such as, but not limited to, financial information networks (e.g., stock market data providers), network performance criteria (e.g., latency) are becoming as critical to data path selection as other metrics and constraints.  These metrics are associated with the Service Level Agreement (SLA) between customers and service providers.  The link bandwidth utilization (the total bandwidth of a link in actual use for the forwarding) is another important factor to consider during path computation.</t><t>IGP Traffic Engineering (TE) Metric Extensions describe mechanisms with which network performance information is distributed via OSPF and IS-IS, respectively.  The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.  This document describes the extension to PCEP to carry latency, delay variation, packet loss, and link bandwidth utilization as constraints for end-to-end path computation.</t></abstract>
</front>
<seriesInfo name='RFC' value='8233'/>
<seriesInfo name='DOI' value='10.17487/RFC8233'/>
</reference>



<reference anchor='RFC4710' target='https://www.rfc-editor.org/info/rfc4710'>
<front>
<title>Real-time Application Quality-of-Service Monitoring (RAQMON) Framework</title>
<author fullname='A. Siddiqui' initials='A.' surname='Siddiqui'><organization/></author>
<author fullname='D. Romascanu' initials='D.' surname='Romascanu'><organization/></author>
<author fullname='E. Golovinsky' initials='E.' surname='Golovinsky'><organization/></author>
<date month='October' year='2006'/>
<abstract><t>There is a need to monitor end-devices such as IP phones, pagers, Instant Messaging clients, mobile phones, and various other handheld computing devices.  This memo extends the remote network monitoring (RMON) family of specifications to allow real-time quality-of-service (QoS) monitoring of various applications that run on these devices and allows this information to be integrated with the RMON family using the Simple Network Management Protocol (SNMP).  This memo defines the framework, architecture, relevant metrics, and transport requirements for real-time QoS monitoring of applications.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4710'/>
<seriesInfo name='DOI' value='10.17487/RFC4710'/>
</reference>



<reference anchor='RFC8570' target='https://www.rfc-editor.org/info/rfc8570'>
<front>
<title>IS-IS Traffic Engineering (TE) Metric Extensions</title>
<author fullname='L. Ginsberg' initials='L.' role='editor' surname='Ginsberg'><organization/></author>
<author fullname='S. Previdi' initials='S.' role='editor' surname='Previdi'><organization/></author>
<author fullname='S. Giacalone' initials='S.' surname='Giacalone'><organization/></author>
<author fullname='D. Ward' initials='D.' surname='Ward'><organization/></author>
<author fullname='J. Drake' initials='J.' surname='Drake'><organization/></author>
<author fullname='Q. Wu' initials='Q.' surname='Wu'><organization/></author>
<date month='March' year='2019'/>
<abstract><t>In certain networks, such as, but not limited to, financial information networks (e.g., stock market data providers), network-performance criteria (e.g., latency) are becoming as critical to data-path selection as other metrics.</t><t>This document describes extensions to IS-IS Traffic Engineering Extensions (RFC 5305).  These extensions provide a way to distribute and collect network-performance information in a scalable fashion. The information distributed using IS-IS TE Metric Extensions can then be used to make path-selection decisions based on network performance.</t><t>Note that this document only covers the mechanisms with which network-performance information is distributed.  The mechanisms for measuring network performance or acting on that information, once distributed, are outside the scope of this document.</t><t>This document obsoletes RFC 7810.</t></abstract>
</front>
<seriesInfo name='RFC' value='8570'/>
<seriesInfo name='DOI' value='10.17487/RFC8570'/>
</reference>



<reference anchor='RFC4124' target='https://www.rfc-editor.org/info/rfc4124'>
<front>
<title>Protocol Extensions for Support of Diffserv-aware MPLS Traffic Engineering</title>
<author fullname='F. Le Faucheur' initials='F.' role='editor' surname='Le Faucheur'><organization/></author>
<date month='June' year='2005'/>
<abstract><t>This document specifies the protocol extensions for support of Diffserv-aware MPLS Traffic Engineering (DS-TE).  This includes generalization of the semantics of a number of Interior Gateway Protocol (IGP) extensions already defined for existing MPLS Traffic Engineering in RFC 3630, RFC 3784, and additional IGP extensions beyond those.  This also includes extensions to RSVP-TE signaling beyond those already specified in RFC 3209 for existing MPLS Traffic Engineering.  These extensions address the requirements for DS-TE spelled out in RFC 3564.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4124'/>
<seriesInfo name='DOI' value='10.17487/RFC4124'/>
</reference>



<reference anchor='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'>
<front>
<title>The IETF XML Registry</title>
<author fullname='M. Mealling' initials='M.' surname='Mealling'><organization/></author>
<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='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
<front>
<title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
<author fullname='M. Wasserman' initials='M.' surname='Wasserman'><organization/></author>
<date month='June' year='2011'/>
<abstract><t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem.  This document obsoletes RFC 4742.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6242'/>
<seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>



<reference anchor='RFC8341' target='https://www.rfc-editor.org/info/rfc8341'>
<front>
<title>Network Configuration Access Control Model</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<date month='March' year='2018'/>
<abstract><t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability.  There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.  This document defines such an access control model.</t><t>This document obsoletes RFC 6536.</t></abstract>
</front>
<seriesInfo name='STD' value='91'/>
<seriesInfo name='RFC' value='8341'/>
<seriesInfo name='DOI' value='10.17487/RFC8341'/>
</reference>




    </references>




  </back>

<!-- ##markdown-source:
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
7lwsuxmI3mfgq/ZA+zTF0WmBQRsSojUKY35rUjrU0Y68x6Bce63yRIW+owJn
/SAEZ+3BAAh9QbsxOQXTmBbwqAAglB40vSaELXS2oTqypTS+uMkKy+5xZIbe
23Pxx/6jnW331+OvHtFfLsze39ndp9nu119/jaK2tbMvraP+0t4rxmZB0tXD
ebn3twDseozg4b+eR+9ZB9AvDXpf9oB93/jTa/BlOBkRkY17PjwzE8irJRD4
V5wBi4Y3vjf0Fro/we3iZ4arBNzykTZYRUX4ya0F9Z2fWwD+6vWNTTNP8RqG
SrJHpw7+KqnKzPh132DR/o25aoAUinhrUVQqHQpHTb9/R2sPlrnm2aBrwYud
/ejm3TuNvAnd1EbdZck5eyFiXIxEETUazrJiAsHjsIJnMMEhCDUg3mCpaqz8
XaePJ2kIDG4tQ30qRmi+yqDML9IYj4OGIDZNL9uq+Lji8P8hLEPHMBHQtgZY
+7Caw2w6L7JUjiOtUeU1oACeHGRkJK/uFjkfXscrgJHB/4vpVPLqm7YN1TCl
7O2GXRfgJeuSD2m2uYqzjm59XeMUJoBKSFqX9QPo6irrJUS4tNW4buSurpYv
Q3DE5tH7Tk60IYYAW70AMm1mDSeg0tcirebfeG2NMzEh4ti2GgrO+XCaFfE6
6PFVLDKMxT8NeJiWMvEPnn5c6NV18QEMhdVYV8/besVvf0MvpfxXcamCym/u
1ktP/VkhpT9aCpHUIs4e7vcy5H6k2V73Ii1g/p1JM73uSlrTrvROby+P/2lW
Hw79n2bVw5D/u2YVJwnPcGMddCmYOsOw8b7W1uq1xtrYvRW2BX2dtX0E8Gus
7QOg38vaWjjdSSXbve6ikq1ed1LJVq+7qmSLIfcj7V7W1up1P9LuYW2tWHqs
t0vcZRBC052hmC2HYJhllegw0hq6uTvkmZgJUHUceFIUGY/zsOWCV7A0IV10
yIkUkBHVChbuXa0b6ueot+3MDkM8lV947Xg1Fssh7jLpQ2XdHFYM13GJm24h
GH3YNMxw0wtHtVZDWw50O+wB1pMCT+LSUFN3YLcsMpGshkkWa4lgo8cePs4m
9VrHk6rZoSINUHzz/Cz9GtsxIFHnC8C3/b3mEj0oPmzAhi7Oa7AecA7Wm8my
gR3R1JAmszuniEkqFeF+v0Lt8DXmi0LvvgWu7J74xHVVuN4tE+E5+uE0UChf
Tf22aOiT61D37oaKAwFW/4Eg4vSXWjaWij32r5va6TNQYFgnJ3guOeNtlwgG
AtPAdThr9DOsk2fvm9BCPG5BxEUMpZjNeDmk8/FhUtQ5rcqR4p2HLczrPG2h
zu6NehvcfXjI7or6HXwuXi1L8NIlevFqLps3fKesN0AzuRziWRqO5W2Mjr3H
yq3ecXzJkwIP1DQGAaXt5x8XIb3bhJcIIaUhgJU55qkI3H1rYtPZbNzlWv/f
eVX2gV71Y+hrS14gfan/dVIqmL+Lp+Z8OdSRmj+VFrfF+e7XnocbnYeUXZVB
1PGNaeVJ3hp8Cy3brRt231LingvfO8D9RAT0rlY+lIIOwJ+IhL4V0YdS0Ib7
iQjoWWPcTbtt50+FXPdS5o7Imc6fCLmeFdPdkGt0/kQo9izP3C9cg67r34Gh
+d0Dw34XrFeU4SRzy85Ai83dHZuos9/E3BbstZazDqleq/lYiK2zmrWI9VnM
R0JsrcXcLsZea/lI6K21ls4NxM6+HdiZ3x2x848o9flvcDpqDoK9g1/KcWnm
ZVKMRseneNZLp6+NlJka03+90b4+fP3iiH179PL49OIZm4rmUfDz3e3dveH2
V8Pdr+g8dWDOfIOj9ndAN6V26O0QtjPaeRqppHUJnAKgdZmPsc+YUmXk+O0i
G+dyjL3GwdnzUzyH3/qCnfNlhj3pdPv44PSA0hAxBQ9CTp6yL7agnc7LGzQ7
H1O2ChI+iaXJ3aYeKo/FZka8I4lpMBV/Sn/aHA826CkF6atF0ZlLTTXoqEoh
eR3bnKIBjnzTwp7Ep1JbOrAPE2UCUgaNp4MWZTqTpoeSJgWHxWIBcu0ss7Hw
2/ibbIF+EjpwN3f/B1DWe319+IbJRgHSJujrRHr3yf7Y4OMwJyxs2cO5Hvqg
5LFDzR/dz14KxvYerFPgZmpTBx+bPLS1DBdqWEx260bOy+0McMP7XTyhGpIe
nrgR/PIWAjLAIqhOmR6UyVxUPKnqkpNxXdh0uw0sw3qgaAuKsZS/wFoFrFQh
+D++ZD/yyRguv55X1XK8tVUVRSYpOWwE6Gxdz7bQE2w90/BeshMhK+jwNVbb
VMUYnz43zZ/prKKjVFRFiWAbtVfezwIIa6zaIFplVV1QWgVUbTg9NUxd0DrK
ldrwwiqsLjD9JVdtaK1apw54HaVNz5RQVa750ilOkHGOM5irHTwKp1K5qYZb
lynq1wRN6yxbEQiY0LGYRHVHo9aFX+yVK5hANVf1L4HGbpy+enGAhQfU97BY
rkoxm1dsI3nAdrd3HjOt+LVUGZ8IHQQhMWuVuqhzjqlQlSOqEFCa7KkEEB0x
dpBljMBKsEbJyyuemhHPeQpqXIpJbaOJWmIdAZNFXSbKpCYij0vK5V/ITTUz
G7+Lf4AHQ5ZYLm1iXuoSiwAqTJlf1qWssS6nKlTmo6wp/V6zSyXJZiLhuVS1
A1KZpk7uogoEsGpwY4rMby9egK5Rcy0wXiFugBWgfcGpuIntjxLDBcfCzyU7
4bM4Y2dlcSWksFxUqXYq85eav7DJefR8A52CRK+AYDh3fkEjPsRSOJAjtabE
URMTmcRdP+1OUOowFrpgMR37CX5PgQzuNAhvi0rybEoKi7rGMkId9RELa3TQ
s0VNj9LRGGSrQicEp6QE7g2Lr7BFXi8mvCT+YxXZFSesFAQAyUdNaPUypahS
pTVjQVNWXLv6B7qn8V/Wk0zLXgFpjOIGwGRz4srABZgDPXN4pssGJ5g8WVkk
iq7sxVEzutHuAucZ5MG6yuGhVxCs07k35IMgNjAjHquTRGEjA32yaI4wY1I4
3E3jVb3UxFD86XZXg5Z472mb5HMNQDVmqjGFJN7Ua8am7Wl98ImLkc5h/Uad
gxqGoVPDxoxAqR40MttAp2JKGt1hhSrgMu6ZauIo13Va5wptbXowbaSiVCYJ
iuiBVyWCmQ09YMZ+A060jNFuwMonKwB3tntGeCm3iyVxCYLE9E+2PdrG394f
Ng2IayxCYhu7f93dZ0O2+wCcFPtqe7S3t/Nwf/cP2AdRmoMjRNXyVnIGgKNP
JZnqsjz+lrIkwWl2h9O7e3ubTOd6Kw+nU7071UmLd1lifSdqFSkVFY6TA2qf
iw/VNNVlJg7e8csze2Su5zUT/Wc8nraP0zU4puSsj7Ce6nspn8Z1VsF6oqz5
wN1tag5GTnOuKyGBwWBGqighx/KFUlU5IAvNoGh/taSpyoKwaFNhG0dSRuxY
XSek0CgMgk+kwL/o8iuXpI5Ybpq+7OLsO+iXJbVKn8YJTYleK7Y+qCHkLIiU
q7I1jmqkCNLRJqBXZylSkcRlid3wPNLSq7lz41jtWVzIZC8nwT5o2iyeZbVM
1oB3gulqL3JAGyKLdK28qEJvpSpKQoYoD6647Yg2tSrAcsdvgKGLVRSIPiY0
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
AAA=

-->

</rfc>

