<?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.2 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ntw-attachment-circuit-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <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-01"/>
    <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="2023" month="November" day="27"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>Slice Service</keyword>
    <keyword>L3VPN</keyword>
    <keyword>L2VPN</keyword>
    <abstract>
      <?line 85?>

<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., Network Slice Service). A companion service model is specified in I-D.ietf-opsawg-teas-attachment-circuit.</t>
      <t>The module augments the Service Attachment Point (SAP) model 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 91?>

<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 AC may host multiple services (e.g., Layer 2 VPN, Slice Service, or Layer 3 VPN). 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 base AC to be put in place, and then refer to that AC 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>This document specifies a network model for ACs ("ietf-ac-ntw"). The model can be used for the provisioning of ACs prior or during service provisioning.</t>
      <t>The document leverages <xref target="RFC9182"/> and <xref target="RFC9291"/> by adopting an AC provisioning structure that uses data nodes that are defined in these RFCs. Some refinements were introduced to cover, not only conventional service provider networks, but also specifics of other target deployments (cloud, for example).</t>
      <t>The AC network model is designed as an augmnetation to the Service Attachment Point (SAP) model <xref target="RFC9408"/>. An AC can be bound to a single or multiple SAPs. Likewise, the model is designed to accomdate deployments where a SAP can be bound to one or multiple ACs.</t>
      <figure anchor="sap-ac-ntw">
        <name>Attachment Circuits Examples</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="600" viewBox="0 0 600 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,208 L 8,240" fill="none" stroke="black"/>
              <path d="M 40,208 L 40,240" fill="none" stroke="black"/>
              <path d="M 80,208 L 80,240" fill="none" stroke="black"/>
              <path d="M 96,176 L 96,208" fill="none" stroke="black"/>
              <path d="M 96,240 L 96,256" fill="none" stroke="black"/>
              <path d="M 96,288 L 96,368" fill="none" stroke="black"/>
              <path d="M 112,160 L 112,240" fill="none" stroke="black"/>
              <path d="M 128,112 L 128,160" fill="none" stroke="black"/>
              <path d="M 144,160 L 144,192" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
              <path d="M 184,64 L 184,112" fill="none" stroke="black"/>
              <path d="M 200,32 L 200,64" fill="none" stroke="black"/>
              <path d="M 208,160 L 208,192" fill="none" stroke="black"/>
              <path d="M 208,352 L 208,384" fill="none" stroke="black"/>
              <path d="M 208,416 L 208,448" fill="none" stroke="black"/>
              <path d="M 224,384 L 224,416" fill="none" stroke="black"/>
              <path d="M 232,112 L 232,152" fill="none" stroke="black"/>
              <path d="M 240,160 L 240,192" fill="none" stroke="black"/>
              <path d="M 240,352 L 240,384" fill="none" stroke="black"/>
              <path d="M 240,416 L 240,448" fill="none" stroke="black"/>
              <path d="M 256,80 L 256,112" fill="none" stroke="black"/>
              <path d="M 256,176 L 256,256" fill="none" stroke="black"/>
              <path d="M 256,288 L 256,368" fill="none" stroke="black"/>
              <path d="M 288,80 L 288,112" fill="none" stroke="black"/>
              <path d="M 344,176 L 344,256" fill="none" stroke="black"/>
              <path d="M 344,288 L 344,368" fill="none" stroke="black"/>
              <path d="M 360,160 L 360,192" fill="none" stroke="black"/>
              <path d="M 360,352 L 360,384" fill="none" stroke="black"/>
              <path d="M 376,96 L 376,160" fill="none" stroke="black"/>
              <path d="M 376,384 L 376,432" fill="none" stroke="black"/>
              <path d="M 392,160 L 392,192" fill="none" stroke="black"/>
              <path d="M 392,352 L 392,384" fill="none" stroke="black"/>
              <path d="M 408,352 L 408,384" fill="none" stroke="black"/>
              <path d="M 408,416 L 408,448" fill="none" stroke="black"/>
              <path d="M 424,384 L 424,416" fill="none" stroke="black"/>
              <path d="M 440,352 L 440,384" fill="none" stroke="black"/>
              <path d="M 440,416 L 440,448" fill="none" stroke="black"/>
              <path d="M 456,80 L 456,112" fill="none" stroke="black"/>
              <path d="M 456,352 L 456,384" fill="none" stroke="black"/>
              <path d="M 472,384 L 472,432" fill="none" stroke="black"/>
              <path d="M 488,80 L 488,112" fill="none" stroke="black"/>
              <path d="M 488,304 L 488,384" fill="none" stroke="black"/>
              <path d="M 504,176 L 504,256" fill="none" stroke="black"/>
              <path d="M 504,288 L 504,304" fill="none" stroke="black"/>
              <path d="M 504,344 L 504,368" fill="none" stroke="black"/>
              <path d="M 520,304 L 520,336" fill="none" stroke="black"/>
              <path d="M 560,304 L 560,336" fill="none" stroke="black"/>
              <path d="M 592,304 L 592,336" fill="none" stroke="black"/>
              <path d="M 168,32 L 200,32" fill="none" stroke="black"/>
              <path d="M 168,64 L 200,64" fill="none" stroke="black"/>
              <path d="M 256,80 L 288,80" fill="none" stroke="black"/>
              <path d="M 456,80 L 488,80" fill="none" stroke="black"/>
              <path d="M 288,96 L 456,96" fill="none" stroke="black"/>
              <path d="M 128,112 L 232,112" fill="none" stroke="black"/>
              <path d="M 256,112 L 288,112" fill="none" stroke="black"/>
              <path d="M 456,112 L 488,112" fill="none" stroke="black"/>
              <path d="M 112,160 L 144,160" fill="none" stroke="black"/>
              <path d="M 208,160 L 240,160" fill="none" stroke="black"/>
              <path d="M 360,160 L 392,160" fill="none" stroke="black"/>
              <path d="M 96,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 144,176 L 208,176" fill="none" stroke="black"/>
              <path d="M 240,176 L 256,176" fill="none" stroke="black"/>
              <path d="M 344,176 L 360,176" fill="none" stroke="black"/>
              <path d="M 392,176 L 504,176" fill="none" stroke="black"/>
              <path d="M 112,192 L 144,192" fill="none" stroke="black"/>
              <path d="M 208,192 L 240,192" fill="none" stroke="black"/>
              <path d="M 360,192 L 392,192" fill="none" stroke="black"/>
              <path d="M 8,208 L 40,208" fill="none" stroke="black"/>
              <path d="M 80,208 L 112,208" fill="none" stroke="black"/>
              <path d="M 40,224 L 80,224" fill="none" stroke="black"/>
              <path d="M 8,240 L 40,240" fill="none" stroke="black"/>
              <path d="M 80,240 L 112,240" fill="none" stroke="black"/>
              <path d="M 96,256 L 256,256" fill="none" stroke="black"/>
              <path d="M 344,256 L 504,256" fill="none" stroke="black"/>
              <path d="M 96,288 L 256,288" fill="none" stroke="black"/>
              <path d="M 344,288 L 504,288" fill="none" stroke="black"/>
              <path d="M 488,304 L 520,304" fill="none" stroke="black"/>
              <path d="M 560,304 L 592,304" fill="none" stroke="black"/>
              <path d="M 520,320 L 560,320" fill="none" stroke="black"/>
              <path d="M 488,336 L 520,336" fill="none" stroke="black"/>
              <path d="M 560,336 L 592,336" fill="none" stroke="black"/>
              <path d="M 208,352 L 240,352" fill="none" stroke="black"/>
              <path d="M 360,352 L 392,352" fill="none" stroke="black"/>
              <path d="M 408,352 L 440,352" fill="none" stroke="black"/>
              <path d="M 456,352 L 488,352" fill="none" stroke="black"/>
              <path d="M 96,368 L 208,368" fill="none" stroke="black"/>
              <path d="M 240,368 L 256,368" fill="none" stroke="black"/>
              <path d="M 344,368 L 360,368" fill="none" stroke="black"/>
              <path d="M 392,368 L 408,368" fill="none" stroke="black"/>
              <path d="M 440,368 L 456,368" fill="none" stroke="black"/>
              <path d="M 488,368 L 504,368" fill="none" stroke="black"/>
              <path d="M 208,384 L 240,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 456,384 L 488,384" fill="none" stroke="black"/>
              <path d="M 208,416 L 240,416" fill="none" stroke="black"/>
              <path d="M 408,416 L 440,416" fill="none" stroke="black"/>
              <path d="M 240,432 L 304,432" fill="none" stroke="black"/>
              <path d="M 328,432 L 376,432" fill="none" stroke="black"/>
              <path d="M 440,432 L 472,432" fill="none" stroke="black"/>
              <path d="M 208,448 L 240,448" fill="none" stroke="black"/>
              <path d="M 408,448 L 440,448" fill="none" stroke="black"/>
              <path d="M 216,160 C 224.83064,160 232,152.83064 232,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="184" y="52">CE6</text>
                <text x="164" y="84">ac</text>
                <text x="272" y="100">CE5</text>
                <text x="472" y="100">CE2</text>
                <text x="388" y="132">ac</text>
                <text x="128" y="180">sap</text>
                <text x="224" y="180">sap</text>
                <text x="376" y="180">sap</text>
                <text x="24" y="228">CE1</text>
                <text x="96" y="228">sap</text>
                <text x="176" y="228">PE1</text>
                <text x="432" y="228">PE2</text>
                <text x="60" y="244">ac</text>
                <text x="540" y="308">ac</text>
                <text x="184" y="324">PE3</text>
                <text x="424" y="324">PE4</text>
                <text x="504" y="324">sap</text>
                <text x="576" y="324">CE5</text>
                <text x="224" y="372">sap</text>
                <text x="376" y="372">sap</text>
                <text x="424" y="372">sap</text>
                <text x="472" y="372">sap</text>
                <text x="236" y="404">ac</text>
                <text x="436" y="404">ac</text>
                <text x="484" y="404">ac</text>
                <text x="224" y="436">CE3</text>
                <text x="316" y="436">ac</text>
                <text x="424" y="436">CE4</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                    .---.
                    |CE6|
                    '-+-'
                   ac |        .---.                    .---.
                      |        |CE5+----------+---------+CE2|
               .------+-----.  '---'          |         '---'
               |            |                 |ac
               |            |                 |
             .-+-.       .-+-.              .-+-.
           .-+sap+-------+sap+-.          .-+sap+-------------.
           | '---'       '---' |          | '---'             |
