<?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.8 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ntw-attachment-circuit-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="A YANG Network Model for ACs">A Network YANG Data Model for Attachment Circuits</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ntw-attachment-circuit-06"/>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Richard Roberts">
      <organization>Juniper</organization>
      <address>
        <email>rroberts@juniper.net</email>
      </address>
    </author>
    <author fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <author fullname="Samier Barguil Giraldo">
      <organization>Nokia</organization>
      <address>
        <email>samier.barguil_giraldo@nokia.com</email>
      </address>
    </author>
    <author fullname="Bo Wu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>lana.wubo@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="April" day="04"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>Slice Service</keyword>
    <keyword>L3VPN</keyword>
    <keyword>L2VPN</keyword>
    <abstract>
      <?line 93?>

<t>This document specifies a network model for attachment circuits. The model can be used for the provisioning of attachment circuits prior or during service provisioning (e.g., VPN, Network Slice Service). A companion service model is specified in I-D.ietf-opsawg-teas-attachment-circuit.</t>
      <t>The module augments the 'ietf-network' and the Service Attachment Point (SAP) models with the detailed information for the provisioning of attachment circuits in Provider Edges (PEs).</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/attachment-circuit-model"/>.</t>
    </note>
  </front>
  <middle>
    <?line 99?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Connectivity services are provided by networks to customers via
   dedicated terminating points, such as Service Functions <xref target="RFC7665"/>,
   customer edges (CEs), peer Autonomous System Border Routers (ASBRs),
   data centers gateways, or Internet Exchange Points.</t>
      <t>The procedure to provision a service in a service provider network may depend on the practices adopted by a service provider, including the flow put in place for the provisioning of advanced network services and how they are bound to an Attachment Circuit (AC). For example, the same attachment circuit may host multiple services (e.g., Layer 2 Virtual Private Network (VPN), or Layer 3 VPN, or Network Slice Service <xref target="RFC9543"/>). In order to avoid service interference and redundant information in various locations, a service provider may expose an interface to manage ACs network-wide. Customers can then request a standalone attachment circuit to be put in place, and then refer to that attachment circuit when requesting services to be bound to that AC. <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/> specifies a data model for managing attachment circuits as a service.</t>
      <t><xref target="sec-module"/> specifies a network model for attachment circuits ('ietf-ac-ntw'). The model can be used for the provisioning of ACs prior or during service provisioning. For example, <xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/> specifies augmentations to the L2VPN Network Model (L2NM) <xref target="RFC9291"/> and the L3VPN Network Model (L3NM) <xref target="RFC9182"/> to bind LxVPNs to ACs that are provisioned using the procedure defined in this document.</t>
      <t>The document leverages <xref target="RFC9182"/> and <xref target="RFC9291"/> by adopting an AC provisioning structure that uses data nodes that are defined in these RFCs. Some refinements were introduced to cover, not only conventional service provider networks, but also specifics of other target deployments (cloud, for example).</t>
      <t>The AC network model is designed as augmentations to both the 'ietf-network' model <xref target="RFC8345"/> and the Service Attachment Point (SAP) model <xref target="RFC9408"/>. An attachment circuit can be bound to a single or multiple SAPs. Likewise, the model is designed to accommodate deployments where a SAP can be bound to one or multiple ACs (e.g., a parent AC and its child ACs).</t>
      <figure anchor="sap-ac-ntw">
        <name>Attachment Circuits Examples</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="536" viewBox="0 0 536 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,208 L 8,240" fill="none" stroke="black"/>
              <path d="M 40,208 L 40,240" fill="none" stroke="black"/>
              <path d="M 64,208 L 64,240" fill="none" stroke="black"/>
              <path d="M 80,176 L 80,208" fill="none" stroke="black"/>
              <path d="M 80,240 L 80,256" fill="none" stroke="black"/>
              <path d="M 80,288 L 80,368" fill="none" stroke="black"/>
              <path d="M 96,160 L 96,240" fill="none" stroke="black"/>
              <path d="M 112,112 L 112,160" fill="none" stroke="black"/>
              <path d="M 128,160 L 128,192" fill="none" stroke="black"/>
              <path d="M 152,32 L 152,64" fill="none" stroke="black"/>
              <path d="M 168,64 L 168,112" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 192,160 L 192,192" fill="none" stroke="black"/>
              <path d="M 192,352 L 192,384" fill="none" stroke="black"/>
              <path d="M 192,416 L 192,448" fill="none" stroke="black"/>
              <path d="M 208,384 L 208,416" fill="none" stroke="black"/>
              <path d="M 216,112 L 216,152" fill="none" stroke="black"/>
              <path d="M 224,160 L 224,192" fill="none" stroke="black"/>
              <path d="M 224,352 L 224,384" fill="none" stroke="black"/>
              <path d="M 224,416 L 224,448" fill="none" stroke="black"/>
              <path d="M 240,80 L 240,112" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,256" fill="none" stroke="black"/>
              <path d="M 240,288 L 240,368" fill="none" stroke="black"/>
              <path d="M 272,80 L 272,112" fill="none" stroke="black"/>
              <path d="M 296,176 L 296,256" fill="none" stroke="black"/>
              <path d="M 296,288 L 296,368" fill="none" stroke="black"/>
              <path d="M 312,160 L 312,192" fill="none" stroke="black"/>
              <path d="M 312,352 L 312,384" fill="none" stroke="black"/>
              <path d="M 328,96 L 328,160" fill="none" stroke="black"/>
              <path d="M 328,384 L 328,432" fill="none" stroke="black"/>
              <path d="M 344,160 L 344,192" fill="none" stroke="black"/>
              <path d="M 344,352 L 344,384" fill="none" stroke="black"/>
              <path d="M 360,352 L 360,384" fill="none" stroke="black"/>
              <path d="M 360,416 L 360,448" fill="none" stroke="black"/>
              <path d="M 376,384 L 376,416" fill="none" stroke="black"/>
              <path d="M 384,80 L 384,112" fill="none" stroke="black"/>
              <path d="M 392,352 L 392,384" fill="none" stroke="black"/>
              <path d="M 392,416 L 392,448" fill="none" stroke="black"/>
              <path d="M 408,352 L 408,384" fill="none" stroke="black"/>
              <path d="M 416,80 L 416,112" fill="none" stroke="black"/>
              <path d="M 424,384 L 424,432" fill="none" stroke="black"/>
              <path d="M 440,304 L 440,384" fill="none" stroke="black"/>
              <path d="M 456,176 L 456,256" fill="none" stroke="black"/>
              <path d="M 456,288 L 456,304" fill="none" stroke="black"/>
              <path d="M 456,344 L 456,368" fill="none" stroke="black"/>
              <path d="M 472,304 L 472,336" fill="none" stroke="black"/>
              <path d="M 496,304 L 496,336" fill="none" stroke="black"/>
              <path d="M 528,304 L 528,336" fill="none" stroke="black"/>
              <path d="M 152,32 L 184,32" fill="none" stroke="black"/>
              <path d="M 152,64 L 184,64" fill="none" stroke="black"/>
              <path d="M 240,80 L 272,80" fill="none" stroke="black"/>
              <path d="M 384,80 L 416,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 384,96" fill="none" stroke="black"/>
              <path d="M 112,112 L 216,112" fill="none" stroke="black"/>
              <path d="M 240,112 L 272,112" fill="none" stroke="black"/>
              <path d="M 384,112 L 416,112" fill="none" stroke="black"/>
              <path d="M 96,160 L 128,160" fill="none" stroke="black"/>
              <path d="M 192,160 L 224,160" fill="none" stroke="black"/>
              <path d="M 312,160 L 344,160" fill="none" stroke="black"/>
              <path d="M 80,176 L 96,176" fill="none" stroke="black"/>
              <path d="M 128,176 L 192,176" fill="none" stroke="black"/>
              <path d="M 224,176 L 240,176" fill="none" stroke="black"/>
              <path d="M 296,176 L 312,176" fill="none" stroke="black"/>
              <path d="M 344,176 L 456,176" fill="none" stroke="black"/>
              <path d="M 96,192 L 128,192" fill="none" stroke="black"/>
              <path d="M 192,192 L 224,192" fill="none" stroke="black"/>
              <path d="M 312,192 L 344,192" fill="none" stroke="black"/>
              <path d="M 8,208 L 40,208" fill="none" stroke="black"/>
              <path d="M 64,208 L 96,208" fill="none" stroke="black"/>
              <path d="M 40,224 L 64,224" fill="none" stroke="black"/>
              <path d="M 8,240 L 40,240" fill="none" stroke="black"/>
              <path d="M 64,240 L 96,240" fill="none" stroke="black"/>
              <path d="M 80,256 L 240,256" fill="none" stroke="black"/>
              <path d="M 296,256 L 456,256" fill="none" stroke="black"/>
              <path d="M 80,288 L 240,288" fill="none" stroke="black"/>
              <path d="M 296,288 L 456,288" fill="none" stroke="black"/>
              <path d="M 440,304 L 472,304" fill="none" stroke="black"/>
              <path d="M 496,304 L 528,304" fill="none" stroke="black"/>
              <path d="M 472,320 L 496,320" fill="none" stroke="black"/>
              <path d="M 440,336 L 472,336" fill="none" stroke="black"/>
              <path d="M 496,336 L 528,336" fill="none" stroke="black"/>
              <path d="M 192,352 L 224,352" fill="none" stroke="black"/>
              <path d="M 312,352 L 344,352" fill="none" stroke="black"/>
              <path d="M 360,352 L 392,352" fill="none" stroke="black"/>
              <path d="M 408,352 L 440,352" fill="none" stroke="black"/>
              <path d="M 80,368 L 192,368" fill="none" stroke="black"/>
              <path d="M 224,368 L 240,368" fill="none" stroke="black"/>
              <path d="M 296,368 L 312,368" fill="none" stroke="black"/>
              <path d="M 344,368 L 360,368" fill="none" stroke="black"/>
              <path d="M 392,368 L 408,368" fill="none" stroke="black"/>
              <path d="M 440,368 L 456,368" fill="none" stroke="black"/>
              <path d="M 192,384 L 224,384" fill="none" stroke="black"/>
              <path d="M 312,384 L 344,384" fill="none" stroke="black"/>
              <path d="M 360,384 L 392,384" fill="none" stroke="black"/>
              <path d="M 408,384 L 440,384" fill="none" stroke="black"/>
              <path d="M 192,416 L 224,416" fill="none" stroke="black"/>
              <path d="M 360,416 L 392,416" fill="none" stroke="black"/>
              <path d="M 224,432 L 264,432" fill="none" stroke="black"/>
              <path d="M 288,432 L 328,432" fill="none" stroke="black"/>
              <path d="M 392,432 L 424,432" fill="none" stroke="black"/>
              <path d="M 192,448 L 224,448" fill="none" stroke="black"/>
              <path d="M 360,448 L 392,448" fill="none" stroke="black"/>
              <path d="M 200,160 C 208.83064,160 216,152.83064 216,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="168" y="52">CE6</text>
                <text x="148" y="84">ac</text>
                <text x="256" y="100">CE5</text>
                <text x="400" y="100">CE2</text>
                <text x="340" y="132">ac</text>
                <text x="112" y="180">sap</text>
                <text x="208" y="180">sap</text>
                <text x="328" y="180">sap</text>
                <text x="24" y="228">CE1</text>
                <text x="80" y="228">sap</text>
                <text x="160" y="228">PE1</text>
                <text x="384" y="228">PE2</text>
                <text x="52" y="244">ac</text>
                <text x="484" y="308">ac</text>
                <text x="168" y="324">PE3</text>
                <text x="376" y="324">PE4</text>
                <text x="456" y="324">sap</text>
                <text x="512" y="324">CE5</text>
                <text x="208" y="372">sap</text>
                <text x="328" y="372">sap</text>
                <text x="376" y="372">sap</text>
                <text x="424" y="372">sap</text>
                <text x="220" y="404">ac</text>
                <text x="388" y="404">ac</text>
                <text x="436" y="404">ac</text>
                <text x="208" y="436">CE3</text>
                <text x="276" y="436">ac</text>
                <text x="376" y="436">CE4</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                  .---.
                  |CE6|
                  '-+-'
                 ac |        .---.             .---.
                    |        |CE5+------+------+CE2|
             .------+-----.  '---'      |      '---'
             |            |             |ac
             |            |             |
           .-+-.       .-+-.          .-+-.
         .-+sap+-------+sap+-.      .-+sap+-------------.
         | '---'       '---' |      | '---'             |
.---.  .-+-.                 |      |                   |
|CE1+--+sap|      PE1        |      |         PE2       |
'---'ac'-+-'                 |      |                   |
         '-------------------'      '-------------------'

         .-------------------.      .-------------------.
         |                   |      |                 .-+-.ac.---.
         |         PE3       |      |        PE4      |sap+--+CE5|
         |                   |      |                 '---'  '---'
         |             .---. |      | .---. .---. .---. |
         '-------------+sap+-'      '-+sap+-+sap+-+sap+-'
                       '-+-'          '-+-' '-+-' '-+-'
                         |ac            |     |ac   |ac
                       .-+-.            |   .-+-.   |
                       |CE3+-----ac-----'   |CE4+---'
                       '---'                '---'
]]></artwork>
        </artset>
      </figure>
      <t>The AC network model uses the AC common model defined in <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
      <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      <t>Sample examples are provided in <xref target="sec-examples"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<t>The reader should be familiar with the terms defined in <xref section="2" sectionFormat="of" target="RFC9408"/>.</t>
      <t>This document uses the term "network model" as defined in <xref section="2.1" sectionFormat="of" target="RFC8969"/>.</t>
      <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      <t>LxSM refers to both the Layer 2 Service Model (L2SM) <xref target="RFC8466"/> and the Layer 3 Service Model (L3SM) <xref target="RFC8299"/>.</t>
      <t>LxNM refers to both the L2VPN Network Model (L2NM) <xref target="RFC9291"/> and the L3VPN Network Model (L3NM) <xref target="RFC9182"/>.</t>
      <t>The following are used in the module prefixes:</t>
      <dl>
        <dt>ac:</dt>
        <dd>
          <t>Attachment circuit</t>
        </dd>
        <dt>ntw:</dt>
        <dd>
          <t>Network</t>
        </dd>
        <dt>sap:</dt>
        <dd>
          <t>Service Attchment Point</t>
        </dd>
        <dt>svc:</dt>
        <dd>
          <t>Service</t>
        </dd>
      </dl>
      <t>In addition, this document uses the following terms:</t>
      <dl>
        <dt>Bearer:</dt>
        <dd>
          <t>A physical or logical link that connects a customer node (or site) to a provider network.</t>
        </dd>
        <dt/>
        <dd>
          <t>A bearer can be a wireless or wired link. One or multiple technologies can be used to build a bearer. The bearer type can be specified by a customer.</t>
        </dd>
        <dt/>
        <dd>
          <t>The operator allocates a unique bearer reference to identify a bearer within its network (e.g., customer line identifier). Such a reference can be retrieved by a customer and then used in subsequent service placement requests to unambiguously identify where a service is to be bound.</t>
        </dd>
        <dt/>
        <dd>
          <t>The concept of bearer can be generalized to refer to the required underlying connection for the provisioning of an attachment circuit.</t>
        </dd>
        <dt/>
        <dd>
          <t>One or multiple attachment circuits may be hosted over the same bearer (e.g., multiple Virtual Local Area Networks (VLANs) on the same bearer that is provided by a physical link).</t>
        </dd>
        <dt>Network controller:</dt>
        <dd>
          <t>Denotes a functional entity responsible for the management of the service provider network. One or multiple network controllers can be deployed in a service provider network.</t>
        </dd>
        <dt>Service orchestrator:</dt>
        <dd>
          <t>Refers to a functional entity that interacts with the customer of a network service.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service orchestrator is typically responsible for the attachment circuits, the Provider Edge (PE) selection, and requesting the activation of the requested services to a network controller.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service orchestrator may interact with one or more network controllers.</t>
        </dd>
        <dt>Service provider network:</dt>
        <dd>
          <t>A network that is able to provide network services (e.g., L2VPN, L3VPN, or Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>A service provider that offers network services (e.g., L2VPN, L3VPN, or Network Slice Services).</t>
        </dd>
      </dl>
    </section>
    <section anchor="relationship-to-other-ac-data-models">
      <name>Relationship to Other AC Data Models</name>
      <t><xref target="ac-overview"/> depicts the relationship between the various AC data models:</t>
      <ul spacing="normal">
        <li>
          <t>"ietf-ac-common" (<xref target="I-D.ietf-opsawg-teas-common-ac"/>)</t>
        </li>
        <li>
          <t>"ietf-bearer-svc" (<xref section="5.1" sectionFormat="of" target="I-D.ietf-opsawg-teas-attachment-circuit"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-svc" (<xref section="5.2" sectionFormat="of" target="I-D.ietf-opsawg-teas-attachment-circuit"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-ntw" (<xref target="sec-module"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-glue" (<xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/>)</t>
        </li>
      </ul>
      <figure anchor="ac-overview">
        <name>AC Data Models</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="368" viewBox="0 0 368 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 32,144 L 32,240" fill="none" stroke="black"/>
              <path d="M 56,80 L 56,112" fill="none" stroke="black"/>
              <path d="M 72,144 L 72,176" fill="none" stroke="black"/>
              <path d="M 144,48 L 144,80" fill="none" stroke="black"/>
              <path d="M 192,40 L 192,112" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,80" fill="none" stroke="black"/>
              <path d="M 328,80 L 328,160" fill="none" stroke="black"/>
              <path d="M 328,192 L 328,240" fill="none" stroke="black"/>
              <path d="M 56,80 L 144,80" fill="none" stroke="black"/>
              <path d="M 240,80 L 328,80" fill="none" stroke="black"/>
              <path d="M 104,128 L 128,128" fill="none" stroke="black"/>
              <path d="M 72,176 L 264,176" fill="none" stroke="black"/>
              <path d="M 32,240 L 120,240" fill="none" stroke="black"/>
              <path d="M 240,240 L 328,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="336,192 324,186.4 324,197.6" fill="black" transform="rotate(270,328,192)"/>
              <polygon class="arrowhead" points="248,48 236,42.4 236,53.6" fill="black" transform="rotate(270,240,48)"/>
              <polygon class="arrowhead" points="200,40 188,34.4 188,45.6" fill="black" transform="rotate(270,192,40)"/>
              <polygon class="arrowhead" points="152,48 140,42.4 140,53.6" fill="black" transform="rotate(270,144,48)"/>
              <polygon class="arrowhead" points="136,128 124,122.4 124,133.6" fill="black" transform="rotate(0,128,128)"/>
              <polygon class="arrowhead" points="112,128 100,122.4 100,133.6" fill="black" transform="rotate(180,104,128)"/>
              <polygon class="arrowhead" points="80,144 68,138.4 68,149.6" fill="black" transform="rotate(270,72,144)"/>
              <polygon class="arrowhead" points="40,144 28,138.4 28,149.6" fill="black" transform="rotate(270,32,144)"/>
              <g class="text">
                <text x="188" y="36">ietf-ac-common</text>
                <text x="48" y="132">ietf-ac-svc</text>
                <text x="200" y="132">ietf-bearer-svc</text>
                <text x="320" y="180">ietf-ac-ntw</text>
                <text x="180" y="244">ietf-ac-glue</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                ietf-ac-common
                 ^     ^     ^
                 |     |     |
      +----------+     |     +----------+
      |                |                |
      |                |                |
ietf-ac-svc <--> ietf-bearer-svc        |
   ^    ^                               |
   |    |                               |
   |    +------------------------ ietf-ac-ntw
   |                                    ^
   |                                    |
   |                                    |
   +----------- ietf-ac-glue -----------+
]]></artwork>
        </artset>
      </figure>
      <t>"ietf-ac-common" is imported  by "ietf-bearer-svc", "ietf-ac-svc", and "ietf-ac-ntw".
Bearers managed using "ietf-bearer-svc" may be referenced in the service ACs managed using "ietf-ac-svc".
Similarly, a bearer managed using "ietf-bearer-svc" may list the set of ACs that use that bearer.
In order to ease correlation between an AC service requests and the actual AC provisioned in the network, "ietf-ac-ntw" uses the AC references exposed by "ietf-ac-svc".
To bind Layer 2 VPN or Layer 3 VPN services with ACs, "ietf-ac-glue" augments the LxSM and LxNM with AC service references exposed by "ietf-ac-svc" and AC network references exposed by "ietf-ac-ntw".</t>
    </section>
    <section anchor="sample-uses-of-the-attachment-circuit-data-models">
      <name>Sample Uses of the Attachment Circuit Data Models</name>
      <t><xref target="_u-ex"/> shows the positioning of the AC network model in the overall service delivery process. The 'ietf-ac-ntw' module is a network model which augments the SAP with a comprehensive set of parameters to reflect the attachment circuits that are in place in a network. The model also maintains the mapping with the service references that are used to expose these ACs to customers <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>. Whether the same naming conventions to reference an AC are used in the service and network layers is deployment-specific.</t>
      <figure anchor="_u-ex">
        <name>An Example of the Network AC Model Usage</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="512" viewBox="0 0 512 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,560 L 8,592" fill="none" stroke="black"/>
              <path d="M 48,560 L 48,592" fill="none" stroke="black"/>
              <path d="M 96,432 L 96,480" fill="none" stroke="black"/>
              <path d="M 104,320 L 104,368" fill="none" stroke="black"/>
              <path d="M 120,544 L 120,608" fill="none" stroke="black"/>
              <path d="M 136,368 L 136,432" fill="none" stroke="black"/>
              <path d="M 136,480 L 136,536" fill="none" stroke="black"/>
              <path d="M 176,288 L 176,320" fill="none" stroke="black"/>
              <path d="M 176,432 L 176,480" fill="none" stroke="black"/>
              <path d="M 208,32 L 208,64" fill="none" stroke="black"/>
              <path d="M 208,112 L 208,160" fill="none" stroke="black"/>
              <path d="M 208,208 L 208,256" fill="none" stroke="black"/>
              <path d="M 208,376 L 208,496" fill="none" stroke="black"/>
              <path d="M 232,320 L 232,368" fill="none" stroke="black"/>
              <path d="M 272,64 L 272,112" fill="none" stroke="black"/>
              <path d="M 272,160 L 272,208" fill="none" stroke="black"/>
              <path d="M 272,256 L 272,288" fill="none" stroke="black"/>
              <path d="M 296,320 L 296,368" fill="none" stroke="black"/>
              <path d="M 336,32 L 336,64" fill="none" stroke="black"/>
              <path d="M 336,112 L 336,160" fill="none" stroke="black"/>
              <path d="M 336,208 L 336,256" fill="none" stroke="black"/>
              <path d="M 368,288 L 368,320" fill="none" stroke="black"/>
              <path d="M 368,368 L 368,536" fill="none" stroke="black"/>
              <path d="M 384,544 L 384,608" fill="none" stroke="black"/>
              <path d="M 424,320 L 424,368" fill="none" stroke="black"/>
              <path d="M 456,560 L 456,592" fill="none" stroke="black"/>
              <path d="M 496,560 L 496,592" fill="none" stroke="black"/>
              <path d="M 208,32 L 336,32" fill="none" stroke="black"/>
              <path d="M 208,64 L 336,64" fill="none" stroke="black"/>
              <path d="M 208,112 L 336,112" fill="none" stroke="black"/>
              <path d="M 208,160 L 336,160" fill="none" stroke="black"/>
              <path d="M 208,208 L 336,208" fill="none" stroke="black"/>
              <path d="M 208,256 L 336,256" fill="none" stroke="black"/>
              <path d="M 176,288 L 368,288" fill="none" stroke="black"/>
              <path d="M 104,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 296,320 L 424,320" fill="none" stroke="black"/>
              <path d="M 104,368 L 232,368" fill="none" stroke="black"/>
              <path d="M 296,368 L 424,368" fill="none" stroke="black"/>
              <path d="M 96,432 L 176,432" fill="none" stroke="black"/>
              <path d="M 96,480 L 176,480" fill="none" stroke="black"/>
              <path d="M 120,544 L 384,544" fill="none" stroke="black"/>
              <path d="M 8,560 L 48,560" fill="none" stroke="black"/>
              <path d="M 456,560 L 496,560" fill="none" stroke="black"/>
              <path d="M 48,576 L 120,576" fill="none" stroke="black"/>
              <path d="M 384,576 L 456,576" fill="none" stroke="black"/>
              <path d="M 8,592 L 48,592" fill="none" stroke="black"/>
              <path d="M 456,592 L 496,592" fill="none" stroke="black"/>
              <path d="M 120,608 L 384,608" fill="none" stroke="black"/>
              <g class="text">
                <text x="268" y="52">Customer</text>
                <text x="108" y="84">Customer</text>
                <text x="176" y="84">Service</text>
                <text x="232" y="84">Model</text>
                <text x="96" y="100">e.g.,</text>
                <text x="164" y="100">slice-svc,</text>
                <text x="240" y="100">ac-svc,</text>
                <text x="296" y="100">and</text>
                <text x="356" y="100">bearer-svc</text>
                <text x="272" y="132">Service</text>
                <text x="272" y="148">Orchestration</text>
                <text x="112" y="180">Network</text>
                <text x="168" y="180">Model</text>
                <text x="32" y="196">e.g.,</text>
                <text x="100" y="196">l3vpn-ntw,</text>
                <text x="164" y="196">sap,</text>
                <text x="200" y="196">and</text>
                <text x="244" y="196">ac-ntw</text>
                <text x="264" y="228">Network</text>
                <text x="272" y="244">Orchestration</text>
                <text x="56" y="276">Network</text>
                <text x="144" y="276">Configuration</text>
                <text x="224" y="276">Model</text>
                <text x="164" y="340">Domain</text>
                <text x="364" y="340">Domain</text>
                <text x="168" y="356">Orchestration</text>
                <text x="360" y="356">Orchestration</text>
                <text x="36" y="388">Device</text>
                <text x="64" y="404">Configuration</text>
                <text x="32" y="420">Model</text>
                <text x="132" y="452">Config</text>
                <text x="136" y="468">Manager</text>
                <text x="256" y="516">NETCONF/CLI................</text>
                <text x="376" y="516">.</text>
                <text x="208" y="532">|</text>
                <text x="84" y="564">Bearer</text>
                <text x="420" y="564">Bearer</text>
                <text x="28" y="580">CE#1</text>
                <text x="248" y="580">Network</text>
                <text x="476" y="580">CE#2</text>
                <text x="28" y="628">Site</text>
                <text x="56" y="628">A</text>
                <text x="476" y="628">Site</text>
                <text x="504" y="628">B</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                          .---------------.
                          |   Customer    |
                          '-------+-------'
          Customer Service Model  |
          e.g., slice-svc, ac-svc,| and bearer-svc
                          .-------+-------.
                          |    Service    |
                          | Orchestration |
                          '-------+-------'
           Network Model          |
  e.g., l3vpn-ntw, sap, and ac-ntw|
                          .-------+-------.
                          |   Network     |
                          | Orchestration |
                          '-------+-------'
    Network Configuration Model   |
                      .-----------+-----------.
                      |                       |
             .--------+------.       .--------+------.
             |    Domain     |       |     Domain    |
             | Orchestration |       | Orchestration |
             '---+-----------'       '--------+------'
  Device         |        |                   |
  Configuration  |        |                   |
  Model          |        |                   |
            .----+----.   |                   |
            | Config  |   |                   |
            | Manager |   |                   |
            '----+----'   |                   |
                 |        |                   |
                 | NETCONF/CLI..................
                 |        |                   |
               .--------------------------------.
 .----. Bearer |                                | Bearer .----.
 |CE#1+--------+            Network             +--------+CE#2|
 '----'        |                                |        '----'
               '--------------------------------'
  Site A                                                  Site B
]]></artwork>
        </artset>
      </figure>
      <t>Similar to <xref target="RFC9408"/>, the 'ietf-ac-ntw' module can be used for both User-to-Network Interface (UNI) and
