<?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.11 (Ruby 3.2.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ntw-attachment-circuit-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.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-11"/>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Richard Roberts">
      <organization>Juniper</organization>
      <address>
        <email>rroberts@juniper.net</email>
      </address>
    </author>
    <author fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <author fullname="Samier Barguil Giraldo">
      <organization>Nokia</organization>
      <address>
        <email>samier.barguil_giraldo@nokia.com</email>
      </address>
    </author>
    <author fullname="Bo Wu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>lana.wubo@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="May" day="15"/>
    <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 104?>

<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 110?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Connectivity services are provided by networks to customers via
   dedicated terminating points, such as Service Functions <xref target="RFC7665"/>,
   customer edges (CEs), peer Autonomous System Border Routers (ASBRs),
   data centers gateways, or Internet Exchange Points.</t>
      <t>The procedure to provision a service in a service provider network may depend on the practices adopted by a service provider, including the flow put in place for the provisioning of advanced network services and how they are bound to an Attachment Circuit (AC). For example, the same attachment circuit may host multiple services (e.g., Layer 2 Virtual Private Network (VPN), or Layer 3 VPN, or Network Slice Service <xref target="RFC9543"/>). In order to avoid service interference and redundant information in various locations, a service provider may expose an interface to manage ACs network-wide. Customers can then request a standalone attachment circuit to be put in place, and then refer to that attachment circuit when requesting services to be bound to that AC. <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/> specifies a data model for managing attachment circuits as a service.</t>
      <t><xref target="sec-module"/> specifies a network model for attachment circuits ('ietf-ac-ntw'). The model can be used for the provisioning of ACs prior or during service provisioning. For example, <xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/> specifies augmentations to the L2VPN Network Model (L2NM) <xref target="RFC9291"/> and the L3VPN Network Model (L3NM) <xref target="RFC9182"/> to bind LxVPNs to ACs that are provisioned using the procedure defined in this document.</t>
      <t>The document leverages <xref target="RFC9182"/> and <xref target="RFC9291"/> by adopting an AC provisioning structure that uses data nodes that are defined in these RFCs. Some refinements were introduced to cover, not only conventional service provider networks, but also specifics of other target deployments (cloud network, for example).</t>
      <t>The AC network model is designed as augmentations to both the 'ietf-network' model <xref target="RFC8345"/> and the Service Attachment Point (SAP) model <xref target="RFC9408"/>. An attachment circuit can be bound to a single or multiple SAPs. Likewise, the model is designed to accommodate deployments where a SAP can be bound to one or multiple ACs (e.g., a parent AC and its child ACs).</t>
      <figure anchor="sap-ac-ntw">
        <name>Attachment Circuits Examples</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="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 data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      <t>Sample examples are provided in <xref target="sec-examples"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The reader should be familiar with the terms defined in <xref section="2" sectionFormat="of" target="RFC9408"/>.</t>
      <t>This document uses the term "network model" as defined in <xref section="2.1" sectionFormat="of" target="RFC8969"/>.</t>
      <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      <t>LxSM refers to both the Layer 2 Service Model (L2SM) <xref target="RFC8466"/> and the Layer 3 Service Model (L3SM) <xref target="RFC8299"/>.</t>
      <t>LxNM refers to both the L2VPN Network Model (L2NM) <xref target="RFC9291"/> and the L3VPN Network Model (L3NM) <xref target="RFC9182"/>.</t>
      <t>The following are used in the module prefixes:</t>
      <dl>
        <dt>ac:</dt>
        <dd>
          <t>Attachment circuit</t>
        </dd>
        <dt>ntw:</dt>
        <dd>
          <t>Network</t>
        </dd>
        <dt>sap:</dt>
        <dd>
          <t>Service Attchment Point</t>
        </dd>
        <dt>svc:</dt>
        <dd>
          <t>Service</t>
        </dd>
      </dl>
      <t>In addition, this document uses the following terms:</t>
      <dl>
        <dt>Bearer:</dt>
        <dd>
          <t>A physical or logical link that connects a customer node (or site) to a provider network.</t>
        </dd>
        <dt/>
        <dd>
          <t>A bearer can be a wireless or wired link. One or multiple technologies can be used to build a bearer. The bearer type can be specified by a customer.</t>
        </dd>
        <dt/>
        <dd>
          <t>The operator allocates a unique bearer reference to identify a bearer within its network (e.g., customer line identifier). Such a reference can be retrieved by a customer and then used in subsequent service placement requests to unambiguously identify where a service is to be bound.</t>
        </dd>
        <dt/>
        <dd>
          <t>The concept of bearer can be generalized to refer to the required underlying connection for the provisioning of an attachment circuit.</t>
        </dd>
        <dt/>
        <dd>
          <t>One or multiple attachment circuits may be hosted over the same bearer (e.g., multiple Virtual Local Area Networks (VLANs) on the same bearer that is provided by a physical link).</t>
        </dd>
        <dt>Network controller:</dt>
        <dd>
          <t>Denotes a functional entity responsible for the management of the service provider network. One or multiple network controllers can be deployed in a service provider network.</t>
        </dd>
        <dt>Service orchestrator:</dt>
        <dd>
          <t>Refers to a functional entity that interacts with the customer of a network service.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service orchestrator is typically responsible for the attachment circuits, the Provider Edge (PE) selection, and requesting the activation of the requested services to a network controller.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service orchestrator may interact with one or more network controllers.</t>
        </dd>
        <dt>Service provider network:</dt>
        <dd>
          <t>A network that is able to provide network services (e.g., L2VPN, L3VPN, or Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>A service provider that offers network services (e.g., L2VPN, L3VPN, or Network Slice Services).</t>
        </dd>
      </dl>
    </section>
    <section anchor="relationship-to-other-ac-data-models">
      <name>Relationship to Other AC Data Models</name>
      <t><xref target="ac-overview"/> depicts the relationship between the various AC data models:</t>
      <ul spacing="normal">
        <li>
          <t>"ietf-ac-common" (<xref target="I-D.ietf-opsawg-teas-common-ac"/>)</t>
        </li>
        <li>
          <t>"ietf-bearer-svc" (<xref section="5.1" sectionFormat="of" target="I-D.ietf-opsawg-teas-attachment-circuit"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-svc" (<xref section="5.2" sectionFormat="of" target="I-D.ietf-opsawg-teas-attachment-circuit"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-ntw" (<xref target="sec-module"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-glue" (<xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/>)</t>
        </li>
      </ul>
      <figure anchor="ac-overview">
        <name>AC Data Models</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="368" viewBox="0 0 368 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 32,144 L 32,240" fill="none" stroke="black"/>
              <path d="M 56,80 L 56,112" fill="none" stroke="black"/>
              <path d="M 72,144 L 72,176" fill="none" stroke="black"/>
              <path d="M 144,48 L 144,80" fill="none" stroke="black"/>
              <path d="M 192,40 L 192,112" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,80" fill="none" stroke="black"/>
              <path d="M 328,80 L 328,160" fill="none" stroke="black"/>
              <path d="M 328,192 L 328,240" fill="none" stroke="black"/>
              <path d="M 56,80 L 144,80" fill="none" stroke="black"/>
              <path d="M 240,80 L 328,80" fill="none" stroke="black"/>
              <path d="M 104,128 L 128,128" fill="none" stroke="black"/>
              <path d="M 72,176 L 264,176" fill="none" stroke="black"/>
              <path d="M 32,240 L 120,240" fill="none" stroke="black"/>
              <path d="M 240,240 L 328,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="336,192 324,186.4 324,197.6" fill="black" transform="rotate(270,328,192)"/>
              <polygon class="arrowhead" points="248,48 236,42.4 236,53.6" fill="black" transform="rotate(270,240,48)"/>
              <polygon class="arrowhead" points="200,40 188,34.4 188,45.6" fill="black" transform="rotate(270,192,40)"/>
              <polygon class="arrowhead" points="152,48 140,42.4 140,53.6" fill="black" transform="rotate(270,144,48)"/>
              <polygon class="arrowhead" points="136,128 124,122.4 124,133.6" fill="black" transform="rotate(0,128,128)"/>
              <polygon class="arrowhead" points="112,128 100,122.4 100,133.6" fill="black" transform="rotate(180,104,128)"/>
              <polygon class="arrowhead" points="80,144 68,138.4 68,149.6" fill="black" transform="rotate(270,72,144)"/>
              <polygon class="arrowhead" points="40,144 28,138.4 28,149.6" fill="black" transform="rotate(270,32,144)"/>
              <g class="text">
                <text x="188" y="36">ietf-ac-common</text>
                <text x="48" y="132">ietf-ac-svc</text>
                <text x="200" y="132">ietf-bearer-svc</text>
                <text x="320" y="180">ietf-ac-ntw</text>
                <text x="180" y="244">ietf-ac-glue</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                ietf-ac-common
                 ^     ^     ^
                 |     |     |
      +----------+     |     +----------+
      |                |                |
      |                |                |
ietf-ac-svc <--> ietf-bearer-svc        |
   ^    ^                               |
   |    |                               |
   |    +------------------------ ietf-ac-ntw
   |                                    ^
   |                                    |
   |                                    |
   +----------- ietf-ac-glue -----------+
]]></artwork>
        </artset>
      </figure>
      <t>"ietf-ac-common" is imported  by "ietf-bearer-svc", "ietf-ac-svc", and "ietf-ac-ntw".
Bearers managed using "ietf-bearer-svc" may be referenced in the service ACs managed using "ietf-ac-svc".
Similarly, a bearer managed using "ietf-bearer-svc" may list the set of ACs that use that bearer.
In order to ease correlation between an AC service requests and the actual AC provisioned in the network, "ietf-ac-ntw" uses the AC references exposed by "ietf-ac-svc".
To bind Layer 2 VPN or Layer 3 VPN services with ACs, "ietf-ac-glue" augments the LxSM and LxNM with AC service references exposed by "ietf-ac-svc" and AC network references exposed by "ietf-ac-ntw".</t>
    </section>
    <section anchor="sample-uses-of-the-attachment-circuit-data-models">
      <name>Sample Uses of the Attachment Circuit Data Models</name>
      <t><xref target="_u-ex"/> shows the positioning of the AC network model in the overall service delivery process. The 'ietf-ac-ntw' module is a network model which augments the SAP with a comprehensive set of parameters to reflect the attachment circuits that are in place in a network. The model also maintains the mapping with the service references that are used to expose these ACs to customers <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>. Whether the same naming conventions to reference an AC are used in the service and network layers is deployment-specific.</t>
      <figure anchor="_u-ex">
        <name>An Example of the Network AC Model Usage</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="512" viewBox="0 0 512 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,560 L 8,592" fill="none" stroke="black"/>
              <path d="M 48,560 L 48,592" fill="none" stroke="black"/>
              <path d="M 96,432 L 96,480" fill="none" stroke="black"/>
              <path d="M 104,320 L 104,368" fill="none" stroke="black"/>
              <path d="M 120,544 L 120,608" fill="none" stroke="black"/>
              <path d="M 136,368 L 136,432" fill="none" stroke="black"/>
              <path d="M 136,480 L 136,536" fill="none" stroke="black"/>
              <path d="M 176,288 L 176,320" fill="none" stroke="black"/>
              <path d="M 176,432 L 176,480" fill="none" stroke="black"/>
              <path d="M 208,32 L 208,64" fill="none" stroke="black"/>
              <path d="M 208,112 L 208,160" fill="none" stroke="black"/>
              <path d="M 208,208 L 208,256" fill="none" stroke="black"/>
              <path d="M 208,376 L 208,496" fill="none" stroke="black"/>
              <path d="M 232,320 L 232,368" fill="none" stroke="black"/>
              <path d="M 272,64 L 272,80" fill="none" stroke="black"/>
              <path d="M 272,160 L 272,208" fill="none" stroke="black"/>
              <path d="M 272,256 L 272,288" fill="none" stroke="black"/>
              <path d="M 296,320 L 296,368" fill="none" stroke="black"/>
              <path d="M 336,32 L 336,64" fill="none" stroke="black"/>
              <path d="M 336,112 L 336,160" fill="none" stroke="black"/>
              <path d="M 336,208 L 336,256" fill="none" stroke="black"/>
              <path d="M 368,288 L 368,320" fill="none" stroke="black"/>
              <path d="M 368,368 L 368,536" fill="none" stroke="black"/>
              <path d="M 384,544 L 384,608" fill="none" stroke="black"/>
              <path d="M 424,320 L 424,368" fill="none" stroke="black"/>
              <path d="M 456,560 L 456,592" fill="none" stroke="black"/>
              <path d="M 496,560 L 496,592" fill="none" stroke="black"/>
              <path d="M 208,32 L 336,32" fill="none" stroke="black"/>
              <path d="M 208,64 L 336,64" fill="none" stroke="black"/>
              <path d="M 208,112 L 336,112" fill="none" stroke="black"/>
              <path d="M 208,160 L 336,160" fill="none" stroke="black"/>
              <path d="M 208,208 L 336,208" fill="none" stroke="black"/>
              <path d="M 208,256 L 336,256" fill="none" stroke="black"/>
              <path d="M 176,288 L 368,288" fill="none" stroke="black"/>
              <path d="M 104,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 296,320 L 424,320" fill="none" stroke="black"/>
              <path d="M 104,368 L 232,368" fill="none" stroke="black"/>
              <path d="M 296,368 L 424,368" fill="none" stroke="black"/>
              <path d="M 96,432 L 176,432" fill="none" stroke="black"/>
              <path d="M 96,480 L 176,480" fill="none" stroke="black"/>
              <path d="M 120,544 L 384,544" fill="none" stroke="black"/>
              <path d="M 8,560 L 48,560" fill="none" stroke="black"/>
              <path d="M 456,560 L 496,560" fill="none" stroke="black"/>
              <path d="M 48,576 L 120,576" fill="none" stroke="black"/>
              <path d="M 384,576 L 456,576" fill="none" stroke="black"/>
              <path d="M 8,592 L 48,592" fill="none" stroke="black"/>
              <path d="M 456,592 L 496,592" fill="none" stroke="black"/>
              <path d="M 120,608 L 384,608" fill="none" stroke="black"/>
              <g class="text">
                <text x="268" y="52">Customer</text>
                <text x="108" y="84">Customer</text>
                <text x="176" y="84">Service</text>
                <text x="232" y="84">Model</text>
                <text x="44" y="100">l2vpn-svc,</text>
                <text x="132" y="100">l3vpn-svc,</text>
                <text x="216" y="100">ietf-nss,</text>
                <text x="288" y="100">ac-svc,</text>
                <text x="356" y="100">ac-glue,</text>
                <text x="408" y="100">and</text>
                <text x="468" y="100">bearer-svc</text>
                <text x="272" y="132">Service</text>
                <text x="272" y="148">Orchestration</text>
                <text x="112" y="180">Network</text>
                <text x="168" y="180">Model</text>
                <text x="92" y="196">l2vpn-ntw,</text>
                <text x="180" y="196">l3vpn-ntw,</text>
                <text x="244" y="196">sap,</text>
                <text x="316" y="196">ac-glue,</text>
                <text x="368" y="196">and</text>
                <text x="412" y="196">ac-ntw</text>
                <text x="264" y="228">Network</text>
                <text x="272" y="244">Orchestration</text>
                <text x="56" y="276">Network</text>
                <text x="144" y="276">Configuration</text>
                <text x="224" y="276">Model</text>
                <text x="164" y="340">Domain</text>
                <text x="364" y="340">Domain</text>
                <text x="168" y="356">Orchestration</text>
                <text x="360" y="356">Orchestration</text>
                <text x="36" y="388">Device</text>
                <text x="64" y="404">Configuration</text>
                <text x="32" y="420">Model</text>
                <text x="132" y="452">Config</text>
                <text x="136" y="468">Manager</text>
                <text x="256" y="516">NETCONF/CLI................</text>
                <text x="376" y="516">.</text>
                <text x="208" y="532">|</text>
                <text x="84" y="564">Bearer</text>
                <text x="420" y="564">Bearer</text>
                <text x="28" y="580">CE#1</text>
                <text x="248" y="580">Network</text>
                <text x="476" y="580">CE#2</text>
                <text x="28" y="628">Site</text>
                <text x="56" y="628">A</text>
                <text x="476" y="628">Site</text>
                <text x="504" y="628">B</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                          .---------------.
                          |   Customer    |
                          '-------+-------'
          Customer Service Model  |
 l2vpn-svc, l3vpn-svc, ietf-nss, ac-svc, ac-glue, and bearer-svc
                          .-------+-------.
                          |    Service    |
                          | Orchestration |
                          '-------+-------'
           Network Model          |
       l2vpn-ntw, l3vpn-ntw, sap, | ac-glue, and ac-ntw
                          .-------+-------.
                          |   Network     |
                          | Orchestration |
                          '-------+-------'
    Network Configuration Model   |
                      .-----------+-----------.
                      |                       |
             .--------+------.       .--------+------.
             |    Domain     |       |     Domain    |
             | Orchestration |       | Orchestration |
             '---+-----------'       '--------+------'
  Device         |        |                   |
  Configuration  |        |                   |
  Model          |        |                   |
            .----+----.   |                   |
            | Config  |   |                   |
            | Manager |   |                   |
            '----+----'   |                   |
                 |        |                   |
                 | NETCONF/CLI..................
                 |        |                   |
               .--------------------------------.
 .----. Bearer |                                | Bearer .----.
 |CE#1+--------+            Network             +--------+CE#2|
 '----'        |                                |        '----'
               '--------------------------------'
  Site A                                                  Site B
]]></artwork>
        </artset>
      </figure>
      <t>Similar to <xref target="RFC9408"/>, the 'ietf-ac-ntw' module can be used for both User-to-Network Interface (UNI) and
