<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ntw-attachment-circuit-15" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.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-15"/>
    <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="2025" month="January" day="09"/>
    <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>2025-01-07 --&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>LxVPN refers to both L2VPN and L3VPN.</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., LxVPN or Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>An entity that offers network services (e.g., LxVPN 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="288" width="368" viewBox="0 0 368 288" 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"/>
              <path d="M 24,272 L 40,272" 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="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="48,272 36,266.4 36,277.6" fill="black" transform="rotate(0,40,272)"/>
              <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>
                <text x="8" y="276">X</text>
                <text x="60" y="276">Y:</text>
                <text x="80" y="276">X</text>
                <text x="120" y="276">imports</text>
                <text x="160" y="276">Y</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 -----------+

X --> Y: X imports Y
]]></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,528" 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,568" 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="156" y="548">NETCONF/CLI.</text>
                  <text x="288" y="548">...................</text>
                  <text x="376" y="548">.</text>
                  <text x="136" 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@2025-01-07.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 (ACs).

     Copyright (c) 2025 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 2025-01-07 {
    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;
  }

  // Layer 2 connection

  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 Priority Code Point (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 parameters 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

  grouping ipv4-connection {
    description
      "IPv4-specific connection parameters.";
    leaf local-address {
      type inet:ipv4-address;
      description
        "The IPv4 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 dynamically 
                   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 static 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 connection 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 IPv6 addresses to be dynamically 
                   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 servers.";
            }
          }
        }
      }
      case static-addresses {
        description
          "Lists the static IPv6 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 IPv6 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 connection parameters.";
      uses ipv4-connection;
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific connection 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 to 'true', 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, when set to 'true', 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 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 profiles for 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. Such behavior is enabled, if set to 'true'.";
        }
      }
    }
  }

  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 static routing.";
        }
        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 neighbor.";
      leaf enabled {
        type boolean;
        description
          "Enables BFD if set to 'true'. BFD is disabled of set to
           'false'.";
      }
      uses failure-detection-profile-reference;
    }
  }

  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, if set to 'true'.";
            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 bandwidth 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' and 'customer-key-chain':</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', 'rip', and 'customer-key-chain') 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>
      <t><xref target="sec-sec"/> specifies the the encryption to be applied to traffic for a given AC.</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="9" month="January" year="2025"/>
            <abstract>
              <t>   Delivery of network services assumes that appropriate setup is
   provisioned over the links that connect customer termination points
   and a provider network.  The required setup to allow successful data
   exchange over these links is referred to as an attachment circuit
   (AC), while the underlying link is referred to as "bearer".

   This document specifies a YANG service data model for 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 YANG service model for managing bearers
   over which ACs are established.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-attachment-circuit-19"/>
        </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="9" month="January" year="2025"/>
            <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-14"/>
        </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="9" month="January" year="2025"/>
            <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-13"/>
        </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="13" month="November" 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-21"/>
        </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,