Network-to-Network Interface (NNI). For example, all the ACs shown in <xref target="fig-inter-pn"/> have a 'role' set
to 'ietf-sap-ntw:nni'. Typically, AS Border Routers (ASBRs) of each network is directly
connected to an ASBR of a neighboring network via one or multiple links (bearers). ASBRs of "Network#1" behave as a PE and treat the other adjacent ASBRs as if it were a CE.</t>
      <figure anchor="fig-inter-pn">
        <name>An Example of the Network AC Model Usage Between Provider Networks</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="376" viewBox="0 0 376 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,176" fill="none" stroke="black"/>
              <path d="M 176,32 L 176,176" fill="none" stroke="black"/>
              <path d="M 256,32 L 256,176" fill="none" stroke="black"/>
              <path d="M 368,32 L 368,176" fill="none" stroke="black"/>
              <path d="M 8,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 256,32 L 368,32" fill="none" stroke="black"/>
              <path d="M 176,48 L 200,48" fill="none" stroke="black"/>
              <path d="M 224,48 L 256,48" fill="none" stroke="black"/>
              <path d="M 176,64 L 200,64" fill="none" stroke="black"/>
              <path d="M 224,64 L 256,64" fill="none" stroke="black"/>
              <path d="M 256,96 L 368,96" fill="none" stroke="black"/>
              <path d="M 256,112 L 368,112" fill="none" stroke="black"/>
              <path d="M 176,144 L 200,144" fill="none" stroke="black"/>
              <path d="M 224,144 L 256,144" fill="none" stroke="black"/>
              <path d="M 8,176 L 176,176" fill="none" stroke="black"/>
              <path d="M 256,176 L 368,176" fill="none" stroke="black"/>
              <g class="text">
                <text x="212" y="52">AC</text>
                <text x="212" y="68">AC</text>
                <text x="312" y="68">Network#2</text>
                <text x="88" y="100">Network#1</text>
                <text x="212" y="148">AC</text>
                <text x="312" y="148">Network#3</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
.--------------------.         .-------------.
|                    +---AC----+             |
|                    +---AC----+  Network#2  |
|                    |         |             |
|     Network#1      |         '-------------'
|                    |         .-------------.
|                    |         |             |
|                    +---AC----+  Network#3  |
|                    |         |             |
'--------------------'         '-------------'
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="description-of-the-attachment-circuit-yang-module">
      <name>Description of the Attachment Circuit YANG Module</name>
      <t>The full tree diagram of the module can be generated using the
"pyang" tool <xref target="PYANG"/>.  That tree is not included here because it is
too long (<xref section="3.3" sectionFormat="of" target="RFC8340"/>).  Instead, subtrees are provided in the following subsections
for the reader's convenience.</t>
      <t>The full tree of the 'ac-ntw' is provided in <xref target="AC-Ntw-Tree"/>.</t>
      <section anchor="overall-structure-of-the-module">
        <name>Overall Structure of the Module</name>
        <t>The overall tree structure of the module is shown in <xref target="o-ntw-tree"/>.</t>
        <figure anchor="o-ntw-tree">
          <name>Overall Tree Structure</name>
          <artwork><![CDATA[
augment /nw:networks/nw:network:
  +--rw specific-provisioning-profiles
  |  ...
  +--rw ac-profile* [name]
     ...
augment /nw:networks/nw:network/nw:node:
  +--rw ac* [name]
     +--rw name                 string
     +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
     +--rw ac-profile* [ac-profile-ref]
     |  +--rw ac-profile-ref    leafref
     |  +--rw network-ref?      -> /nw:networks/network/network-id
     +--rw ac-parent-ref
     |  +--rw ac-ref?        leafref
     |  +--rw node-ref?      leafref
     |  +--rw network-ref?   -> /nw:networks/network/network-id
     +--rw peer-sap-id*         string
     +--rw group* [group-id]
     |  +--rw group-id      string
     |  +--rw precedence?   identityref
     +--rw status
     |  +--rw admin-status
     |  |  +--rw status?        identityref
     |  |  +--ro last-change?   yang:date-and-time
     |  +--ro oper-status
     |     +--ro status?        identityref
     |     +--ro last-change?   yang:date-and-time
     +--rw description?         string
     +--rw l2-connection
     |  ...
     +--rw ip-connection
     |  ...
     +--rw routing-protocols
     |  ...
     +--rw oam
     |  ...
     +--rw security
     |  ...
     +--rw service
        ...
  augment /nw:networks/nw:network/nw:node/sap:service/sap:sap:
    +--rw ac* [ac-ref]
       +--rw ac-ref         leafref
       +--rw node-ref?      leafref
       +--rw network-ref?   -> /nw:networks/network/network-id
]]></artwork>
        </figure>
        <t>A node can host one or more SAPs. As per <xref target="RFC9408"/>, a SAP is an abstraction of the network