.---.    .-+-.                 |          |                   |
|CE1+----+sap|      PE1        |          |         PE2       |
'---' ac '-+-'                 |          |                   |
           '-------------------'          '-------------------'

           .-------------------.          .-------------------.
           |                   |          |                 .-+-. ac .---.
           |         PE3       |          |        PE4      |sap+----+CE5|
           |                   |          |                 '---'    '---'
           |             .---. |          | .---. .---. .---. |
           '-------------+sap+-'          '-+sap+-+sap+-+sap+-'
                         '-+-'              '-+-' '-+-' '-+-'
                           |ac                |     |ac   |ac
                         .-+-.                |   .-+-.   |
                         |CE3+--------ac------'   |CE4+---'
                         '---'                    '---'
]]></artwork>
        </artset>
      </figure>
      <t>The AC network model uses the AC common model defined in <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
      <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
    </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>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. 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 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. One or multiple attachment circuits may be hosted over the same bearer (e.g., multiple 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.</t>
        </dd>
        <dt>Service orchestrator:</dt>
        <dd>
          <t>Refers to a functional entity that interacts with the customer of a network service. The service orchestrator is typically responsible for the attachment circuits, the Provider Edge (PE) selection, and requesting the activation of the requested service to a network controller.</t>
        </dd>
        <dt>Service provider network:</dt>
        <dd>
          <t>A network that is able to provide network services (e.g., Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>A service provider that offers network services (e.g., Network Slice Services).</t>
        </dd>
      </dl>
    </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.</t>
      <figure anchor="_u-ex">
        <name>An Example of the Network AC Model Usage</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="512" viewBox="0 0 512 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,560 L 8,592" fill="none" stroke="black"/>
              <path d="M 48,560 L 48,592" fill="none" stroke="black"/>
              <path d="M 96,432 L 96,480" fill="none" stroke="black"/>
              <path d="M 104,320 L 104,368" fill="none" stroke="black"/>
              <path d="M 120,544 L 120,608" fill="none" stroke="black"/>
              <path d="M 136,368 L 136,432" fill="none" stroke="black"/>
              <path d="M 136,480 L 136,536" fill="none" stroke="black"/>
              <path d="M 176,288 L 176,320" fill="none" stroke="black"/>
              <path d="M 176,432 L 176,480" fill="none" stroke="black"/>
              <path d="M 208,32 L 208,64" fill="none" stroke="black"/>
              <path d="M 208,112 L 208,160" fill="none" stroke="black"/>
              <path d="M 208,208 L 208,256" fill="none" stroke="black"/>
              <path d="M 208,376 L 208,496" fill="none" stroke="black"/>
              <path d="M 232,320 L 232,368" fill="none" stroke="black"/>
              <path d="M 272,64 L 272,112" fill="none" stroke="black"/>
              <path d="M 272,160 L 272,208" fill="none" stroke="black"/>
              <path d="M 272,256 L 272,288" fill="none" stroke="black"/>
              <path d="M 296,320 L 296,368" fill="none" stroke="black"/>
              <path d="M 336,32 L 336,64" fill="none" stroke="black"/>
              <path d="M 336,112 L 336,160" fill="none" stroke="black"/>
              <path d="M 336,208 L 336,256" fill="none" stroke="black"/>
              <path d="M 368,288 L 368,320" fill="none" stroke="black"/>
              <path d="M 368,368 L 368,536" fill="none" stroke="black"/>
              <path d="M 384,544 L 384,608" fill="none" stroke="black"/>
              <path d="M 424,320 L 424,368" fill="none" stroke="black"/>
              <path d="M 456,560 L 456,592" fill="none" stroke="black"/>
              <path d="M 496,560 L 496,592" fill="none" stroke="black"/>
              <path d="M 208,32 L 336,32" fill="none" stroke="black"/>
              <path d="M 208,64 L 336,64" fill="none" stroke="black"/>
              <path d="M 208,112 L 336,112" fill="none" stroke="black"/>
              <path d="M 208,160 L 336,160" fill="none" stroke="black"/>
              <path d="M 208,208 L 336,208" fill="none" stroke="black"/>
              <path d="M 208,256 L 336,256" fill="none" stroke="black"/>
              <path d="M 176,288 L 368,288" fill="none" stroke="black"/>
              <path d="M 104,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 296,320 L 424,320" fill="none" stroke="black"/>
              <path d="M 104,368 L 232,368" fill="none" stroke="black"/>
              <path d="M 296,368 L 424,368" fill="none" stroke="black"/>
              <path d="M 96,432 L 176,432" fill="none" stroke="black"/>
              <path d="M 96,480 L 176,480" fill="none" stroke="black"/>
              <path d="M 120,544 L 384,544" fill="none" stroke="black"/>
              <path d="M 8,560 L 48,560" fill="none" stroke="black"/>
              <path d="M 456,560 L 496,560" fill="none" stroke="black"/>
              <path d="M 48,576 L 120,576" fill="none" stroke="black"/>
              <path d="M 384,576 L 456,576" fill="none" stroke="black"/>
              <path d="M 8,592 L 48,592" fill="none" stroke="black"/>
              <path d="M 456,592 L 496,592" fill="none" stroke="black"/>
              <path d="M 120,608 L 384,608" fill="none" stroke="black"/>
              <g class="text">
                <text x="268" y="52">Customer</text>
                <text x="108" y="84">Customer</text>
                <text x="176" y="84">Service</text>
                <text x="232" y="84">Model</text>
                <text x="96" y="100">e.g.,</text>
                <text x="164" y="100">slice-svc,</text>
                <text x="240" y="100">ac-svc,</text>
                <text x="296" y="100">and</text>
                <text x="356" y="100">bearer-svc</text>
                <text x="272" y="132">Service</text>
                <text x="272" y="148">Orchestration</text>
                <text x="112" y="180">Network</text>
                <text x="168" y="180">Model</text>
                <text x="32" y="196">e.g.,</text>
                <text x="100" y="196">l3vpn-ntw,</text>
                <text x="164" y="196">sap,</text>
                <text x="200" y="196">and</text>
                <text x="244" y="196">ac-ntw</text>
                <text x="264" y="228">Network</text>
                <text x="272" y="244">Orchestration</text>
                <text x="56" y="276">Network</text>
                <text x="144" y="276">Configuration</text>
                <text x="224" y="276">Model</text>
                <text x="164" y="340">Domain</text>
                <text x="364" y="340">Domain</text>
                <text x="168" y="356">Orchestration</text>
                <text x="360" y="356">Orchestration</text>
                <text x="36" y="388">Device</text>
                <text x="64" y="404">Configuration</text>
                <text x="32" y="420">Model</text>
                <text x="132" y="452">Config</text>
                <text x="136" y="468">Manager</text>
                <text x="256" y="516">NETCONF/CLI................</text>
                <text x="376" y="516">.</text>
                <text x="208" y="532">|</text>
                <text x="84" y="564">Bearer</text>
                <text x="420" y="564">Bearer</text>
                <text x="28" y="580">CE#1</text>
                <text x="248" y="580">Network</text>
                <text x="476" y="580">CE#2</text>
                <text x="28" y="628">Site</text>
                <text x="56" y="628">A</text>
                <text x="476" y="628">Site</text>
                <text x="504" y="628">B</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                          .---------------.
                          |   Customer    |
                          '-------+-------'
          Customer Service Model  |
          e.g., slice-svc, ac-svc,| and bearer-svc
                          .-------+-------.
                          |    Service    |
                          | Orchestration |
                          '-------+-------'
           Network Model          |
  e.g., l3vpn-ntw, sap, and ac-ntw|
                          .-------+-------.
                          |   Network     |
                          | Orchestration |
                          '-------+-------'
    Network Configuration Model   |
                      .-----------+-----------.
                      |                       |
             .--------+------.       .--------+------.
             |    Domain     |       |     Domain    |
             | Orchestration |       | Orchestration |
             '---+-----------'       '--------+------'
  Device         |        |                   |
  Configuration  |        |                   |
  Model          |        |                   |
            .----+----.   |                   |
            | Config  |   |                   |
            | Manager |   |                   |
            '----+----'   |                   |
                 |        |                   |
                 | NETCONF/CLI..................
                 |        |                   |
               .--------------------------------.
 .----. Bearer |                                | Bearer .----.
 |CE#1+--------+            Network             +--------+CE#2|
 '----'        |                                |        '----'
               '--------------------------------'
  Site A                                                  Site B
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="description-of-the-attachment-circuit-yang-module">
      <name>Description of the Attachment Circuit YANG Module</name>
      <t>The full tree diagram of the module can be generated using the
"pyang" tool <xref target="PYANG"/>.  That tree is not included here because it is
too long (<xref section="3.3" sectionFormat="of" target="RFC8340"/>).  Instead, subtrees are provided
for the reader's convenience.</t>
      <section anchor="overall-structure-of-the-module">
        <name>Overall Structure of the Module</name>
        <t>The overall tree structure of the module is shown in <xref target="o-ntw-tree"/>. The full tree of the 'ac-ntw' is provided in <xref target="AC-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/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    -> /nw:networks/network/ac-profile/name
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
          ...
]]></artwork>
        </figure>
        <t>A node can host one or more SAPs. As per <xref target="RFC9408"/>, a SAP is an abstraction of the network
