<?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.20 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ntw-attachment-circuit-14" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <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-14"/>
    <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="November" day="08"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>Slice Service</keyword>
    <keyword>L3VPN</keyword>
    <keyword>L2VPN</keyword>
    <keyword>Automation</keyword>
    <keyword>Network Automation</keyword>
    <keyword>Orchestration</keyword>
    <keyword>service delivery</keyword>
    <keyword>Service provisioning</keyword>
    <keyword>service segmentation</keyword>
    <keyword>service flexibility</keyword>
    <keyword>service simplification</keyword>
    <keyword>Network Service</keyword>
    <keyword>3GPP</keyword>
    <keyword>Network Slicing</keyword>
    <abstract>
      <?line 95?>

<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 the YANG Data Models for Bearers and 'Attachment Circuits'-as-a-Service (ACaaS) (I-D.ietf-opsawg-teas-attachment-circuit).</t>
      <t>The module augments the base network ('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 101?>

<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 in a provider network 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 those RFCs. Some refinements were introduced to cover not only conventional service provider networks, but also specifics of other target deployments (e.g., cloud network).</t>
      <t>The AC network model is designed as augmentations of 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="496" width="536" viewBox="0 0 536 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,224 L 8,256" fill="none" stroke="black"/>
              <path d="M 40,224 L 40,256" fill="none" stroke="black"/>
              <path d="M 64,224 L 64,256" fill="none" stroke="black"/>
              <path d="M 80,176 L 80,224" fill="none" stroke="black"/>
              <path d="M 80,256 L 80,272" fill="none" stroke="black"/>
              <path d="M 80,304 L 80,400" fill="none" stroke="black"/>
              <path d="M 96,160 L 96,192" fill="none" stroke="black"/>
              <path d="M 96,224 L 96,256" 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 144,32 L 144,64" fill="none" stroke="black"/>
              <path d="M 160,64 L 160,112" fill="none" stroke="black"/>
              <path d="M 176,32 L 176,64" fill="none" stroke="black"/>
              <path d="M 192,160 L 192,192" fill="none" stroke="black"/>
              <path d="M 192,384 L 192,416" fill="none" stroke="black"/>
              <path d="M 192,448 L 192,480" fill="none" stroke="black"/>
              <path d="M 208,112 L 208,160" fill="none" stroke="black"/>
              <path d="M 208,416 L 208,448" fill="none" stroke="black"/>
              <path d="M 224,160 L 224,192" fill="none" stroke="black"/>
              <path d="M 224,384 L 224,416" fill="none" stroke="black"/>
              <path d="M 224,448 L 224,480" fill="none" stroke="black"/>
              <path d="M 240,80 L 240,112" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,272" fill="none" stroke="black"/>
              <path d="M 240,304 L 240,400" fill="none" stroke="black"/>
              <path d="M 272,80 L 272,112" fill="none" stroke="black"/>
              <path d="M 296,176 L 296,272" fill="none" stroke="black"/>
              <path d="M 296,304 L 296,400" fill="none" stroke="black"/>
              <path d="M 312,160 L 312,192" fill="none" stroke="black"/>
              <path d="M 312,384 L 312,416" fill="none" stroke="black"/>
              <path d="M 328,96 L 328,160" fill="none" stroke="black"/>
              <path d="M 328,416 L 328,464" fill="none" stroke="black"/>
              <path d="M 344,160 L 344,192" fill="none" stroke="black"/>
              <path d="M 344,384 L 344,416" fill="none" stroke="black"/>
              <path d="M 360,384 L 360,416" fill="none" stroke="black"/>
              <path d="M 360,448 L 360,480" fill="none" stroke="black"/>
              <path d="M 376,416 L 376,448" fill="none" stroke="black"/>
              <path d="M 384,80 L 384,112" fill="none" stroke="black"/>
              <path d="M 392,384 L 392,416" fill="none" stroke="black"/>
              <path d="M 392,448 L 392,480" fill="none" stroke="black"/>
              <path d="M 408,384 L 408,416" fill="none" stroke="black"/>
              <path d="M 416,80 L 416,112" fill="none" stroke="black"/>
              <path d="M 424,416 L 424,464" fill="none" stroke="black"/>
              <path d="M 440,320 L 440,352" fill="none" stroke="black"/>
              <path d="M 440,384 L 440,416" fill="none" stroke="black"/>
              <path d="M 456,176 L 456,272" fill="none" stroke="black"/>
              <path d="M 456,304 L 456,320" fill="none" stroke="black"/>
              <path d="M 456,360 L 456,400" fill="none" stroke="black"/>
              <path d="M 472,320 L 472,352" fill="none" stroke="black"/>
              <path d="M 496,320 L 496,352" fill="none" stroke="black"/>
              <path d="M 528,320 L 528,352" fill="none" stroke="black"/>
              <path d="M 144,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 144,64 L 176,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 208,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,224 L 40,224" fill="none" stroke="black"/>
              <path d="M 64,224 L 96,224" fill="none" stroke="black"/>
              <path d="M 40,240 L 64,240" fill="none" stroke="black"/>
              <path d="M 8,256 L 40,256" fill="none" stroke="black"/>
              <path d="M 64,256 L 96,256" fill="none" stroke="black"/>
              <path d="M 80,272 L 240,272" fill="none" stroke="black"/>
              <path d="M 296,272 L 456,272" fill="none" stroke="black"/>
              <path d="M 80,304 L 240,304" fill="none" stroke="black"/>
              <path d="M 296,304 L 456,304" fill="none" stroke="black"/>
              <path d="M 440,320 L 472,320" fill="none" stroke="black"/>
              <path d="M 496,320 L 528,320" fill="none" stroke="black"/>
              <path d="M 472,336 L 496,336" fill="none" stroke="black"/>
              <path d="M 440,352 L 472,352" fill="none" stroke="black"/>
              <path d="M 496,352 L 528,352" 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 80,400 L 192,400" fill="none" stroke="black"/>
              <path d="M 224,400 L 240,400" fill="none" stroke="black"/>
              <path d="M 296,400 L 312,400" fill="none" stroke="black"/>
              <path d="M 344,400 L 360,400" fill="none" stroke="black"/>
              <path d="M 392,400 L 408,400" fill="none" stroke="black"/>
              <path d="M 440,400 L 456,400" fill="none" stroke="black"/>
              <path d="M 192,416 L 224,416" fill="none" stroke="black"/>
              <path d="M 312,416 L 344,416" fill="none" stroke="black"/>
              <path d="M 360,416 L 392,416" fill="none" stroke="black"/>
              <path d="M 408,416 L 440,416" 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 224,464 L 264,464" fill="none" stroke="black"/>
              <path d="M 288,464 L 328,464" fill="none" stroke="black"/>
              <path d="M 392,464 L 424,464" fill="none" stroke="black"/>
              <path d="M 192,480 L 224,480" fill="none" stroke="black"/>
              <path d="M 360,480 L 392,480" fill="none" stroke="black"/>
              <g class="text">
                <text x="160" y="52">CE6</text>
                <text x="140" 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="160" y="212">PE1</text>
                <text x="376" y="212">PE2</text>
                <text x="24" y="244">CE1</text>
                <text x="80" y="244">sap</text>
                <text x="52" y="260">ac</text>
                <text x="484" y="324">ac</text>
                <text x="168" y="340">PE3</text>
                <text x="376" y="340">PE4</text>
                <text x="456" y="340">sap</text>
                <text x="512" y="340">CE5</text>
                <text x="208" y="404">sap</text>
                <text x="328" y="404">sap</text>
                <text x="376" y="404">sap</text>
                <text x="424" y="404">sap</text>
                <text x="220" y="436">ac</text>
                <text x="388" y="436">ac</text>
                <text x="436" y="436">ac</text>
                <text x="208" y="468">CE3</text>
                <text x="276" y="468">ac</text>
                <text x="376" y="468">CE4</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                 .---.
                 |CE6|
                 '-+-'
                ac |         .---.             .---.
                   |         |CE5+------+------+CE2|
             .-----+-----.   '---'      |      '---'
             |           |              |ac
             |           |              |
           .-+-.       .-+-.          .-+-.
         .-+sap+-------+sap+-.      .-+sap+-------------.
         | '---'       '---' |      | '---'             |
         |        PE1        |      |        PE2        |
.---.  .-+-.                 |      |                   |
|CE1+--+sap|                 |      |                   |
'---'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 1.1 <xref target="RFC7950"/> 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 anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized values at the time of publication. This note summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>CCCC --&gt; the assigned RFC number for <xref target="I-D.ietf-opsawg-teas-common-ac"/></t>
          </li>
          <li>
            <t>SSSS --&gt; the assigned RFC number for <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/></t>
          </li>
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>2024-05-15 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </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>
      <t>The names of data nodes are prefixed using the prefix associated with the corresponding imported YANG module as shown in <xref target="pref"/>:</t>
      <table anchor="pref">
        <name>Modules and Their Associated Prefixes</name>
        <thead>
          <tr>
            <th align="left">Prefix</th>
            <th align="left">Module</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ac-common</td>
            <td align="left">ietf-ac-common</td>
            <td align="left">RFC CCCC</td>
          </tr>
          <tr>
            <td align="left">ac-svc</td>
            <td align="left">ietf-ac-svc</td>
            <td align="left">Section 5.2 of RFC SSSS</td>
          </tr>
          <tr>
            <td align="left">dot1q-types</td>
            <td align="left">ieee802-dot1q-types</td>
            <td align="left">
              <xref target="IEEE802.1Qcp"/></td>
          </tr>
          <tr>
            <td align="left">if</td>
            <td align="left">ietf-interfaces</td>
            <td align="left">
              <xref target="RFC8343"/></td>
          </tr>
          <tr>
            <td align="left">inet</td>
            <td align="left">ietf-inet-types</td>
            <td align="left">
              <xref section="4" sectionFormat="of" target="RFC6991"/></td>
          </tr>
          <tr>
            <td align="left">key-chain</td>
            <td align="left">ietf-key-chain</td>
            <td align="left">
              <xref target="RFC8177"/></td>
          </tr>
          <tr>
            <td align="left">nacm</td>
            <td align="left">ietf-netconf-acm</td>
            <td align="left">
              <xref target="RFC8341"/></td>
          </tr>
          <tr>
            <td align="left">nw</td>
            <td align="left">ietf-network</td>
            <td align="left">
              <xref target="RFC8345"/></td>
          </tr>
          <tr>
            <td align="left">rt-types</td>
            <td align="left">ietf-routing-types</td>
            <td align="left">
              <xref target="RFC8294"/></td>
          </tr>
          <tr>
            <td align="left">rt-pol</td>
            <td align="left">ietf-routing-policy</td>
            <td align="left">
              <xref target="RFC9067"/></td>
          </tr>
          <tr>
            <td align="left">sap</td>
            <td align="left">ietf-sap-ntw</td>
            <td align="left">
              <xref target="RFC9408"/></td>
          </tr>
          <tr>
            <td align="left">vpn-common</td>
            <td align="left">ietf-vpn-common</td>
            <td align="left">
              <xref target="RFC9181"/></td>
          </tr>
        </tbody>
      </table>
    </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>
      <section anchor="acs-terminated-by-one-or-multiple-customer-edges-ces">
        <name>ACs Terminated by One or Multiple Customer Edges (CEs)</name>
        <t><xref target="uc"/> depicts a sample target topology that involve ACs:</t>
        <ul spacing="normal">
          <li>
            <t>ACs are terminated by a SAP at the network side. See <xref target="sap-ac-ntw"/> for an example of SAPs within a PE.</t>
          </li>
          <li>
            <t>A CE can be either a physical device or a logical entity. Such logical entity is typically a software component (e.g., a virtual service function that is hosted within the provider's network or a third-party infrastructure). A CE is seen by the network as a peer SAP <xref target="RFC9408"/>.</t>
          </li>
          <li>
            <t>CEs may be either dedicated to one single connectivity service or host multiple connectivity services (e.g., CEs with roles of service functions <xref target="RFC7665"/>).</t>
          </li>
          <li>
            <t>A network provider may bind a single AC to one or multiple peer SAPs (e.g., CE1 and CE2 are tagged as peer SAPs for the same AC). For example, and as discussed in <xref target="RFC4364"/>, multiple CEs can be attached to a PE over the same attachment circuit. This scenario is typically implemented when the Layer 2 infrastructure between the CE and the network is a multipoint service.</t>
          </li>
          <li>
            <t>A single CE may terminate multiple ACs, which can be associated with the same bearer or distinct bearers (e.g., CE4).</t>
          </li>
          <li>
            <t>Customers may request protection schemes in which the ACs associated with their endpoints are terminated by the same PE (e.g., CE3), distinct PEs (e.g., CE4), etc. The network provider uses this request to decide where to terminate the AC in the service provider network and also whether to enable specific capabilities (e.g., Virtual Router Redundancy Protocol (VRRP)).</t>
          </li>
        </ul>
        <t>The "ietf-ac-ntw" is a network model that is used to manage the PE side of ACs at a provider network.</t>
        <figure anchor="uc">
          <name>Examples of ACs</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="512" viewBox="0 0 512 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 8,192" fill="none" stroke="black"/>
                <path d="M 72,64 L 72,112" fill="none" stroke="black"/>
                <path d="M 72,144 L 72,192" fill="none" stroke="black"/>
                <path d="M 112,80 L 112,176" fill="none" stroke="black"/>
                <path d="M 176,112 L 176,144" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,104" fill="none" stroke="black"/>
                <path d="M 192,152 L 192,224" fill="none" stroke="black"/>
                <path d="M 200,112 L 200,144" fill="none" stroke="black"/>
                <path d="M 280,208 L 280,240" fill="none" stroke="black"/>
                <path d="M 288,248 L 288,272" fill="none" stroke="black"/>
                <path d="M 304,208 L 304,240" fill="none" stroke="black"/>
                <path d="M 352,64 L 352,112" fill="none" stroke="black"/>
                <path d="M 352,144 L 352,192" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,56" fill="none" stroke="black"/>
                <path d="M 360,200 L 360,224" fill="none" stroke="black"/>
                <path d="M 376,64 L 376,112" fill="none" stroke="black"/>
                <path d="M 376,144 L 376,192" fill="none" stroke="black"/>
                <path d="M 448,64 L 448,112" fill="none" stroke="black"/>
                <path d="M 448,144 L 448,192" fill="none" stroke="black"/>
                <path d="M 480,192 L 480,272" fill="none" stroke="black"/>
                <path d="M 504,64 L 504,112" fill="none" stroke="black"/>
                <path d="M 504,144 L 504,192" fill="none" stroke="black"/>
                <path d="M 192,32 L 360,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 72,64" fill="none" stroke="black"/>
                <path d="M 352,64 L 376,64" fill="none" stroke="black"/>
                <path d="M 448,64 L 504,64" fill="none" stroke="black"/>
                <path d="M 72,80 L 112,80" fill="none" stroke="black"/>
                <path d="M 376,80 L 400,80" fill="none" stroke="black"/>
                <path d="M 424,80 L 448,80" fill="none" stroke="black"/>
                <path d="M 376,96 L 400,96" fill="none" stroke="black"/>
                <path d="M 424,96 L 448,96" fill="none" stroke="black"/>
                <path d="M 8,112 L 72,112" fill="none" stroke="black"/>
                <path d="M 176,112 L 200,112" fill="none" stroke="black"/>
                <path d="M 352,112 L 376,112" fill="none" stroke="black"/>
                <path d="M 448,112 L 504,112" fill="none" stroke="black"/>
                <path d="M 112,128 L 136,128" fill="none" stroke="black"/>
                <path d="M 160,128 L 176,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 72,144" fill="none" stroke="black"/>
                <path d="M 176,144 L 200,144" fill="none" stroke="black"/>
                <path d="M 352,144 L 376,144" fill="none" stroke="black"/>
                <path d="M 448,144 L 504,144" fill="none" stroke="black"/>
                <path d="M 376,160 L 400,160" fill="none" stroke="black"/>
                <path d="M 424,160 L 448,160" fill="none" stroke="black"/>
                <path d="M 72,176 L 112,176" fill="none" stroke="black"/>
                <path d="M 376,176 L 400,176" fill="none" stroke="black"/>
                <path d="M 424,176 L 448,176" fill="none" stroke="black"/>
                <path d="M 8,192 L 72,192" fill="none" stroke="black"/>
                <path d="M 352,192 L 376,192" fill="none" stroke="black"/>
                <path d="M 448,192 L 504,192" fill="none" stroke="black"/>
                <path d="M 280,208 L 304,208" fill="none" stroke="black"/>
                <path d="M 192,224 L 280,224" fill="none" stroke="black"/>
                <path d="M 304,224 L 360,224" fill="none" stroke="black"/>
                <path d="M 280,240 L 304,240" fill="none" stroke="black"/>
                <path d="M 288,272 L 376,272" fill="none" stroke="black"/>
                <path d="M 400,272 L 480,272" fill="none" stroke="black"/>
                <g class="text">
                  <text x="412" y="68">(b1)</text>
                  <text x="412" y="84">AC</text>
                  <text x="40" y="100">CE1</text>
                  <text x="364" y="100">PE</text>
                  <text x="412" y="100">AC</text>
                  <text x="480" y="100">CE3</text>
                  <text x="412" y="116">(b2)</text>
                  <text x="148" y="132">AC</text>
                  <text x="188" y="132">PE</text>
                  <text x="272" y="132">Network</text>
                  <text x="360" y="132">|</text>
                  <text x="412" y="148">(b3)</text>
                  <text x="412" y="164">AC</text>
                  <text x="40" y="180">CE2</text>
                  <text x="364" y="180">PE</text>
                  <text x="412" y="180">AC</text>
                  <text x="480" y="180">CE4</text>
                  <text x="412" y="196">(b3)</text>
                  <text x="292" y="228">PE</text>
                  <text x="388" y="276">AC</text>
                  <text x="20" y="292">(bx)</text>
                  <text x="48" y="292">=</text>
                  <text x="84" y="292">bearer</text>
                  <text x="124" y="292">Id</text>
                  <text x="144" y="292">x</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                       .--------------------.
                       |                    |
.-------.              |                   .--.  (b1)  .------.
|       +----.         |                   |  +---AC---+      |
|  CE1  |    |         |                   |PE+---AC---+  CE3 |
'-------'    |       .--.                  '--'  (b2)  '------'
             +---AC--+PE|     Network       |
.-------.    |       '--'                  .--.  (b3)  .------.
|       |    |         |                   |  +---AC---+      |
|  CE2  +----'         |                   |PE+---AC---+  CE4 |
'-------'              |                   '--'  (b3)  '---+--'
                       |          .--.      |              |
                       '----------+PE+------'              |
                                  '--'                     |
                                   |                       |
                                   '-----------AC----------'
(bx) = bearer Id x
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="positioning-the-ac-network-model-in-the-overall-service-delivery-process">
        <name>Positioning the AC Network Model in the Overall Service Delivery Process</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 those ACs to customer using the 'ietf-ac-svc' module defined in <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="688" width="512" viewBox="0 0 512 688" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,592 L 8,624" fill="none" stroke="black"/>
                <path d="M 48,592 L 48,624" fill="none" stroke="black"/>
                <path d="M 96,464 L 96,512" fill="none" stroke="black"/>
                <path d="M 104,352 L 104,400" fill="none" stroke="black"/>
                <path d="M 120,576 L 120,640" fill="none" stroke="black"/>
                <path d="M 136,400 L 136,464" fill="none" stroke="black"/>
                <path d="M 136,512 L 136,568" fill="none" stroke="black"/>
                <path d="M 176,320 L 176,352" fill="none" stroke="black"/>
                <path d="M 176,464 L 176,512" fill="none" stroke="black"/>
                <path d="M 208,32 L 208,64" fill="none" stroke="black"/>
                <path d="M 208,128 L 208,176" fill="none" stroke="black"/>
                <path d="M 208,240 L 208,288" fill="none" stroke="black"/>
                <path d="M 208,408 L 208,528" fill="none" stroke="black"/>
                <path d="M 232,352 L 232,400" fill="none" stroke="black"/>
                <path d="M 272,64 L 272,128" fill="none" stroke="black"/>
                <path d="M 272,176 L 272,240" fill="none" stroke="black"/>
                <path d="M 272,288 L 272,320" fill="none" stroke="black"/>
                <path d="M 296,352 L 296,400" fill="none" stroke="black"/>
                <path d="M 336,32 L 336,64" fill="none" stroke="black"/>
                <path d="M 336,128 L 336,176" fill="none" stroke="black"/>
                <path d="M 336,240 L 336,288" fill="none" stroke="black"/>
                <path d="M 368,320 L 368,352" fill="none" stroke="black"/>
                <path d="M 368,400 L 368,568" fill="none" stroke="black"/>
                <path d="M 384,576 L 384,640" fill="none" stroke="black"/>
                <path d="M 424,352 L 424,400" fill="none" stroke="black"/>
                <path d="M 456,592 L 456,624" fill="none" stroke="black"/>
                <path d="M 496,592 L 496,624" 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,128 L 336,128" fill="none" stroke="black"/>
                <path d="M 208,176 L 336,176" fill="none" stroke="black"/>
                <path d="M 208,240 L 336,240" fill="none" stroke="black"/>
                <path d="M 208,288 L 336,288" fill="none" stroke="black"/>
                <path d="M 176,320 L 368,320" fill="none" stroke="black"/>
                <path d="M 104,352 L 232,352" fill="none" stroke="black"/>
                <path d="M 296,352 L 424,352" fill="none" stroke="black"/>
                <path d="M 104,400 L 232,400" fill="none" stroke="black"/>
                <path d="M 296,400 L 424,400" fill="none" stroke="black"/>
                <path d="M 96,464 L 176,464" fill="none" stroke="black"/>
                <path d="M 96,512 L 176,512" fill="none" stroke="black"/>
                <path d="M 120,576 L 384,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 48,608 L 120,608" fill="none" stroke="black"/>
                <path d="M 384,608 L 456,608" fill="none" stroke="black"/>
                <path d="M 8,624 L 48,624" fill="none" stroke="black"/>
                <path d="M 456,624 L 496,624" fill="none" stroke="black"/>
                <path d="M 120,640 L 384,640" 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="72" y="100">ietf-l2vpn-svc,</text>
                  <text x="200" y="100">ietf-l3vpn-svc,</text>
                  <text x="392" y="100">ietf-network-slice-service,</text>
                  <text x="100" y="116">ietf-ac-svc,</text>
                  <text x="208" y="116">ietf-ac-glue,</text>
                  <text x="296" y="116">and</text>
                  <text x="376" y="116">ietf-bearer-svc</text>
                  <text x="272" y="148">Service</text>
                  <text x="272" y="164">Orchestration</text>
                  <text x="112" y="196">Network</text>
                  <text x="168" y="196">Model</text>
                  <text x="72" y="212">ietf-l2vpn-ntw,</text>
                  <text x="200" y="212">ietf-l3vpn-ntw,</text>
                  <text x="336" y="212">ietf-sap-ntw,</text>
                  <text x="448" y="212">ietf-ac-glue,</text>
                  <text x="96" y="228">and</text>
                  <text x="160" y="228">ietf-ac-ntw</text>
                  <text x="264" y="260">Network</text>
                  <text x="272" y="276">Orchestration</text>
                  <text x="56" y="308">Network</text>
                  <text x="144" y="308">Configuration</text>
                  <text x="224" y="308">Model</text>
                  <text x="164" y="372">Domain</text>
                  <text x="364" y="372">Domain</text>
                  <text x="168" y="388">Orchestration</text>
                  <text x="360" y="388">Orchestration</text>
                  <text x="36" y="420">Device</text>
                  <text x="64" y="436">Configuration</text>
                  <text x="32" y="452">Model</text>
                  <text x="132" y="484">Config</text>
                  <text x="136" y="500">Manager</text>
                  <text x="256" y="548">NETCONF/CLI................</text>
                  <text x="376" y="548">.</text>
                  <text x="208" y="564">|</text>
                  <text x="84" y="596">Bearer</text>
                  <text x="420" y="596">Bearer</text>
                  <text x="28" y="612">CE#1</text>
                  <text x="248" y="612">Network</text>
                  <text x="476" y="612">CE#2</text>
                  <text x="28" y="660">Site</text>
                  <text x="56" y="660">A</text>
                  <text x="476" y="660">Site</text>
                  <text x="504" y="660">B</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                          .---------------.
                          |   Customer    |
                          '-------+-------'
          Customer Service Model  |
  ietf-l2vpn-svc, ietf-l3vpn-svc, | ietf-network-slice-service,
       ietf-ac-svc, ietf-ac-glue, | and ietf-bearer-svc
                          .-------+-------.
                          |    Service    |
                          | Orchestration |
                          '-------+-------'
           Network Model          |
  ietf-l2vpn-ntw, ietf-l3vpn-ntw, | ietf-sap-ntw, ietf-ac-glue,
           and ietf-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, ASBRs of each network are directly
connected to ASBRs 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="240" width="376" viewBox="0 0 376 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,224" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,224" fill="none" stroke="black"/>
                <path d="M 256,32 L 256,112" fill="none" stroke="black"/>
                <path d="M 256,144 L 256,224" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,112" fill="none" stroke="black"/>
                <path d="M 368,144 L 368,224" 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,80 L 200,80" fill="none" stroke="black"/>
                <path d="M 224,80 L 256,80" fill="none" stroke="black"/>
                <path d="M 256,112 L 368,112" fill="none" stroke="black"/>
                <path d="M 256,144 L 368,144" fill="none" stroke="black"/>
                <path d="M 176,192 L 200,192" fill="none" stroke="black"/>
                <path d="M 224,192 L 256,192" fill="none" stroke="black"/>
                <path d="M 8,224 L 176,224" fill="none" stroke="black"/>
                <path d="M 256,224 L 368,224" fill="none" stroke="black"/>
                <g class="text">
                  <text x="212" y="52">AC</text>
                  <text x="212" y="84">AC</text>
                  <text x="312" y="84">Network#2</text>
                  <text x="88" y="116">Network#1</text>
                  <text x="212" y="196">AC</text>
                  <text x="312" y="196">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>
    <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 "ietf-ac-ntw" module is provided in <xref target="AC-Ntw-Tree"/>. Subtrees are provided in the following subsections
for the reader's convenience.</t>
      <section anchor="overall-structure-of-the-module">
        <name>Overall Structure of the Module</name>
        <t>The overall tree structure of the "ietf-ac-ntw" 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 svc-ref?             ac-svc:attachment-circuit-reference
     +--rw profile* [ac-profile-ref]
     |  +--rw ac-profile-ref    leafref
     |  +--rw network-ref?      -> /nw:networks/network/network-id
     +--rw parent-ref
     |  +--rw ac-ref?        leafref
     |  +--rw node-ref?      leafref
     |  +--rw network-ref?   -> /nw:networks/network/network-id
     +--ro child-ref
     |  +--ro ac-ref*        leafref
     |  +--ro node-ref?      leafref
     |  +--ro 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  {ac-common:layer2-ac}?
     |  ...
     +--rw ip-connection  {ac-common:layer3-ac}?
     |  ...
     +--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. Per <xref target="RFC9408"/>, a SAP is an abstraction of the network
reference point (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 AC that is actually provisioned in the network operation, a reference to the AC exposed to the customer ('svc-ref') is stored in the "ietf-ac-ntw" module.</t>
        <t>ACs that are terminated by a SAP are listed in the 'ac' container 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 'parent-ref'.</t>
          </li>
          <li>
            <t>Indicate for each individual AC 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. Child ACs are referenced using 'child-ref'.</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. Features are used to tag conditional protions to accomodate various deployments (support of layer 2 ACs, Layer 3 ACs, IPv4, IPv6, routing protocols, BFD, etc.).</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 attachment-circuit-references:
    +-- 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 failure-detection-profile-reference:
    +-- failure-detection-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 failure-detection-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 peer-groups
       |     |     +--rw peer-group* [name]
       |     |        +--rw name                      string
       |     |        +--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 address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw max-lsa?          uint32
       |     |  +--rw passive?          boolean
       |     +--rw isis
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint32
       |     |  +--rw passive?          boolean
       |     +--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>Similar to <xref target="RFC9182"/> and <xref target="RFC9291"/>, the exact definition of the specific provisioning 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. See also <xref target="sec-sec"/>.</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"/>). See also <xref target="sec-svc"/>.</t>
          </dd>
          <dt>'failure-detection-profile-identifier':</dt>
          <dd>
            <t>A failure detection profile refers to a set of failure detection policies such as Bidirectional Forwarding Detection (BFD) policies <xref target="RFC5880"/> that can be invoked when building an AC. Such a profile can be, for example, referenced in static routes (<xref target="sec-static-rtg"/>) or under the OAM level (<xref target="sec-oam"/>). The use of this profile is similar to the detailed examples depicted in Appendices A.11.3 and A.12 of <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>.</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) as in <xref target="sec-svc"/>.</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. Refer to <xref target="sec-rtg"/>.</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 (mainly, the PE side 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  {ac-common:layer2-ac}?
       |  +--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
       |  |       {ac-common:server-assigned-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  {ac-common:layer3-ac}?
       |  ...
       +--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 used by this AC 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  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  +--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 failure-detection-profile-ref?   leafref
       |  |           +--rw network-ref?
       |  |                   -> /nw:networks/network/network-id
       |  +--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 failure-detection-profile-ref?   leafref
       |              +--rw network-ref?
       |                      -> /nw:networks/network/network-id
       +--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 '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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-vrrp}?
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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-profile') 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  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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-prefix* [lan next-hop]
       |     |     |       {vpn-common:ipv4}?
       |     |     |  +--rw lan           inet:ipv4-prefix
       |     |     |  +--rw lan-tag?      string
       |     |     |  +--rw next-hop      union
       |     |     |  +--rw metric?       uint32
       |     |     |  +--rw bfd {vpn-common:bfd}?
       |     |     |  |  +--rw enabled?
       |     |     |  |  |       boolean
       |     |     |  |  +--rw failure-detection-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-prefix* [lan next-hop]
       |     |             {vpn-common:ipv6}?
       |     |        +--rw lan           inet:ipv6-prefix
       |     |        +--rw lan-tag?      string
       |     |        +--rw next-hop      union
       |     |        +--rw metric?       uint32
       |     |        +--rw bfd {vpn-common:bfd}?
       |     |        |  +--rw enabled?
       |     |        |  |       boolean
       |     |        |  +--rw failure-detection-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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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  {vpn-common:rtg-bgp}?
       |     |  +--rw peer-groups
       |     |     +--rw peer-group* [name]
       |     |        +--rw name                      string
       |     |        +--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 role?                     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 ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-vrrp}?
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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 {vpn-common:rtg-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 role?                     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 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 role?                     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 bfd {vpn-common:bfd}?
       |     |     |  +--rw enabled?                         boolean
       |     |     |  +--rw failure-detection-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  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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>'role':</dt>
            <dd>
              <t>Specifies the BGP role in a session.  Role values are taken   from the list defined in <xref section="4" sectionFormat="of" target="RFC9234"/>.</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>'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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw max-lsa?          uint32
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-vrrp}?
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf {vpn-common:rtg-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 passive?          boolean
       |     |  +--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  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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>'passive':</dt>
            <dd>
              <t>Controls whether an OSPF interface is passive or active.</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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint32
       |     |  +--rw passive?          boolean
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis {vpn-common:rtg-isis}?
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint32
       |     |  +--rw passive?          boolean
       |     |  +--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  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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>'passive':</dt>
            <dd>
              <t>Controls whether an IS-IS interface is passive or active.</t>
            </dd>
            <dt>'authentication':</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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-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  {vpn-common:rtg-vrrp}?
       |        ...
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-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) <xref target="RFC2080"/>, or both are
   to be enabled.</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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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  {vpn-common:rtg-bgp}?
       |     |  ...
       |     +--rw ospf  {vpn-common:rtg-ospf}?
       |     |  ...
       |     +--rw isis  {vpn-common:rtg-isis}?
       |     |  ...
       |     +--rw rip  {vpn-common:rtg-rip}?
       |     |  ...
       |     +--rw vrrp  {vpn-common:rtg-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="RFC9568"/>
   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="RFC9568"/>).</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  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  +--rw bfd {vpn-common:bfd}?
       |     +--rw session* [dest-addr]
       |        +--rw dest-addr                   inet:ip-address
       |        +--rw source-address?             union
       |        +--rw failure-detection-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. This data node is mapped to 'remote-address' of BFD container in <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>. 'dest-address' is used here to ease the mapping with the underlying device model defind in <xref target="RFC9127"/>.</t>
          </dd>
          <dt>'source-address':</dt>
          <dd>
            <t>Specifies the local IP address or interface to use for the session. This data node is mapped to 'local-address' of BFD container in <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>. 'source-address' is used here to ease the mapping with the underlying device model defind in <xref target="RFC9127"/>.</t>
          </dd>
          <dt>'failure-detection-profile-ref':</dt>
          <dd>
            <t>Refers to BFD profiles in <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 the encryption to be applied to traffic for a given AC. The 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  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--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 Committed Burst Size (CBS), the Excess Information Rate (EIR), the Excess Burst Size (EBS), the Peak Information Rate (PIR), and the Peak Burst Size (PBS). CIR, EIR, and PIR are expressed in bps, while CBS, EBS, and PBS are expressed in bytes.</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@2024-05-15.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 2024-05-15 {
    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
        "An absolute reference to an attachment circuit.";
    }
    uses nw:node-ref;
  }

  grouping attachment-circuit-references {
    description
      "This grouping can be used to reference a list of attachment
       circuits in a specific node.";
    leaf-list 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
        "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
        "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
        "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
        "An absolute reference to a QoS profile.";
    }
    uses nw:network-ref;
  }

  grouping failure-detection-profile-reference {
    description
      "This grouping can be used to reference a failure detection
       profile.";
    leaf failure-detection-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:failure-detection-profile-identifier/ac-ntw:id";
        require-instance false;
      }
      description
        "An absolute reference to a failure detection 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
        "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
        "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 on the network side.";
    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 "ac-common:server-assigned-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.";
          }
          uses failure-detection-profile-reference;
        }
      }
    }
  }

  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.";
          }
          uses failure-detection-profile-reference;
        }
      }
    }
  }

  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 role {
      type identityref {
        base ac-common:bgp-role;
      }
      description
        "Specifies the BGP role (provider, customer, peer, etc.).";
    }
    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";
      }
    }
  }

  grouping bgp-base-peer-group {
    description
      "Grouping for a basic BGP peer group.";
    leaf name {
      type string;
      description
        "Name of the BGP peer-group";
    }
    uses bgp-base;
  }

  grouping bgp-base-peer-group-list {
    description
      "Grouping for a list of basic BGP peer groups.";
    list peer-group {
      key "name";
      description
        "List of BGP peer groups uniquely identified by a name.";
     uses bgp-base-peer-group;
    }
  }

  grouping bgp-peer-group {
    description
      "Grouping for BGP peer group.";
    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;
  }

  grouping bgp-peer-group-list {
    description
      "Grouping for a list of BGP peer groups.";
    list peer-group {
      key "name";
      description
        "List of BGP peer groups uniquely identified by a name.";
     uses bgp-peer-group;
    }
  }

  // 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 2080: RIPng for IPv6
         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.";
        }
        if-feature "vpn-common:rtg-bgp";
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Lists a set of BGP peer groups.";
          uses bgp-base-peer-group-list;
        }
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        if-feature "vpn-common:rtg-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.";
        }
        leaf passive {
          type boolean;
          description
            "Enables when set to true a passive interface. It is
             active when set to false. A passive interface's prefix
             will be advertised, but no neighbor adjacencies will be
             formed on the interface.";
        }
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is IS-IS.";
        }
        if-feature "vpn-common:rtg-isis";
        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 uint32 {
            range "0 .. 16777215";
          }
          description
            "Metric of the AC. It is used in the routing state
             calculation and path selection.";
        }
        leaf passive {
          type boolean;
          description
            "When set to false, the interface is active. In such
             mode, the interface sends or receives IS-IS protocol
             control packets.

             When set to true, the interface is passive. That is,
             it suppresses the sending of IS-IS updates through the
             specified interface.";
        }
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.";
        }
        if-feature "vpn-common:rtg-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).";
        }
        if-feature "vpn-common:rtg-vrrp";
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 9568: 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:ipv6-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.";
        }
        if-feature "vpn-common:rtg-bgp";
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Configuration for BGP peer-groups";
          uses bgp-peer-group-list;
        }
        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.";
        }
        if-feature "vpn-common:rtg-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.";
        }
        leaf passive {
          type boolean;
          description
            "Enables when set to true a passive interface. It is
             active when set to false. A passive interface's prefix
             will be advertised, but no neighbor adjacencies will be
             formed on the interface.";
        }
        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.";
        }
        if-feature "vpn-common:rtg-isis";
        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 uint32 {
            range "0 .. 16777215";
          }
          description
            "Metric of the AC. It is used in the routing state
             calculation and path selection.";
        }
        leaf passive {
          type boolean;
            description
              "When set to false, the interface is active. In such
               mode, the interface sends or receives IS-IS protocol
               control packets.

               When set to true, the interface is passive. That is,
               it suppresses the sending of IS-IS updates through the
               specified interface.";
        }
        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.";
        }
        if-feature "vpn-common:rtg-rip";
        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.";
        }
        if-feature "vpn-common:rtg-vrrp";
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 9568: 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 9568: 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 {
      if-feature "vpn-common:bfd";
      description
        "BFD control for this nighbor.";
      leaf enabled {
        type boolean;
        description
          "Enables BFD if set to true. BFD is disabled of set to
           false.";
      }
      uses failure-detection-profile-reference;
    }
  }

  // OAM

  grouping oam {
    description
      "Defines the Operations, Administration, and Maintenance
       (OAM) mechanisms used.";
    container bfd {
      if-feature "vpn-common: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 failure-detection-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;
      }
    }
  }

  // Parent and Child ACs

  grouping ac-hierarchy {
    description
      "Container for parent and child AC references.";
    container 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;
    }
    container child-ref {
      config false;
      description
        "Specifies a child AC that relies upon a parent AC.";
      uses ac-ntw:attachment-circuit-references;
    }
  }

  // AC network provisioning 

  grouping ac {
    description
      "Grouping for attachment circuits.";
    leaf description {
      type string;
      description
        "Associates a description with an AC.";
    }
    container l2-connection {
      if-feature "ac-common:layer2-ac";
      description
        "Defines Layer 2 protocols and parameters that are required
         to enable AC connectivity.";
      uses l2-connection-if-ref;
    }
    container ip-connection {
      if-feature "ac-common:layer3-ac";
      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 svc-ref {
        type ac-svc:attachment-circuit-reference;
        description
          "A reference to the AC as exposed at the service level.";
      }
      list profile {
        key "ac-profile-ref";
        description
          "List of AC profiles.";
        uses ac-profile-reference;
      }
      uses ac-hierarchy;
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      uses ac-common:redundancy-group;
      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 is modeled after the template described in in <xref section="3.7" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>.</t>
      <t>The "ietf-ac-ntw" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
   NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have to
   use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
   QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</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 <xref section="5" sectionFormat="of" 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 anchor="sec-combined-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="10" month="October" 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-17"/>
        </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="24" month="July" 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-12"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="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="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="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="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="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="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="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="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="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="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="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="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="RFC9568">
          <front>
            <title>Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6</title>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="A. Dogra" initials="A." surname="Dogra"/>
            <date month="April" year="2024"/>
            <abstract>
              <t>This document defines version 3 of the Virtual Router Redundancy Protocol (VRRP) for IPv4 and IPv6. It obsoletes RFC 5798, which previously specified VRRP (version 3). RFC 5798 obsoleted RFC 3768, which specified VRRP (version 2) for IPv4. 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 Active Router, and it forwards packets routed to these IPv4 or IPv6 addresses. Active Routers are configured with virtual IPv4 or IPv6 addresses, and Backup Routers infer the address family of the virtual addresses being advertised based on the IP protocol version. Within a VRRP Router, the Virtual Routers in each of the IPv4 and IPv6 address families are independent of one another and always treated as separate Virtual Router instances. The election process provides dynamic failover in the forwarding responsibility should the Active Router 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.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9568"/>
          <seriesInfo name="DOI" value="10.17487/RFC9568"/>
        </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="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="10" month="June" year="2024"/>
            <abstract>
              <t>   The document specifies a module that updates existing service (i.e.,
   the Layer 2 Service Model (L2SM) and the Layer 3 Service Model
   (L3SM)) and network (i.e., the Layer 2 Network Model (L2NM) and the
   Layer 3 Network Model (L3NM)) Virtual Private Network (VPN) modules
   with the required information to bind specific VPN services to
   Attachment Circuits (ACs) that are created using the AC service
   ("ietf-ac-svc") and network ("ietf-ac-ntw") models.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ac-lxsm-lxnm-glue-10"/>
        </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="RFC9234">
          <front>
            <title>Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages</title>
            <author fullname="A. Azimov" initials="A." surname="Azimov"/>
            <author fullname="E. Bogomazov" initials="E." surname="Bogomazov"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>Route leaks are the propagation of BGP prefixes that violate assumptions of BGP topology relationships, e.g., announcing a route learned from one transit provider to another transit provider or a lateral (i.e., non-transit) peer or announcing a route learned from one lateral peer to another lateral peer or a transit provider. These are usually the result of misconfigured or absent BGP route filtering or lack of coordination between autonomous systems (ASes). Existing approaches to leak prevention rely on marking routes by operator configuration, with no check that the configuration corresponds to that of the External BGP (eBGP) neighbor, or enforcement of the two eBGP speakers agreeing on the peering relationship. This document enhances the BGP OPEN message to establish an agreement of the peering relationship on each eBGP session between autonomous systems in order to enforce appropriate configuration on both sides. Propagated routes are then marked according to the agreed relationship, allowing both prevention and detection of route leaks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9234"/>
          <seriesInfo name="DOI" value="10.17487/RFC9234"/>
        </reference>
        <reference anchor="RFC9127">
          <front>
            <title>YANG Data Model for Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="R. Rahman" initials="R." role="editor" surname="Rahman"/>
            <author fullname="L. Zheng" initials="L." role="editor" surname="Zheng"/>
            <author fullname="M. Jethanandani" initials="M." role="editor" surname="Jethanandani"/>
            <author fullname="S. Pallagatti" initials="S." surname="Pallagatti"/>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure and manage Bidirectional Forwarding Detection (BFD).</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA) (RFC 8342).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9127"/>
          <seriesInfo name="DOI" value="10.17487/RFC9127"/>
        </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="21" month="October" 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.  The document also updates RFC 6020 by
   clarifying how modules and their revisions are handled by IANA.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-20"/>
        </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="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </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="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </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 4201?>

<section anchor="sec-examples">
      <name>Examples</name>
      <section anchor="vpls">
        <name>VPLS</name>
        <t>Let us consider the example depicted in <xref target="ex-topo"/> with two customer terminating points (CE1 and CE2). Let us 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><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "name": "an-ac-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          }
        },
        "service": {
          "mtu": 1550,
          "svc-pe-to-ce-bandwidth": {
            "bandwidth": [
              {
                "bw-type": "ietf-vpn-common:bw-per-port",
                "cir": "20480000"
              }
            ]
          },
          "svc-ce-to-pe-bandwidth": {
            "bandwidth": [
              {
                "bw-type": "ietf-vpn-common:bw-per-port",
                "cir": "20480000"
              }
            ]
          },
          "qos": {
            "qos-profiles": {
              "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><![CDATA[
{
   "ietf-ac-ntw:ac":[
      {
         "name":"ac-11",
         "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":{
               "bandwidth":[
                  {
                     "bw-type": "ietf-vpn-common:bw-per-port",
                     "cir":"20480000"
                  }
               ]
            },
            "svc-ce-to-pe-bandwidth":{
               "bandwidth":[
                  {
                     "bw-type": "ietf-vpn-common:bw-per-port",
                     "cir":"20480000"
                  }
               ]
            },
            "qos":{
               "qos-profiles":{
                  "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><![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><![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",
         "parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE2"
         ]
      },
      {
         "name":"ac-1-to-ce5",
         "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><![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 anchor="AC-Ntw-Tree">
      <name>Full Tree</name>
      <artwork><![CDATA[
module: ietf-ac-ntw

  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 failure-detection-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 {vpn-common:rtg-bgp}?
       |     |  +--rw peer-groups
       |     |     +--rw peer-group* [name]
       |     |        +--rw name                      string
       |     |        +--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 role?                     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 ospf {vpn-common:rtg-ospf}?
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw max-lsa?          uint32
       |     |  +--rw passive?          boolean
       |     +--rw isis {vpn-common:rtg-isis}?
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint32
       |     |  +--rw passive?          boolean
       |     +--rw rip {vpn-common:rtg-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 {vpn-common:rtg-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
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       +--rw svc-ref?             ac-svc:attachment-circuit-reference
       +--rw profile* [ac-profile-ref]
       |  +--rw ac-profile-ref    leafref
       |  +--rw network-ref?      -> /nw:networks/network/network-id
       +--rw parent-ref
       |  +--rw ac-ref?        leafref
       |  +--rw node-ref?      leafref
       |  +--rw network-ref?   -> /nw:networks/network/network-id
       +--ro child-ref
       |  +--ro ac-ref*        leafref
       |  +--ro node-ref?      leafref
       |  +--ro 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 {ac-common:layer2-ac}?
       |  +--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
       |  |       {ac-common:server-assigned-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 {ac-common:layer3-ac}?
       |  +--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 failure-detection-profile-ref?   leafref
       |  |           +--rw network-ref?
       |  |                   -> /nw:networks/network/network-id
       |  +--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 failure-detection-profile-ref?   leafref
       |              +--rw network-ref?
       |                      -> /nw:networks/network/network-id
       +--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-prefix* [lan next-hop]
       |     |     |       {vpn-common:ipv4}?
       |     |     |  +--rw lan           inet:ipv4-prefix
       |     |     |  +--rw lan-tag?      string
       |     |     |  +--rw next-hop      union
       |     |     |  +--rw metric?       uint32
       |     |     |  +--rw bfd {vpn-common:bfd}?
       |     |     |  |  +--rw enabled?
       |     |     |  |  |       boolean
       |     |     |  |  +--rw failure-detection-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-prefix* [lan next-hop]
       |     |             {vpn-common:ipv6}?
       |     |        +--rw lan           inet:ipv6-prefix
       |     |        +--rw lan-tag?      string
       |     |        +--rw next-hop      union
       |     |        +--rw metric?       uint32
       |     |        +--rw bfd {vpn-common:bfd}?
       |     |        |  +--rw enabled?
       |     |        |  |       boolean
       |     |        |  +--rw failure-detection-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 {vpn-common:rtg-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 role?                     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 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 role?                     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 bfd {vpn-common:bfd}?
       |     |     |  +--rw enabled?                         boolean
       |     |     |  +--rw failure-detection-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 {vpn-common:rtg-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 passive?          boolean
       |     |  +--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 {vpn-common:rtg-isis}?
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint32
       |     |  +--rw passive?          boolean
       |     |  +--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 {vpn-common:rtg-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 {vpn-common:rtg-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 bfd {vpn-common:bfd}?
       |     +--rw session* [dest-addr]
       |        +--rw dest-addr              inet:ip-address
       |        +--rw source-address?                  union
       |        +--rw failure-detection-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 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
          +--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
  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>
    </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, Gyan Mishra for an early rtg-dir review, Joel Halpern for the rtg-dir review,
and Giuseppe Fioccola for the ops-dir review.</t>
      <t>Thanks to Krzysztof Szarkowicz for the Shepherd review.</t>
      <t>Thanks for Mahesh Jethanandani for the AD 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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
g/LzVaURT/6sUf4fKLp6MeQCAwA=

-->

</rfc>