reference points (the PE side of an AC, in the context of this document) where network services can be delivered and/or are delivered to customers. Each SAP terminates one or multiple ACs. Each AC in turn may be terminated by one or more peer SAPs ('peer-sap'). In order to expose such AC/SAP binding information, the SAP model <xref target="RFC9408"/> is augmented with required AC-related information.</t>
        <t>Unlike the AC service model <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>, an AC is uniquely identified by a name within the scope of a node, not a network. A textual description of the AC may be provided ('description').</t>
        <t>Also, in order to ease the correlation between the AC exposed at the service layer and the one that is actually provisioned in the network operation, a reference to the AC exposed to the customer ('ac-svc-ref') is stored in the 'ietf-ac-ntw' module.</t>
        <t>ACs that are terminated by a SAP are listed in 'ac' under '/nw:networks/nw:network/nw:node/sap:service/sap:sap'. A controller may indicate a filter based on the service type (e.g., Network Slice or L3VPN) to retrieve the list of available SAPs, and thus ACs, for that service.</t>
        <t>In order to factorize common data that is provisioned for a group of ACs, a set of profiles (<xref target="sec-profiles"/>) can be defined at the network level, and then called under the node level. The information contained in a profile is thus inherited, unless the corresponding data node is refined at the AC level. In such a case, the value provided at the AC level takes precedence over the global one.</t>
        <t>In contexts where the same AC is terminated by multiple peer SAPs (e.g., an AC with multiple CEs) but a subset of them have specific information, the module allows operators to:</t>
        <ul spacing="normal">
          <li>
            <t>Define a parent AC that may list all these CEs as peer SAPs.</t>
          </li>
          <li>
            <t>Create individual ACs that are bound to the parent AC using 'ac-parent-ref'.</t>
          </li>
          <li>
            <t>Indicate for each individual ACs one or a subset of the CEs as peer SAPs. All these individual ACs will inherit the properties of the parent AC.</t>
          </li>
        </ul>
        <t>Whenever a parent AC is deleted, then all child ACs of that AC <bcp14>MUST</bcp14> be deleted.</t>
        <t>An AC may belong to one or multiple groups <xref target="RFC9181"/>. For example, the 'group-id' is used to associate redundancy or protection constraints with ACs.</t>
        <t>The status of an AC can be tracked using 'status'. Both operational status and administrative status are maintained. A mismatch between the administrative status vs. the operational status can be used as a trigger to detect anomalies.</t>
        <t>An AC can be characterized using Layer 2 connectivity (<xref target="sec-l2"/>), Layer 3 connectivity (<xref target="sec-l3"/>), routing protocols (<xref target="sec-rtg"/>), Operations, Administration, and Maintenance (OAM) (<xref target="sec-oam"/>), security (<xref target="sec-sec"/>), and service (<xref target="sec-svc"/>) considerations.</t>
      </section>
      <section anchor="references">
        <name>References</name>
        <t>The AC module defines a set of groupings depicted in <xref target="references-tree"/> for referencing purposes. These references are used within or outside the AC network module. The use of such groupings is consistent with the design in <xref target="RFC8345"/>.</t>
        <figure anchor="references-tree">
          <name>References Groupings</name>
          <artwork><![CDATA[
  grouping attachment-circuit-reference:
    +-- ac-ref?        leafref
    +-- node-ref?      leafref
    +-- network-ref?   -> /nw:networks/network/network-id
  grouping ac-profile-reference:
    +-- ac-profile-ref?   leafref
    +-- network-ref?      -> /nw:networks/network/network-id
  grouping encryption-profile-reference:
    +-- encryption-profile-ref?   leafref
    +-- network-ref?              -> /nw:networks/network/network-id
  grouping qos-profile-reference:
    +-- qos-profile-ref?   leafref
    +-- network-ref?       -> /nw:networks/network/network-id
  grouping bfd-profile-reference:
    +-- bfd-profile-ref?   leafref
    +-- network-ref?       -> /nw:networks/network/network-id
  grouping forwarding-profile-reference:
    +-- forwarding-profile-ref?   leafref
    +-- network-ref?              -> /nw:networks/network/network-id
  grouping routing-profile-reference:
    +-- routing-profile-ref?   leafref
    +-- network-ref?           -> /nw:networks/network/network-id
]]></artwork>
        </figure>
        <t>The groupings shown in <xref target="references-tree"/> contain the information necessary to reference:</t>
        <ul spacing="normal">
          <li>
            <t>an attachment circuit that is terminated by a specific node in a given network,</t>
          </li>
          <li>
            <t>an attachment circuit profile of a specific network (<xref target="sec-profiles"/>), and</t>
          </li>
          <li>
            <t>specific provisioning profiles that are bound to a specific network (<xref target="sec-profiles"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-profiles">
        <name>Provisioning Profiles</name>
        <t>The AC and specific provisioning profiles tree structure is shown in <xref target="profiles-tree"/>.</t>
        <figure anchor="profiles-tree">
          <name>Profiles Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network:
    +--rw specific-provisioning-profiles
    |  +--rw valid-provider-identifiers
    |     +--rw encryption-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw qos-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw bfd-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw forwarding-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw routing-profile-identifier* [id]
    |        +--rw id    string
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  +--rw description?              string
       |     |  +--rw apply-policy
       |     |  |  +--rw import-policy*           leafref
       |     |  |  +--rw default-import-policy?   default-policy-type
       |     |  |  +--rw export-policy*           leafref
       |     |  |  +--rw default-export-policy?   default-policy-type
       |     |  +--rw local-as?                 inet:as-number
       |     |  +--rw peer-as                   inet:as-number
       |     |  +--rw address-family?           identityref
       |     |  +--rw multihop?                 uint8
       |     |  +--rw as-override?              boolean
       |     |  +--rw allow-own-as?             uint8
       |     |  +--rw prepend-global-as?        boolean
       |     |  +--rw send-default-route?       boolean
       |     |  +--rw site-of-origin?           rt-types:route-origin
       |     |  +--rw ipv6-site-of-origin?
       |     |  |       rt-types:ipv6-route-origin
       |     |  +--rw redistribute-connected* [address-family]
       |     |  |  +--rw address-family    identityref
       |     |  |  +--rw enable?           boolean
       |     |  +--rw bgp-max-prefix
       |     |  |  +--rw max-prefix?          uint32
       |     |  |  +--rw warning-threshold?   decimal64
       |     |  |  +--rw violate-action?      enumeration
       |     |  |  +--rw restart-timer?       uint32
       |     |  +--rw bgp-timers
       |     |     +--rw keepalive?   uint16
       |     |     +--rw hold-time?   uint16
       |     +--rw ospf
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw max-lsa?          uint32
       |     +--rw isis
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint16
       |     |  +--rw mode?             enumeration
       |     +--rw rip
       |     |  +--rw address-family?   identityref
       |     |  +--rw timers
       |     |  |  +--rw update-interval?     uint16
       |     |  |  +--rw invalid-interval?    uint16
       |     |  |  +--rw holddown-interval?   uint16
       |     |  |  +--rw flush-interval?      uint16
       |     |  +--rw default-metric?   uint8
       |     +--rw vrrp
       |        +--rw address-family?   identityref
       |        +--rw ping-reply?       boolean
       +--rw oam
          +--rw bfd {vpn-common:bfd}?
             +--rw session-type?               identityref
             +--rw desired-min-tx-interval?    uint32
             +--rw required-min-rx-interval?   uint32
             +--rw local-multiplier?           uint8
             +--rw holdtime?                   uint32
]]></artwork>
        </figure>
        <t>The exact definition of the specific provisioning profiles profiles is local to each service provider. The model only includes an identifier for these profiles in order to ease identifying and binding local policies when building an AC. As shown in <xref target="profiles-tree"/>, the following identifiers can be included:</t>
        <dl>
          <dt>'encryption-profile-identifier':</dt>
          <dd>
            <t>An encryption profile refers to a set of policies related to the encryption schemes and setup that can be applied on the AC.</t>
          </dd>
          <dt>'qos-profile-identifier':</dt>
          <dd>
            <t>A Quality of Service (QoS) profile refers to a set of policies such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
          </dd>
          <dt>'bfd-profile-identifier':</dt>
          <dd>
            <t>A Bidirectional Forwarding Detection (BFD) profile refers to a set of BFD policies <xref target="RFC5880"/> that can be invoked when building an AC.</t>
          </dd>
          <dt>'forwarding-profile-identifier':</dt>
          <dd>
            <t>A forwarding profile refers to the policies that apply to the forwarding of packets conveyed over an AC. Such policies may consist of, for example, applying Access Control Lists (ACLs).</t>
          </dd>
          <dt>'routing-profile-identifier':</dt>
          <dd>
            <t>A routing profile refers to a set of routing policies that will be invoked (e.g., BGP policies) for an AC.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-l2">
        <name>L2 Connection</name>
        <t>The 'l2-connection' container is used to manage the Layer 2 properties of an AC. The  Layer 2 connection tree structure is shown in <xref target="l2-tree"/>.</t>
        <figure anchor="l2-tree">
          <name>Layer 2 Connection Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection
       |  +--rw encapsulation
       |  |  +--rw encap-type?        identityref
       |  |  +--rw dot1q
       |  |  |  +--rw tag-type?         identityref
       |  |  |  +--rw cvlan-id?         uint16
       |  |  |  +--rw tag-operations
       |  |  |     +--rw (op-choice)?
       |  |  |     |  +--:(pop)
       |  |  |     |  |  +--rw pop?         empty
       |  |  |     |  +--:(push)
       |  |  |     |  |  +--rw push?        empty
       |  |  |     |  +--:(translate)
       |  |  |     |     +--rw translate?   empty
       |  |  |     +--rw tag-1?             dot1q-types:vlanid
       |  |  |     +--rw tag-1-type?
       |  |  |     |       dot1q-types:dot1q-tag-type
       |  |  |     +--rw tag-2?             dot1q-types:vlanid
       |  |  |     +--rw tag-2-type?
       |  |  |             dot1q-types:dot1q-tag-type
       |  |  +--rw priority-tagged
       |  |  |  +--rw tag-type?   identityref
       |  |  +--rw qinq
       |  |     +--rw tag-type?         identityref
       |  |     +--rw svlan-id          uint16
       |  |     +--rw cvlan-id          uint16
       |  |     +--rw tag-operations
       |  |        +--rw (op-choice)?
       |  |        |  +--:(pop)
       |  |        |  |  +--rw pop?         uint8
       |  |        |  +--:(push)
       |  |        |  |  +--rw push?        empty
       |  |        |  +--:(translate)
       |  |        |     +--rw translate?   uint8
       |  |        +--rw tag-1?             dot1q-types:vlanid
       |  |        +--rw tag-1-type?
       |  |        |       dot1q-types:dot1q-tag-type
       |  |        +--rw tag-2?             dot1q-types:vlanid
       |  |        +--rw tag-2-type?
       |  |                dot1q-types:dot1q-tag-type
       |  +--rw (l2-service)?
       |  |  +--:(l2-tunnel-service)
       |  |  |  +--rw l2-tunnel-service
       |  |  |     +--rw type?         identityref
       |  |  |     +--rw pseudowire
       |  |  |     |  +--rw vcid?      uint32
       |  |  |     |  +--rw far-end?   union
       |  |  |     +--rw vpls
       |  |  |     |  +--rw vcid?      uint32
       |  |  |     |  +--rw far-end*   union
       |  |  |     +--rw vxlan
       |  |  |        +--rw vni-id             uint32
       |  |  |        +--rw peer-mode?         identityref
       |  |  |        +--rw peer-ip-address*   inet:ip-address
       |  |  +--:(l2vpn)
       |  |     +--rw l2vpn-id?            vpn-common:vpn-id
       |  +--rw l2-termination-point?      string
       |  +--rw local-bridge-reference?    string
       |  +--rw bearer-reference?          string
       |  |       {vpn-common:bearer-reference}?
       |  +--rw lag-interface {vpn-common:lag-interface}?
       |     +--rw lag-interface-id?   string
       |     +--rw member-link-list
       |        +--rw member-link* [name]
       |           +--rw name    string
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
        </figure>
        <t>The 'encapsulation' container specifies the Layer 2 encapsulation to use (if any) and allows the configuration of the relevant tags. Also, the model supports tag manipulation operations (e.g., tag rewrite).</t>
        <t>The 'l2-tunnel-service' container is used to specify the required parameters to set a Layer 2 tunneling service (e.g., a Virtual Private LAN Service (VPLS), a Virtual eXtensible Local Area Network (VXLAN), or a pseudowire (<xref section="6.1" sectionFormat="of" target="RFC8077"/>)). 'l2vpn-id' is used to identify a L2VPN service that is associated with an Integrated Routing and Bridging (IRB) interface.</t>
        <t>Specific Layer 2 sub-interfaces may be required to be configured in some implementations/deployments. Such a Layer-2-specific interface can be included in 'l2-termination-point'.</t>
        <t>To accommodate implementations that require internal bridging, a local bridge reference can be specified in 'local-bridge-reference'. Such a reference may be a local bridge domain.</t>
        <t>A reference to the bearer is maintained using 'bearer-reference'.</t>
      </section>
      <section anchor="sec-l3">
        <name>IP Connection</name>
        <t>This 'ip-connection' container is used to group Layer 3 connectivity information, particularly the IP addressing information, of an AC.</t>
        <t>The  Layer 3 connection tree structure is shown in <xref target="l3-tree"/>.</t>
        <figure anchor="l3-tree">
          <name>IP Connection Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  +--rw l3-termination-point?   string
       |  +--rw ipv4 {vpn-common:ipv4}?
       |  |  +--rw local-address?
       |  |  |       inet:ipv4-address
       |  |  +--rw prefix-length?                           uint8
       |  |  +--rw address-allocation-type?
       |  |  |       identityref
       |  |  +--rw (allocation-type)?
       |  |     +--:(dynamic)
       |  |     |  +--rw (address-assign)?
       |  |     |  |  +--:(number)
       |  |     |  |  |  +--rw number-of-dynamic-address?   uint16
       |  |     |  |  +--:(explicit)
       |  |     |  |     +--rw customer-addresses
       |  |     |  |        +--rw address-pool* [pool-id]
       |  |     |  |           +--rw pool-id          string
       |  |     |  |           +--rw start-address
       |  |     |  |           |       inet:ipv4-address
       |  |     |  |           +--rw end-address?
       |  |     |  |                   inet:ipv4-address
       |  |     |  +--rw (provider-dhcp)?
       |  |     |  |  +--:(dhcp-service-type)
       |  |     |  |  |  +--rw dhcp-service-type?
       |  |     |  |  |          enumeration
       |  |     |  |  +--:(service-type)
       |  |     |  |     +--rw (service-type)?
       |  |     |  |        +--:(relay)
       |  |     |  |           +--rw server-ip-address*
       |  |     |  |                   inet:ipv4-address
       |  |     |  +--rw (dhcp-relay)?
       |  |     |     +--:(customer-dhcp-servers)
       |  |     |        +--rw customer-dhcp-servers
       |  |     |           +--rw server-ip-address*
       |  |     |                   inet:ipv4-address
       |  |     +--:(static-addresses)
       |  |        +--rw address* [address-id]
       |  |           +--rw address-id          string
       |  |           +--rw customer-address?   inet:ipv4-address
       |  +--rw ipv6 {vpn-common:ipv6}?
       |     +--rw local-address?
       |     |       inet:ipv6-address
       |     +--rw prefix-length?                           uint8
       |     +--rw address-allocation-type?
       |     |       identityref
       |     +--rw (allocation-type)?
       |        +--:(dynamic)
       |        |  +--rw (address-assign)?
       |        |  |  +--:(number)
       |        |  |  |  +--rw number-of-dynamic-address?   uint16
       |        |  |  +--:(explicit)
       |        |  |     +--rw customer-addresses
       |        |  |        +--rw address-pool* [pool-id]
       |        |  |           +--rw pool-id          string
       |        |  |           +--rw start-address
       |        |  |           |       inet:ipv6-address
       |        |  |           +--rw end-address?
       |        |  |                   inet:ipv6-address
       |        |  +--rw (provider-dhcp)?
       |        |  |  +--:(dhcp-service-type)
       |        |  |  |  +--rw dhcp-service-type?
       |        |  |  |          enumeration
       |        |  |  +--:(service-type)
       |        |  |     +--rw (service-type)?
       |        |  |        +--:(relay)
       |        |  |           +--rw server-ip-address*
       |        |  |                   inet:ipv6-address
       |        |  +--rw (dhcp-relay)?
       |        |     +--:(customer-dhcp-servers)
       |        |        +--rw customer-dhcp-servers
       |        |           +--rw server-ip-address*
       |        |                   inet:ipv6-address
       |        +--:(static-addresses)
       |           +--rw address* [address-id]
       |              +--rw address-id          string
       |              +--rw customer-address?   inet:ipv6-address
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
        </figure>
        <t>A distinct Layer 3 interface other than the interface indicated under the 'l2-connection' container may be needed to terminate the Layer 3 connectivity. The identifier of such an interface is included in 'l3-termination-point'. For example, this data node can be used to carry the identifier of a bridge domain interface.</t>
        <t>This container can include IPv4, IPv6, or both if dual-stack is enabled. For both IPv4 and IPv6, the IP connection supports three IP address assignment modes for customer addresses: provider DHCP, DHCP relay, and static addressing. Note that for the IPv6 case, Stateless Address Autoconfiguration (SLAAC) <xref target="RFC4862"/> can be used.</t>
        <t>For both IPv4 and IPv6, 'address-allocation-type' is used to indicate the IP address allocation mode to activate for an AC. The allocated address represents the PE interface address configuration. When 'address-allocation-type' is set to 'provider-dhcp', DHCP assignments can be made locally or by an external DHCP server. Such behavior is controlled by setting 'dhcp-service-type'.</t>
        <t>For IPv6, if 'address-allocation-type' is set to 'slaac', the Prefix Information option of Router Advertisements that will be issued for SLAAC purposes will carry the IPv6 prefix that is determined by 'local-address' and 'prefix-length'. For example, if 'local-address' is set to '2001:db8:0:1::1' and 'prefix-length' is set to '64', the IPv6 prefix that will be used is '2001:db8:0:1::/64'.</t>
        <t>In some deployment contexts (e.g., network merging), multiple IP subnets may be used in a transition period. For such deployments, multiple ACs (typically, two) with overlapping information may be maintained during a transition period. The correlation between these ACs may rely upon the same 'ac-svc-ref'.</t>
      </section>
      <section anchor="sec-rtg">
        <name>Routing</name>
        <t>The overall routing subtree structure is shown in <xref target="rtg-tree"/>.</t>
        <figure anchor="rtg-tree">
          <name>Routing Tree Structure</name>
          <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  ...
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
        </figure>
        <t>Multiple routing instances ('routing-protocol') can be defined, each uniquely identified
by an 'id'. Specifically, each instance is uniquely identified to accommodate scenarios
where multiple instances of the same routing protocol have to be configured on the same AC.</t>
        <t>The type of a routing instance is indicated in 'type'.
The values of this attribute are those defined in <xref target="RFC9181"/> (the
'routing-protocol-type' identity). Specific data nodes are then provided
as a function of the 'type'. See more details in the following subsections.</t>
        <t>One or multiple routing profiles ('routing-profiles') can be provided for