reference points (the PE side of an AC, in the context of this document) where network services can be delivered and/or are delivered to customers. Each SAP terminates one or multiple ACs. Each AC in turn may be terminated by one or more peer SAPs. In order to expose such AC/SAP binding information, the SAP model <xref target="RFC9408"/> is augmented with required AC-related information.</t>
        <t>Unlike the AC service model <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/>, an AC is uniquely identified by a name within the scope of a node, not a network. A textual description of the AC may be provided 'description'.</t>
        <t>Also, in order to ease the correlation between the AC exposed at the service layer and the one that is actually provisioned in the network operation, a reference to the AC exposed to the customer ('ac-svc-ref') is stored in the 'ietf-ac-ntw' module. A controller may, for example, indicate a filter based on the service type (e.g., Network Slice or L3VPN) to retrieve the list of available ACs for that service.</t>
        <t>In order to factorize a set of data that is provisioned for a set 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 define:</t>
        <ul spacing="normal">
          <li>
            <t>A parent AC that may list all these CEs as peer SAPs.</t>
          </li>
          <li>
            <t>Individual ACs that are bound to the parent AC using "ac-parent-ref".</t>
          </li>
          <li>
            <t>Individual ACs will list 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>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"/>), OAM (<xref target="sec-oam"/>), security (<xref target="sec-sec"/>), and service (<xref target="sec-svc"/>) considerations.</t>
      </section>
      <section anchor="sec-profiles">
        <name>Provisioning Profiles</name>
        <t>The specific provisioning profiles tree structure is shown in <xref target="profiles-tree"/>.</t>
        <figure anchor="profiles-tree">
          <name>Profiles Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network:
    +--rw specific-provisioning-profiles
    |  +--rw valid-provider-identifiers
    |     +--rw encryption-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw qos-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw bfd-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw forwarding-profile-identifier* [id]
    |     |  +--rw id    string
    |     +--rw routing-profile-identifier* [id]
    |        +--rw id    string
    +--rw ac-profile* [name]
       ...
]]></artwork>
        </figure>
        <t>The exact definition of these profiles is local to each service provider. The model only includes an identifier for these profiles in order to ease identifying and binding local policies when building an AC. As shown in <xref target="profiles-tree"/>, the following identifiers can be included:</t>
        <dl>
          <dt>'encryption-profile-identifier':</dt>
          <dd>
            <t>An encryption profile refers to a set of policies related to the encryption schemes and setup that can be applied on the AC.</t>
          </dd>
          <dt>'qos-profile-identifier':</dt>
          <dd>
            <t>A Quality of Service (QoS) profile refers to a set of policies such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
          </dd>
          <dt>'bfd-profile-identifier':</dt>
          <dd>
            <t>A Bidirectional Forwarding Detection (BFD) profile refers to a set of BFD policies <xref target="RFC5880"/> that can be invoked when building an AC.</t>
          </dd>
          <dt>'forwarding-profile-identifier':</dt>
          <dd>
            <t>A forwarding profile refers to the policies that apply to the forwarding of packets conveyed over an AC. Such policies may consist of, for example, applying Access Control Lists (ACLs).</t>
          </dd>
          <dt>'routing-profile-identifier':</dt>
          <dd>
            <t>A routing profile refers to a set of routing policies that will be invoked (e.g., BGP policies) for an AC.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-l2">
        <name>L2 Connection</name>
        <t>The 'l2-connection' container is used to manage the Layer 2 properties of the 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/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    ac-profile-reference
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  +--rw encapsulation
       |  |  +--rw encap-type?        identityref
       |  |  +--rw dot1q
       |  |  |  +--rw tag-type?         identityref
       |  |  |  +--rw cvlan-id?         uint16
       |  |  |  +--rw tag-operations
       |  |  |     +--rw (op-choice)?
       |  |  |     |  +--:(pop)
       |  |  |     |  |  +--rw pop?         empty
       |  |  |     |  +--:(push)
       |  |  |     |  |  +--rw push?        empty
       |  |  |     |  +--:(translate)
       |  |  |     |     +--rw translate?   empty
       |  |  |     +--rw tag-1?             dot1q-types:vlanid
       |  |  |     +--rw tag-1-type?
       |  |  |     |       dot1q-types:dot1q-tag-type
       |  |  |     +--rw tag-2?             dot1q-types:vlanid
       |  |  |     +--rw tag-2-type?
       |  |  |             dot1q-types:dot1q-tag-type
       |  |  +--rw priority-tagged
       |  |  |  +--rw tag-type?   identityref
       |  |  +--rw qinq
       |  |     +--rw tag-type?         identityref
       |  |     +--rw svlan-id          uint16
       |  |     +--rw cvlan-id          uint16
       |  |     +--rw tag-operations
       |  |        +--rw (op-choice)?
       |  |        |  +--:(pop)
       |  |        |  |  +--rw pop?         uint8
       |  |        |  +--:(push)
       |  |        |  |  +--rw push?        empty
       |  |        |  +--:(translate)
       |  |        |     +--rw translate?   uint8
       |  |        +--rw tag-1?             dot1q-types:vlanid
       |  |        +--rw tag-1-type?
       |  |        |       dot1q-types:dot1q-tag-type
       |  |        +--rw tag-2?             dot1q-types:vlanid
       |  |        +--rw tag-2-type?
       |  |                dot1q-types:dot1q-tag-type
       |  +--rw (l2-service)?
       |  |  +--:(l2-tunnel-service)
       |  |  |  +--rw l2-tunnel-service
       |  |  |     +--rw type?         identityref
       |  |  |     +--rw pseudowire
       |  |  |     |  +--rw vcid?      uint32
       |  |  |     |  +--rw far-end?   union
       |  |  |     +--rw vpls
       |  |  |     |  +--rw vcid?      uint32
       |  |  |     |  +--rw far-end*   union
       |  |  |     +--rw vxlan
       |  |  |        +--rw vni-id             uint32
       |  |  |        +--rw peer-mode?         identityref
       |  |  |        +--rw peer-ip-address*   inet:ip-address
       |  |  +--:(l2vpn)
       |  |     +--rw l2vpn-id?            vpn-common:vpn-id
       |  +--rw l2-termination-point?      string
       |  +--rw local-bridge-reference?    string
       |  +--rw bearer-reference?          string
       |  |       {vpn-common:bearer-reference}?
       |  +--rw lag-interface {vpn-common:lag-interface}?
       |     +--rw lag-interface-id?   string
       |     +--rw member-link-list
       |        +--rw member-link* [name]
       |           +--rw name    string
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
        </figure>
        <t>The 'encapsulation' container specifies the Layer 2 encapsulation to use (if any) and allows the configuration of the relevant tags. Also, the model supports tag manipulation operations (e.g., tag rewrite).</t>
        <t>The 'l2-tunnel-service' container is used to specify the required parameters to set a Layer 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>To accommodate implementations that require internal bridging, a local bridge reference can be specified in 'local-bridge-reference'. Such a reference may be a local bridge domain.</t>
        <t>A reference to the bearer is maintained using 'bearer-reference'.</t>
      </section>
      <section anchor="sec-l3">
        <name>IP Connection</name>
        <t>This 'ip-connection' container is used to group Layer 3 connectivity information, particularly the IP addressing information, of an AC.</t>
        <t>The  Layer 3 connection tree structure is shown in <xref target="l3-tree"/>.</t>
        <figure anchor="l3-tree">
          <name>IP Connection Tree Structure</name>
          <artwork><![CDATA[
  augment /nw:networks/nw:network/nw:node/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    ac-profile-reference
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  +--rw l3-termination-point?   string
       |  +--rw ipv4 {vpn-common:ipv4}?
       |  |  +--rw local-address?
       |  |  |       inet:ipv4-address
       |  |  +--rw prefix-length?                           uint8
       |  |  +--rw address-allocation-type?
       |  |  |       identityref
       |  |  +--rw (allocation-type)?
       |  |     +--:(dynamic)
       |  |     |  +--rw (address-assign)?
       |  |     |  |  +--:(number)
       |  |     |  |  |  +--rw number-of-dynamic-address?   uint16
       |  |     |  |  +--:(explicit)
       |  |     |  |     +--rw customer-addresses
       |  |     |  |        +--rw address-pool* [pool-id]
       |  |     |  |           +--rw pool-id          string
       |  |     |  |           +--rw start-address
       |  |     |  |           |       inet:ipv4-address
       |  |     |  |           +--rw end-address?
       |  |     |  |                   inet:ipv4-address
       |  |     |  +--rw (provider-dhcp)?
       |  |     |  |  +--:(dhcp-service-type)
       |  |     |  |  |  +--rw dhcp-service-type?
       |  |     |  |  |          enumeration
       |  |     |  |  +--:(service-type)
       |  |     |  |     +--rw (service-type)?
       |  |     |  |        +--:(relay)
       |  |     |  |           +--rw server-ip-address*
       |  |     |  |                   inet:ipv4-address
       |  |     |  +--rw (dhcp-relay)?
       |  |     |     +--:(customer-dhcp-servers)
       |  |     |        +--rw customer-dhcp-servers
       |  |     |           +--rw server-ip-address*
       |  |     |                   inet:ipv4-address
       |  |     +--:(static-addresses)
       |  |        +--rw address* [address-id]
       |  |           +--rw address-id          string
       |  |           +--rw customer-address?   inet:ipv4-address
       |  +--rw ipv6 {vpn-common:ipv6}?
       |     +--rw local-address?
       |     |       inet:ipv6-address
       |     +--rw prefix-length?                           uint8
       |     +--rw address-allocation-type?
       |     |       identityref
       |     +--rw (allocation-type)?
       |        +--:(dynamic)
       |        |  +--rw (address-assign)?
       |        |  |  +--:(number)
       |        |  |  |  +--rw number-of-dynamic-address?   uint16
       |        |  |  +--:(explicit)
       |        |  |     +--rw customer-addresses
       |        |  |        +--rw address-pool* [pool-id]
       |        |  |           +--rw pool-id          string
       |        |  |           +--rw start-address
       |        |  |           |       inet:ipv6-address
       |        |  |           +--rw end-address?
       |        |  |                   inet:ipv6-address
       |        |  +--rw (provider-dhcp)?
       |        |  |  +--:(dhcp-service-type)
       |        |  |  |  +--rw dhcp-service-type?
       |        |  |  |          enumeration
       |        |  |  +--:(service-type)
       |        |  |     +--rw (service-type)?
       |        |  |        +--:(relay)
       |        |  |           +--rw server-ip-address*
       |        |  |                   inet:ipv6-address
       |        |  +--rw (dhcp-relay)?
       |        |     +--:(customer-dhcp-servers)
       |        |        +--rw customer-dhcp-servers
       |        |           +--rw server-ip-address*
       |        |                   inet:ipv6-address
       |        +--:(static-addresses)
       |           +--rw address* [address-id]
       |              +--rw address-id          string
       |              +--rw customer-address?   inet:ipv6-address
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          ...
]]></artwork>
        </figure>
        <t>A distinct Layer 3 interface other than the interface indicated under the 'l2-connection' container may be needed to terminate the Layer 3 connectivity. The identifier of such an interface is included in 'l3-termination-point'. For example, this data node can be used to carry the identifier of a bridge domain interface.</t>
        <t>This container can include IPv4, IPv6, or both if dual-stack is enabled. For both IPv4 and IPv6, the IP connection supports three IP address assignment modes for customer addresses: provider DHCP, DHCP relay, and static addressing. Note that for the IPv6 case, Stateless Address Autoconfiguration (SLAAC) <xref target="RFC4862"/> can be used.</t>
        <t>For both IPv4 and IPv6, 'address-allocation-type' is used to indicate the IP address allocation mode to activate for an AC. The allocated address represents the PE interface address configuration. When 'address-allocation-type' is set to 'provider-dhcp', DHCP assignments can be made locally or by an external DHCP server. Such behavior is controlled by setting 'dhcp-service-type'.</t>
        <t>For IPv6, if 'address-allocation-type' is set to 'slaac', the Prefix Information option of Router Advertisements that will be issued for SLAAC purposes will carry the IPv6 prefix that is determined by 'local-address' and 'prefix-length'. For example, if 'local-address' is set to '2001:db8:0:1::1' and 'prefix-length' is set to '64', the IPv6 prefix that will be used is '2001:db8:0:1::/64'.</t>
        <t>In some deployment contexts (e.g., network merging), multiple IP subnets may be used in a transition period. For such deployments, multiple ACs (typically, two) with overlapping information may be maintained during a transition period. The correlation between these ACs may rely upon the same "ac-svc-ref".</t>
      </section>
      <section anchor="sec-rtg">
        <name>Routing</name>
        <t>The routing tree structure is shown in <xref target="rtg-tree"/>.</t>
        <figure anchor="rtg-tree">
          <name>Rotuing Tree Structure</name>
          <artwork><![CDATA[
module: ietf-ac-ntw
  augment /nw:networks/nw:network:
    +--rw ac-profile* [name]
       +--rw name                 string
       +--rw l2-connection
       +--rw ip-connection
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id      string
       |     +--rw type?   identityref
       |     +--rw bgp
       |     |  +--rw description?              string
       |     |  +--rw apply-policy
       |     |  |  +--rw import-policy*           leafref
       |     |  |  +--rw default-import-policy?   default-policy-type
       |     |  |  +--rw export-policy*           leafref
       |     |  |  +--rw default-export-policy?   default-policy-type
       |     |  +--rw local-as?                 inet:as-number
       |     |  +--rw peer-as                   inet:as-number
       |     |  +--rw address-family?           identityref
       |     |  +--rw multihop?                 uint8
       |     |  +--rw as-override?              boolean
       |     |  +--rw allow-own-as?             uint8
       |     |  +--rw prepend-global-as?        boolean
       |     |  +--rw send-default-route?       boolean
       |     |  +--rw site-of-origin?           rt-types:route-origin
       |     |  +--rw ipv6-site-of-origin?
       |     |  |       rt-types:ipv6-route-origin
       |     |  +--rw redistribute-connected* [address-family]
       |     |  |  +--rw address-family    identityref
       |     |  |  +--rw enable?           boolean
       |     |  +--rw bgp-max-prefix
       |     |  |  +--rw max-prefix?          uint32
       |     |  |  +--rw warning-threshold?   decimal64
       |     |  |  +--rw violate-action?      enumeration
       |     |  |  +--rw restart-timer?       uint32
       |     |  +--rw bgp-timers
       |     |     +--rw keepalive?   uint16
       |     |     +--rw hold-time?   uint16
       |     +--rw ospf
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw max-lsa?          uint32
       |     +--rw isis
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint16
       |     |  +--rw mode?             enumeration
       |     +--rw rip
       |     |  +--rw address-family?   identityref
       |     |  +--rw timers
       |     |  |  +--rw update-interval?     uint16
       |     |  |  +--rw invalid-interval?    uint16
       |     |  |  +--rw holddown-interval?   uint16
       |     |  |  +--rw flush-interval?      uint16
       |     |  +--rw default-metric?   uint8
       |     +--rw vrrp
       |        +--rw address-family?   identityref
       |        +--rw ping-reply?       boolean
       +--rw oam
          ...
  augment /nw:networks/nw:network/nw:node/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    ac-profile-reference
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  +--rw routing-protocol* [id]
       |     +--rw id                  string
       |     +--rw type?               identityref
       |     +--rw routing-profiles* [id]
       |     |  +--rw id      leafref
       |     |  +--rw type?   identityref
       |     +--rw static
       |     |  +--rw cascaded-lan-prefixes
       |     |     +--rw ipv4-lan-prefixes* [lan next-hop]
       |     |     |       {vpn-common:ipv4}?
       |     |     |  +--rw lan           inet:ipv4-prefix
       |     |     |  +--rw lan-tag?      string
       |     |     |  +--rw next-hop      union
       |     |     |  +--rw metric?       uint32
       |     |     |  +--rw bfd-enable?   boolean {vpn-common:bfd}?
       |     |     |  +--rw preference?   uint32
       |     |     |  +--rw status
       |     |     |     +--rw admin-status
       |     |     |     |  +--rw status?        identityref
       |     |     |     |  +--rw last-change?   yang:date-and-time
       |     |     |     +--ro oper-status
       |     |     |        +--ro status?        identityref
       |     |     |        +--ro last-change?   yang:date-and-time
       |     |     +--rw ipv6-lan-prefixes* [lan next-hop]
       |     |             {vpn-common:ipv6}?
       |     |        +--rw lan           inet:ipv4-prefix
       |     |        +--rw lan-tag?      string
       |     |        +--rw next-hop      union
       |     |        +--rw metric?       uint32
       |     |        +--rw bfd-enable?   boolean {vpn-common:bfd}?
       |     |        +--rw preference?   uint32
       |     |        +--rw status
       |     |           +--rw admin-status
       |     |           |  +--rw status?        identityref
       |     |           |  +--rw last-change?   yang:date-and-time
       |     |           +--ro oper-status
       |     |              +--ro status?        identityref
       |     |              +--ro last-change?   yang:date-and-time
       |     +--rw bgp
       |     |  +--rw peer-groups
       |     |  |  +--rw peer-group* [name]
       |     |  |     +--rw name                      string
       |     |  |     +--rw local-address?            union
       |     |  |     +--rw description?              string
       |     |  |     +--rw apply-policy
       |     |  |     |  +--rw import-policy*           leafref
       |     |  |     |  +--rw default-import-policy?
       |     |  |     |  |       default-policy-type
       |     |  |     |  +--rw export-policy*           leafref
       |     |  |     |  +--rw default-export-policy?
       |     |  |     |          default-policy-type
       |     |  |     +--rw local-as?                 inet:as-number
       |     |  |     +--rw peer-as                   inet:as-number
       |     |  |     +--rw address-family?           identityref
       |     |  |     +--rw multihop?                 uint8
       |     |  |     +--rw as-override?              boolean
       |     |  |     +--rw allow-own-as?             uint8
       |     |  |     +--rw prepend-global-as?        boolean
       |     |  |     +--rw send-default-route?       boolean
       |     |  |     +--rw site-of-origin?
       |     |  |     |       rt-types:route-origin
       |     |  |     +--rw ipv6-site-of-origin?
       |     |  |     |       rt-types:ipv6-route-origin
       |     |  |     +--rw redistribute-connected* [address-family]
       |     |  |     |  +--rw address-family    identityref
       |     |  |     |  +--rw enable?           boolean
       |     |  |     +--rw bgp-max-prefix
       |     |  |     |  +--rw max-prefix?          uint32
       |     |  |     |  +--rw warning-threshold?   decimal64
       |     |  |     |  +--rw violate-action?      enumeration
       |     |  |     |  +--rw restart-timer?       uint32
       |     |  |     +--rw bgp-timers
       |     |  |     |  +--rw keepalive?   uint16
       |     |  |     |  +--rw hold-time?   uint16
       |     |  |     +--rw authentication
       |     |  |        +--rw enable?            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 enable?           boolean
       |     |     +--rw bgp-max-prefix
       |     |     |  +--rw max-prefix?          uint32
       |     |     |  +--rw warning-threshold?   decimal64
       |     |     |  +--rw violate-action?      enumeration
       |     |     |  +--rw restart-timer?       uint32
       |     |     +--rw bgp-timers
       |     |     |  +--rw keepalive?   uint16
       |     |     |  +--rw hold-time?   uint16
       |     |     +--rw authentication
       |     |     |  +--rw enable?            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
       |     |        |  +--rw last-change?   yang:date-and-time
       |     |        +--ro oper-status
       |     |           +--ro status?        identityref
       |     |           +--ro last-change?   yang:date-and-time
       |     +--rw ospf
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-id           yang:dotted-quad
       |     |  +--rw metric?           uint16
       |     |  +--rw sham-links {vpn-common:rtg-ospf-sham-link}?
       |     |  |  +--rw sham-link* [target-site]
       |     |  |     +--rw target-site    string
       |     |  |     +--rw metric?        uint16
       |     |  +--rw max-lsa?          uint32
       |     |  +--rw authentication
       |     |  |  +--rw enable?            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
       |     |     |  +--rw last-change?   yang:date-and-time
       |     |     +--ro oper-status
       |     |        +--ro status?        identityref
       |     |        +--ro last-change?   yang:date-and-time
       |     +--rw isis
       |     |  +--rw address-family?   identityref
       |     |  +--rw area-address      area-address
       |     |  +--rw level?            identityref
       |     |  +--rw metric?           uint16
       |     |  +--rw mode?             enumeration
       |     |  +--rw authentication
       |     |  |  +--rw enable?            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
       |     |     |  +--rw last-change?   yang:date-and-time
       |     |     +--ro oper-status
       |     |        +--ro status?        identityref
       |     |        +--ro last-change?   yang:date-and-time
       |     +--rw rip
       |     |  +--rw address-family?   identityref
       |     |  +--rw timers
       |     |  |  +--rw update-interval?     uint16
       |     |  |  +--rw invalid-interval?    uint16
       |     |  |  +--rw holddown-interval?   uint16
       |     |  |  +--rw flush-interval?      uint16
       |     |  +--rw default-metric?   uint8
       |     |  +--rw authentication
       |     |  |  +--rw enable?            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
       |     |     |  +--rw last-change?   yang:date-and-time
       |     |     +--ro oper-status
       |     |        +--ro status?        identityref
       |     |        +--ro last-change?   yang:date-and-time
       |     +--rw vrrp
       |        +--rw address-family?       identityref
       |        +--rw vrrp-group?           uint8
       |        +--rw backup-peer?          inet:ip-address
       |        +--rw virtual-ip-address*   inet:ip-address
       |        +--rw priority?             uint8
       |        +--rw ping-reply?           boolean
       |        +--rw status
       |           +--rw admin-status
       |           |  +--rw status?        identityref
       |           |  +--rw 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>
        <section anchor="sec-static-rtg">
          <name>Static Routing</name>
          <t>The following data nodes can be defined for a given IP prefix (<xref target="rtg-tree"/>):</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-enable':</dt>
            <dd>
              <t>Indicates whether BFD is enabled or disabled for this static route entry.</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 following data nodes are supported for each 'peer-group' (<xref target="rtg-tree"/>):</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 will be used together with the 'vpn-type' 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>
          </dl>
          <artwork><![CDATA[
'violate-action':
:  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.

'restart-timer':
:  Indicates, in seconds, the time interval after
  which the BGP session will be reestablished.
]]></artwork>
          <dl>
            <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>'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>
          </dl>
        </section>
        <section anchor="sec-ospf-rtg">
          <name>OSPF</name>
          <t>The following OSPF data nodes are supported (<xref target="rtg-tree"/>):</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.  Such a decision will typically be reflected in the
    device configurations that will be derived to implement the L3VPN.</t>
            </dd>
            <dt>'area-id':</dt>
            <dd>
              <t>Indicates the OSPF Area ID.</t>
            </dd>
            <dt>'metric':</dt>
            <dd>
              <t>Associates a metric with OSPF routes.</t>
            </dd>
            <dt>'sham-links':</dt>
            <dd>
              <t>Used to create OSPF sham links between two ACs sharing the same area and having a backdoor link
   (<xref section="4.2.7" sectionFormat="of" target="RFC4577"/> and <xref section="5" sectionFormat="of" target="RFC6565"/>).</t>
            </dd>
            <dt>'max-lsa':</dt>
            <dd>
              <t>Sets the maximum number of Link State Advertisements
   (LSAs) that the OSPF instance will accept.</t>
            </dd>
            <dt>'authentication':</dt>
            <dd>
              <t>Controls the authentication schemes to be enabled
   for the OSPF instance.  The following options are supported: IPsec
   for OSPFv3 authentication <xref target="RFC4552"/>, and the Authentication
   Trailer for OSPFv2 <xref target="RFC5709"/> <xref target="RFC7474"/> and OSPFv3 <xref target="RFC7166"/>.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the OSPF routing instance.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-isis-rtg">
          <name>IS-IS</name>
          <t>The following IS-IS data nodes are supported (<xref target="rtg-tree"/>):</t>
          <dl>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates whether IPv4, IPv6, or both address families are to be activated.</t>
            </dd>
            <dt>'area-address':</dt>
            <dd>
              <t>Indicates the IS-IS area address.</t>
            </dd>
            <dt>'level':</dt>
            <dd>
              <t>Indicates the IS-IS level: Level 1, Level 2, or both.</t>
            </dd>
            <dt>'metric':</dt>
            <dd>
              <t>Associates a metric with IS-IS routes.</t>
            </dd>
            <dt>'mode':</dt>
            <dd>
              <t>Indicates the IS-IS interface mode type.  It can be set to
   'active' (that is, send or receive IS-IS protocol control packets)
   or 'passive' (that is, suppress the sending of IS-IS updates
   through the interface).</t>
            </dd>
            <dt/>
            <dd>
              <t>'authentication':</t>
            </dd>
            <dt/>
            <dd>
              <t>Controls the authentication schemes to be enabled
   for the IS-IS instance.  Both the specification of a key chain
   <xref target="RFC8177"/> and the direct specification of key and authentication
   algorithms are supported.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the IS-IS routing instance.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-rip-rtg">
          <name>RIP</name>
          <t>The following RIP data nodes are supported (<xref target="rtg-tree"/>):</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 following VRRP data nodes are supported (<xref target="rtg-tree"/>):</t>
          <dl>
            <dt>'address-family':</dt>
            <dd>
              <t>Indicates whether IPv4, IPv6, or both address
   families are to be activated.  Note that VRRP version 3 <xref target="RFC5798"/>
   supports both IPv4 and IPv6.</t>
            </dd>
            <dt>'vrrp-group':</dt>
            <dd>
              <t>Used to identify the VRRP group.</t>
            </dd>
            <dt>'backup-peer':</dt>
            <dd>
              <t>Carries the IP address of the peer.</t>
            </dd>
            <dt>'virtual-ip-address':</dt>
            <dd>
              <t>Includes virtual IP addresses for a single VRRP group.</t>
            </dd>
            <dt>'priority':</dt>
            <dd>
              <t>Assigns the VRRP election priority for the backup virtual router.</t>
            </dd>
            <dt>'ping-reply':</dt>
            <dd>
              <t>Controls whether the VRRP speaker should reply to ping requests.</t>
            </dd>
            <dt>'status':</dt>
            <dd>
              <t>Indicates the status of the VRRP instance.</t>
            </dd>
          </dl>
          <t>Note that no authentication data node is included for VRRP, as there
isn't any type of VRRP authentication at this time (see <xref section="9" sectionFormat="of" target="RFC5798"/>).</t>
        </section>
      </section>
      <section anchor="sec-oam">
        <name>OAM</name>
        <t>The OAM tree 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 l2-connection
       +--rw ip-connection
       +--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/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    ac-profile-reference
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  +--rw bfd
       |     +--rw profile?                    ac-svc:bfd-profile-reference
       |     +--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
       |        |  +--rw 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:</t>
        <dl>
          <dt>'profile':</dt>
          <dd>
            <t>Refers to a BFD profile (<xref target="sec-profiles"/>).</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 tree 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/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    ac-profile-reference
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  +--rw encryption {vpn-common:encryption}?
       |  |  +--rw enabled?   boolean
       |  |  +--rw layer?     enumeration
       |  +--rw encryption-profile
       |     +--rw (profile)?
       |        +--:(provider-profile)
       |        |  +--rw profile-name?
       |        |          encryption-profile-reference
       |        +--:(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 tree 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/sap:service/sap:sap:
    +--rw ac* [name]
       +--rw name                 string
       +--rw ac-svc-ref?          ac-svc:attachment-circuit-reference
       +--rw ac-profile* [profile-id]
       |  +--rw profile-id    ac-profile-reference
       +--rw ac-parent-ref?       ac-ntw:attachment-circuit-reference
       +--rw peer-sap-id*         string
       +--rw group* [group-id]
       |  +--rw group-id      string
       |  +--rw precedence?   identityref
       +--rw status
       |  +--rw admin-status
       |  |  +--rw status?        identityref
       |  |  +--rw last-change?   yang:date-and-time
       |  +--ro oper-status
       |     +--ro status?        identityref
       |     +--ro last-change?   yang:date-and-time
       +--rw description?         string
       +--rw l2-connection
       |  ...
       +--rw ip-connection
       |  ...
       +--rw routing-protocols
       |  ...
       +--rw oam
       |  ...
       +--rw security
       |  ...
       +--rw service
          +--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* [profile]
          |        +--rw profile      qos-profile-reference
          |        +--rw direction?   identityref
          +--rw access-control-list
             +--rw acl-profiles
                +--rw acl-profile* [profile]
                   +--rw profile    forwarding-profile-reference
]]></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 VPN network access.</t>
          </dd>
          <dt>'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth':</dt>
          <dd>
            <t>Specify the service bandwidth for the L2VPN service.</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-pe-to-ce-bandwidth' indicates the inbound bandwidth of the connection (i.e., download bandwidth from the service provider to the site).</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-ce-to-pe-bandwidth' indicates the outbound bandwidth of the connection (i.e., upload bandwidth from the site to the service provider).</t>
          </dd>
          <dt/>
          <dd>
            <t>'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth' can be represented using the Committed Information Rate (CIR), the Excess Information Rate (EIR), or the Peak Information Rate (PIR).</t>
          </dd>
          <dt/>
          <dd>
            <t>The following types, defined in <xref target="RFC9181"/>, can be used to indicate the bandwidth type:</t>
            <dl>
              <dt>'bw-per-cos':</dt>
              <dd>
                <t>The bandwidth is per CoS.</t>
              </dd>
              <dt>'bw-per-port':</dt>
              <dd>
                <t>The bandwidth is per port.</t>
              </dd>
              <dt>'bw-per-site':</dt>
              <dd>
                <t>The bandwidth is to all peer SAPs that belong to the same site.</t>
              </dd>
              <dt>'bw-per-service':</dt>
              <dd>
                <t>The bandwidth is per service instance that is bound to an AC.</t>
              </dd>
            </dl>
          </dd>
          <dt>'qos':</dt>
          <dd>
            <t>Specify a list of QoS profiles to apply for this AC.</t>
          </dd>
          <dt>'access-control-list':</dt>
          <dd>
            <t>Specify a list of ACL profiles to apply for this AC.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="yang-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 IEEE Std 802.1Qcp.</t>
      <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file ietf-ac-ntw@2022-11-30.yang
module ietf-ac-ntw {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-ntw";
  prefix ac-ntw;

  import ietf-vpn-common {
    prefix vpn-common;
    reference
      "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
                 VPNs";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types, Section 4";
  }
  import ietf-key-chain {
    prefix key-chain;
    reference
      "RFC 8177: YANG Data Model for Key Chains";
  }
  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }
  import ietf-routing-policy {
    prefix rt-pol;
    reference
      "RFC 9067: A YANG Data Model for Routing Policy";
  }
  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A YANG Data Model for Interface Management";
  }
  import ieee802-dot1q-types {
    prefix dot1q-types;
    reference
      "IEEE Std 802.1Qcp: Bridges and Bridged Networks--
                          Amendment 30: YANG Data Model";
  }
  import ietf-network {
    prefix nw;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies, 
                 Section 6.1";
  }
  import ietf-sap-ntw {
    prefix sap;
    reference
      "RFC SSSS: 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 Service Data Models for Attachment Circuits";
  }

  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>";
  description
    "This YANG module defines a YANG model for the management of
     attachment circuits.

     Copyright (c) 2023 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 xxx; see the
     RFC itself for full legal notices.";

  revision 2023-11-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Network Data Model for Attachment Circuits";
  }

  // L2 connection groupings

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

  typedef attachment-circuit-reference {
    type leafref {
      path "/nw:networks/nw:network/nw:node/sap:service/sap:sap"
         + "/ac-ntw:ac/ac-ntw:name";
    }
    description
      "Defines a reference to an attachment circuit that can be used
       by other modules.";
  }

  typedef ac-profile-reference {
    type leafref {
      path "/nw:networks/nw:network/ac-profile/name";
    }
    description
      "Defines a reference to an attachment circuit profile that
       can be used by other modules.";
  }

  typedef encryption-profile-reference {
    type leafref {
      path
          "/nw:networks/nw:network"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:encryption-profile-identifier/ac-ntw:id";
    }
    description
      "Defines a type to an encryption profile for referencing
       purposes.";
  }

  typedef qos-profile-reference {
    type leafref {
      path
          "/nw:networks/nw:network"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:qos-profile-identifier/ac-ntw:id";
    }
    description
      "Defines a type to a QoS profile for referencing purposes.";
  }

  typedef bfd-profile-reference {
    type leafref {
      path
          "/nw:networks/nw:network"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:bfd-profile-identifier/ac-ntw:id";
    }
    description
      "Defines a type to a BFD profile for referencing purposes.";
  }

  typedef forwarding-profile-reference {
    type leafref {
      path
          "/nw:networks/nw:network"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:forwarding-profile-identifier/ac-ntw:id";
    }
    description
      "Defines a type to a forwarding profile for referencing
       purposes.";
  }

  typedef routing-profile-reference {
    type leafref {
      path
          "/nw:networks/nw:network"
        + "/ac-ntw:specific-provisioning-profiles" 
        + "/ac-ntw:valid-provider-identifiers"
        + "/ac-ntw:routing-profile-identifier/ac-ntw:id";
    }
    description
      "Defines a type to a routing profile for referencing 
       purposes.";
  }

  // L2 conenction

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

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

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

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

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

  // IPv4 connection groupings

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

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

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

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

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

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

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

  /* Routing */
  //BGP base parameters

  grouping bgp-base {
    description
      "Configuration specific to BGP.";
    leaf description {
      type string;
      description
        "Includes a description of the BGP session. This description 
         is meant to be used for diagnostic purposes. The semantic 
         of the description is local to an implementation.";
    }
    uses rt-pol:apply-policy-group;
    leaf local-as {
      type inet:as-number;
      description
        "Indicates a local AS Number (ASN), if an ASN distinct from
         the ASN configured at the AC level is needed.";
    }
    leaf peer-as {
      type inet:as-number;
      mandatory true;
      description
        "Indicates the customer's ASN when the customer requests BGP
         routing.";
    }
    leaf address-family {
      type identityref {
        base vpn-common:address-family;
      }
      description
        "This node contains the address families to be activated.
         'dual-stack' means that both IPv4 and IPv6 will be
         activated.";
    }
    leaf multihop {
      type uint8;
      description
        "Describes the number of IP hops allowed between a given BGP
         neighbor and the PE.";
    }
    leaf as-override {
      type boolean;
      default "false";
      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;
      default "0";
      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;
      default "false";
      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;
      default "false";
      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 "../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 "../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 enable {
        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;
        default "5000";
        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";
        default "75";
        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";
        default "30";
        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";
        default "90";
        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";
      }
    }
  }

  // RIP base parameters

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

  // routing profile

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

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

  // OAM

  grouping bfd {
    description
      "Grouping for BFD.";
    leaf session-type {
      type identityref {
        base vpn-common:bfd-session-type;
      }
      default "vpn-common:classic-bfd";
      description
        "Specifies the BFD session type.";
    }
    leaf desired-min-tx-interval {
      type uint32;
      units "microseconds";
      default "1000000";
      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";
      default "1000000";
      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";
      }
      default "3";
      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";
    }
  }

  // OAM

  grouping oam {
    description
      "Defines the Operations, Administration, and Maintenance
       (OAM) mechanisms used.";
    container bfd {
      description
        "Container for BFD.";
      leaf profile {
        type bfd-profile-reference;
        description
          "Well-known service provider profile name.";
      }
      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 vpn-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;
        default "false";
        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 {
          leaf profile-name {
            type encryption-profile-reference;
            description
              "Name of the provider's profile to be applied.";
          }
        }
        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 l2-connection {
      description
        "Defines Layer 2 protocols and parameters that
         are required to enable AC connectivity.";
      //uses l2-connection;
    }
    container ip-connection {
      description
        "Defines IP connection parameters.";
      //uses l3-connection;
    }
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing-profile;
    }
    container oam {
      description
        "Defines the OAM mechanisms used for the AC profile.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        uses bfd;
      }
    }
  }

  //AC network provisioning 

  grouping ac {
    description
      "Grouping for attachment circuits.";
    leaf description {
      type string;
      description
        "Associates a description with an AC.";
    }
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that are required
         to enable AC connectivity.";
      uses l2-connection-if-ref;
    }
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses ip-connection;
    }
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing;
    }
    container oam {
      description
        "Defines the OAM mechanisms used for the AC.";
      uses oam;
    }
    container security {
      description
        "AC-specific security parameters.";
      uses security;
    }
    container service {
      description
        "AC-specific bandwith parameters.";
      leaf mtu {
        type uint32;
        units "bytes";
        description
          "Layer 2 MTU.";
      }
      uses ac-svc:bandwidth;
      container qos {
        if-feature "vpn-common:qos";
        description
          "QoS configuration.";
        container qos-profiles {
          description
            "QoS profile configuration.";
          list qos-profile {
            key "profile";
            description
              "Points to a QoS profile.";
            leaf profile {
              type qos-profile-reference;
              description
                "QoS profile to be used.";
            }
            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 "profile";
            description
              "Points to an ACL profile.";
            leaf profile {
              type forwarding-profile-reference;
              description
                "Forwarding profile to be used.";
            }
          }
        }
      }
    }
  }

  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"
        + "/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 "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 "profile-id";
        description
          "List of AC profiles.";
        leaf profile-id {
          type ac-profile-reference;
          description
            "A reference to an AC profile.";
        }
      }
      leaf ac-parent-ref {
        type ac-ntw:attachment-circuit-reference;
        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.";
      }
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      list group {
        key "group-id";
        description
          "List of group-ids.";
        leaf group-id {
          type string;
          description
            "Indicates the group-id to which the AC belongs.";
        }
        leaf precedence {
          type identityref {
            base ac-common:precedence-type;
          }
          description
            "Defines redundancy of an AC.";
        }
      }
      uses vpn-common:service-status;
      uses ac-ntw:ac;
    }
  }
}
<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <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.
   These are the subtrees and data nodes and their sensitivity/
   vulnerability in the "ietf-ac-ntw" module:</t>
      <ul spacing="normal">
        <li>
          <t>TBC</t>
        </li>
        <li>
          <t>TBC</t>
        </li>
      </ul>
      <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.  These are the subtrees and data
   nodes and their sensitivity/vulnerability in the "ietf-ac-svc" module:</t>
      <ul spacing="normal">
        <li>
          <t>TBC</t>
        </li>
        <li>
          <t>TBC</t>
        </li>
      </ul>
      <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="I-D.ietf-opsawg-teas-attachment-circuit">
          <front>
            <title>YANG Data Models for '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="6" month="November" year="2023"/>
            <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-01"/>
        </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="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="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="6" month="November" year="2023"/>
            <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-00"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9181">
          <front>
            <title>A Common YANG Data Model for Layer 2 and Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC8077">
          <front>
            <title>Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)</title>
            <author fullname="L. Martini" initials="L." role="editor" surname="Martini"/>
            <author fullname="G. Heron" initials="G." role="editor" surname="Heron"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>Layer 2 services (such as Frame Relay, Asynchronous Transfer Mode, and Ethernet) can be emulated over an MPLS backbone by encapsulating the Layer 2 Protocol Data Units (PDUs) and then transmitting them over pseudowires (PWs). It is also possible to use pseudowires to provide low-rate Time-Division Multiplexed and Synchronous Optical NETworking circuit emulation over an MPLS-enabled network. This document specifies a protocol for establishing and maintaining the pseudowires, using extensions to the Label Distribution Protocol (LDP). Procedures for encapsulating Layer 2 PDUs are specified in other documents.</t>
              <t>This document is a rewrite of RFC 4447 for publication as an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="84"/>
          <seriesInfo name="RFC" value="8077"/>
          <seriesInfo name="DOI" value="10.17487/RFC8077"/>
        </reference>
        <reference anchor="RFC9067">
          <front>
            <title>A YANG Data Model for Routing Policy</title>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model for configuring and managing routing policies in a vendor-neutral way. The model provides a generic routing policy framework that can be extended for specific routing protocols using the YANG 'augment' mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9067"/>
          <seriesInfo name="DOI" value="10.17487/RFC9067"/>
        </reference>
        <reference anchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC5701">
          <front>
            <title>IPv6 Address Specific BGP Extended Community Attribute</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="November" year="2009"/>
            <abstract>
              <t>Current specifications of BGP Extended Communities (RFC 4360) support the IPv4 Address Specific Extended Community, but do not support an IPv6 Address Specific Extended Community. The lack of an IPv6 Address Specific Extended Community may be a problem when an application uses the IPv4 Address Specific Extended Community, and one wants to use this application in a pure IPv6 environment. This document defines a new BGP attribute, the IPv6 Address Specific Extended Community, that addresses this problem. The IPv6 Address Specific Extended Community is similar to the IPv4 Address Specific Extended Community, except that it carries an IPv6 address rather than an IPv4 address. [STANDARDS TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5701"/>
          <seriesInfo name="DOI" value="10.17487/RFC5701"/>
        </reference>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5925"/>
          <seriesInfo name="DOI" value="10.17487/RFC5925"/>
        </reference>
        <reference anchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC4577">
          <front>
            <title>OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>Many Service Providers offer Virtual Private Network (VPN) services to their customers, using a technique in which customer edge routers (CE routers) are routing peers of provider edge routers (PE routers). The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. This is known as a "BGP/MPLS IP VPN". The base specification for BGP/MPLS IP VPNs presumes that the routing protocol on the interface between a PE router and a CE router is BGP. This document extends that specification by allowing the routing protocol on the PE/CE interface to be the Open Shortest Path First (OSPF) protocol.</t>
              <t>This document updates RFC 4364. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4577"/>
          <seriesInfo name="DOI" value="10.17487/RFC4577"/>
        </reference>
        <reference anchor="RFC6565">
          <front>
            <title>OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol</title>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <author fullname="P. Moyer" initials="P." surname="Moyer"/>
            <author fullname="J. Doyle" initials="J." surname="Doyle"/>
            <author fullname="E. Ertekin" initials="E." surname="Ertekin"/>
            <author fullname="M. Lundberg" initials="M." surname="Lundberg"/>
            <date month="June" year="2012"/>
            <abstract>
              <t>Many Service Providers (SPs) offer Virtual Private Network (VPN) services to their customers using a technique in which Customer Edge (CE) routers are routing peers of Provider Edge (PE) routers. The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. Support currently exists for both IPv4 and IPv6 VPNs; however, only Open Shortest Path First version 2 (OSPFv2) as PE-CE protocol is specified. This document extends those specifications to support OSPF version 3 (OSPFv3) as a PE-CE routing protocol. The OSPFv3 PE-CE functionality is identical to that of OSPFv2 except for the differences described in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6565"/>
          <seriesInfo name="DOI" value="10.17487/RFC6565"/>
        </reference>
        <reference anchor="RFC4552">
          <front>
            <title>Authentication/Confidentiality for OSPFv3</title>
            <author fullname="M. Gupta" initials="M." surname="Gupta"/>
            <author fullname="N. Melam" initials="N." surname="Melam"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>This document describes means and mechanisms to provide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4552"/>
          <seriesInfo name="DOI" value="10.17487/RFC4552"/>
        </reference>
        <reference anchor="RFC5709">
          <front>
            <title>OSPFv2 HMAC-SHA Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Barnes" initials="M." surname="Barnes"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2009"/>
            <abstract>
              <t>This document describes how the National Institute of Standards and Technology (NIST) Secure Hash Standard family of algorithms can be used with OSPF version 2's built-in, cryptographic authentication mechanism. This updates, but does not supercede, the cryptographic authentication mechanism specified in RFC 2328. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5709"/>
          <seriesInfo name="DOI" value="10.17487/RFC5709"/>
        </reference>
        <reference anchor="RFC7474">
          <front>
            <title>Security Extension for OSPFv2 When Using Manual Key Management</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>The current OSPFv2 cryptographic authentication mechanism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- session replay attacks when using manual keying. Additionally, the existing cryptographic authentication mechanism does not cover the IP header. This omission can be exploited to carry out various types of attacks.</t>
              <t>This document defines changes to the authentication sequence number mechanism that will protect OSPFv2 from both inter-session and intra- session replay attacks when using manual keys for securing OSPFv2 protocol packets. Additionally, we also describe some changes in the cryptographic hash computation that will eliminate attacks resulting from OSPFv2 not protecting the IP header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7474"/>
          <seriesInfo name="DOI" value="10.17487/RFC7474"/>
        </reference>
        <reference anchor="RFC7166">
          <front>
            <title>Supporting Authentication Trailer for OSPFv3</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Currently, OSPF for IPv6 (OSPFv3) uses IPsec as the only mechanism for authenticating protocol packets. This behavior is different from authentication mechanisms present in other routing protocols (OSPFv2, Intermediate System to Intermediate System (IS-IS), RIP, and Routing Information Protocol Next Generation (RIPng)). In some environments, it has been found that IPsec is difficult to configure and maintain and thus cannot be used. This document defines an alternative mechanism to authenticate OSPFv3 protocol packets so that OSPFv3 does not depend only upon IPsec for authentication.</t>
              <t>The OSPFv3 Authentication Trailer was originally defined in RFC 6506. This document obsoletes RFC 6506 by providing a revised definition, including clarifications and refinements of the procedures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7166"/>
          <seriesInfo name="DOI" value="10.17487/RFC7166"/>
        </reference>
        <reference anchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="56"/>
          <seriesInfo name="RFC" value="2453"/>
          <seriesInfo name="DOI" value="10.17487/RFC2453"/>
        </reference>
        <reference anchor="RFC2080">
          <front>
            <title>RIPng for IPv6</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <author fullname="R. Minnear" initials="R." surname="Minnear"/>
            <date month="January" year="1997"/>
            <abstract>
              <t>This document specifies a routing protocol for an IPv6 internet. It is based on protocols and algorithms currently in wide use in the IPv4 Internet [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2080"/>
          <seriesInfo name="DOI" value="10.17487/RFC2080"/>
        </reference>
        <reference anchor="RFC5798">
          <front>
            <title>Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6</title>
            <author fullname="S. Nadas" initials="S." role="editor" surname="Nadas"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>This memo defines the Virtual Router Redundancy Protocol (VRRP) for IPv4 and IPv6. It is version three (3) of the protocol, and it is based on VRRP (version 2) for IPv4 that is defined in RFC 3768 and in "Virtual Router Redundancy Protocol for IPv6". VRRP specifies an election protocol that dynamically assigns responsibility for a virtual router to one of the VRRP routers on a LAN. The VRRP router controlling the IPv4 or IPv6 address(es) associated with a virtual router is called the Master, and it forwards packets sent to these IPv4 or IPv6 addresses. VRRP Master routers are configured with virtual IPv4 or IPv6 addresses, and VRRP Backup routers infer the address family of the virtual addresses being carried based on the transport protocol. Within a VRRP router, the virtual routers in each of the IPv4 and IPv6 address families are a domain unto themselves and do not overlap. The election process provides dynamic failover in the forwarding responsibility should the Master become unavailable. For IPv4, the advantage gained from using VRRP is a higher-availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host. For IPv6, the advantage gained from using VRRP for IPv6 is a quicker switchover to Backup routers than can be obtained with standard IPv6 Neighbor Discovery mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5798"/>
          <seriesInfo name="DOI" value="10.17487/RFC5798"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AC-Ntw-Tree" target="https://github.com/boucadair/attachment-circuit-model/blob/main/yang/full-trees/ac-ntw-without-groupings.txt">
          <front>
            <title>Full Network Attachment Circuit Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="PYANG" target="https://github.com/mbj4668/pyang">
          <front>
            <title>pyang</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="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="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="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="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 3434?>

<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>
    </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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
gEjyvlhHDHQxdnVHTpuixRKb7B+QAwF/UZiIy/SGxdtk8EJHed8XAZOEk4eO
4rGQRlL0tduUWEfYlMQ5PVnNvDK7tLbLXeNXOJxBrcBjnGJQRrFiW9yULaIp
BliYp5vokmMdnOFcfc3u6/TOOtnR2IQQZHx39z66hOQ13rrKNr5Ospv8fayO
ChgAhZDtbFk/GlGPRtSjEdUyUr8pI6rLEVGZHECJBNPZpF9bGaycnAITvxZv
DPWdNFj8aVtcHOTs85kEW+Kbm2cgEOf41XXuslyzmi/nOAqlOjRDC69j1mRT
SizkyZVmLFSHVFHLolphUHXS4eUqJ3V4tWj6jvPCkkrA5Ip6o1dUft++oN6M
13XSPi4lj0vJ41LSMlK/u6Wkg49B+H+qpdd359k3EIBg/i7isMrDcRyOgK63
yaS6tm8Zy0b5Egg+urW2R7QrUdYC3h/dkhvhv+xyqjXxmT/4t06sFQkLb39b
+xrIFQl4bZyrOB2rgEIPCgBi8F9zSga15UgVFvPT3THxF0+kuxCL66THjeVH
5Vrl4zXhx2vCX6wJf9EBPo0MHY7yjkvg0K4ZUOBQrUPJuDPMuDPMRWeYiwaY
eqaNaaYtmmYaCJHHqfY41R6n2mdOtZ9zO20w/O2fT/BBecMbJoZRRKunXua2
lFR+ZVSuq5f1uuykEuqLf85KzXaMQU3ClxWmSVkZZYxiqa97DUX83XMJr7s3
zYtbPrLo6aM2lW5cU4mNHv+WhycViLSSjP0P2hsQzv8SNz9A7fGcw5HuuzdX
P5KDeHRHBx+l4/mni3N1hoMJSs5Sr0LUI7dkzy/DjabvLJS1lJdtnu1jq+I7
h/82NZhYrlqhhBkgZSYHpZ8GW5z0Ab3iaR6ZZVUcocRM2vIq105SyXDkhj46
+MilqgtCy0UjOniaW6LgoLbdTp628ZDO3yLGMFVO38Cn+rAhPGmOGyGT4NRw
/L/DXYat49N323yg7OQDcoSnyAkVEeN5EUfvPWUuoAyhb2/j0b0jO3a6EUpR
s/d8D7fHHJ+1tfmhqYdQKNa2B2u8WJcptpSb0wUxxBiG+Di/7JvFMfiwrTx+
Fye2RQ0cJnlWu1YFdxnTlA+QXQ4vxDmiUZxiRiczlRNCceDykDeCRmwkW6iz
LzI9ALMfZycaHuPU/TkvrakYBSgYkS//ml9KyVV6MgFxdY9QbQA3PD5bCe6r
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
vu6G6QEA

-->

</rfc>