Network-to-Network Interface (NNI). For example, all the ACs shown in <xref target="fig-inter-pn"/> have a 'role' set
to 'ietf-sap-ntw:nni'. Typically, 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 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 can be generated using the
"pyang" tool <xref target="PYANG"/>.  That tree is not included here because it is
too long (<xref section="3.4" sectionFormat="of" target="RFC8340"/>).  Instead, subtrees are provided in the following subsections
for the reader's convenience.</t>
      <t>The full tree of the 'ietf-ac-ntw' is provided in <xref target="AC-Ntw-Tree"/>.</t>
      <section anchor="overall-structure-of-the-module">
        <name>Overall Structure of the Module</name>
        <t>The overall tree structure of the '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 ac-svc-ref?          ac-svc:attachment-circuit-reference
     +--rw ac-profile* [ac-profile-ref]
     |  +--rw ac-profile-ref    leafref
     |  +--rw network-ref?      -> /nw:networks/network/network-id
     +--rw ac-parent-ref
     |  +--rw ac-ref?        leafref
     |  +--rw node-ref?      leafref
     |  +--rw network-ref?   -> /nw:networks/network/network-id
     +--rw peer-sap-id*         string
     +--rw group* [group-id]
     |  +--rw group-id      string
     |  +--rw precedence?   identityref
     +--rw status
     |  +--rw admin-status
     |  |  +--rw status?        identityref
     |  |  +--ro last-change?   yang:date-and-time
     |  +--ro oper-status
     |     +--ro status?        identityref
     |     +--ro last-change?   yang:date-and-time
     +--rw description?         string
     +--rw l2-connection  {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 ('ac-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 'ac-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.</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 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>The exact definition of the specific provisioning profiles profiles is local to each service provider. The model only includes an identifier for these profiles in order to ease identifying and binding local policies when building an AC. As shown in <xref target="profiles-tree"/>, the following identifiers can be included:</t>
        <dl>
          <dt>'encryption-profile-identifier':</dt>
          <dd>
            <t>An encryption profile refers to a set of policies related to the encryption schemes and setup that can be applied on the AC.</t>
          </dd>
          <dt>'qos-profile-identifier':</dt>
          <dd>
            <t>A Quality of Service (QoS) profile refers to a set of policies such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
          </dd>
          <dt>'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.</t>
          </dd>
          <dt>'forwarding-profile-identifier':</dt>
          <dd>
            <t>A forwarding profile refers to the policies that apply to the forwarding of packets conveyed over an AC. Such policies may consist of, for example, applying Access Control Lists (ACLs).</t>
          </dd>
          <dt>'routing-profile-identifier':</dt>
          <dd>
            <t>A routing profile refers to a set of routing policies that will be invoked (e.g., BGP policies) for an AC.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-l2">
        <name>L2 Connection</name>
        <t>The 'l2-connection' container is used to manage the Layer 2 properties of an AC. The  Layer 2 connection tree structure is shown in <xref target="l2-tree"/>.</t>
        <figure anchor="l2-tree">
          <name>Layer 2 Connection Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection  {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 'ac-svc-ref'.</t>
      </section>
      <section anchor="sec-rtg">
        <name>Routing</name>
        <t>The overall routing subtree structure is shown in <xref target="rtg-tree"/>.</t>
        <figure anchor="rtg-tree">
          <name>Routing Tree Structure</name>
          <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp  {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-profiles') can be provided for
a given routing instance.</t>
        <section anchor="sec-static-rtg">
          <name>Static Routing</name>
          <t>The static routing subtree structure is shown in <xref target="static-tree"/>.</t>
          <figure anchor="static-tree">
            <name>Static Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
          ...
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       ...
       +--rw l2-connection  {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 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  {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 multihop?                 uint8
       |     |  |     +--rw as-override?              boolean
       |     |  |     +--rw allow-own-as?             uint8
       |     |  |     +--rw prepend-global-as?        boolean
       |     |  |     +--rw send-default-route?       boolean
       |     |  |     +--rw site-of-origin?
       |     |  |     |       rt-types:route-origin
       |     |  |     +--rw ipv6-site-of-origin?
       |     |  |     |       rt-types:ipv6-route-origin
       |     |  |     +--rw redistribute-connected* [address-family]
       |     |  |     |  +--rw address-family    identityref
       |     |  |     |  +--rw enabled?           boolean
       |     |  |     +--rw bgp-max-prefix
       |     |  |     |  +--rw max-prefix?          uint32
       |     |  |     |  +--rw warning-threshold?   decimal64
       |     |  |     |  +--rw violate-action?      enumeration
       |     |  |     |  +--rw restart-timer?       uint32
       |     |  |     +--rw bgp-timers
       |     |  |     |  +--rw keepalive?   uint16
       |     |  |     |  +--rw hold-time?   uint16
       |     |  |     +--rw capability*        [address-family]
       |     |  |     |   +--rw address-family    identityref
       |     |  |     |   +--rw name              identityref
       |     |  |     +--rw authentication
       |     |  |        +--rw enabled?            boolean
       |     |  |        +--rw keying-material
       |     |  |           +--rw (option)?
       |     |  |              +--:(ao)
       |     |  |              |  +--rw enable-ao?          boolean
       |     |  |              |  +--rw ao-keychain?
       |     |  |              |          key-chain:key-chain-ref
       |     |  |              +--:(md5)
       |     |  |              |  +--rw md5-keychain?
       |     |  |              |          key-chain:key-chain-ref
       |     |  |              +--:(explicit)
       |     |  |                 +--rw key-id?             uint32
       |     |  |                 +--rw key?                string
       |     |  |                 +--rw crypto-algorithm?
       |     |  |                         identityref
       |     |  +--rw neighbor* [remote-address]
       |     |     +--rw remote-address            inet:ip-address
       |     |     +--rw local-address?            union
       |     |     +--rw peer-group?
       |     |     |       -> ../../peer-groups/peer-group/name
       |     |     +--rw description?              string
       |     |     +--rw apply-policy
       |     |     |  +--rw import-policy*           leafref
       |     |     |  +--rw default-import-policy?
       |     |     |  |       default-policy-type
       |     |     |  +--rw export-policy*           leafref
       |     |     |  +--rw default-export-policy?
       |     |     |          default-policy-type
       |     |     +--rw local-as?                 inet:as-number
       |     |     +--rw peer-as                   inet:as-number
       |     |     +--rw address-family?           identityref
       |     |     +--rw multihop?                 uint8
       |     |     +--rw as-override?              boolean
       |     |     +--rw allow-own-as?             uint8
       |     |     +--rw prepend-global-as?        boolean
       |     |     +--rw send-default-route?       boolean
       |     |     +--rw site-of-origin?
       |     |     |       rt-types:route-origin
       |     |     +--rw ipv6-site-of-origin?
       |     |     |       rt-types:ipv6-route-origin
       |     |     +--rw redistribute-connected* [address-family]
       |     |     |  +--rw address-family    identityref
       |     |     |  +--rw enabled?           boolean
       |     |     +--rw bgp-max-prefix
       |     |     |  +--rw max-prefix?          uint32
       |     |     |  +--rw warning-threshold?   decimal64
       |     |     |  +--rw violate-action?      enumeration
       |     |     |  +--rw restart-timer?       uint32
       |     |     +--rw bgp-timers
       |     |     |  +--rw keepalive?   uint16
       |     |     |  +--rw hold-time?   uint16
       |     |     +--rw capability*        [address-family]
       |     |     |   +--rw address-family    identityref
       |     |     |   +--rw name              identityref
       |     |     +--rw bfd {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>'multihop':</dt>
            <dd>
              <t>Indicates the number of allowed IP hops to reach a BGP peer.</t>
            </dd>
            <dt>'as-override':</dt>
            <dd>
              <t>If set, this parameter indicates whether ASN override
   is enabled, i.e., replacing the ASN of the customer specified in
   the AS_PATH BGP attribute with the ASN identified in the 'local-
   as' attribute.</t>
            </dd>
            <dt>'allow-own-as':</dt>
            <dd>
              <t>Used in some topologies (e.g., hub-and-spoke) to
   allow the provider's ASN to be included in the AS_PATH BGP
   attribute received from a peer.  Loops are prevented by setting
   'allow-own-as' to a maximum number of the provider's ASN
   occurrences.  By default, this parameter is set to '0' (that is,
   reject any AS_PATH attribute that includes the provider's ASN).</t>
            </dd>
            <dt>'prepend-global-as':</dt>
            <dd>
              <t>When distinct ASNs are configured at the
   node and AC levels, this parameter controls whether
   the ASN provided at the node level is prepended to the AS_PATH
   attribute.</t>
            </dd>
            <dt>'send-default-route':</dt>
            <dd>
              <t>Controls whether default routes can be advertised to the peer.</t>
            </dd>
            <dt>'site-of-origin':</dt>
            <dd>
              <t>Meant to uniquely identify the set of routes
   learned from a site via a particular AC.  It is used
   to prevent routing loops (<xref section="7" sectionFormat="of" target="RFC4364"/>).  The Site of
   Origin attribute is encoded as a Route Origin Extended Community.</t>
            </dd>
            <dt>'ipv6-site-of-origin':</dt>
            <dd>
              <t>Carries an IPv6 Address Specific BGP Extended
    Community that is used to indicate the Site of Origin <xref target="RFC5701"/>.  It is used to prevent routing loops.</t>
            </dd>
            <dt>'redistribute-connected':</dt>
            <dd>
              <t>Controls whether the AC is advertised to other PEs.</t>
            </dd>
          </dl>
          <t>'bgp-max-prefix':  Controls the behavior when a prefix maximum is
      reached.</t>
          <dl>
            <dt>'max-prefix':</dt>
            <dd>
              <t>Indicates the maximum number of BGP prefixes
    allowed in a session for this group.  If the limit is reached, the
    action indicated in 'violate-action' will be followed.</t>
            </dd>
            <dt>'warning-threshold':</dt>
            <dd>
              <t>A warning notification is triggered when this limit is reached.</t>
            </dd>
            <dt>'violate-action':</dt>
            <dd>
              <t>Indicates which action to execute when the
    maximum number of BGP prefixes is reached.  Examples of such
    actions include sending a warning message, discarding extra
    paths from the peer, or restarting the session.</t>
            </dd>
            <dt>'restart-timer':</dt>
            <dd>
              <t>Indicates, in seconds, the time interval after
 which the BGP session will be reestablished.</t>
            </dd>
            <dt>'bgp-timers':</dt>
            <dd>
              <t>Two timers can be captured in this container: (1)
   'hold-time', which is the time interval that will be used for the
   Hold Timer (<xref section="4.2" sectionFormat="of" target="RFC4271"/>) when establishing a BGP
   session and (2) 'keepalive', which is the time interval for the
   KeepaliveTimer between a PE and a BGP peer (<xref section="4.4" sectionFormat="of" target="RFC4271"/>).</t>
            </dd>
            <dt/>
            <dd>
              <t>Both timers are expressed in seconds.</t>
            </dd>
            <dt>'capability':</dt>
            <dd>
              <t>Specifies a set of BGP capabilities (e.g., route refresh capability <xref target="RFC2918"/>)
to be enabled per address family.</t>
            </dd>
            <dt>'bfd':</dt>
            <dd>
              <t>Indicates whether BFD is enabled or disabled for this nighbor. A BFD profile to apply may also be provided.</t>
            </dd>
            <dt>'authentication':</dt>
            <dd>
              <t>The module adheres to the recommendations in
   <xref section="13.2" sectionFormat="of" target="RFC4364"/>, as it allows enabling the TCP
   Authentication Option (TCP-AO) <xref target="RFC5925"/> and accommodates the
   installed base that makes use of MD5.  In addition, the module
   includes a provision for using IPsec.</t>
            </dd>
            <dt/>
            <dd>
              <t>This version of the model assumes that parameters specific to the
    TCP-AO are preconfigured as part of the key chain that is
    referenced in the model.  No assumption is made about how such a
    key chain is preconfigured.  However, the structure of the key
    chain should cover data nodes beyond those in <xref target="RFC8177"/>, mainly
    SendID and RecvID (<xref section="3.1" sectionFormat="of" target="RFC5925"/>).</t>
            </dd>
          </dl>
          <t>For each neighbor, the following data nodes are supported in addition to similar parameters that are provided for a peer group:</t>
          <dl>
            <dt>'remote-address':</dt>
            <dd>
              <t>Specifies the remote IP address of a BGP neighbor.</t>
            </dd>
            <dt>'peer-group':</dt>
            <dd>
              <t>A name of a peer group.</t>
            </dd>
            <dt/>
            <dd>
              <t>Parameters that are provided at the 'neighbor' level takes precedence over the ones provided in the peer group.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the BGP session.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-ospf-rtg">
          <name>OSPF</name>
          <t>The OSPF routing subtree structure is shown in <xref target="ospf-tree"/>.</t>
          <figure anchor="ospf-tree">
            <name>OSPF Routing Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp  {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), or both are
   to be enabled <xref target="RFC2080"/>.</t>
            </dd>
            <dt>'timers':</dt>
            <dd>
              <t>Indicates the following timers (expressed in seconds):
</t>
              <ul spacing="normal">
                <li>
                  <dl>
                    <dt>'update-interval':</dt>
                    <dd>
                      <t>The interval at which RIP updates are sent.</t>
                    </dd>
                  </dl>
                </li>
                <li>
                  <dl>
                    <dt>'invalid-interval':</dt>
                    <dd>
                      <t>The interval before a RIP route is declared invalid.</t>
                    </dd>
                  </dl>
                </li>
                <li>
                  <dl>
                    <dt>'holddown-interval':</dt>
                    <dd>
                      <t>The interval before better RIP routes are released.</t>
                    </dd>
                  </dl>
                </li>
                <li>
                  <dl>
                    <dt>'flush-interval':</dt>
                    <dd>
                      <t>The interval before a route is removed from the routing table.</t>
                    </dd>
                  </dl>
                </li>
              </ul>
            </dd>
            <dt>'default-metric':</dt>
            <dd>
              <t>Sets the default RIP metric.</t>
            </dd>
            <dt>'authentication':</dt>
            <dd>
              <t>Controls the authentication schemes to be enabled for the RIP instance.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the RIP routing instance.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-VRRP-rtg">
          <name>VRRP</name>
          <t>The VRRP subtree structure is shown in <xref target="vrrp-tree"/>.</t>
          <figure anchor="vrrp-tree">
            <name>VRRP Tree Structure</name>
            <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp  {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-profile-ref':</dt>
          <dd>
            <t>Refers to a BFD profile (<xref target="sec-profiles"/>).</t>
          </dd>
          <dt>'network-ref':</dt>
          <dd>
            <t>Includes a network reference to uniquely identify a BFD profile.</t>
          </dd>
          <dt>'session-type':</dt>
          <dd>
            <t>Indicates which BFD flavor is used to set up the session (e.g., classic BFD <xref target="RFC5880"/>, Seamless BFD <xref target="RFC7880"/>). By default, it is assumed that the BFD session will follow the behavior specified in <xref target="RFC5880"/>.</t>
          </dd>
          <dt>'desired-min-tx-interval':</dt>
          <dd>
            <t>The minimum interval, in microseconds, to use when transmitting BFD Control packets, less any jitter applied.</t>
          </dd>
          <dt>'required-min-rx-interval':</dt>
          <dd>
            <t>The minimum interval, in microseconds, between received BFD Control packets less any jitter applied by the sender.</t>
          </dd>
          <dt>'local-multiplier':</dt>
          <dd>
            <t>The negotiated transmit interval, multiplied by this value, provides the detection time for the peer.</t>
          </dd>
          <dt>'holdtime':</dt>
          <dd>
            <t>Used to indicate the expected BFD holddown time, in milliseconds.</t>
          </dd>
          <dt>'authentication':</dt>
          <dd>
            <t>Includes the required information to enable the BFD authentication modes discussed in <xref section="6.7" sectionFormat="of" target="RFC5880"/>. In particular, 'meticulous' controls the activation of meticulous mode as discussed in Sections 6.7.3 and 6.7.4 of <xref target="RFC5880"/>.</t>
          </dd>
          <dt>'status':</dt>
          <dd>
            <t>Indicates the status of BFD.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-sec">
        <name>Security</name>
        <t>The security subtree structure is shown in <xref target="sec-tree"/>. The 'security' container specifies the authentication and the encryption to be applied to traffic for a given AC. Tthe model can be used to directly control the encryption to be applied (e.g., Layer 2 or Layer 3 encryption) or invoke a local encryption profile.</t>
        <figure anchor="sec-tree">
          <name>Security Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  +--rw encryption {vpn-common:encryption}?
       |  |  +--rw enabled?   boolean
       |  |  +--rw layer?     enumeration
       |  +--rw encryption-profile
       |     +--rw (profile)?
       |        +--:(provider-profile)
       |        |  +--rw encryption-profile-ref?   leafref
       |        |  +--rw network-ref?
       |        |          -> /nw:networks/network/network-id
       |        +--:(customer-profile)
       |           +--rw customer-key-chain?   key-chain:key-chain-ref
       +--rw service
          ...
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-svc">
        <name>Service</name>
        <t>The service subtree structure is shown in <xref target="svc-tree"/>.</t>
        <figure anchor="svc-tree">
          <name>Service Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node:
    +--rw ac* [name]
       +--rw name                 string
       + ...
       +--rw l2-connection  {ac-common:layer2-ac}?
       |  ...
       +--rw ip-connection  {ac-common:layer3-ac}?
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          +--rw mtu?                      uint32
          +--rw svc-pe-to-ce-bandwidth {vpn-common:inbound-bw}?
          |  +--rw bandwidth* [bw-type]
          |     +--rw bw-type      identityref
          |     +--rw (type)?
          |        +--:(per-cos)
          |        |  +--rw cos* [cos-id]
          |        |     +--rw cos-id    uint8
          |        |     +--rw cir?      uint64
          |        |     +--rw cbs?      uint64
          |        |     +--rw eir?      uint64
          |        |     +--rw ebs?      uint64
          |        |     +--rw pir?      uint64
          |        |     +--rw pbs?      uint64
          |        +--:(other)
          |           +--rw cir?   uint64
          |           +--rw cbs?   uint64
          |           +--rw eir?   uint64
          |           +--rw ebs?   uint64
          |           +--rw pir?   uint64
          |           +--rw pbs?   uint64
          +--rw svc-ce-to-pe-bandwidth {vpn-common:outbound-bw}?
          |  +--rw bandwidth* [bw-type]
          |     +--rw bw-type      identityref
          |     +--rw (type)?
          |        +--:(per-cos)
          |        |  +--rw cos* [cos-id]
          |        |     +--rw cos-id    uint8
          |        |     +--rw cir?      uint64
          |        |     +--rw cbs?      uint64
          |        |     +--rw eir?      uint64
          |        |     +--rw ebs?      uint64
          |        |     +--rw pir?      uint64
          |        |     +--rw pbs?      uint64
          |        +--:(other)
          |           +--rw cir?   uint64
          |           +--rw cbs?   uint64
          |           +--rw eir?   uint64
          |           +--rw ebs?   uint64
          |           +--rw pir?   uint64
          |           +--rw pbs?   uint64
          +--rw qos {vpn-common:qos}?
          |  +--rw qos-profiles
          |     +--rw qos-profile* [qos-profile-ref]
          |        +--rw qos-profile-ref    leafref
          |        +--rw network-ref?
          |        |       -> /nw:networks/network/network-id
          |        +--rw direction?         identityref
          +--rw access-control-list
             +--rw acl-profiles
                +--rw acl-profile* [forwarding-profile-ref]
                   +--rw forwarding-profile-ref    leafref
                   +--rw network-ref?
                           -> /nw:networks/network/network-id
]]></artwork>
        </figure>
        <t>The description of the service data nodes is as follows:</t>
        <dl>
          <dt>'mtu':</dt>
          <dd>
            <t>Specifies the Layer 2 MTU, in bytes, for the AC.</t>
          </dd>
          <dt>'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth':</dt>
          <dd>
            <t>Specify the service bandwidth for the AC.</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-pe-to-ce-bandwidth' indicates the inbound bandwidth of the connection (i.e., download bandwidth from the service provider to the site).</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-ce-to-pe-bandwidth' indicates the outbound bandwidth of the connection (i.e., upload bandwidth from the site to the service provider).</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth' can be represented using the Committed Information Rate (CIR), the Committed Burst Size (CBS), the Excess Information Rate (EIR), the Excess Burst Size (EBS), the Peak Information Rate (PIR), and the Peak Burst Size (PBS). CIR, EIR, and PIR are expressed in bps, while CBS, EBS, and PBS are expressed in bytes.</t>
          </dd>
          <dt/>
          <dd>
            <t>The following types, defined in <xref target="RFC9181"/>, can be used to indicate the bandwidth type:</t>
            <dl>
              <dt>'bw-per-cos':</dt>
              <dd>
                <t>The bandwidth is per CoS.</t>
              </dd>
              <dt>'bw-per-port':</dt>
              <dd>
                <t>The bandwidth is per port.</t>
              </dd>
              <dt>'bw-per-site':</dt>
              <dd>
                <t>The bandwidth is to all peer SAPs that belong to the same site.</t>
              </dd>
              <dt>'bw-per-service':</dt>
              <dd>
                <t>The bandwidth is per service instance that is bound to an AC.</t>
              </dd>
            </dl>
          </dd>
          <dt>'qos':</dt>
          <dd>
            <t>Specifies a list of QoS profiles to apply for this AC.</t>
          </dd>
          <dt>'access-control-list':</dt>
          <dd>
            <t>Specifies a list of ACL profiles to apply for this AC.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-module">
      <name>YANG Module</name>
      <t>This module uses types defined in <xref target="RFC6991"/>, <xref target="RFC8177"/>, <xref target="RFC8294"/>, <xref target="RFC8343"/>, <xref target="RFC9067"/>, <xref target="RFC9181"/>, <xref target="I-D.ietf-opsawg-teas-common-ac"/>, and <xref target="IEEE802.1Qcp"/>.</t>
      <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-ac-ntw@2024-05-15.yang"
module ietf-ac-ntw {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-ntw";
  prefix ac-ntw;

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

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

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

     Copyright (c) 2024 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2024-05-15 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Network Data Model for Attachment Circuits";
  }

  // References

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

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

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

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

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

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

  // L2 conenction

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

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

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

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

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

  // IPv4 connection groupings

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

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

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

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

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

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

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

  /* Routing */
  //BGP base parameters

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

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

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

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

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

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

  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 2453: RIP Version 2";
      leaf update-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "Indicates the RIP update time, i.e., the amount of time
           for which RIP updates are sent.";
      }
      leaf invalid-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "The interval before a route is declared invalid after no
           updates are received. This value is at least three times
           the value for the 'update-interval' argument.";
      }
      leaf holddown-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "Specifies the interval before better routes are 
           released.";
      }
      leaf flush-interval {
        type uint16 {
          range "1..32767";
        }
        units "seconds";
        description
          "Indicates the RIP flush timer, i.e., the amount of time
           that must elapse before a route is removed from the
           routing table.";
      }
    }
    leaf default-metric {
      type uint8 {
        range "0..16";
      }
      description
        "Sets the default metric.";
    }
  }

  // routing profile

  grouping routing-profile {
    description
      "Defines routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      leaf type {
        type identityref {
          base vpn-common:routing-protocol-type;
        }
        description
          "Type of routing protocol.";
      }
      container bgp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:bgp-routing')" {
          description
            "Only applies when the protocol is BGP.";
        }
        if-feature "vpn-common:rtg-bgp";
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Lists a set of BGP peer groups.";
          uses bgp-base-peer-group-list;
        }
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        if-feature "vpn-common:rtg-ospf";
        description
          "Configuration specific to OSPF.";
        uses ac-common:ospf-basic;
        leaf max-lsa {
          type uint32 {
            range "1..4294967294";
          }
          description
            "Maximum number of allowed Link State Advertisements
             (LSAs) that the OSPF instance will accept.";
        }
        leaf passive {
          type boolean;
          description
            "Enables when set to true a passive interface. It is
             active when set to false. A passive interface's prefix
             will be advertised, but no neighbor adjacencies will be
             formed on the interface.";
        }
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is IS-IS.";
        }
        if-feature "vpn-common:rtg-isis";
        description
          "Configuration specific to IS-IS.";
        uses ac-common:isis-basic;
        leaf level {
          type identityref {
            base vpn-common:isis-level;
          }
          description
            "Can be 'level-1', 'level-2', or 'level-1-2'.";
          reference
            "RFC 9181: A Common YANG Data Model for Layer 2 
                       and Layer 3 VPNs";
        }
        leaf metric {
          type uint32 {
            range "0 .. 16777215";
          }
          description
            "Metric of the AC. It is used in the routing state
             calculation and path selection.";
        }
        leaf passive {
          type boolean;
          description
            "When set to false, the interface is active. In such
             mode, the interface sends or receives IS-IS protocol
             control packets.

             When set to true, the interface is passive. That is,
             it suppresses the sending of IS-IS updates through the
             specified interface.";
        }
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.";
        }
        if-feature "vpn-common:rtg-rip";
        description
          "Configuration specific to RIP routing.";
        uses rip-base;
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the Virtual Router
             Redundancy Protocol (VRRP).";
        }
        if-feature "vpn-common:rtg-vrrp";
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 9568: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families
             are to be enabled.";
        }
        leaf ping-reply {
          type boolean;
          description
            "Controls whether the VRRP speaker should reply to ping
             requests.";
        }
      }
    }
  }

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

  // OAM

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

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

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

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

  // OAM

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

  // security

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

  // AC profile

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

  // AC network provisioning 

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

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-attachment-circuit-12"/>
        </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="14" month="May" year="2024"/>
            <abstract>
              <t>   The document specifies a common Attachment Circuits (ACs) YANG
   module, which is designed with the intent to be reusable by other
   models.  For example, this common model can be reused by service
   models to expose ACs as a service, service models that require
   binding a service to a set of ACs, network and device models to
   provision ACs, etc.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-common-ac-11"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9181">
          <front>
            <title>A Common YANG Data Model for Layer 2 and Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC8077">
          <front>
            <title>Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)</title>
            <author fullname="L. Martini" initials="L." role="editor" surname="Martini"/>
            <author fullname="G. Heron" initials="G." role="editor" surname="Heron"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>Layer 2 services (such as Frame Relay, Asynchronous Transfer Mode, and Ethernet) can be emulated over an MPLS backbone by encapsulating the Layer 2 Protocol Data Units (PDUs) and then transmitting them over pseudowires (PWs). It is also possible to use pseudowires to provide low-rate Time-Division Multiplexed and Synchronous Optical NETworking circuit emulation over an MPLS-enabled network. This document specifies a protocol for establishing and maintaining the pseudowires, using extensions to the Label Distribution Protocol (LDP). Procedures for encapsulating Layer 2 PDUs are specified in other documents.</t>
              <t>This document is a rewrite of RFC 4447 for publication as an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="84"/>
          <seriesInfo name="RFC" value="8077"/>
          <seriesInfo name="DOI" value="10.17487/RFC8077"/>
        </reference>
        <reference anchor="RFC9067">
          <front>
            <title>A YANG Data Model for Routing Policy</title>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model for configuring and managing routing policies in a vendor-neutral way. The model provides a generic routing policy framework that can be extended for specific routing protocols using the YANG 'augment' mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9067"/>
          <seriesInfo name="DOI" value="10.17487/RFC9067"/>
        </reference>
        <reference anchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC5701">
          <front>
            <title>IPv6 Address Specific BGP Extended Community Attribute</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="November" year="2009"/>
            <abstract>
              <t>Current specifications of BGP Extended Communities (RFC 4360) support the IPv4 Address Specific Extended Community, but do not support an IPv6 Address Specific Extended Community. The lack of an IPv6 Address Specific Extended Community may be a problem when an application uses the IPv4 Address Specific Extended Community, and one wants to use this application in a pure IPv6 environment. This document defines a new BGP attribute, the IPv6 Address Specific Extended Community, that addresses this problem. The IPv6 Address Specific Extended Community is similar to the IPv4 Address Specific Extended Community, except that it carries an IPv6 address rather than an IPv4 address. [STANDARDS TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5701"/>
          <seriesInfo name="DOI" value="10.17487/RFC5701"/>
        </reference>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5925"/>
          <seriesInfo name="DOI" value="10.17487/RFC5925"/>
        </reference>
        <reference anchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC4577">
          <front>
            <title>OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>Many Service Providers offer Virtual Private Network (VPN) services to their customers, using a technique in which customer edge routers (CE routers) are routing peers of provider edge routers (PE routers). The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. This is known as a "BGP/MPLS IP VPN". The base specification for BGP/MPLS IP VPNs presumes that the routing protocol on the interface between a PE router and a CE router is BGP. This document extends that specification by allowing the routing protocol on the PE/CE interface to be the Open Shortest Path First (OSPF) protocol.</t>
              <t>This document updates RFC 4364. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4577"/>
          <seriesInfo name="DOI" value="10.17487/RFC4577"/>
        </reference>
        <reference anchor="RFC6565">
          <front>
            <title>OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol</title>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <author fullname="P. Moyer" initials="P." surname="Moyer"/>
            <author fullname="J. Doyle" initials="J." surname="Doyle"/>
            <author fullname="E. Ertekin" initials="E." surname="Ertekin"/>
            <author fullname="M. Lundberg" initials="M." surname="Lundberg"/>
            <date month="June" year="2012"/>
            <abstract>
              <t>Many Service Providers (SPs) offer Virtual Private Network (VPN) services to their customers using a technique in which Customer Edge (CE) routers are routing peers of Provider Edge (PE) routers. The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. Support currently exists for both IPv4 and IPv6 VPNs; however, only Open Shortest Path First version 2 (OSPFv2) as PE-CE protocol is specified. This document extends those specifications to support OSPF version 3 (OSPFv3) as a PE-CE routing protocol. The OSPFv3 PE-CE functionality is identical to that of OSPFv2 except for the differences described in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6565"/>
          <seriesInfo name="DOI" value="10.17487/RFC6565"/>
        </reference>
        <reference anchor="RFC4552">
          <front>
            <title>Authentication/Confidentiality for OSPFv3</title>
            <author fullname="M. Gupta" initials="M." surname="Gupta"/>
            <author fullname="N. Melam" initials="N." surname="Melam"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>This document describes means and mechanisms to provide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4552"/>
          <seriesInfo name="DOI" value="10.17487/RFC4552"/>
        </reference>
        <reference anchor="RFC5709">
          <front>
            <title>OSPFv2 HMAC-SHA Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Barnes" initials="M." surname="Barnes"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2009"/>
            <abstract>
              <t>This document describes how the National Institute of Standards and Technology (NIST) Secure Hash Standard family of algorithms can be used with OSPF version 2's built-in, cryptographic authentication mechanism. This updates, but does not supercede, the cryptographic authentication mechanism specified in RFC 2328. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5709"/>
          <seriesInfo name="DOI" value="10.17487/RFC5709"/>
        </reference>
        <reference anchor="RFC7474">
          <front>
            <title>Security Extension for OSPFv2 When Using Manual Key Management</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>The current OSPFv2 cryptographic authentication mechanism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- session replay attacks when using manual keying. Additionally, the existing cryptographic authentication mechanism does not cover the IP header. This omission can be exploited to carry out various types of attacks.</t>
              <t>This document defines changes to the authentication sequence number mechanism that will protect OSPFv2 from both inter-session and intra- session replay attacks when using manual keys for securing OSPFv2 protocol packets. Additionally, we also describe some changes in the cryptographic hash computation that will eliminate attacks resulting from OSPFv2 not protecting the IP header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7474"/>
          <seriesInfo name="DOI" value="10.17487/RFC7474"/>
        </reference>
        <reference anchor="RFC7166">
          <front>
            <title>Supporting Authentication Trailer for OSPFv3</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Currently, OSPF for IPv6 (OSPFv3) uses IPsec as the only mechanism for authenticating protocol packets. This behavior is different from authentication mechanisms present in other routing protocols (OSPFv2, Intermediate System to Intermediate System (IS-IS), RIP, and Routing Information Protocol Next Generation (RIPng)). In some environments, it has been found that IPsec is difficult to configure and maintain and thus cannot be used. This document defines an alternative mechanism to authenticate OSPFv3 protocol packets so that OSPFv3 does not depend only upon IPsec for authentication.</t>
              <t>The OSPFv3 Authentication Trailer was originally defined in RFC 6506. This document obsoletes RFC 6506 by providing a revised definition, including clarifications and refinements of the procedures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7166"/>
          <seriesInfo name="DOI" value="10.17487/RFC7166"/>
        </reference>
        <reference anchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="56"/>
          <seriesInfo name="RFC" value="2453"/>
          <seriesInfo name="DOI" value="10.17487/RFC2453"/>
        </reference>
        <reference anchor="RFC2080">
          <front>
            <title>RIPng for IPv6</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <author fullname="R. Minnear" initials="R." surname="Minnear"/>
            <date month="January" year="1997"/>
            <abstract>
              <t>This document specifies a routing protocol for an IPv6 internet. It is based on protocols and algorithms currently in wide use in the IPv4 Internet [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2080"/>
          <seriesInfo name="DOI" value="10.17487/RFC2080"/>
        </reference>
        <reference anchor="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="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AC-Ntw-Tree" target="https://github.com/boucadair/attachment-circuit-model/blob/main/yang/full-trees/ac-ntw-without-groupings.txt">
          <front>
            <title>Full Network Attachment Circuit Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="PYANG" target="https://github.com/mbj4668/pyang">
          <front>
            <title>pyang</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="RFC9543">
          <front>
            <title>A Framework for Network Slices in Networks Built from IETF Technologies</title>
            <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
            <author fullname="J. Drake" initials="J." role="editor" surname="Drake"/>
            <author fullname="R. Rokui" initials="R." surname="Rokui"/>
            <author fullname="S. Homma" initials="S." surname="Homma"/>
            <author fullname="K. Makhijani" initials="K." surname="Makhijani"/>
            <author fullname="L. Contreras" initials="L." surname="Contreras"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document describes network slicing in the context of networks built from IETF technologies. It defines the term "IETF Network Slice" to describe this type of network slice and establishes the general principles of network slicing in the IETF context.</t>
              <t>The document discusses the general framework for requesting and operating IETF Network Slices, the characteristics of an IETF Network Slice, the necessary system components and interfaces, and the mapping of abstract requests to more specific technologies. The document also discusses related considerations with monitoring and security.</t>
              <t>This document also provides definitions of related terms to enable consistent usage in other IETF documents that describe or use aspects of IETF Network Slices.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9543"/>
          <seriesInfo name="DOI" value="10.17487/RFC9543"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-ac-lxsm-lxnm-glue">
          <front>
            <title>A YANG Data Model for Augmenting VPN Service and Network Models with Attachment Circuits</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="11" month="April" year="2024"/>
            <abstract>
              <t>   The document specifies a module that updates existing service (i.e.,
   the Layer 2 Service Model (L2SM) and the Layer 3 Service Model
   (L3SM)) and network ((i.e., the Layer 2 Network Model (L2NM) and the
   Layer 3 Network Model (L3NM))) Virtual Private Network (VPN) modules
   with the required information to bind specific VPN services to ACs
   that are created using the Attachment Circuit (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-09"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC8299">
          <front>
            <title>YANG Data Model for L3VPN Service Delivery</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki"/>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used for communication between customers and network operators and to deliver a Layer 3 provider-provisioned VPN service. This document is limited to BGP PE-based VPNs as described in RFCs 4026, 4110, and 4364. This model is intended to be instantiated at the management system to deliver the overall service. It is not a configuration model to be used directly on network elements. This model provides an abstracted view of the Layer 3 IP VPN service configuration components. It will be up to the management system to take this model as input and use specific configuration models to configure the different network elements to deliver the service. How the configuration of network elements is done is out of scope for this document.</t>
              <t>This document obsoletes RFC 8049; it replaces the unimplementable module in that RFC with a new module with the same name that is not backward compatible. The changes are a series of small fixes to the YANG module and some clarifications to the text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8299"/>
          <seriesInfo name="DOI" value="10.17487/RFC8299"/>
        </reference>
        <reference anchor="RFC3644">
          <front>
            <title>Policy Quality of Service (QoS) Information Model</title>
            <author fullname="Y. Snir" initials="Y." surname="Snir"/>
            <author fullname="Y. Ramberg" initials="Y." surname="Ramberg"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="R. Cohen" initials="R." surname="Cohen"/>
            <author fullname="B. Moore" initials="B." surname="Moore"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document presents an object-oriented information model for representing Quality of Service (QoS) network management policies. This document is based on the IETF Policy Core Information Model and its extensions. It defines an information model for QoS enforcement for differentiated and integrated services using policy. It is important to note that this document defines an information model, which by definition is independent of any particular data storage mechanism and access protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3644"/>
          <seriesInfo name="DOI" value="10.17487/RFC3644"/>
        </reference>
        <reference anchor="RFC4862">
          <front>
            <title>IPv6 Stateless Address Autoconfiguration</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4862"/>
          <seriesInfo name="DOI" value="10.17487/RFC4862"/>
        </reference>
        <reference anchor="RFC2918">
          <front>
            <title>Route Refresh Capability for BGP-4</title>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="September" year="2000"/>
            <abstract>
              <t>This document defines a new Border Gateway Protocol (BGP) capability termed 'Route Refresh Capability', which would allow the dynamic exchange of route refresh request between BGP speakers and subsequent re-advertisement of the respective Adj-RIB-Out. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2918"/>
          <seriesInfo name="DOI" value="10.17487/RFC2918"/>
        </reference>
        <reference anchor="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="18" month="April" year="2024"/>
            <abstract>
              <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-11"/>
        </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 4122?>

<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",
         "ac-svc-ref":"ac-1",
         "peer-sap-id":[
            "ce-1"
         ],
         "status":{
            "admin-status":{
               "status":"ietf-vpn-common:admin-up"
            },
            "oper-status":{
               "status":"ietf-vpn-common:op-up"
            }
         },
         "l2-connection":{
            "encapsulation":{
               "encap-type":"ietf-vpn-common:dot1q",
               "dot1q":{
                  "tag-type":"ietf-vpn-common:c-vlan",
                  "cvlan-id":550
               }
            },
            "bearer-reference":"1234"
         },
         "service":{
            "mtu":1550,
            "svc-pe-to-ce-bandwidth":{
               "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",
         "ac-parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE2"
         ]
      },
      {
         "name":"ac-1-to-ce5",
         "ac-parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE5"
         ]
      }
   ]
}
]]></artwork>
        </figure>
        <t><xref target="ex-parent-ac-sap"/> shows how to bind the parent AC to a SAP.</t>
        <figure anchor="ex-parent-ac-sap">
          <name>Example of Binding Parent AC to SAPs</name>
          <artwork><![CDATA[
{
   "ietf-sap-ntw:service":[
      {
         "service-type":"ietf-vpn-common:l3vpn",
         "sap":[
            {
               "sap-id":"sap#14587",
               "description":"A SAP",
               "parent-termination-point":"GE0/6/4",
               "attachment-interface":"GE0/6/4.2",
               "interface-type":"ietf-sap-ntw:logical",
               "encapsulation-type":"ietf-vpn-common:vlan-type",
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               },
               "ietf-ac-ntw:ac":[
                  {
                     "ac-ref":"ac-1",
                     "node-ref":"example:pe2",
                     "network-ref":"example:an-id"
                  }
               ]
            }
         ]
      }
   ]
}
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document builds on <xref target="RFC9182"/> and <xref target="RFC9291"/>.</t>
      <t>Thanks to Moti Morgenstern for the review and comments.</t>
      <t>Thanks to Martin Björklund for the yangdoctors review and Gyan Mishra for the rtg-dir review.</t>
      <t>Thanks to Krzysztof Szarkowicz for the Shepherd 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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
uhFJQw4lq+IW78bAmjKFCTp1orTMTWUe++X9zYMoflE7B+XiSfZGfnlRR84R
JZehg2RUEgdBqVbJboJWIcDjd+cIhWbtHkj0y67QQBMEj1HTPOIWp3Shh3iN
1iOuHM1yka09VklsyKAEBF6JOAdBygi0uMcEAf5BRjRQBhsFlrgLpRlhdmiE
nJ+Fbo3y12BzG5N4U/jRhS3IuJmm1j6vAzTGYOoZtsBgkkdtfsHnXW0vlB7y
0T/3WfxzQrR5zDf9mG/arSU/j/mmH/NNr1D7Md+0+umjQnz1mG9aaCiP+ab/
2fJNP6rGj0E73gYeg3b+KI6++wftLFcqPIUalQoTiJWVCrOyfaDSrOy3w5t1
V1ZIzMqtComDtZUVEqd+R4WkRntdpHynq5UVkgZQlygktf2rO6j3VEjMRu6s
kFiEcCeFxGxhVYXE6n1lhcSqvaJCYiFvZYXE4lMrKyRW7SW6gk1e3RQSa7Pq
opA0dLJcIbF2rbsqJM66W01qdBd9TSHpNAtLNBKnk1U0EqfqihqJU3tljcSV
DVbQSFz0NN+sYfbQRSNxqnTRSExgTI1EfLqT2P1obHXVxOVSCwxhrERu/UZJ
q5mYl1BzoOcBU70DTePN21HaXFzV2ODjUe5ZZqcsFz/YiPLNZeWcNRlGeQcz
QVMbUR7CkMZXUTP7MivJD9QJqdKB+hY2z5E9xNnkafcxQuHfHMCGZA710oFB
FW560vbl722itrm3ypj1Juj6izyM0in6L69mS/FlfJbfAJTFyfRqlONtnkU8
y5Fb8mL3miskXzQLWv01ZoR1mlhVelcVtYrRFF5GH1C+BoMt+M/QW4zvW8iT
mju5i8Oim7dC4f0uroqPGr6ufgqDOjpa/jUfuoOHogbhcveEQbwdIby/Y+L+
Xol7uiTu7I+4hzPizp6Ie7gh7uGD6OyAkATU2fuwmuuh1nwnv8P9nQ4f/USG
r5ZHba4s3SuQlzsb9Ca+mqdB1VvdzaCq3sXH8FHPxkoOhi7ehY96n+/kWlDl
O/oV7i7Ci793J6E7Ce8abSvEvK8uvZv17pZkpiYFLY1al5+7xZ120mceAh3L
NBkHomY1xhx1ow5jFnJA76bAeBto1V6cGvLTVTOoDcurt3jBaldaHhquZnXF
7mB1XaWpfldFxVu/pqUEHTlFa/yxZF9Lg6o/2s2tEKUsat49nJprd4ql5qJ3
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
h1f5H9nvl8Z+NUofbRH6CX1+W1vEoznhn9qcgKLKl6D0SyVG6vyoAHXV+LHs
7x5eEYhb28zj0jJcAXNFFUCWbvADAK7cvTt7T3fRWYyDOcN7/r6LM5FlLNiA
h9l004CrkE3Z555EU0+eP2GnsHkIztZRNfbE6a0N39GtzYM10c+fgp6z0fCB
vgDP9JHrXB/cq8RhNBwKVxKTAnQ8MBp0N6HGFkfxZQ71I6UWkwo8icdpxGf4
qB2z6dpWZbTta3oUVxVPiDyDjQAXMWwPZWy1bO9ny0FW4OLBFHXCX14sSBOA
c8d5S8yNzwnUkEfEEUQu8GAmF2VvwbYNA0VnE4dprXAMHD++fSstHPjVMHHQ
m2W2DWRPj8aNR+PGb2DpXllCV3XmOMWY4kQJQ45g+ajtNzbwqO0/avtLWnjk
R7WUz8t5Em2cnLfcmFmPIq0nKhq/X8xDPItqVGnNsK57S4oKQ4l1wT91rjsv
EtT/HEWyDdI6v8WPV5kPTKJ11S4bz01qo/q+mtpoVVtZOdOgtaiNTrnVIAtW
huy3UgWVzCd1QZIUlymBVOgL0ALPcpnviiCSuQtkwO6Lp/vPP30STQn4Su6G
otjRD4m9o/it17AdaG7ldaJe1NlxYxELZUCkQOKof/NMvJlPqr5+ncSJooDR
BDzk8/mYsCF14ZCLWrmik2lWanjpEnO+kJzLKRWEB6D6I+2JD+yrRd+SH4l1
inkcvceUcpwhgepQGiYkE3GooVxFvaFWDb1GT3GWuwqWvhQ9USl3WMHCVihR
B0IbryVl1uN0aZQCEbqibpzmKMYek7pgQpeNEpaADvJ/IYP8maY2SeMK3gxf
yxwA0Uwe/4dnS0/9RzNH0frylKolDjSxj7WlArfZECVPCDsKgmZVWBJJEU9C
3DOqD3Uruo7FsoYGtKeqFR9qZnR/LU5mSNke58B3isb93KyE9g+Z7t39qK5+
W+Xjz/9s6scSK2gHarOkZqY2QB8QT0Vs1tEUAoO6uIBn8rrJVGW+KMax974b
34U3qt7dktur6s3aivFlVW3FxWDX9VpHascl61Tsvmqdip0XrlOv09r1VbT3
jn/zzYDrUMLHnfxFZvVZTLkhcxY2H+Xu30TufohTrGKLV4dYQSxYenYVyhhS
tUifp7P1qnThmBNNrNADzsHNPMyToonSp8U6RduAXSeW6DSL5nOWdt2UT5Qs
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
HHkCAA==

-->

</rfc>