a given routing instance.</t>
        <section anchor="sec-static-rtg">
          <name>Static Routing</name>
          <t>The static routing subtree structure is shown in <xref target="static-tree"/>.</t>
          <figure anchor="static-tree">
            <name>Static Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  +--rw cascaded-lan-prefixes
       |     |     +--rw ipv4-lan-prefixes* [lan next-hop]
       |     |     |       {vpn-common:ipv4}?
       |     |     |  +--rw lan           inet:ipv4-prefix
       |     |     |  +--rw lan-tag?      string
       |     |     |  +--rw next-hop      union
       |     |     |  +--rw metric?       uint32
       |     |     +--rw bfd
       |     |     |  +--rw enable?            boolean
       |     |     |  +--rw bfd-profile-ref?   leafref
       |     |     |  +--rw network-ref?
       |     |     |          -> /nw:networks/network/network-id
       |     |     |  +--rw preference?   uint32
       |     |     |  +--rw status
       |     |     |     +--rw admin-status
       |     |     |     |  +--rw status?        identityref
       |     |     |     |  +--ro last-change?   yang:date-and-time
       |     |     |     +--ro oper-status
       |     |     |        +--ro status?        identityref
       |     |     |        +--ro last-change?   yang:date-and-time
       |     |     +--rw ipv6-lan-prefixes* [lan next-hop]
       |     |             {vpn-common:ipv6}?
       |     |        +--rw lan           inet:ipv4-prefix
       |     |        +--rw lan-tag?      string
       |     |        +--rw next-hop      union
       |     |        +--rw metric?       uint32
       |     |        +--rw bfd
       |     |        |  +--rw enable?            boolean
       |     |        |  +--rw bfd-profile-ref?   leafref
       |     |        |  +--rw network-ref?
       |     |        |          -> /nw:networks/network/network-id
       |     |        +--rw preference?   uint32
       |     |        +--rw status
       |     |           +--rw admin-status
       |     |           |  +--rw status?        identityref
       |     |           |  +--ro last-change?   yang:date-and-time
       |     |           +--ro oper-status
       |     |              +--ro status?        identityref
       |     |              +--ro last-change?   yang:date-and-time
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
          </figure>
          <t>The following data nodes can be defined for a given IP prefix:</t>
          <dl>
            <dt>'lan-tag':</dt>
            <dd>
              <t>Indicates a local tag (e.g., "myfavorite-lan") that is used to enforce local policies.</t>
            </dd>
            <dt>'next-hop':</dt>
            <dd>
              <t>Indicates the next hop to be used for the static route.</t>
            </dd>
            <dt/>
            <dd>
              <t>It can be identified by an IP address, a predefined next-hop type (e.g., 'discard' or 'local-link'), etc.</t>
            </dd>
            <dt>'bfd':</dt>
            <dd>
              <t>Indicates whether BFD is enabled or disabled for this static route entry. A BFD profile may also be provided.</t>
            </dd>
            <dt>'metric':</dt>
            <dd>
              <t>Indicates the metric associated with the static route entry. This metric is used when the route is exported into an IGP.</t>
            </dd>
            <dt>'preference':</dt>
            <dd>
              <t>Indicates the preference associated with the static route entry.</t>
            </dd>
            <dt/>
            <dd>
              <t>This preference is used to select a preferred route among routes to the same destination prefix.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Used to convey the status of a static route entry. This data node can also be used to control the (de)activation of individual static route entries.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-bgp-rtg">
          <name>BGP</name>
          <t>The BGP routing subtree structure is shown in <xref target="bgp-tree"/>.</t>
          <figure anchor="bgp-tree">
            <name>BGP Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  +--rw description?              string
       |     |  +--rw apply-policy
       |     |  |  +--rw import-policy*           leafref
       |     |  |  +--rw default-import-policy?   default-policy-type
       |     |  |  +--rw export-policy*           leafref
       |     |  |  +--rw default-export-policy?   default-policy-type
       |     |  +--rw local-as?                 inet:as-number
       |     |  +--rw peer-as                   inet:as-number
       |     |  +--rw address-family?           identityref
       |     |  +--rw multihop?                 uint8
       |     |  +--rw as-override?              boolean
       |     |  +--rw allow-own-as?             uint8
       |     |  +--rw prepend-global-as?        boolean
       |     |  +--rw send-default-route?       boolean
       |     |  +--rw site-of-origin?           rt-types:route-origin
       |     |  +--rw ipv6-site-of-origin?
       |     |  |       rt-types:ipv6-route-origin
       |     |  +--rw redistribute-connected* [address-family]
       |     |  |  +--rw address-family    identityref
       |     |  |  +--rw enabled?           boolean
       |     |  +--rw bgp-max-prefix
       |     |  |  +--rw max-prefix?          uint32
       |     |  |  +--rw warning-threshold?   decimal64
       |     |  |  +--rw violate-action?      enumeration
       |     |  |  +--rw restart-timer?       uint32
       |     |  +--rw bgp-timers
       |     |  |  +--rw keepalive?   uint16
       |     |  |  +--rw hold-time?   uint16
       |     |  +--rw capability*        [address-family]
       |     |     +--rw address-family    identityref
       |     |     +--rw name              identityref
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  ...
       |     +--rw bgp
       |     |  +--rw peer-groups
       |     |  |  +--rw peer-group* [name]
       |     |  |     +--rw name                      string
       |     |  |     +--rw local-address?            union
       |     |  |     +--rw description?              string
       |     |  |     +--rw apply-policy
       |     |  |     |  +--rw import-policy*           leafref
       |     |  |     |  +--rw default-import-policy?
       |     |  |     |  |       default-policy-type
       |     |  |     |  +--rw export-policy*           leafref
       |     |  |     |  +--rw default-export-policy?
       |     |  |     |          default-policy-type
       |     |  |     +--rw local-as?                 inet:as-number
       |     |  |     +--rw peer-as                   inet:as-number
       |     |  |     +--rw address-family?           identityref
       |     |  |     +--rw multihop?                 uint8
       |     |  |     +--rw as-override?              boolean
       |     |  |     +--rw allow-own-as?             uint8
       |     |  |     +--rw prepend-global-as?        boolean
       |     |  |     +--rw send-default-route?       boolean
       |     |  |     +--rw site-of-origin?
       |     |  |     |       rt-types:route-origin
       |     |  |     +--rw ipv6-site-of-origin?
       |     |  |     |       rt-types:ipv6-route-origin
       |     |  |     +--rw redistribute-connected* [address-family]
       |     |  |     |  +--rw address-family    identityref
       |     |  |     |  +--rw enabled?           boolean
       |     |  |     +--rw bgp-max-prefix
       |     |  |     |  +--rw max-prefix?          uint32
       |     |  |     |  +--rw warning-threshold?   decimal64
       |     |  |     |  +--rw violate-action?      enumeration
       |     |  |     |  +--rw restart-timer?       uint32
       |     |  |     +--rw bgp-timers
       |     |  |     |  +--rw keepalive?   uint16
       |     |  |     |  +--rw hold-time?   uint16
       |     |  |     +--rw capability*        [address-family]
       |     |  |     |   +--rw address-family    identityref
       |     |  |     |   +--rw name              identityref
       |     |  |     +--rw authentication
       |     |  |        +--rw enabled?            boolean
       |     |  |        +--rw keying-material
       |     |  |           +--rw (option)?
       |     |  |              +--:(ao)
       |     |  |              |  +--rw enable-ao?          boolean
       |     |  |              |  +--rw ao-keychain?
       |     |  |              |          key-chain:key-chain-ref
       |     |  |              +--:(md5)
       |     |  |              |  +--rw md5-keychain?
       |     |  |              |          key-chain:key-chain-ref
       |     |  |              +--:(explicit)
       |     |  |                 +--rw key-id?             uint32
       |     |  |                 +--rw key?                string
       |     |  |                 +--rw crypto-algorithm?
       |     |  |                         identityref
       |     |  +--rw neighbor* [remote-address]
       |     |     +--rw remote-address            inet:ip-address
       |     |     +--rw local-address?            union
       |     |     +--rw peer-group?
       |     |     |       -> ../../peer-groups/peer-group/name
       |     |     +--rw description?              string
       |     |     +--rw apply-policy
       |     |     |  +--rw import-policy*           leafref
       |     |     |  +--rw default-import-policy?
       |     |     |  |       default-policy-type
       |     |     |  +--rw export-policy*           leafref
       |     |     |  +--rw default-export-policy?
       |     |     |          default-policy-type
       |     |     +--rw local-as?                 inet:as-number
       |     |     +--rw peer-as                   inet:as-number
       |     |     +--rw address-family?           identityref
       |     |     +--rw multihop?                 uint8
       |     |     +--rw as-override?              boolean
       |     |     +--rw allow-own-as?             uint8
       |     |     +--rw prepend-global-as?        boolean
       |     |     +--rw send-default-route?       boolean
       |     |     +--rw site-of-origin?
       |     |     |       rt-types:route-origin
       |     |     +--rw ipv6-site-of-origin?
       |     |     |       rt-types:ipv6-route-origin
       |     |     +--rw redistribute-connected* [address-family]
       |     |     |  +--rw address-family    identityref
       |     |     |  +--rw enabled?           boolean
       |     |     +--rw bgp-max-prefix
       |     |     |  +--rw max-prefix?          uint32
       |     |     |  +--rw warning-threshold?   decimal64
       |     |     |  +--rw violate-action?      enumeration
       |     |     |  +--rw restart-timer?       uint32
       |     |     +--rw bgp-timers
       |     |     |  +--rw keepalive?   uint16
       |     |     |  +--rw hold-time?   uint16
       |     |     +--rw capability*        [address-family]
       |     |     |   +--rw address-family    identityref
       |     |     |   +--rw name              identityref
       |     |     +--rw bfd
       |     |     |  +--rw enable?            boolean
       |     |     |  +--rw bfd-profile-ref?   leafref
       |     |     |  +--rw network-ref?
       |     |     |          -> /nw:networks/network/network-id
       |     |     +--rw authentication
       |     |     |  +--rw enabled?            boolean
       |     |     |  +--rw keying-material
       |     |     |     +--rw (option)?
       |     |     |        +--:(ao)
       |     |     |        |  +--rw enable-ao?          boolean
       |     |     |        |  +--rw ao-keychain?
       |     |     |        |          key-chain:key-chain-ref
       |     |     |        +--:(md5)
       |     |     |        |  +--rw md5-keychain?
       |     |     |        |          key-chain:key-chain-ref
       |     |     |        +--:(explicit)
       |     |     |           +--rw key-id?             uint32
       |     |     |           +--rw key?                string
       |     |     |           +--rw crypto-algorithm?   identityref
       |     |     +--rw status
       |     |        +--rw admin-status
       |     |        |  +--rw status?        identityref
       |     |        |  +--ro last-change?   yang:date-and-time
       |     |        +--ro oper-status
       |     |           +--ro status?        identityref
       |     |           +--ro last-change?   yang:date-and-time
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
          </figure>
          <t>The following data nodes are supported for each 'peer-group':</t>
          <dl>
            <dt>'name':</dt>
            <dd>
              <t>Defines a name for the peer group.</t>
            </dd>
            <dt>'local-address':</dt>
            <dd>
              <t>Specifies an address or a reference to an interface to use when establishing the BGP transport session.</t>
            </dd>
            <dt>'description':</dt>
            <dd>
              <t>Includes a description of the peer group.</t>
            </dd>
            <dt>'apply-policy':</dt>
            <dd>
              <t>Lists a set of import/export policies <xref target="RFC9067"/> to apply for this group.</t>
            </dd>
            <dt>'local-as':</dt>
            <dd>
              <t>Indicates a local AS Number (ASN).</t>
            </dd>
            <dt>'peer-as':</dt>
            <dd>
              <t>Indicates the peer's ASN.</t>
            </dd>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates the address family of the peer.  It can
   be set to 'ipv4', 'ipv6', or 'dual-stack'.</t>
            </dd>
            <dt/>
            <dd>
              <t>This address family might be used together with the service type that uses an AC (e.g., 'vpn-type' <xref target="RFC9182"/>) to derive the appropriate Address Family Identifiers (AFIs) / Subsequent Address Family Identifiers (SAFIs) that will be part of the derived device configurations (e.g., unicast IPv4 MPLS L3VPN (AFI,SAFI = 1,128) as defined in <xref section="4.3.4" sectionFormat="of" target="RFC4364"/>).</t>
            </dd>
            <dt>'multihop':</dt>
            <dd>
              <t>Indicates the number of allowed IP hops to reach a BGP peer.</t>
            </dd>
            <dt>'as-override':</dt>
            <dd>
              <t>If set, this parameter indicates whether ASN override
   is enabled, i.e., replacing the ASN of the customer specified in
   the AS_PATH BGP attribute with the ASN identified in the 'local-
   as' attribute.</t>
            </dd>
            <dt>'allow-own-as':</dt>
            <dd>
              <t>Used in some topologies (e.g., hub-and-spoke) to
   allow the provider's ASN to be included in the AS_PATH BGP
   attribute received from a peer.  Loops are prevented by setting
   'allow-own-as' to a maximum number of the provider's ASN
   occurrences.  By default, this parameter is set to '0' (that is,
   reject any AS_PATH attribute that includes the provider's ASN).</t>
            </dd>
            <dt>'prepend-global-as':</dt>
            <dd>
              <t>When distinct ASNs are configured at the
   node and AC levels, this parameter controls whether
   the ASN provided at the node level is prepended to the AS_PATH
   attribute.</t>
            </dd>
            <dt>'send-default-route':</dt>
            <dd>
              <t>Controls whether default routes can be advertised to the peer.</t>
            </dd>
            <dt>'site-of-origin':</dt>
            <dd>
              <t>Meant to uniquely identify the set of routes
   learned from a site via a particular AC.  It is used
   to prevent routing loops (<xref section="7" sectionFormat="of" target="RFC4364"/>).  The Site of
   Origin attribute is encoded as a Route Origin Extended Community.</t>
            </dd>
            <dt>'ipv6-site-of-origin':</dt>
            <dd>
              <t>Carries an IPv6 Address Specific BGP Extended
    Community that is used to indicate the Site of Origin <xref target="RFC5701"/>.  It is used to prevent routing loops.</t>
            </dd>
            <dt>'redistribute-connected':</dt>
            <dd>
              <t>Controls whether the AC is advertised to other PEs.</t>
            </dd>
          </dl>
          <t>'bgp-max-prefix':  Controls the behavior when a prefix maximum is
      reached.</t>
          <dl>
            <dt>'max-prefix':</dt>
            <dd>
              <t>Indicates the maximum number of BGP prefixes
    allowed in a session for this group.  If the limit is reached, the
    action indicated in 'violate-action' will be followed.</t>
            </dd>
            <dt>'warning-threshold':</dt>
            <dd>
              <t>A warning notification is triggered when this limit is reached.</t>
            </dd>
            <dt>'violate-action':</dt>
            <dd>
              <t>Indicates which action to execute when the
    maximum number of BGP prefixes is reached.  Examples of such
    actions include sending a warning message, discarding extra
    paths from the peer, or restarting the session.</t>
            </dd>
            <dt>'restart-timer':</dt>
            <dd>
              <t>Indicates, in seconds, the time interval after
 which the BGP session will be reestablished.</t>
            </dd>
            <dt>'bgp-timers':</dt>
            <dd>
              <t>Two timers can be captured in this container: (1)
   'hold-time', which is the time interval that will be used for the
   Hold Timer (<xref section="4.2" sectionFormat="of" target="RFC4271"/>) when establishing a BGP
   session and (2) 'keepalive', which is the time interval for the
   KeepaliveTimer between a PE and a BGP peer (<xref section="4.4" sectionFormat="of" target="RFC4271"/>).</t>
            </dd>
            <dt/>
            <dd>
              <t>Both timers are expressed in seconds.</t>
            </dd>
            <dt>'capability':</dt>
            <dd>
              <t>Specifies a set of BGP capabilities (e.g., route refresh capability <xref target="RFC2918"/>)
to be enabled per address family.</t>
            </dd>
            <dt>'bfd':</dt>
            <dd>
              <t>Indicates whether BFD is enabled or disabled for this nighbor. A BFD profile to apply may also be provided.</t>
            </dd>
            <dt>'authentication':</dt>
            <dd>
              <t>The module adheres to the recommendations in
   <xref section="13.2" sectionFormat="of" target="RFC4364"/>, as it allows enabling the TCP
   Authentication Option (TCP-AO) <xref target="RFC5925"/> and accommodates the
   installed base that makes use of MD5.  In addition, the module
   includes a provision for using IPsec.</t>
            </dd>
            <dt/>
            <dd>
              <t>This version of the model assumes that parameters specific to the
    TCP-AO are preconfigured as part of the key chain that is
    referenced in the model.  No assumption is made about how such a
    key chain is preconfigured.  However, the structure of the key
    chain should cover data nodes beyond those in <xref target="RFC8177"/>, mainly
    SendID and RecvID (<xref section="3.1" sectionFormat="of" target="RFC5925"/>).</t>
            </dd>
          </dl>
          <t>For each neighbor, the following data nodes are supported in addition to similar parameters that are provided for a peer group:</t>
          <dl>
            <dt>'remote-address':</dt>
            <dd>
              <t>Specifies the remote IP address of a BGP neighbor.</t>
            </dd>
            <dt>'peer-group':</dt>
            <dd>
              <t>A name of a peer group.</t>
            </dd>
            <dt/>
            <dd>
              <t>Parameters that are provided at the 'neighbor' level takes precedence over the ones provided in the peer group.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the BGP session.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-ospf-rtg">
          <name>OSPF</name>
          <t>The OSPF routing subtree structure is shown in <xref target="ospf-tree"/>.</t>
          <figure anchor="ospf-tree">
            <name>OSPF Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw max-lsa?          uint32
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  ...
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw sham-links {vpn-common:rtg-ospf-sham-link}?
       |     |  |  +--rw sham-link* [target-site]
       |     |  |     +--rw target-site    string
       |     |  |     +--rw metric?        uint16
       |     |  +--rw max-lsa?          uint32
       |     |  +--rw authentication
       |     |  |  +--rw enabled?            boolean
       |     |  |  +--rw keying-material
       |     |  |     +--rw (option)?
       |     |  |        +--:(auth-key-chain)
       |     |  |        |  +--rw key-chain?
       |     |  |        |          key-chain:key-chain-ref
       |     |  |        +--:(auth-key-explicit)
       |     |  |           +--rw key-id?             uint32
       |     |  |           +--rw key?                string
       |     |  |           +--rw crypto-algorithm?   identityref
       |     |  +--rw status
       |     |     +--rw admin-status
       |     |     |  +--rw status?        identityref
       |     |     |  +--ro last-change?   yang:date-and-time
       |     |     +--ro oper-status
       |     |        +--ro status?        identityref
       |     |        +--ro last-change?   yang:date-and-time
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
          </figure>
          <t>The following OSPF data nodes are supported:</t>
          <dl>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates whether IPv4, IPv6, or both address
   families are to be activated.</t>
            </dd>
            <dt/>
            <dd>
              <t>When the IPv4 or dual-stack address family is requested, it is up
    to the implementation (e.g., network orchestrator) to decide
    whether OSPFv2 <xref target="RFC4577"/> or OSPFv3 <xref target="RFC6565"/> is used to announce
    IPv4 routes.</t>
            </dd>
            <dt>'area-id':</dt>
            <dd>
              <t>Indicates the OSPF Area ID.</t>
            </dd>
            <dt>'metric':</dt>
            <dd>
              <t>Associates a metric with OSPF routes.</t>
            </dd>
            <dt>'sham-links':</dt>
            <dd>
              <t>Used to create OSPF sham links between two ACs sharing the same area and having a backdoor link
   (<xref section="4.2.7" sectionFormat="of" target="RFC4577"/> and <xref section="5" sectionFormat="of" target="RFC6565"/>).</t>
            </dd>
            <dt>'max-lsa':</dt>
            <dd>
              <t>Sets the maximum number of Link State Advertisements
   (LSAs) that the OSPF instance will accept.</t>
            </dd>
            <dt>'authentication':</dt>
            <dd>
              <t>Controls the authentication schemes to be enabled
   for the OSPF instance.  The following options are supported: IPsec
   for OSPFv3 authentication <xref target="RFC4552"/>, and the Authentication
   Trailer for OSPFv2 <xref target="RFC5709"/> <xref target="RFC7474"/> and OSPFv3 <xref target="RFC7166"/>.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the OSPF routing instance.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-isis-rtg">
          <name>IS-IS</name>
          <t>The IS-IS routing subtree structure is shown in <xref target="isis-tree"/>.</t>
          <figure anchor="isis-tree">
            <name>IS-IS Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint16
       |     |  +--rw mode?             enumeration
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  ...
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint16
       |     |  +--rw mode?             enumeration
       |     |  +--rw authentication
       |     |  |  +--rw enabled?            boolean
       |     |  |  +--rw keying-material
       |     |  |     +--rw (option)?
       |     |  |        +--:(auth-key-chain)
       |     |  |        |  +--rw key-chain?
       |     |  |        |          key-chain:key-chain-ref
       |     |  |        +--:(auth-key-explicit)
       |     |  |           +--rw key-id?             uint32
       |     |  |           +--rw key?                string
       |     |  |           +--rw crypto-algorithm?   identityref
       |     |  +--rw status
       |     |     +--rw admin-status
       |     |     |  +--rw status?        identityref
       |     |     |  +--ro last-change?   yang:date-and-time
       |     |     +--ro oper-status
       |     |        +--ro status?        identityref
       |     |        +--ro last-change?   yang:date-and-time
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
          </figure>
          <t>The following IS-IS data nodes are supported:</t>
          <dl>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates whether IPv4, IPv6, or both address families are to be activated.</t>
            </dd>
            <dt>'area-address':</dt>
            <dd>
              <t>Indicates the IS-IS area address.</t>
            </dd>
            <dt>'level':</dt>
            <dd>
              <t>Indicates the IS-IS level: Level 1, Level 2, or both.</t>
            </dd>
            <dt>'metric':</dt>
            <dd>
              <t>Associates a metric with IS-IS routes.</t>
            </dd>
            <dt>'mode':</dt>
            <dd>
              <t>Indicates the IS-IS interface mode type.  It can be set to
   'active' (that is, send or receive IS-IS protocol control packets)
   or 'passive' (that is, suppress the sending of IS-IS updates
   through the interface).</t>
            </dd>
            <dt/>
            <dd>
              <t>'authentication':</t>
            </dd>
            <dt/>
            <dd>
              <t>Controls the authentication schemes to be enabled
   for the IS-IS instance.  Both the specification of a key chain
   <xref target="RFC8177"/> and the direct specification of key and authentication
   algorithms are supported.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the IS-IS routing instance.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-rip-rtg">
          <name>RIP</name>
          <t>The RIP routing subtree structure is shown in <xref target="rip-tree"/>.</t>
          <figure anchor="rip-tree">
            <name>RIP Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  +--rw address-family?   identityref
       |     |  +--rw timers
       |     |  |  +--rw update-interval?     uint16
       |     |  |  +--rw invalid-interval?    uint16
       |     |  |  +--rw holddown-interval?   uint16
       |     |  |  +--rw flush-interval?      uint16
       |     |  +--rw default-metric?   uint8
       |     +--rw vrrp
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  ...
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  +--rw address-family?   identityref
       |     |  +--rw timers
       |     |  |  +--rw update-interval?     uint16
       |     |  |  +--rw invalid-interval?    uint16
       |     |  |  +--rw holddown-interval?   uint16
       |     |  |  +--rw flush-interval?      uint16
       |     |  +--rw default-metric?   uint8
       |     |  +--rw authentication
       |     |  |  +--rw enabled?            boolean
       |     |  |  +--rw keying-material
       |     |  |     +--rw (option)?
       |     |  |        +--:(auth-key-chain)
       |     |  |        |  +--rw key-chain?
       |     |  |        |          key-chain:key-chain-ref
       |     |  |        +--:(auth-key-explicit)
       |     |  |           +--rw key?                string
       |     |  |           +--rw crypto-algorithm?   identityref
       |     |  +--rw status
       |     |     +--rw admin-status
       |     |     |  +--rw status?        identityref
       |     |     |  +--ro last-change?   yang:date-and-time
       |     |     +--ro oper-status
       |     |        +--ro status?        identityref
       |     |        +--ro last-change?   yang:date-and-time
       |     +--rw vrrp
       |        ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
          </figure>
          <t>The following RIP data nodes are supported:</t>
          <dl>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates whether IPv4, IPv6, or both address
   families are to be activated.  This parameter is used to determine
   whether RIPv2 <xref target="RFC2453"/>, RIP Next Generation (RIPng), or both are
   to be enabled <xref target="RFC2080"/>.</t>
            </dd>
            <dt>'timers':</dt>
            <dd>
              <t>Indicates the following timers (expressed in seconds):
</t>
              <ul spacing="normal">
                <li>
                  <dl>
                    <dt>'update-interval':</dt>
                    <dd>
                      <t>The interval at which RIP updates are sent.</t>
                    </dd>
                  </dl>
                </li>
                <li>
                  <dl>
                    <dt>'invalid-interval':</dt>
                    <dd>
                      <t>The interval before a RIP route is declared invalid.</t>
                    </dd>
                  </dl>
                </li>
                <li>
                  <dl>
                    <dt>'holddown-interval':</dt>
                    <dd>
                      <t>The interval before better RIP routes are released.</t>
                    </dd>
                  </dl>
                </li>
                <li>
                  <dl>
                    <dt>'flush-interval':</dt>
                    <dd>
                      <t>The interval before a route is removed from the routing table.</t>
                    </dd>
                  </dl>
                </li>
              </ul>
            </dd>
            <dt>'default-metric':</dt>
            <dd>
              <t>Sets the default RIP metric.</t>
            </dd>
            <dt>'authentication':</dt>
            <dd>
              <t>Controls the authentication schemes to be enabled for the RIP instance.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the RIP routing instance.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-VRRP-rtg">
          <name>VRRP</name>
          <t>The VRRP subtree structure is shown in <xref target="vrrp-tree"/>.</t>
          <figure anchor="vrrp-tree">
            <name>VRRP Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        +--rw address-family?   identityref
       |        +--rw ping-reply?       boolean
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profile* [routing-profile-ref]
       |     |  +--rw routing-profile-ref    leafref
       |     |  +--rw network-ref?
       |     |  |       -> /nw:networks/network/network-id
       |     |  +--rw type?                  identityref
       |     +--rw static
       |     |  ...
       |     +--rw bgp
       |     |  ...
       |     +--rw ospf
       |     |  ...
       |     +--rw isis
       |     |  ...
       |     +--rw rip
       |     |  ...
       |     +--rw vrrp
       |        +--rw address-family?       identityref
       |        +--rw vrrp-group?           uint8
       |        +--rw backup-peer?          inet:ip-address
       |        +--rw virtual-ip-address*   inet:ip-address
       |        +--rw priority?             uint8
       |        +--rw ping-reply?           boolean
       |        +--rw status
       |           +--rw admin-status
       |           |  +--rw status?        identityref
       |           |  +--ro last-change?   yang:date-and-time
       |           +--ro oper-status
       |              +--ro status?        identityref
       |              +--ro last-change?   yang:date-and-time
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
          </figure>
          <t>The following VRRP data nodes are supported:</t>
          <dl>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates whether IPv4, IPv6, or both address
   families are to be activated.  Note that VRRP version 3 <xref target="RFC5798"/>
   supports both IPv4 and IPv6.</t>
            </dd>
            <dt>'vrrp-group':</dt>
            <dd>
              <t>Used to identify the VRRP group.</t>
            </dd>
            <dt>'backup-peer':</dt>
            <dd>
              <t>Carries the IP address of the peer.</t>
            </dd>
            <dt>'virtual-ip-address':</dt>
            <dd>
              <t>Includes virtual IP addresses for a single VRRP group.</t>
            </dd>
            <dt>'priority':</dt>
            <dd>
              <t>Assigns the VRRP election priority for the backup virtual router.</t>
            </dd>
            <dt>'ping-reply':</dt>
            <dd>
              <t>Controls whether the VRRP speaker should reply to ping requests.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the VRRP instance.</t>
            </dd>
          </dl>
          <t>Note that no authentication data node is included for VRRP, as there
isn't any type of VRRP authentication at this time (see <xref section="9" sectionFormat="of" target="RFC5798"/>).</t>
        </section>
      </section>
      <section anchor="sec-oam">
        <name>OAM</name>
        <t>The OAM subtree structure is shown in <xref target="oam-tree"/>.</t>
        <figure anchor="oam-tree">
          <name>OAM Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  ...
       +--rw oam
          +--rw bfd {vpn-common:bfd}?
             +--rw session-type?               identityref
             +--rw desired-min-tx-interval?    uint32
             +--rw required-min-rx-interval?   uint32
             +--rw local-multiplier?           uint8
             +--rw holdtime?                   uint32
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  +--rw bfd
       |     +--rw session* [dest-addr]
       |        +--rw dest-addr                   inet:ip-address
       |        +--rw source-address?             union
       |        +--rw bfd-profile-ref?            leafref
       |        +--rw network-ref?
       |        |       -> /nw:networks/network/network-id
       |        +--rw session-type?               identityref
       |        +--rw desired-min-tx-interval?    uint32
       |        +--rw required-min-rx-interval?   uint32
       |        +--rw local-multiplier?           uint8
       |        +--rw holdtime?                   uint32
       |        +--rw authentication!
       |        |  +--rw key-chain?    key-chain:key-chain-ref
       |        |  +--rw meticulous?   boolean
       |        +--rw status
       |           +--rw admin-status
       |           |  +--rw status?        identityref
       |           |  +--ro last-change?   yang:date-and-time
       |           +--ro oper-status
       |              +--ro status?        identityref
       |              +--ro last-change?   yang:date-and-time
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
        </figure>
        <t>The following OAM data nodes can be specified for each BFD session:</t>
        <dl>
          <dt>'dest-addr':</dt>
          <dd>
            <t>Specifies the BFD peer address.</t>
          </dd>
          <dt>'source-address':</dt>
          <dd>
            <t>Specifies the local IP address or interface to use for the session.</t>
          </dd>
          <dt>'bfd-profile-ref':</dt>
          <dd>
            <t>Refers to a BFD profile (<xref target="sec-profiles"/>).</t>
          </dd>
          <dt>'network-ref':</dt>
          <dd>
            <t>Includes a network reference to uniquely identify a BFD profile.</t>
          </dd>
          <dt>'session-type':</dt>
          <dd>
            <t>Indicates which BFD flavor is used to set up the session (e.g., classic BFD <xref target="RFC5880"/>, Seamless BFD <xref target="RFC7880"/>). By default, it is assumed that the BFD session will follow the behavior specified in <xref target="RFC5880"/>.</t>
          </dd>
          <dt>'desired-min-tx-interval':</dt>
          <dd>
            <t>The minimum interval, in microseconds, to use when transmitting BFD Control packets, less any jitter applied.</t>
          </dd>
          <dt>'required-min-rx-interval':</dt>
          <dd>
            <t>The minimum interval, in microseconds, between received BFD Control packets less any jitter applied by the sender.</t>
          </dd>
          <dt>'local-multiplier':</dt>
          <dd>
            <t>The negotiated transmit interval, multiplied by this value, provides the detection time for the peer.</t>
          </dd>
          <dt>'holdtime':</dt>
          <dd>
            <t>Used to indicate the expected BFD holddown time, in milliseconds.</t>
          </dd>
          <dt>'authentication':</dt>
          <dd>
            <t>Includes the required information to enable the BFD authentication modes discussed in <xref section="6.7" sectionFormat="of" target="RFC5880"/>. In particular, 'meticulous' controls the activation of meticulous mode as discussed in Sections 6.7.3 and 6.7.4 of <xref target="RFC5880"/>.</t>
          </dd>
          <dt>'status':</dt>
          <dd>
            <t>Indicates the status of BFD.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-sec">
        <name>Security</name>
        <t>The security subtree structure is shown in <xref target="sec-tree"/>. The 'security' container specifies the authentication and the encryption to be applied to traffic for a given AC. Tthe model can be used to directly control the encryption to be applied (e.g., Layer 2 or Layer 3 encryption) or invoke a local encryption profile.</t>
        <figure anchor="sec-tree">
          <name>Security Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  +--rw encryption {vpn-common:encryption}?
       |  |  +--rw enabled?   boolean
       |  |  +--rw layer?     enumeration
       |  +--rw encryption-profile
       |     +--rw (profile)?
       |        +--:(provider-profile)
       |        |  +--rw encryption-profile-ref?   leafref
       |        |  +--rw network-ref?
       |        |          -> /nw:networks/network/network-id
       |        +--:(customer-profile)
       |           +--rw customer-key-chain?   key-chain:key-chain-ref
       +--rw service
          ...
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-svc">
        <name>Service</name>
        <t>The service subtree structure is shown in <xref target="svc-tree"/>.</t>
        <figure anchor="svc-tree">
          <name>Service Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          +--rw mtu?                      uint32
          +--rw svc-pe-to-ce-bandwidth {vpn-common:inbound-bw}?
          |  +--rw bandwidth* [bw-type]
          |     +--rw bw-type      identityref
          |     +--rw (type)?
          |        +--:(per-cos)
          |        |  +--rw cos* [cos-id]
          |        |     +--rw cos-id    uint8
          |        |     +--rw cir?      uint64
          |        |     +--rw cbs?      uint64
          |        |     +--rw eir?      uint64
          |        |     +--rw ebs?      uint64
          |        |     +--rw pir?      uint64
          |        |     +--rw pbs?      uint64
          |        +--:(other)
          |           +--rw cir?   uint64
          |           +--rw cbs?   uint64
          |           +--rw eir?   uint64
          |           +--rw ebs?   uint64
          |           +--rw pir?   uint64
          |           +--rw pbs?   uint64
          +--rw svc-ce-to-pe-bandwidth {vpn-common:outbound-bw}?
          |  +--rw bandwidth* [bw-type]
          |     +--rw bw-type      identityref
          |     +--rw (type)?
          |        +--:(per-cos)
          |        |  +--rw cos* [cos-id]
          |        |     +--rw cos-id    uint8
          |        |     +--rw cir?      uint64
          |        |     +--rw cbs?      uint64
          |        |     +--rw eir?      uint64
          |        |     +--rw ebs?      uint64
          |        |     +--rw pir?      uint64
          |        |     +--rw pbs?      uint64
          |        +--:(other)
          |           +--rw cir?   uint64
          |           +--rw cbs?   uint64
          |           +--rw eir?   uint64
          |           +--rw ebs?   uint64
          |           +--rw pir?   uint64
          |           +--rw pbs?   uint64
          +--rw qos {vpn-common:qos}?
          |  +--rw qos-profiles
          |     +--rw qos-profile* [qos-profile-ref]
          |        +--rw qos-profile-ref    leafref
          |        +--rw network-ref?
          |        |       -> /nw:networks/network/network-id
          |        +--rw direction?         identityref
          +--rw access-control-list
             +--rw acl-profiles
                +--rw acl-profile* [forwarding-profile-ref]
                   +--rw forwarding-profile-ref    leafref
                   +--rw network-ref?
                           -> /nw:networks/network/network-id
]]></artwork>
        </figure>
        <t>The description of the service data nodes is as follows:</t>
        <dl>
          <dt>'mtu':</dt>
          <dd>
            <t>Specifies the Layer 2 MTU, in bytes, for the AC.</t>
          </dd>
          <dt>'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth':</dt>
          <dd>
            <t>Specify the service bandwidth for the AC.</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-pe-to-ce-bandwidth' indicates the inbound bandwidth of the connection (i.e., download bandwidth from the service provider to the site).</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-ce-to-pe-bandwidth' indicates the outbound bandwidth of the connection (i.e., upload bandwidth from the site to the service provider).</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth' can be represented using the Committed Information Rate (CIR), the Excess Information Rate (EIR), or the Peak Information Rate (PIR).</t>
          </dd>
          <dt/>
          <dd>
            <t>The following types, defined in <xref target="RFC9181"/>, can be used to indicate the bandwidth type:</t>
            <dl>
              <dt>'bw-per-cos':</dt>
              <dd>
                <t>The bandwidth is per CoS.</t>
              </dd>
              <dt>'bw-per-port':</dt>
              <dd>
                <t>The bandwidth is per port.</t>
              </dd>
              <dt>'bw-per-site':</dt>
              <dd>
                <t>The bandwidth is to all peer SAPs that belong to the same site.</t>
              </dd>
              <dt>'bw-per-service':</dt>
              <dd>
                <t>The bandwidth is per service instance that is bound to an AC.</t>
              </dd>
            </dl>
          </dd>
          <dt>'qos':</dt>
          <dd>
            <t>Specifies a list of QoS profiles to apply for this AC.</t>
          </dd>
          <dt>'access-control-list':</dt>
          <dd>
            <t>Specifies a list of ACL profiles to apply for this AC.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-module">
      <name>YANG Module</name>
      <t>This module uses types defined in <xref target="RFC6991"/>, <xref target="RFC8177"/>, <xref target="RFC8294"/>, <xref target="RFC8343"/>, <xref target="RFC9067"/>, <xref target="RFC9181"/>, <xref target="I-D.ietf-opsawg-teas-common-ac"/>, and <xref target="IEEE802.1Qcp"/>.</t>
      <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-ac-ntw@2022-11-30.yang"