Giuseppe Fioccola for the ops-dir review, and Russ Housley for the sec-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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
LUl2ib6U5S/V3Sxe8ZkQl9fDlypoxLl/da75KPjPCnApjfjg+z1VRVNXs7Dv
J4dztB4pPHA42N4e7HJSrcE2JTdsyroYfG2Oa97m8pPFNstRX2XOOqAWhV3Q
XB0iVxtd96Un/+N3SaVeNFxLomR7bTQojHtQl5/Q01siGgJhDsfozcfXlRio
Fb1IMcvaxvDwRblJz5xmPo83uyPVZK0r5iZ+1k2caVNoicV/au89+/5EN9yU
zF443TeSstq652df/Iud6NCEHbMPPttR3veeE9FsB7uF09dIeIIb6MIxGxsY
X4GP2UJRq4pla/ENKP3afPuA34peffsBhxN8fEMfr4mSvkEUuGPdg/VXLjLf
2nUbuMpSWI8z6iPm2HV/MLp0fO4pXo3AdJ/xZRaDymt5IGraqz+EDokpa400
vTbyeX98kWOd429CrRjgwcY8n282/G6sE9s/l0zn1XUrRFDIl4OERt90BlkV
8azEE78Jrp62bvlNG1xDym1Xl7QSKB/guqSTJd15uZuxckGqvxWXtIPeuR1m
O82YhUC2YSY+zzTH4KM+J6brsAOWbKRf0pm3j6Ib7CPdp+y0j6LVtl3UZdtF
Vrvmbaf/bth2AYrb2863UesQ69suAHLJtnNBNm07/XcU3HaNqN5429W6h5jb
xqo7c/ugV9x2te7NmIVANmKmuAlOPWUi+uxEC4QH9QIOxUy3atiWtYYtwqPz
+aW7zMtkMcmxCEuzEEdvylhvt5ozrN76LC76oCUTQ81qp7c9/OU8Cx6Etxv4
yw4Dv8/i4M+mxSx1ZEwrBoaeeDeHToDO6+B2Tefi0cRJ0H2e+SrIRpfzWX2P
C+ug28mbhOWJ4l9rrIscp8JtyAzFt1UKRO2G2XYJjYp0cm6FNH3T0kNlcnLb
NowhdLIUR9wKdAnKleMMnIAimcXnpmqC44lzfvnoXZUFOitSNgcbTBO8d+1j
6og+Ru83OBOtZuFwAbux6NyhUIoVnkgS6Jpq3haLUWtsOTdDP7vPJZvauE8m
uYn2/CnrRXx+YvxY9ljd+0dmmWMs2GaZqZlum2NOcyqTVCbRRoq21/WmSoya
SVa/sZPbSNeFyZLLGKwqOADoyQO+Eau0A1DFVpcUoA32YDqXwYwmIjYqNimS
K3xeIxlTezWh32Bq8vSuFUrqnZ6b2g/N5ljPnKHadel1XmnJ63pSYA0cINbw
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
oP37CTx+bgjHcVBU1ECDmIJwvWuDtKLCVPqZI6OoiuYxbmJfg+mcL84v6rfz
dsT6SmISKH+HUhKddHcvJMHgXFlEwlC3kZABjyF++MVSavt5Q0S9LIq7pCqC
+wRkxX9LUCoFPXoP0t8kk8VsAiqMdfW18dObNyebK68GzuA2y4Gjdrq6e/po
/8mBN6uWiYSFungrd8Wvad4LrXsHYmMg4sonY1MwYkdJfzOvsqf6FV6yijYJ
j5YzPqkJTHoVIa+DBwVt4kpYG1z/+B0+xrnIF9kk4rEwHhtGdvGWV22D6BTf
QOgQROcNkBf+3ywd6/d2ckIu9dPcu2askf8xXDP+ylgOOb003s94d7lcmHkO
wHol4ABU/zF8iI6rq9xJrSZbN4kyxdvULbwxpf9VMqSbWqHSGNzdGahSXdz9
KagwDRz2S7ms+bxqBmplRYnLcTwBYmTxrK/Dh7s5uYavTMCxjpmR54te3gpK
gIHP9M04Hsd0yRfAH9oOAAeM+PdV/yKfe7+3RFSK/HJxlzpRzisI/oQKyggX
gEoB7F9cB3qMzibCJe6v8kTRr5Qln2Ak47Jp1S5HrAHqtawkvUdd7aBLkLZM
MDV6SFIkhLgom3a3rP7+TVZ//7Na/f371V9t9Zul8/0txCe+hXDHqIdxlc5a
B+JjGq4g1IbWLlQbGVZVkmmOwd2s5zujtF6ZyF2JQPZuSlQIuA3b20Ht8V9t
46sQBIZuB2KR14p0eNjrvdIEJjf6wVqC1iws/dC1rhNYEsZWR6d1zjcLbvNl
x81i3Hwo3ULdGugdiCqzqIVN6jpqxK7EdZAvWCDZbC/r7we1+oArUPetPGZh
xEgCy4sCytKiNpB/+xFZcntJWis33M/+IXwGdQoIbGjcJO7vryZ/n6tJy7C5
iKdUz9IVLUvQ7etuq4lk7EYVKcvOVxp7jx4/PuAbSFXT/UQl/3hwKPlNjjC1
2EnQ320+6tRa+n69qb961m5Hww8eu40R3/1H+48Y38tdTgsg+DKasGAO3o3D
nRz1D482deCNTM8g4N6fcDZIWRZPPtFZWsXFeVLRG/vuiu5hkag8U3rtpNQ0
JegPKruq2LoeLnw4hbNrt2qnbwkm5zzQ2rbGy0p1yAm+Uv8CCD8UmQXsVnA6
hNF1hMFjoSKz/PlYn1rg5kvP6gbZ+t1bLT2flsut+qzotmuFCy7+hPcdIbXS
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
1Ignf9Yo/w8RvaJpKgQDAA==

-->

</rfc>