module ietf-ac-ntw {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-ntw";
  prefix ac-ntw;

  import ietf-vpn-common {
    prefix vpn-common;
    reference
      "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
                 VPNs";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types, Section 4";
  }
  import ietf-key-chain {
    prefix key-chain;
    reference
      "RFC 8177: YANG Data Model for Key Chains";
  }
  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }
  import ietf-routing-policy {
    prefix rt-pol;
    reference
      "RFC 9067: A YANG Data Model for Routing Policy";
  }
  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A YANG Data Model for Interface Management";
  }
  import ieee802-dot1q-types {
    prefix dot1q-types;
    reference
      "IEEE Std 802.1Qcp: Bridges and Bridged Networks--
                          Amendment 30: YANG Data Model";
  }
  import ietf-network {
    prefix nw;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies, 
                 Section 6.1";
  }
  import ietf-sap-ntw {
    prefix sap;
    reference
      "RFC 9408: A YANG Network Model for Service Attachment
                 Points (SAPs)";
  }
  import ietf-ac-common {
    prefix ac-common;
    reference
      "RFC CCCC: A Common YANG Data Model for Attachment Circuits";
  }
  import ietf-ac-svc {
    prefix ac-svc;
    reference
      "RFC SSSS: YANG Data Models for Bearers and 'Attachment
                  Circuits'-as-a-Service (ACaaS)";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>
     Author:   Richard Roberts
               <mailto:rroberts@juniper.net>
     Author:   Oscar Gonzalez de Dios
               <mailto:oscar.gonzalezdedios@telefonica.com>
     Author:   Samier Barguil
               <mailto:ssamier.barguil_giraldo@nokia.com>
     Author:   Bo Wu
               <mailto:lana.wubo@huawei.com>";
  description
    "This YANG module defines a YANG network model for the management
     of attachment circuits.

     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 2023-11-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Network Data Model for Attachment Circuits";
  }

  // References

  /* A set of groupings to ease referencing cross-modules */

  grouping attachment-circuit-reference {
    description
      "This grouping can be used to reference an attachment circuit
       in a specific node.";
    leaf ac-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
          + "network-ref]/nw:node[nw:node-id=current()/../"
          + "node-ref]/ac-ntw:ac/ac-ntw:name";
        require-instance false;
      }
      description
        "A type for an absolute reference to an attachment circuit.";
    }
    uses nw:node-ref;
  }

  grouping ac-profile-reference {
    description
      "This grouping can be used to reference an attachment circuit
       profile.";
    leaf ac-profile-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
          + "network-ref]/ac-ntw:ac-profile/ac-ntw:name";
        require-instance false;
      }
      description
        "A type for an absolute reference to an attachment circuit.";
    }
    uses nw:network-ref;
  }

  grouping encryption-profile-reference {
    description
      "This grouping can be used to reference encryption
       profile.";
    leaf encryption-profile-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
        + "network-ref]"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:encryption-profile-identifier/ac-ntw:id";
        require-instance false;
      }
      description
        "A type for an absolute reference to an encryption profile.";
    }
    uses nw:network-ref;
  }

  grouping qos-profile-reference {
    description
      "This grouping can be used to reference a QoS profile.";
    leaf qos-profile-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
        + "network-ref]"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:qos-profile-identifier/ac-ntw:id";
        require-instance false;
      }
      description
        "A type for an absolute reference to a QoS profile.";
    }
    uses nw:network-ref;
  }


  grouping bfd-profile-reference {
    description
      "This grouping can be used to reference a BFD profile.";
    leaf bfd-profile-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
        + "network-ref]"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:bfd-profile-identifier/ac-ntw:id";
        require-instance false;
      }
      description
        "A type for an absolute reference to a BFD profile.";
    }
    uses nw:network-ref;
  }

  grouping forwarding-profile-reference {
    description
      "This grouping can be used to reference a forwarding profile.";
    leaf forwarding-profile-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
        + "network-ref]"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:forwarding-profile-identifier/ac-ntw:id";
        require-instance false;
      }
      description
        "A type for an absolute reference to a forwarding profile.";
    }
    uses nw:network-ref;
  }

  grouping routing-profile-reference {
    description
      "This grouping can be used to reference a routing profile.";
    leaf routing-profile-ref {
      type leafref {
        path "/nw:networks/nw:network[nw:network-id=current()/../"
        + "network-ref]"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:routing-profile-identifier/ac-ntw:id";
        require-instance false;
      }
      description
        "A type for an absolute reference to a routing profile.";
    }
    uses nw:network-ref;
  }

  // L2 conenction

  grouping l2-connection {
    description
      "Defines Layer 2 protocols and parameters that are required to
       enable AC connectivity.";
    container encapsulation {
      description
        "Container for Layer 2 encapsulation.";
      leaf encap-type {
        type identityref {
          base vpn-common:encapsulation-type;
        }
        description
          "Tagged interface type.";
      }
      container dot1q {
        when "derived-from-or-self(../encap-type, "
           + "'vpn-common:dot1q')" {
          description
            "Only applies when the type of the tagged interface is
             'dot1q'.";
        }
        description
          "Tagged interface.";
        uses ac-common:dot1q;
        container tag-operations {
          description
            "Sets the tag manipulation policy for this AC. It defines
             a set of tag manipulations that allow for the insertion,
             removal, or rewriting of 802.1Q VLAN tags. These
             operations are indicated for the CE-PE direction.
             By default, tag operations are symmetric. As such, the
             reverse tag operation is assumed on the PE-CE 
             direction.";
          choice op-choice {
            description
              "Selects the tag rewriting policy for an AC.";
            leaf pop {
              type empty;
              description
                "Pop the outer tag.";
            }
            leaf push {
              type empty;
              description
                "Pushes one or two tags defined by the tag-1 and
                 tag-2 leaves.  It is assumed that, absent any
                 policy, the default value of 0 will be used for
                 the PCP  setting.";
            }
            leaf translate {
              type empty;
              description
                "Translates the outer tag to one or two tags. PCP 
                 bits are preserved.";
            }
          }
          leaf tag-1 {
            when 'not(../pop)';
            type dot1q-types:vlanid;
            description
              "A first tag to be used for push or translate 
               operations. This tag will be used as the outermost tag
               as a result of the tag operation.";
          }
          leaf tag-1-type {
            type dot1q-types:dot1q-tag-type;
            default "dot1q-types:s-vlan";
            description
              "Specifies a specific 802.1Q tag type of tag-1.";
          }
          leaf tag-2 {
            when '(../translate)';
            type dot1q-types:vlanid;
            description
              "A second tag to be used for translation.";
          }
          leaf tag-2-type {
            type dot1q-types:dot1q-tag-type;
            default "dot1q-types:c-vlan";
            description
              "Specifies a specific 802.1Q tag type of tag-2.";
          }
        }
      }
      container priority-tagged {
        when "derived-from-or-self(../encap-type, "
           + "'vpn-common:priority-tagged')" {
          description
            "Only applies when the type of the tagged interface is
             'priority-tagged'.";
        }
        description
          "Priority tagged container.";
        uses ac-common:priority-tagged;
      }
      container qinq {
        when "derived-from-or-self(../encap-type, "
           + "'vpn-common:qinq')" {
          description
            "Only applies when the type of the tagged interface is
             'QinQ'.";
        }
        description
          "Includes QinQ parameters.";
        uses ac-common:qinq;
        container tag-operations {
          description
            "Sets the tag manipulation policy for this AC. It defines
             a set of tag manipulations that allow for the insertion,
             removal, or rewriting of 802.1Q VLAN tags. These
             operations are indicated for the CE-PE direction.
             By default, tag operations are symmetric. As such, the
             reverse tag operation is assumed on the PE-CE 
             direction.";
          choice op-choice {
            description
              "Selects the tag rewriting policy for a AC.";
            leaf pop {
              type uint8 {
                range "1|2";
              }
              description
                "Pops one or two tags as a function of the indicated
                 pop value.";
            }
            leaf push {
              type empty;
              description
                "Pushes one or two tags defined by the tag-1 and 
                 tag-2 leaves. It is assumed that, absent any 
                 policy, the default value of 0 will be used for 
                 PCP setting.";
            }
            leaf translate {
              type uint8 {
                range "1|2";
              }
              description
                "Translates one or two outer tags. PCP bits are 
                 preserved. The following operations are supported:

                 - translate 1 with tag-1 leaf is provided: only the 
                   outermost tag is translated to the value in tag-1.

                 - translate 2 with both tag-1 and tag-2 leaves are 
                   provided: both outer and inner tags are translated
                   to the values in tag-1 and tag-2, respectively.

                 - translate 2 with tag-1 leaf is provided: the 
                   outer tag is popped while the inner tag is 
                   translated to the value in tag-1.";
            }
          }
          leaf tag-1 {
            when 'not(../pop)';
            type dot1q-types:vlanid;
            description
              "A first tag to be used for push or translate 
               operations. This tag will be used as the outermost tag
               as a result of the tag operation.";
          }
          leaf tag-1-type {
            type dot1q-types:dot1q-tag-type;
            default "dot1q-types:s-vlan";
            description
              "Specifies a specific 802.1Q tag type of tag-1.";
          }
          leaf tag-2 {
            when 'not(../pop)';
            type dot1q-types:vlanid;
            description
              "A second tag to be used for push or translate 
               operations.";
          }
          leaf tag-2-type {
            type dot1q-types:dot1q-tag-type;
            default "dot1q-types:c-vlan";
            description
              "Specifies a specific 802.1Q tag type of tag-2.";
          }
        }
      }
    }
    choice l2-service {
      description
        "The Layer 2 connectivity service can be provided by 
         indicating a pointer to an L2VPN or by specifying a Layer 2
         tunnel service.";
      container l2-tunnel-service {
        description
          "Defines a Layer 2 tunnel termination.";
        uses ac-common:l2-tunnel-service;
      }
      case l2vpn {
        leaf l2vpn-id {
          type vpn-common:vpn-id;
          description
            "Indicates the L2VPN service associated with an 
             Integrated Routing and Bridging (IRB) interface.";
        }
      }
    }
  }

  grouping l2-connection-if-ref {
    description
      "Specifies Layer 2 connection paramters with interface 
       references.";
    uses l2-connection;
    leaf l2-termination-point {
      type string;
      description
        "Specifies a reference to a local Layer 2 termination point,
         such as a Layer 2 sub-interface.";
    }
    leaf local-bridge-reference {
      type string;
      description
        "Specifies a local bridge reference to accommodate, e.g.,
         implementations that require internal bridging.
         A reference may be a local bridge domain.";
    }
    leaf bearer-reference {
      if-feature "vpn-common:bearer-reference";
      type string;
      description
        "This is an internal reference for the service provider to
         identify the bearer associated with this AC.";
    }
    container lag-interface {
      if-feature "vpn-common:lag-interface";
      description
        "Container for configuration of Link Aggregation Group (LAG)
         interface attributes.";
      leaf lag-interface-id {
        type string;
        description
          "LAG interface identifier.";
      }
      container member-link-list {
        description
          "Container for the member link list.";
        list member-link {
          key "name";
          description
            "Member link.";
          leaf name {
            type string;
            description
              "Member link name.";
          }
        }
      }
    }
  }

  // IPv4 connection groupings

  grouping ipv4-connection {
    description
      "IPv4-specific parameters.";
    leaf local-address {
      type inet:ipv4-address;
      description
        "The IP address used at the provider's interface.";
    }
    uses ac-common:ipv4-allocation-type;
    choice allocation-type {
      description
        "Choice of the IPv4 address allocation.";
      case dynamic {
        description
          "When the addresses are allocated by DHCP or other
           dynamic means local to the infrastructure.";
        choice address-assign {
          description
            "A choice for how IPv4 addresses are assigned.";
          case number {
            leaf number-of-dynamic-address {
              type uint16;
              description
                "Specifies the number of IP addresses to be  
                 assigned to the customer on this access.";
            }
          }
          case explicit {
            container customer-addresses {
              description
                "Container for customer addresses to be allocated
                 using DHCP.";
              list address-pool {
                key "pool-id";
                description
                  "Describes IP addresses to be dyncamically 
                   allocated.

                   When only 'start-address' is present, it 
                   represents a single address.

                   When both 'start-address' and 'end-address' are
                   specified, it implies a range inclusive of both
                   addresses.";
                leaf pool-id {
                  type string;
                  description
                    "A pool identifier for the address range from
                     'start-address' to 'end-address'.";
                }
                leaf start-address {
                  type inet:ipv4-address;
                  mandatory true;
                  description
                    "Indicates the first address in the pool.";
                }
                leaf end-address {
                  type inet:ipv4-address;
                  description
                    "Indicates the last address in the pool.";
                }
              }
            }
          }
        }
        choice provider-dhcp {
          description
            "Parameters related to DHCP-allocated addresses.
             IP addresses are allocated by DHCP, which is provided
             by the operator.";
          leaf dhcp-service-type {
            type enumeration {
              enum server {
                description
                  "Local DHCP server.";
              }
              enum relay {
                description
                  "Local DHCP relay.  DHCP requests are relayed to a
                   provider's server.";
              }
            }
            description
              "Indicates the type of DHCP service to be enabled on
               this access.";
          }
          choice service-type {
            description
              "Choice based on the DHCP service type.";
            case relay {
              description
                "Container for a list of the provider's DHCP servers
                 (i.e., 'dhcp-service-type' is set to 'relay').";
              leaf-list server-ip-address {
                type inet:ipv4-address;
                description
                  "IPv4 addresses of the provider's DHCP server, for
                   use by the local DHCP relay.";
              }
            }
          }
        }
        choice dhcp-relay {
          description
            "The DHCP relay is provided by the operator.";
          container customer-dhcp-servers {
            description
              "Container for a list of the customer's DHCP servers.";
            leaf-list server-ip-address {
              type inet:ipv4-address;
              description
                "IPv4 addresses of the customer's DHCP server.";
            }
          }
        }
      }
      case static-addresses {
        description
          "Lists the IPv4 addresses that are used.";
        list address {
          key "address-id";
          ordered-by user;
          description
            "Lists the IPv4 addresses that are used. The first 
             address of the list is the primary address of the 
             connection.";
          leaf address-id {
            type string;
            description
              "An identifier of the static IPv4 address.";
          }
          leaf customer-address {
            type inet:ipv4-address;
            description
              "An IPv4 address of the customer side.";
          }
        }
      }
    }
  }

  grouping ipv6-connection {
    description
      "IPv6-specific parameters.";
    leaf local-address {
      type inet:ipv6-address;
      description
        "IPv6 address of the provider side.";
    }
    uses ac-common:ipv6-allocation-type;
    choice allocation-type {
      description
        "Choice of the IPv6 address allocation.";
      case dynamic {
        description
          "When the addresses are allocated by DHCP or other
           dynamic means local to the infrastructure.";
        choice address-assign {
          description
            "A choice for how IPv6 addresses are assigned.";
          case number {
            leaf number-of-dynamic-address {
              type uint16;
              description
                "Specifies the number of IP addresses to be 
                 assigned to the customer on this access.";
            }
          }
          case explicit {
            container customer-addresses {
              description
                "Container for customer addresses to be allocated
                 using DHCP.";
              list address-pool {
                key "pool-id";
                description
                  "Describes IP addresses to be dyncamically 
                   allocated.

                   When only 'start-address' is present, it 
                   represents a single address.

                   When both 'start-address' and 'end-address' are
                   specified, it implies a range inclusive of both
                   addresses.";
                leaf pool-id {
                  type string;
                  description
                    "A pool identifier for the address range from
                     'start-address' to 'end-address'.";
                }
                leaf start-address {
                  type inet:ipv6-address;
                  mandatory true;
                  description
                    "Indicates the first address in the pool.";
                }
                leaf end-address {
                  type inet:ipv6-address;
                  description
                    "Indicates the last address in the pool.";
                }
              }
            }
          }
        }
        choice provider-dhcp {
          description
            "Parameters related to DHCP-allocated addresses.
             IP addresses are allocated by DHCP, which is provided
             by the operator.";
          leaf dhcp-service-type {
            type enumeration {
              enum server {
                description
                  "Local DHCP server.";
              }
              enum relay {
                description
                  "Local DHCP relay. DHCP requests are relayed to
                   a provider's server.";
              }
            }
            description
              "Indicates the type of DHCP service to
               be enabled on this access.";
          }
          choice service-type {
            description
              "Choice based on the DHCP service type.";
            case relay {
              description
                "Container for a list of the provider's DHCP servers
                 (i.e., 'dhcp-service-type' is set to 'relay').";
              leaf-list server-ip-address {
                type inet:ipv6-address;
                description
                  "IPv6 addresses of the provider's DHCP server, for
                   use by the local DHCP relay.";
              }
            }
          }
        }
        choice dhcp-relay {
          description
            "The DHCP relay is provided by the operator.";
          container customer-dhcp-servers {
            description
              "Container for a list of the customer's DHCP servers.";
            leaf-list server-ip-address {
              type inet:ipv6-address;
              description
                "IPv6 addresses of the customer's DHCP server.";
            }
          }
        }
      }
      case static-addresses {
        description
          "Lists the IPv4 addresses that are used.";
        list address {
          key "address-id";
          ordered-by user;
          description
            "Lists the IPv6 addresses that are used. The first 
             address of the list is the primary address of 
             the connection.";
          leaf address-id {
            type string;
            description
              "An identifier of the static IPv4 address.";
          }
          leaf customer-address {
            type inet:ipv6-address;
            description
              "An IPv6 address of the customer side.";
          }
        }
      }
    }
  }

  grouping ip-connection {
    description
      "Defines IP connection parameters.";
    leaf l3-termination-point {
      type string;
      description
        "Specifies a reference to a local Layer 3 termination point,
         such as a bridge domain interface.";
    }
    container ipv4 {
      if-feature "vpn-common:ipv4";
      description
        "IPv4-specific parameters.";
      uses ipv4-connection;
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific parameters.";
      uses ipv6-connection;
    }
  }

  /* Routing */
  //BGP base parameters

  grouping bgp-base {
    description
      "Configuration specific to BGP.";
    leaf description {
      type string;
      description
        "Includes a description of the BGP session. This description 
         is meant to be used for diagnostic purposes. The semantic 
         of the description is local to an implementation.";
    }
    uses rt-pol:apply-policy-group;
    leaf local-as {
      type inet:as-number;
      description
        "Indicates a local AS Number (ASN), if an ASN distinct from
         the ASN configured at the AC level is needed.";
    }
    leaf peer-as {
      type inet:as-number;
      mandatory true;
      description
        "Indicates the customer's ASN when the customer requests BGP
         routing.";
    }
    leaf address-family {
      type identityref {
        base vpn-common:address-family;
      }
      description
        "This node contains the address families to be activated.
         'dual-stack' means that both IPv4 and IPv6 will be
         activated.";
    }
    leaf multihop {
      type uint8;
      description
        "Describes the number of IP hops allowed between a given BGP
         neighbor and the PE.";
    }
    leaf as-override {
      type boolean;
      description
        "Defines whether ASN override is enabled, i.e., replacing the
         ASN of the customer specified in the AS_PATH attribute with
         the local ASN.";
    }
    leaf allow-own-as {
      type uint8;
      description
        "If set, specifies the maximum number of occurrences of the
         provider's ASN that are permitted within the AS_PATH
         before it is rejected.";
    }
    leaf prepend-global-as {
      type boolean;
      description
        "In some situations, the ASN that is provided at the node
         level may be distinct from the ASN configured at the AC.
         When such ASNs are provided, they are both prepended to the
         BGP route updates for this AC. To disable that behavior,
         'prepend-global-as' must be set to 'false'.  In such a
         case, the ASN that is provided at the node level is not
         prepended to the BGP route updates for this access.";
    }
    leaf send-default-route {
      type boolean;
      description
        "Defines whether default routes can be advertised to a peer.
         If set, the default routes are advertised to a peer.";
    }
    leaf site-of-origin {
      when "derived-from-or-self(../address-family, "
         + "'vpn-common:ipv4' or 'vpn-common:dual-stack')" {
        description
          "Only applies if IPv4 is activated.";
      }
      type rt-types:route-origin;
      description
        "The Site of Origin attribute is encoded as a Route Origin
         Extended Community. It is meant to uniquely identify the
         set of routes learned from a site via a particular AC and
         is used to prevent routing loops.";
      reference
        "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs),
                   Section 7";
    }
    leaf ipv6-site-of-origin {
      when "derived-from-or-self(../address-family, "
         + "'vpn-common:ipv6' or 'vpn-common:dual-stack')" {
        description
          "Only applies if IPv6 is activated.";
      }
      type rt-types:ipv6-route-origin;
      description
        "The IPv6 Site of Origin attribute is encoded as an IPv6 
         Route Origin Extended Community.  It is meant to uniquely 
         identify the set of routes learned from a site.";
      reference
        "RFC 5701: IPv6 Address Specific BGP Extended Community
                   Attribute";
    }
    list redistribute-connected {
      key "address-family";
      description
        "Indicates, per address family, the policy to follow for
         connected routes.";
      leaf address-family {
        type identityref {
          base vpn-common:address-family;
        }
        description
          "Indicates the address family.";
      }
      leaf enabled {
        type boolean;
        description
          "Enables the redistribution of connected routes.";
      }
    }
    container bgp-max-prefix {
      description
        "Controls the behavior when a prefix maximum is reached.";
      leaf max-prefix {
        type uint32;
        description
          "Indicates the maximum number of BGP prefixes allowed in 
           the BGP session.

           It allows control of how many prefixes can be received 
           from a neighbor.

           If the limit is exceeded, the action indicated in
           'violate-action' will be followed.";
        reference
          "RFC 4271: A Border Gateway Protocol 4 (BGP-4),
                     Section 8.2.2";
      }
      leaf warning-threshold {
        type decimal64 {
          fraction-digits 5;
          range "0..100";
        }
        units "percent";
        description
          "When this value is reached, a warning notification will be
           triggered.";
      }
      leaf violate-action {
        type enumeration {
          enum warning {
            description
              "Only a warning message is sent to the peer when the
               limit is exceeded.";
          }
          enum discard-extra-paths {
            description
              "Discards extra paths when the limit is exceeded.";
          }
          enum restart {
            description
              "The BGP session restarts after the indicated time
               interval.";
          }
        }
        description
          "If the BGP neighbor 'max-prefix' limit is reached, the 
           action indicated in 'violate-action' will be followed.";
      }
      leaf restart-timer {
        type uint32;
        units "seconds";
        description
          "Time interval after which the BGP session will be
           reestablished.";
      }
    }
    container bgp-timers {
      description
        "Includes two BGP timers.";
      leaf keepalive {
        type uint16 {
          range "0..21845";
        }
        units "seconds";
        description
          "This timer indicates the KEEPALIVE messages' frequency
           between a PE and a BGP peer.

           If set to '0', it indicates that KEEPALIVE messages are
           disabled.

           It is suggested that the maximum time between KEEPALIVE
           messages be one-third of the Hold Time interval.";
        reference
          "RFC 4271: A Border Gateway Protocol 4 (BGP-4),
                     Section 4.4";
      }
      leaf hold-time {
        type uint16 {
          range "0 | 3..65535";
        }
        units "seconds";
        description
          "Indicates the maximum number of seconds that may elapse
           between the receipt of successive KEEPALIVE and/or UPDATE
           messages from the peer.

           The Hold Time must be either zero or at least three
           seconds.";
        reference
          "RFC 4271: A Border Gateway Protocol 4 (BGP-4),
                     Section 4.2";
      }
    }
    list capability {
      key "address-family";
      description
        "Customized set of BGP capabilities per address family.";
      leaf address-family {
        type identityref {
          base vpn-common:address-family;
        }
        description
          "Indicates the address family.";
      }
      leaf name {
        type identityref {
          base ac-common:bgp-capability;
        }
        mandatory true;
        description
          "Indicates the name of BGP capability.";
      }
    }
  }

  // RIP base parameters

  grouping rip-base {
    description
      "Configuration specific to RIP routing.";
    leaf address-family {
      type identityref {
        base vpn-common:address-family;
      }
      description
        "Indicates whether IPv4, IPv6, or both address families are
         to be activated.";
    }
    container timers {
      description
        "Indicates the RIP timers.";
      reference
        "RFC 2453: RIP Version 2";
      leaf update-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "Indicates the RIP update time, i.e., the amount of time
           for which RIP updates are sent.";
      }
      leaf invalid-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "The interval before a route is declared invalid after no
           updates are received. This value is at least three times
           the value for the 'update-interval' argument.";
      }
      leaf holddown-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "Specifies the interval before better routes are 
           released.";
      }
      leaf flush-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "Indicates the RIP flush timer, i.e., the amount of time
           that must elapse before a route is removed from the
           routing table.";
      }
    }
    leaf default-metric {
      type uint8 {
        range "0..16";
      }
      description
        "Sets the default metric.";
    }
  }

  // routing profile

  grouping routing-profile {
    description
      "Defines routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      leaf type {
        type identityref {
          base vpn-common:routing-protocol-type;
        }
        description
          "Type of routing protocol.";
      }
      container bgp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:bgp-routing')" {
          description
            "Only applies when the protocol is BGP.";
        }
        description
          "Configuration specific to BGP.";
        uses bgp-base;
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        description
          "Configuration specific to OSPF.";
        uses ac-common:ospf-basic;
        leaf max-lsa {
          type uint32 {
            range "1..4294967294";
          }
          description
            "Maximum number of allowed Link State Advertisements
             (LSAs) that the OSPF instance will accept.";
        }
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is IS-IS.";
        }
        description
          "Configuration specific to IS-IS.";
        uses ac-common:isis-basic;
        leaf level {
          type identityref {
            base vpn-common:isis-level;
          }
          description
            "Can be 'level-1', 'level-2', or 'level-1-2'.";
          reference
            "RFC 9181: A Common YANG Data Model for Layer 2 
                       and Layer 3 VPNs";
        }
        leaf metric {
          type uint16;
          description
            "Metric of the AC. It is used in the routing state
             calculation and path selection.";
        }
        leaf mode {
          type enumeration {
            enum active {
              description
                "The interface sends or receives IS-IS protocol
                 control packets.";
            }
            enum passive {
              description
                "Suppresses the sending of IS-IS updates through the
                 specified interface.";
            }
          }
          description
            "IS-IS interface mode type.";
        }
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.";
        }
        description
          "Configuration specific to RIP routing.";
        uses rip-base;
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the Virtual Router
             Redundancy Protocol (VRRP).";
        }
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families
             are to be enabled.";
        }
        leaf ping-reply {
          type boolean;
          description
            "Controls whether the VRRP speaker should reply to ping
             requests.";
        }
      }
    }
  }

  grouping routing {
    description
      "Defines routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      leaf type {
        type identityref {
          base vpn-common:routing-protocol-type;
        }
        description
          "Type of routing protocol.";
      }
      list routing-profile {
        key "routing-profile-ref";
        description
          "Routing profiles.";
        uses routing-profile-reference;
        leaf type {
          type identityref {
            base vpn-common:ie-type;
          }
          description
            "Import, export, or both.";
        }
      }
      container static {
        when "derived-from-or-self(../type, "
           + "'vpn-common:static-routing')" {
          description
            "Only applies when the protocol is a static routing
             protocol.";
        }
        description
          "Configuration specific to static routing.";
        container cascaded-lan-prefixes {
          description
            "LAN prefixes from the customer.";
          list ipv4-lan-prefix {
            if-feature "vpn-common:ipv4";
            key "lan next-hop";
            description
              "List of LAN prefixes for the site.";
            uses ac-common:ipv4-static-rtg-entry;
            uses bfd-routing;
            leaf preference {
              type uint32;
              description
                "Indicates the preference associated with the static
                 route.";
            }
            uses ac-common:service-status;
          }
          list ipv6-lan-prefix {
            if-feature "vpn-common:ipv6";
            key "lan next-hop";
            description
              "List of LAN prefixes for the site.";
            uses ac-common:ipv4-static-rtg-entry;
            uses bfd-routing;
            leaf preference {
              type uint32;
              description
                "Indicates the preference associated with the static
                 route.";
            }
            uses ac-common:service-status;
          }
        }
      }
      container bgp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:bgp-routing')" {
          description
            "Only applies when the protocol is BGP.";
        }
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Configuration for BGP peer-groups";
          list peer-group {
            key "name";
            description
              "List of BGP peer-groups configured on the local 
               system - uniquely identified by peer-group name";
            leaf name {
              type string;
              description
                "Name of the BGP peer-group";
            }
            leaf local-address {
              type union {
                type inet:ip-address;
                type if:interface-ref;
              }
              description
                "Sets the local IP address to use for the BGP 
                 transport session. This may be expressed as either 
                 an IP address or a reference to an interface.";
            }
            uses bgp-base;
            uses ac-common:bgp-authentication;
          }
        }
        list neighbor {
          key "remote-address";
          description
            "List of BGP neighbors.";
          leaf remote-address {
            type inet:ip-address;
            description
              "The remote IP address of this entry's BGP peer.";
          }
          leaf local-address {
            type union {
              type inet:ip-address;
              type if:interface-ref;
            }
            description
              "Sets the local IP address to use for
               the BGP transport session.  This may be
               expressed as either an IP address or a
               reference to an interface.";
          }
          leaf peer-group {
            type leafref {
              path "../../peer-groups/peer-group/name";
            }
            description
              "The peer-group with which this neighbor is
               associated.";
          }
          uses bgp-base;
          uses bfd-routing;
          uses ac-common:bgp-authentication;
          uses ac-common:service-status;
        }
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        description
          "Configuration specific to OSPF.";
        uses ac-common:ospf-basic;
        container sham-links {
          if-feature "vpn-common:rtg-ospf-sham-link";
          description
            "List of sham links.";
          reference
            "RFC 4577: OSPF as the Provider/Customer Edge Protocol
                       for BGP/MPLS IP Virtual Private Networks
                       (VPNs), Section 4.2.7
             RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
                       (PE-CE) Routing Protocol, Section 5";
          list sham-link {
            key "target-site";
            description
              "Creates a sham link with another
               site.";
            leaf target-site {
              type string;
              description
                "Target site for the sham link connection. The site
                 is referred to by its identifier.";
            }
            leaf metric {
              type uint16;
              description
                "Metric of the sham link. It is used in the routing
                 state calculation and path selection.";
              reference
                "RFC 4577: OSPF as the Provider/Customer Edge 
                           Protocol for BGP/MPLS IP Virtual Private
                           Networks (VPNs), Section 4.2.7.3
                 RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
                           (PE-CE) Routing Protocol, Section 5.2";
            }
          }
        }
        leaf max-lsa {
          type uint32 {
            range "1..4294967294";
          }
          description
            "Maximum number of allowed Link State Advertisements
             (LSAs) that the OSPF instance will accept.";
        }
        uses ac-common:ospf-authentication;
        uses ac-common:service-status;
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is
             IS-IS.";
        }
        description
          "Configuration specific to IS-IS.";
        uses ac-common:isis-basic;
        leaf level {
          type identityref {
            base vpn-common:isis-level;
          }
          description
            "Can be 'level-1', 'level-2', or 'level-1-2'.";
          reference
            "RFC 9181: A Common YANG Data Model for Layer 2 and
                       Layer 3 VPNs";
        }
        leaf metric {
          type uint16;
          description
            "Metric of the PE-CE link. It is used in the routing 
             state calculation and path selection.";
        }
        leaf mode {
          type enumeration {
            enum active {
              description
                "The interface sends or receives
                 IS-IS protocol control packets.";
            }
            enum passive {
              description
                "Suppresses the sending of IS-IS
                 updates through the specified
                 interface.";
            }
          }
          description
            "IS-IS interface mode type.";
        }
        uses ac-common:isis-authentication;
        uses ac-common:service-status;
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.
             For IPv4, the model assumes that RIP
             version 2 is used.";
        }
        description
          "Configuration specific to RIP routing.";
        uses rip-base;
        uses ac-common:rip-authentication;
        uses ac-common:service-status;
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the VRRP.";
        }
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families
             are to be enabled.";
        }
        leaf vrrp-group {
          type uint8 {
            range "1..255";
          }
          description
            "Includes the VRRP group identifier.";
        }
        leaf backup-peer {
          type inet:ip-address;
          description
            "Indicates the IP address of the peer.";
        }
        leaf-list virtual-ip-address {
          type inet:ip-address;
          description
            "Virtual IP addresses for a single VRRP
             group.";
          reference
            "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
                       Version 3 for IPv4 and IPv6, Sections 1.2
                       and 1.3";
        }
        leaf priority {
          type uint8 {
            range "1..254";
          }
          description
            "Sets the local priority of the VRRP speaker.";
        }
        leaf ping-reply {
          type boolean;
          description
            "Controls whether the VRRP speaker should reply to ping
             requests.";
        }
        uses ac-common:service-status;
      }
    }
  }

  // OAM

  grouping bfd {
    description
      "Grouping for BFD.";
    leaf session-type {
      type identityref {
        base vpn-common:bfd-session-type;
      }
      description
        "Specifies the BFD session type.";
    }
    leaf desired-min-tx-interval {
      type uint32;
      units "microseconds";
      description
        "The minimum interval between transmissions of BFD Control
         packets, as desired by the operator.";
      reference
        "RFC 5880: Bidirectional Forwarding Detection (BFD),
                   Section 6.8.7";
    }
    leaf required-min-rx-interval {
      type uint32;
      units "microseconds";
      description
        "The minimum interval between received BFD Control packets 
         that the PE should support.";
      reference
        "RFC 5880: Bidirectional Forwarding Detection (BFD),
                   Section 6.8.7";
    }
    leaf local-multiplier {
      type uint8 {
        range "1..255";
      }
      description
        "Specifies the detection multiplier that is transmitted to a
         BFD peer.

         The detection interval for the receiving BFD peer is
         calculated by multiplying the value of the negotiated
         transmission interval by the received detection multiplier
         value.";
      reference
        "RFC 5880: Bidirectional Forwarding Detection (BFD),
                   Section 6.8.7";
    }
    leaf holdtime {
      type uint32;
      units "milliseconds";
      description
        "Expected BFD holdtime.

         The customer may impose some fixed values for the holdtime
         period if the provider allows the customer to use this
         function.";
      reference
        "RFC 5880: Bidirectional Forwarding Detection (BFD),
                   Section 6.8.18";
    }
  }

  grouping bfd-routing {
    description
      "Defines a basic BFD grouping for routing configuration.";
    container bfd {
      description
        "BFD control for this nighbor.";
      leaf enable {
        type boolean;
        description
          "Enables BFD if set to true. BFD is disabled of set to
           false.";
      }
      uses bfd-profile-reference;
    }
  }

  // OAM

  grouping oam {
    description
      "Defines the Operations, Administration, and Maintenance
       (OAM) mechanisms used.";
    container bfd {
      description
        "Container for BFD.";
      list session {
        key "dest-addr";
        description
          "List of IP sessions.";
         leaf dest-addr {
           type inet:ip-address;
           description
             "IP address of the peer.";
        }
        leaf source-address {
          type union {
            type inet:ip-address;
            type if:interface-ref;
           }
           description
             "Sets the local IP address to use for the BFD
              session. This may be expressed as either
              an IP address or a reference to an interface.";
        }
        uses bfd-profile-reference;
        uses bfd;
        container authentication {
          presence "Enables BFD authentication";
          description
            "Parameters for BFD authentication.";
          leaf key-chain {
            type key-chain:key-chain-ref;
            description
              "Name of the key chain.";
          }
          leaf meticulous {
            type boolean;
            description
              "Enables meticulous mode.";
            reference
              "RFC 5880: Bidirectional Forwarding Detection (BFD),
                         Section 6.7";
          }
        }
        uses ac-common:service-status;
      }
    }
  }

  // security

  grouping security {
    description
      "Security parameters for an AC.";
    container encryption {
      if-feature "vpn-common:encryption";
      description
        "Container for AC encryption.";
      leaf enabled {
        type boolean;
        description
          "If set to 'true', traffic encryption on the connection is
           required. Otherwise, it is disabled.";
      }
      leaf layer {
        when "../enabled = 'true'" {
          description
            "Included only when encryption is enabled.";
        }
        type enumeration {
          enum layer2 {
            description
              "Encryption occurs at Layer 2.";
          }
          enum layer3 {
            description
              "Encryption occurs at Layer 3. For example, IPsec
               may be used when a customer requests Layer 3
               encryption.";
          }
        }
        description
          "Indicates the layer on which encryption is applied.";
      }
    }
    container encryption-profile {
      when "../encryption/enabled = 'true'" {
        description
          "Indicates the layer on which encryption is enabled.";
      }
      description
        "Container for the encryption profile.";
      choice profile {
        description
          "Choice for the encryption profile.";
        case provider-profile {
          uses encryption-profile-reference;
        }
        case customer-profile {
          leaf customer-key-chain {
            type key-chain:key-chain-ref;
            description
              "Customer-supplied key chain.";
          }
        }
      }
    }
  }

  // AC profile

  grouping ac-profile {
    description
      "Grouping for attachment circuit profiles.";
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing-profile;
    }
    container oam {
      description
        "Defines the OAM mechanisms used for the AC profile.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        uses bfd;
      }
    }
  }

  // AC network provisioning 

  grouping ac {
    description
      "Grouping for attachment circuits.";
    leaf description {
      type string;
      description
        "Associates a description with an AC.";
    }
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that are required
         to enable AC connectivity.";
      uses l2-connection-if-ref;
    }
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses ip-connection;
    }
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing;
    }
    container oam {
      description
        "Defines the OAM mechanisms used for the AC.";
      uses oam;
    }
    container security {
      description
        "AC-specific security parameters.";
      uses security;
    }
    container service {
      description
        "AC-specific bandwith parameters.";
      leaf mtu {
        type uint32;
        units "bytes";
        description
          "Layer 2 MTU.";
      }
      uses ac-svc:bandwidth;
      container qos {
        if-feature "vpn-common:qos";
        description
          "QoS configuration.";
        container qos-profiles {
          description
            "QoS profile configuration.";
          list qos-profile {
            key "qos-profile-ref";
            description
              "Points to a QoS profile.";
            uses qos-profile-reference;
            leaf direction {
              type identityref {
                base vpn-common:qos-profile-direction;
              }
              description
                "The direction to which the QoS profile
                 is applied.";
            }
          }
        }
      }
      container access-control-list {
        description
          "Container for the Access Control List (ACL).";
        container acl-profiles {
          description
            "ACL profile configuration.";
          list acl-profile {
            key "forwarding-profile-ref";
            description
              "Points to an ACL profile.";
            uses forwarding-profile-reference;
          }
        }
      }
    }
  }

  augment "/nw:networks/nw:network" {
    description
      "Add a list of profiles.";
    container specific-provisioning-profiles {
      description
        "Contains a set of valid profiles to reference in the AC
         activation.";
      uses ac-common:ac-profile-cfg;
    }
    list ac-profile {
      key "name";
      description
        "Specifies a list of AC profiles.";
      leaf name {
        type string;
        description
          "Name of the AC.";
      }
      uses ac-ntw:ac-profile;
    }
  }

  augment "/nw:networks/nw:network/nw:node" {
    when '../nw:network-types/sap:sap-network' {
      description
        "Augmentation parameters apply only for SAP networks.";
    }
    description
      "Augments nodes with AC provisioning details.";
    list ac {
      key "name";
      description
        "List of ACs.";
      leaf name {
        type string;
        description
          "A name that identifies the AC locally.";
      }
      leaf ac-svc-ref {
        type ac-svc:attachment-circuit-reference;
        description
          "A reference to the AC as exposed at the service level.";
      }
      list ac-profile {
        key "ac-profile-ref";
        description
          "List of AC profiles.";
        uses ac-profile-reference;
      }
      container ac-parent-ref {
        description
          "Specifies the parent AC that is inherited by an AC.
           Parent ACs are used, e.g., in contexts where multiple
           CEs are terminating the same AC, but some specific
           information is required for each peer SAP.";
        uses ac-ntw:attachment-circuit-reference;
      }
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      list group {
        key "group-id";
        description
          "List of group-ids.";
        leaf group-id {
          type string;
          description
            "Indicates the group-id to which the AC belongs.";
        }
        leaf precedence {
          type identityref {
            base ac-common:precedence-type;
          }
          description
            "Defines redundancy of an AC.";
        }
      }
      uses ac-common:service-status;
      uses ac-ntw:ac;
    }
  }

  augment "/nw:networks/nw:network/nw:node"
        + "/sap:service/sap:sap" {
    when '../../../nw:network-types/sap:sap-network' {
      description
        "Augmentation parameters apply only for SAP networks.";
    }
    description
      "Augments SAPs with AC provisioning details.";
    list ac {
      key "ac-ref";
      description
        "Specifies the ACs that are terminated by the SAP.";
      uses ac-ntw:attachment-circuit-reference;
    }
  }
}
<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section uses the template described in Section 3.7 of <xref target="I-D.ietf-netmod-rfc8407bis"/>.</t>
      <t>The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that 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., edit-config)
   and delete operations to these data nodes without proper protection
   or authentication can have a negative effect on network operations.
   Specifically, the following
subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <dl>
        <dt>'specific-provisioning-profiles':</dt>
        <dd>
          <t>This container includes a set of sensitive data that
 influence how an AC is delivered.  For example, an
 attacker who has access to these data nodes may be able to
 manipulate routing policies, QoS policies, or encryption
 properties. These data nodes are defined with "nacm:default-deny-
 write" tagging <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
        </dd>
        <dt>'ac':</dt>
        <dd>
          <t>An attacker who is able to access network nodes can
 undertake various attacks, such as modify the attributes of an AC (e.g.,
 QoS, bandwidth, routing protocols, keying material), leading to
 malfunctioning of services that are delivered over that AC and therefore to Service Level
 Agreement (SLA) violations.  In addition, an attacker could
 attempt to add a new AC.
    : In addition to using NACM to prevent unauthorized access, such
 activity can be detected by adequately monitoring and tracking
 network configuration changes.</t>
        </dd>
      </dl>
      <t>Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes. Specifically, the following
subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <dl>
        <dt>'ac':</dt>
        <dd>
          <t>Unauthorized access to this subtree can disclose the identity
 of a customer 'peer-sap-id'.</t>
        </dd>
        <dt>'l2-connection' and 'ip-connection':</dt>
        <dd>
          <t>An attacker can retrieve
privacy-related information, which can be used to track a
customer.  Disclosing such information may be considered a
violation of the customer-provider trust relationship.</t>
        </dd>
        <dt>'keying-material':</dt>
        <dd>
          <t>An attacker can retrieve the cryptographic keys
protecting an AC (routing, in particular). These keys could
be used to inject spoofed routing  advertisements.</t>
        </dd>
      </dl>
      <t>Several data nodes ('bgp', 'ospf', 'isis', and 'rip') rely upon <xref target="RFC8177"/> for authentication purposes. As such, the AC network module inherits the security considerations discussed in Section 5 of <xref target="RFC8177"/>. Also, these data nodes support supplying explicit keys as strings in ASCII format. The use of keys in hexadecimal string format would afford greater key entropy with the same number of key-string octets. However, such a format is not included in this version of the AC network model, because it is not supported by the underlying device modules (e.g., <xref target="RFC8695"/>).</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns" subregistry within
   the "IETF XML Registry" <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-ac-ntw
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG module in the "YANG Module
   Names" subregistry <xref target="RFC6020"/> within the "YANG Parameters" registry:</t>
      <artwork><![CDATA[
   Name:  ietf-ac-ntw
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-ac-ntw
   Prefix:  ac-ntw
   Maintained by IANA?  N
   Reference:  RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="IEEE802.1Qcp" target="https://doi.org/10.1109/IEEESTD.2018.8467507">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks--Bridges and Bridged Networks--Amendment 30: YANG Data Model</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2018" month="September"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-opsawg-teas-attachment-circuit">
          <front>
            <title>YANG Data Models for Bearers and 'Attachment Circuits'-as-a-Service (ACaaS)</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This document specifies a YANG service data model for Attachment
   Circuits (ACs).  This model can be used for the provisioning of ACs
   before or during service provisioning (e.g., Network Slice Service).
   The document also specifies a service model for managing bearers over
   which ACs are established.

   Also, the document specifies a set of reusable groupings.  Whether
   other service models reuse structures defined in the AC models or
   simply include an AC reference is a design choice of these service
   models.  Utilizing the AC service model to manage ACs over which a
   service is delivered has the advantage of decoupling service
   management from upgrading AC components to incorporate recent AC
   technologies or features.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-attachment-circuit-08"/>
        </reference>
        <reference anchor="RFC9291">
          <front>
            <title>A YANG Network Data Model for Layer 2 VPNs</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="L. Munoz" initials="L." surname="Munoz"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document defines an L2VPN Network Model (L2NM) that can be used to manage the provisioning of Layer 2 Virtual Private Network (L2VPN) services within a network (e.g., a service provider network). The L2NM complements the L2VPN Service Model (L2SM) by providing a network-centric view of the service that is internal to a service provider. The L2NM is particularly meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices.</t>
              <t>Also, this document defines a YANG module to manage Ethernet segments and the initial versions of two IANA-maintained modules that include a set of identities of BGP Layer 2 encapsulation types and pseudowire types.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9291"/>
          <seriesInfo name="DOI" value="10.17487/RFC9291"/>
        </reference>
        <reference anchor="RFC9182">
          <front>
            <title>A YANG Network Data Model for 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="L. Munoz" initials="L." surname="Munoz"/>
            <author fullname="A. Aguado" initials="A." surname="Aguado"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>As a complement to the Layer 3 Virtual Private Network Service Model (L3SM), which is used for communication between customers and service providers, this document defines an L3VPN Network Model (L3NM) that can be used for the provisioning of Layer 3 Virtual Private Network (L3VPN) services within a service provider network. The model provides a network-centric view of L3VPN services.</t>
              <t>The L3NM is meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices. The model can also facilitate communication between a service orchestrator and a network controller/orchestrator.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9182"/>
          <seriesInfo name="DOI" value="10.17487/RFC9182"/>
        </reference>
        <reference anchor="RFC8345">
          <front>
            <title>A YANG Data Model for Network Topologies</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
            <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8345"/>
          <seriesInfo name="DOI" value="10.17487/RFC8345"/>
        </reference>
        <reference anchor="RFC9408">
          <front>
            <title>A YANG Network Data Model for Service Attachment Points (SAPs)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="V. Lopez" initials="V." surname="Lopez"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>This document defines a YANG data model for representing an abstract view of the provider network topology that contains the points from which its services can be attached (e.g., basic connectivity, VPN, network slices). Also, the model can be used to retrieve the points where the services are actually being delivered to customers (including peer networks).</t>
              <t>This document augments the 'ietf-network' data model defined in RFC 8345 by adding the concept of Service Attachment Points (SAPs). The SAPs are the network reference points to which network services, such as Layer 3 Virtual Private Network (L3VPN) or Layer 2 Virtual Private Network (L2VPN), can be attached. One or multiple services can be bound to the same SAP. Both User-to-Network Interface (UNI) and Network-to-Network Interface (NNI) are supported in the SAP data model.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9408"/>
          <seriesInfo name="DOI" value="10.17487/RFC9408"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-teas-common-ac">
          <front>
            <title>A Common YANG Data Model for Attachment Circuits</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="21" month="March" year="2024"/>
            <abstract>
              <t>   The document specifies a common Attachment Circuits (ACs) YANG
   module, which is designed with the intent to be reusable by other
   models.  For example, this common model can be reused by service
   models to expose ACs as a service, service models that require
   binding a service to a set of ACs, network and device models to
   provision ACs, etc.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-common-ac-06"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <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="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="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="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC8077">
          <front>
            <title>Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)</title>
            <author fullname="L. Martini" initials="L." role="editor" surname="Martini"/>
            <author fullname="G. Heron" initials="G." role="editor" surname="Heron"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>Layer 2 services (such as Frame Relay, Asynchronous Transfer Mode, and Ethernet) can be emulated over an MPLS backbone by encapsulating the Layer 2 Protocol Data Units (PDUs) and then transmitting them over pseudowires (PWs). It is also possible to use pseudowires to provide low-rate Time-Division Multiplexed and Synchronous Optical NETworking circuit emulation over an MPLS-enabled network. This document specifies a protocol for establishing and maintaining the pseudowires, using extensions to the Label Distribution Protocol (LDP). Procedures for encapsulating Layer 2 PDUs are specified in other documents.</t>
              <t>This document is a rewrite of RFC 4447 for publication as an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="84"/>
          <seriesInfo name="RFC" value="8077"/>
          <seriesInfo name="DOI" value="10.17487/RFC8077"/>
        </reference>
        <reference anchor="RFC9067">
          <front>
            <title>A YANG Data Model for Routing Policy</title>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model for configuring and managing routing policies in a vendor-neutral way. The model provides a generic routing policy framework that can be extended for specific routing protocols using the YANG 'augment' mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9067"/>
          <seriesInfo name="DOI" value="10.17487/RFC9067"/>
        </reference>
        <reference anchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC5701">
          <front>
            <title>IPv6 Address Specific BGP Extended Community Attribute</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="November" year="2009"/>
            <abstract>
              <t>Current specifications of BGP Extended Communities (RFC 4360) support the IPv4 Address Specific Extended Community, but do not support an IPv6 Address Specific Extended Community. The lack of an IPv6 Address Specific Extended Community may be a problem when an application uses the IPv4 Address Specific Extended Community, and one wants to use this application in a pure IPv6 environment. This document defines a new BGP attribute, the IPv6 Address Specific Extended Community, that addresses this problem. The IPv6 Address Specific Extended Community is similar to the IPv4 Address Specific Extended Community, except that it carries an IPv6 address rather than an IPv4 address. [STANDARDS TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5701"/>
          <seriesInfo name="DOI" value="10.17487/RFC5701"/>
        </reference>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5925"/>
          <seriesInfo name="DOI" value="10.17487/RFC5925"/>
        </reference>
        <reference anchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC4577">
          <front>
            <title>OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>Many Service Providers offer Virtual Private Network (VPN) services to their customers, using a technique in which customer edge routers (CE routers) are routing peers of provider edge routers (PE routers). The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. This is known as a "BGP/MPLS IP VPN". The base specification for BGP/MPLS IP VPNs presumes that the routing protocol on the interface between a PE router and a CE router is BGP. This document extends that specification by allowing the routing protocol on the PE/CE interface to be the Open Shortest Path First (OSPF) protocol.</t>
              <t>This document updates RFC 4364. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4577"/>
          <seriesInfo name="DOI" value="10.17487/RFC4577"/>
        </reference>
        <reference anchor="RFC6565">
          <front>
            <title>OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol</title>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <author fullname="P. Moyer" initials="P." surname="Moyer"/>
            <author fullname="J. Doyle" initials="J." surname="Doyle"/>
            <author fullname="E. Ertekin" initials="E." surname="Ertekin"/>
            <author fullname="M. Lundberg" initials="M." surname="Lundberg"/>
            <date month="June" year="2012"/>
            <abstract>
              <t>Many Service Providers (SPs) offer Virtual Private Network (VPN) services to their customers using a technique in which Customer Edge (CE) routers are routing peers of Provider Edge (PE) routers. The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. Support currently exists for both IPv4 and IPv6 VPNs; however, only Open Shortest Path First version 2 (OSPFv2) as PE-CE protocol is specified. This document extends those specifications to support OSPF version 3 (OSPFv3) as a PE-CE routing protocol. The OSPFv3 PE-CE functionality is identical to that of OSPFv2 except for the differences described in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6565"/>
          <seriesInfo name="DOI" value="10.17487/RFC6565"/>
        </reference>
        <reference anchor="RFC4552">
          <front>
            <title>Authentication/Confidentiality for OSPFv3</title>
            <author fullname="M. Gupta" initials="M." surname="Gupta"/>
            <author fullname="N. Melam" initials="N." surname="Melam"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>This document describes means and mechanisms to provide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4552"/>
          <seriesInfo name="DOI" value="10.17487/RFC4552"/>
        </reference>
        <reference anchor="RFC5709">
          <front>
            <title>OSPFv2 HMAC-SHA Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Barnes" initials="M." surname="Barnes"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2009"/>
            <abstract>
              <t>This document describes how the National Institute of Standards and Technology (NIST) Secure Hash Standard family of algorithms can be used with OSPF version 2's built-in, cryptographic authentication mechanism. This updates, but does not supercede, the cryptographic authentication mechanism specified in RFC 2328. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5709"/>
          <seriesInfo name="DOI" value="10.17487/RFC5709"/>
        </reference>
        <reference anchor="RFC7474">
          <front>
            <title>Security Extension for OSPFv2 When Using Manual Key Management</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>The current OSPFv2 cryptographic authentication mechanism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- session replay attacks when using manual keying. Additionally, the existing cryptographic authentication mechanism does not cover the IP header. This omission can be exploited to carry out various types of attacks.</t>
              <t>This document defines changes to the authentication sequence number mechanism that will protect OSPFv2 from both inter-session and intra- session replay attacks when using manual keys for securing OSPFv2 protocol packets. Additionally, we also describe some changes in the cryptographic hash computation that will eliminate attacks resulting from OSPFv2 not protecting the IP header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7474"/>
          <seriesInfo name="DOI" value="10.17487/RFC7474"/>
        </reference>
        <reference anchor="RFC7166">
          <front>
            <title>Supporting Authentication Trailer for OSPFv3</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Currently, OSPF for IPv6 (OSPFv3) uses IPsec as the only mechanism for authenticating protocol packets. This behavior is different from authentication mechanisms present in other routing protocols (OSPFv2, Intermediate System to Intermediate System (IS-IS), RIP, and Routing Information Protocol Next Generation (RIPng)). In some environments, it has been found that IPsec is difficult to configure and maintain and thus cannot be used. This document defines an alternative mechanism to authenticate OSPFv3 protocol packets so that OSPFv3 does not depend only upon IPsec for authentication.</t>
              <t>The OSPFv3 Authentication Trailer was originally defined in RFC 6506. This document obsoletes RFC 6506 by providing a revised definition, including clarifications and refinements of the procedures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7166"/>
          <seriesInfo name="DOI" value="10.17487/RFC7166"/>
        </reference>
        <reference anchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="56"/>
          <seriesInfo name="RFC" value="2453"/>
          <seriesInfo name="DOI" value="10.17487/RFC2453"/>
        </reference>
        <reference anchor="RFC2080">
          <front>
            <title>RIPng for IPv6</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <author fullname="R. Minnear" initials="R." surname="Minnear"/>
            <date month="January" year="1997"/>
            <abstract>
              <t>This document specifies a routing protocol for an IPv6 internet. It is based on protocols and algorithms currently in wide use in the IPv4 Internet [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2080"/>
          <seriesInfo name="DOI" value="10.17487/RFC2080"/>
        </reference>
        <reference anchor="RFC5798">
          <front>
            <title>Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6</title>
            <author fullname="S. Nadas" initials="S." role="editor" surname="Nadas"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>This memo defines the Virtual Router Redundancy Protocol (VRRP) for IPv4 and IPv6. It is version three (3) of the protocol, and it is based on VRRP (version 2) for IPv4 that is defined in RFC 3768 and in "Virtual Router Redundancy Protocol for IPv6". VRRP specifies an election protocol that dynamically assigns responsibility for a virtual router to one of the VRRP routers on a LAN. The VRRP router controlling the IPv4 or IPv6 address(es) associated with a virtual router is called the Master, and it forwards packets sent to these IPv4 or IPv6 addresses. VRRP Master routers are configured with virtual IPv4 or IPv6 addresses, and VRRP Backup routers infer the address family of the virtual addresses being carried based on the transport protocol. Within a VRRP router, the virtual routers in each of the IPv4 and IPv6 address families are a domain unto themselves and do not overlap. The election process provides dynamic failover in the forwarding responsibility should the Master become unavailable. For IPv4, the advantage gained from using VRRP is a higher-availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host. For IPv6, the advantage gained from using VRRP for IPv6 is a quicker switchover to Backup routers than can be obtained with standard IPv6 Neighbor Discovery mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5798"/>
          <seriesInfo name="DOI" value="10.17487/RFC5798"/>
        </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="RFC8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <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="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <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="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <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="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <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>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AC-Ntw-Tree" target="https://github.com/boucadair/attachment-circuit-model/blob/main/yang/full-trees/ac-ntw-without-groupings.txt">
          <front>
            <title>Full Network Attachment Circuit Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="PYANG" target="https://github.com/mbj4668/pyang">
          <front>
            <title>pyang</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="RFC9543">
          <front>
            <title>A Framework for Network Slices in Networks Built from IETF Technologies</title>
            <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
            <author fullname="J. Drake" initials="J." role="editor" surname="Drake"/>
            <author fullname="R. Rokui" initials="R." surname="Rokui"/>
            <author fullname="S. Homma" initials="S." surname="Homma"/>
            <author fullname="K. Makhijani" initials="K." surname="Makhijani"/>
            <author fullname="L. Contreras" initials="L." surname="Contreras"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document describes network slicing in the context of networks built from IETF technologies. It defines the term "IETF Network Slice" to describe this type of network slice and establishes the general principles of network slicing in the IETF context.</t>
              <t>The document discusses the general framework for requesting and operating IETF Network Slices, the characteristics of an IETF Network Slice, the necessary system components and interfaces, and the mapping of abstract requests to more specific technologies. The document also discusses related considerations with monitoring and security.</t>
              <t>This document also provides definitions of related terms to enable consistent usage in other IETF documents that describe or use aspects of IETF Network Slices.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9543"/>
          <seriesInfo name="DOI" value="10.17487/RFC9543"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-ac-lxsm-lxnm-glue">
          <front>
            <title>A YANG Data Model for Augmenting VPN Service and Network Models with Attachment Circuits</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="9" month="February" year="2024"/>
            <abstract>
              <t>   The document specifies a module that updates existing service and
   network Virtual Private Network (VPN) modules with the required
   information to bind specific services to ACs that are created using
   the Attachment Circuit (AC) service and network models.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ac-lxsm-lxnm-glue-06"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </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="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC8299">
          <front>
            <title>YANG Data Model for L3VPN Service Delivery</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki"/>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used for communication between customers and network operators and to deliver a Layer 3 provider-provisioned VPN service. This document is limited to BGP PE-based VPNs as described in RFCs 4026, 4110, and 4364. This model is intended to be instantiated at the management system to deliver the overall service. It is not a configuration model to be used directly on network elements. This model provides an abstracted view of the Layer 3 IP VPN service configuration components. It will be up to the management system to take this model as input and use specific configuration models to configure the different network elements to deliver the service. How the configuration of network elements is done is out of scope for this document.</t>
              <t>This document obsoletes RFC 8049; it replaces the unimplementable module in that RFC with a new module with the same name that is not backward compatible. The changes are a series of small fixes to the YANG module and some clarifications to the text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8299"/>
          <seriesInfo name="DOI" value="10.17487/RFC8299"/>
        </reference>
        <reference anchor="RFC3644">
          <front>
            <title>Policy Quality of Service (QoS) Information Model</title>
            <author fullname="Y. Snir" initials="Y." surname="Snir"/>
            <author fullname="Y. Ramberg" initials="Y." surname="Ramberg"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="R. Cohen" initials="R." surname="Cohen"/>
            <author fullname="B. Moore" initials="B." surname="Moore"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document presents an object-oriented information model for representing Quality of Service (QoS) network management policies. This document is based on the IETF Policy Core Information Model and its extensions. It defines an information model for QoS enforcement for differentiated and integrated services using policy. It is important to note that this document defines an information model, which by definition is independent of any particular data storage mechanism and access protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3644"/>
          <seriesInfo name="DOI" value="10.17487/RFC3644"/>
        </reference>
        <reference anchor="RFC4862">
          <front>
            <title>IPv6 Stateless Address Autoconfiguration</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4862"/>
          <seriesInfo name="DOI" value="10.17487/RFC4862"/>
        </reference>
        <reference anchor="RFC2918">
          <front>
            <title>Route Refresh Capability for BGP-4</title>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="September" year="2000"/>
            <abstract>
              <t>This document defines a new Border Gateway Protocol (BGP) capability termed 'Route Refresh Capability', which would allow the dynamic exchange of route refresh request between BGP speakers and subsequent re-advertisement of the respective Adj-RIB-Out. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2918"/>
          <seriesInfo name="DOI" value="10.17487/RFC2918"/>
        </reference>
        <reference anchor="RFC7880">
          <front>
            <title>Seamless Bidirectional Forwarding Detection (S-BFD)</title>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="N. Akiya" initials="N." surname="Akiya"/>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Pallagatti" initials="S." surname="Pallagatti"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document defines Seamless Bidirectional Forwarding Detection (S-BFD), a simplified mechanism for using BFD with a large proportion of negotiation aspects eliminated, thus providing benefits such as quick provisioning, as well as improved control and flexibility for network nodes initiating path monitoring.</t>
              <t>This document updates RFC 5880.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7880"/>
          <seriesInfo name="DOI" value="10.17487/RFC7880"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="28" month="February" year="2024"/>
            <abstract>
              <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-09"/>
        </reference>
        <reference anchor="RFC8695">
          <front>
            <title>A YANG Data Model for the Routing Information Protocol (RIP)</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="P. Sarda" initials="P." surname="Sarda"/>
            <author fullname="V. Choudhary" initials="V." surname="Choudhary"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes a data model for the management of the Routing Information Protocol (RIP). Both RIP version 2 and RIPng are covered. The data model includes definitions for configuration, operational state, and Remote Procedure Calls (RPCs).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8695"/>
          <seriesInfo name="DOI" value="10.17487/RFC8695"/>
        </reference>
      </references>
    </references>
    <?line 4034?>

<section anchor="sec-examples">
      <name>Examples</name>
      <section anchor="vpls">
        <name>VPLS</name>
        <t>Let's consider the example depicted in <xref target="ex-topo"/> with two customer terminating points (CE1 and CE2). Let's also assume that the bearers to attach these CEs to the provider network are already in place. References to the identify these bearers are shown in the figure.</t>
        <figure anchor="ex-topo">
          <name>Topology Example</name>
          <artwork align="center"><![CDATA[
            .-----.   .--------------.   .-----.
.----.      | PE1 +===+              +===+ PE2 |      .----.
| CE1+------+"450"|   |     MPLS     |   |"451"+------+ CE2|
'----'   ^  '-----'   |              |   '-----'   ^  '----'
         |            |     Core     |             |  
    Bearer:1234       '--------------'         Bearer:5678
]]></artwork>
        </figure>
        <t>The AC service model <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/> can be used by the provider to manage and expose the ACs over existing bearers as shown in <xref target="ex-ac"/>.</t>
        <figure anchor="ex-ac">
          <name>ACs Created Using ACaaS</name>
          <artwork align="center"><![CDATA[
{
   "ietf-ac-svc:attachment-circuits":{
      "ac-group-profile":[
         {
            "name":"an-ac-profile",
            "l2-connection":{
               "encapsulation":{
                  "encap-type":"ietf-vpn-common:dot1q",
                  "dot1q":{
                     "tag-type":"ietf-vpn-common:c-vlan",
                     "cvlan-id":550
                  }
               }
            },
            "service":{
               "mtu":1550,
               "svc-pe-to-ce-bandwidth":{
                  "pe-to-ce-bandwidth":[
                     {
                        "bw-type":"ietf-vpn-common:bw-per-port",
                        "cir":"20480000"
                     }
                  ]
               },
               "svc-ce-to-pe-bandwidth":{
                  "ce-to-pe-bandwidth":[
                     {
                        "bw-type":"ietf-vpn-common:bw-per-port",
                        "cir":"20480000"
                     }
                  ]
               },
               "qos":{
                  "qos-profile":{
                     "qos-profile":[
                        {
                           "profile":"QoS_Profile_A",
                           "direction":"ietf-vpn-common:both"
                        }
                     ]
                  }
               }
            }
         }
      ],
      "ac":[
         {
            "name":"ac-1",
            "description":"First attachment",
            "ac-group-profile":["an-ac-profile"],
            "l2-connection":{
               "bearer-reference":"1234"
            }
         },
         {
            "name":"ac-2",
            "description":"Second attachment",
            "ac-group-profile": ["an-ac-profile"],
            "l2-connection":{
               "bearer-reference":"5678"
            }
         }
      ]
   }
}
]]></artwork>
        </figure>
        <t>The provisioned AC at PE1 can be retrieved using the AC network model as depicted in <xref target="ex-acntw-query"/>. A similar query can be used for the AC at PE2.</t>
        <figure anchor="ex-acntw-query">
          <name>Example of AC Network Response (Message Body)</name>
          <artwork align="center"><![CDATA[
{
   "ietf-ac-ntw:ac":[
      {
         "name":"ac-11",
         "ac-svc-ref":"ac-1",
         "peer-sap-id":[
            "ce-1"
         ],
         "status":{
            "admin-status":{
               "status":"ietf-vpn-common:admin-up"
            },
            "oper-status":{
               "status":"ietf-vpn-common:op-up"
            }
         },
         "l2-connection":{
            "encapsulation":{
               "encap-type":"ietf-vpn-common:dot1q",
               "dot1q":{
                  "tag-type":"ietf-vpn-common:c-vlan",
                  "cvlan-id":550
               }
            },
            "bearer-reference":"1234"
         },
         "service":{
            "mtu":1550,
            "svc-pe-to-ce-bandwidth":{
               "pe-to-ce-bandwidth":[
                  {
                     "cir":"20480000"
                  }
               ]
            },
            "svc-ce-to-pe-bandwidth":{
               "ce-to-pe-bandwidth":[
                  {
                     "cir":"20480000"
                  }
               ]
            },
            "qos":{
               "qos-profile":{
                  "qos-profile":[
                     {
                        "qos-profile-ref":"QoS_Profile_A",
                        "network-ref":"example:an-id",
                        "direction":"ietf-vpn-common:both"
                     }
                  ]
               }
            }
         }
      }
   ]
}
]]></artwork>
        </figure>
        <t>Also, the AC network model can be used to retrieve the list of SAPs to which the ACs are bound as shown in <xref target="ex-acntw-query"/>.</t>
        <figure anchor="ex-acntw-query-2">
          <name>Example of AC Network Response to Retrieve the SAP (Message Body)</name>
          <artwork align="center"><![CDATA[
{
   "ietf-sap-ntw:service":[
      {
         "service-type":"ietf-vpn-common:vpls",
         "sap":[
            {
               "sap-id":"sap#1",
               "peer-sap-id":[
                  "ce-1"
               ],
               "description":"A parent SAP",
               "attachment-interface":"GE0/6/1",
               "interface-type":"ietf-sap-ntw:phy",
               "role":"ietf-sap-ntw:uni",
               "allows-child-saps":true,
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               }
            },
            {
               "sap-id":"sap#11",
               "description":"A child SAP",
               "parent-termination-point":"GE0/6/4",
               "attachment-interface":"GE0/6/4.2",
               "interface-type":"ietf-sap-ntw:logical",
               "encapsulation-type":"ietf-vpn-common:vlan-type",
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               },
               "ietf-ac-ntw:ac":[
                  {
                     "ac-ref":"ac-1",
                     "node-ref":"example:pe2",
                     "network-ref":"example:an-id"
                  }
               ]
            }
         ]
      }
   ]
}
]]></artwork>
        </figure>
      </section>
      <section anchor="parent-ac">
        <name>Parent AC</name>
        <t>In reference to the topology depicted in <xref target="sap-ac-ntw"/>, PE2 has a SAP which terminates an AC with two peer SAPs (CE2 and CE5). In order to control data that is specific to each of these peer SAPs over the same AC, child ACs can be instantiated as depicted in <xref target="ex-parent-ac"/>.</t>
        <figure anchor="ex-parent-ac">
          <name>Example of Child ACs</name>
          <artwork align="center"><![CDATA[
{
   "ietf-ac-ntw:ac":[
      {
         "name":"ac-1",
         "peer-sap-id":[
            "CE2",
            "CE5"
         ],
         "status":{
            "admin-status":{
               "status":"ietf-vpn-common:admin-up"
            },
            "oper-status":{
               "status":"ietf-vpn-common:op-up"
            }
         },
         "l2-connection":{
            "encapsulation":{
               "encap-type":"ietf-vpn-common:dot1q",
               "dot1q":{
                  "tag-type":"ietf-vpn-common:c-vlan",
                  "cvlan-id":550
               }
            },
            "bearer-reference":"1234"
         }
      },
      {
         "name":"ac-1-to-ce2",
         "ac-parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE2"
         ]
      },
      {
         "name":"ac-1-to-ce5",
         "ac-parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE5"
         ]
      }
   ]
}
]]></artwork>
        </figure>
        <t><xref target="ex-parent-ac-sap"/> shows how to bind the parent AC to a SAP.</t>
        <figure anchor="ex-parent-ac-sap">
          <name>Example of Binding Parent AC to SAPs</name>
          <artwork align="center"><![CDATA[
{
   "ietf-sap-ntw:service":[
      {
         "service-type":"ietf-vpn-common:l3vpn",
         "sap":[
            {
               "sap-id":"sap#14587",
               "description":"A SAP",
               "parent-termination-point":"GE0/6/4",
               "attachment-interface":"GE0/6/4.2",
               "interface-type":"ietf-sap-ntw:logical",
               "encapsulation-type":"ietf-vpn-common:vlan-type",
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               },
               "ietf-ac-ntw:ac":[
                  {
                     "ac-ref":"ac-1",
                     "node-ref":"example:pe2",
                     "network-ref":"example:an-id"
                  }
               ]
            }
         ]
      }
   ]
}
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document builds on <xref target="RFC9182"/> and <xref target="RFC9291"/>.</t>
      <t>Thanks to Moti Morgenstern for the review and comments.</t>
      <t>Thanks to Martin Björklund for the yangdoctors review and Gyan Mishra for the rtg-dir review.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact fullname="Ivan Bykov">
        <organization>Ribbon Communications</organization>
        <address>
          <email>Ivan.Bykov@rbbn.com</email>
        </address>
      </contact>
      <contact fullname="Qin Wu">
        <organization>Huawei</organization>
        <address>
          <email>bill.wu@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Ogaki Kenichi">
        <organization>KDDI</organization>
        <address>
          <email>ke-oogaki@kddi.com</email>
        </address>
      </contact>
      <contact fullname="Luis Angel Munoz">
        <organization>Vodafone</organization>
        <address>
          <email>luis-angel.munoz@vodafone.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
LtvQh8STZUpx6n/4qg5UJE4y0qFgs7L15oPjAfBUFihsdgPO6XaxEI/khhjC
2WBKMoq5crTJamyZ2ufk9JyEoSZqInabN7RW2DBh+V7bp2KaytgnY7iIsu8I
LURadqQSYyhOfhtPz1IGTP1JX4Ji6k1WcUoKWsbBVoIq1O02K/gcnCuOhhgJ
I1QWxDS+xqt8gMFTbCseA6iUHahcLtAxWeJrVNyShexMSxpSbcQiRXyDsdTy
wo5ejak36IQ8vFs7zaidfwg12UiNnFs1L5pRN1u4FySdjs60+eSH89OLbbNU
/F9VLLJO1hOGQvn/gup8rVJkbCLmSdhDTgVIkX+Pnjz58GF7e4AjZ65jRdAa
SWY5d7EK7ZfnI2SIrTiWAqownvef8bne10KLVzcJ0vVtJ6+fb+trlDC/o7QI
SmSVy7Fe5KXOcCbwzPlhJXmINLR4IUyChgp9o8qOcfGIynRLfYBMYYSJS1bk
2OPo8ISP5/aQWuwrTpyeGT8CYO4BTU5jgQOcT7YsMmuup9+1rqjr+dl4z5O9
V6DKaX5KqWIw1rd+PkXke0tKIxZZBje7zLzHJpWTc49JZf+DyAzes5hgw/rh
ExfesGErbB+WVJVMlpSdjsCFvsWmWzs/pSwxvJZrra80xez/cUwxtYJNO49o
Zt8vOTQIAcni+sDamPHBh7q0rKM5eEoaVGMhLV0fNMpLHLhwmbwL0zibVVc+
n4T8eFQh24kkEmgrv00DUO2a9JbTikf1JDlveouJ1yZ1Sc9oScJVYti1pyFD
bOTYFW9rJnRcDIMlRP9qBoJGpdvoJX63QGtp1dSPoip5VE02H9fV9Lq8LMe7
yCmGC/8J7UCuek1VWZTWjxukTm9lDjfwElm9SkfqbOoL42X8ZF+vIT+duhJU
o0Ilp1eTRTvRYAkprzCxrqKfWo2m9o1R+P3oNWC6wKGQaJduxyO1jr6s25Zm
zRnCtm3N7VPME6GSwfLCLyFXS0nhHrMDNdQIagvQrNVcac2x32HgPMco5kw0
U/DasixmYARb+ViBp0YXJuDFlMEJ24ajdrpDd6c7bNA8m3Y6A5eyw0N/IMxH
7nQ1FLXsdCZQ7TGwrTudwrB3p3OQ2bbTqS/NO51Z5I47Xa0X305nFgo67XRO
jdo8NO909ZpB952upXLTTuet0pE6m/pq2Om8NeSnU1crdzqzi9U7nVm6207n
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
/T2s9FZcWU2KlMIGjj3KokZZNHm7XIR4TM2o0pr8WPeWFBVGbOqCn3euuygS
1HEcZakN0jonw49XYQ1M8nFVCxvPTaqR+r6eamRVW1sB0aC1qEZOufUgC9aG
7NdSd5RcI/UdkoZWKTpU6Heg6ZzlMhUOQSSPNe+rIMxnTz98EE0J+EruhoKF
0dWEvaOIqdewHc9rpXyhXtSxUmMRC4FXZEfh4GrzuKyZaqa+fp2caqKA0QQ8
5KO7eJY7deGQi1p5R5NZVmp46U5Yvt+Vyykxmweg+iMNgc/yqkXfkjqF5eZF
HL3FbFN8eJrqUIYWJBMRO16uI8JTq4bsrqc4y10lQt8xm6hsHKxEYCt0hh+h
jTeSMutxJiXKjgZdUTdOcxTKjPkeMNfDVglLQMdSP1NHt4mmtkmrCF6NXsrj
wdFcngyGZysPBEdzR5n4/SkOK9wyYh+7nFqnzeC3Pl5msyE6Vx12FMnMqrAk
EtCuQ9wzqnd1S7GO97GGBrSnqhXvaqZify3Oc0aJ4BbAd4rG/dyshDq+zMTs
flRXv65Y/8VvLdivsNwp6vFKn0wrMHi8nZqYpCNxBwZtcAEP6rtJRGW+LCax
9yIJ300SgQG7m0hafbwCv6rZLPAbX9YV+F3kdV1odXx2XGtOxe7LzanYecU5
9TotOl9Fm+n/h28GXG8HPu7kzDCrz2PK95azlPggMP8qAvN9nPITe7M65Af7
+cqzfVDGEIdlAJnKwKlSAGOeI7FCh5xXl9mXJ+0KpUSKddolEqIsZuWpxDlv
TdmzqCf/leKfkeDX4WbU8mvM0FNy9kszP9PWL7+gxCN+luJgmcHVRFygykck
zwJaWYnrORWtXjjZo2ZltTRTicDmZRpd55aTA+P2QKo1RigPJU5SDLybUD2h
ITxFD0U/uIijeYr44leYB+sJvdoeWAk8+QgkZ0qa6tNvxrTy2TcmDTtDoJmQ
1epeZFj2MV4aNuW2SjJOKCheUK63eTIpcp3wzUjtTFmc5wklNSXojuxoxH5A
o0WJ+F8JeRww5VbCwXRNvHwdYOR5R5WG1QNEEwyYkFWGQbI+4m4SCpIsnuVV
QukK5ZANqFQF0SRmvorSZdyX+YKkR6MSUj5J/mb6bexc7jTU6fe+1JXxuwXl
maRBSo8PNSYwk6aJkbrN4ys5MTO5SvxDXYBlHqm8huQlUQTnaC9zYj2YcHAp
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

-->

</rfc>
