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

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

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

         .-------------------.      .-------------------.
         |                   |      |                 .-+-.ac.---.
         |         PE3       |      |        PE4      |sap+--+CE5|
         |                   |      |                 '---'  '---'
         |                   |      |                   |
         |             .---. |      | .---. .---. .---. |
         '-------------+sap+-'      '-+sap+-+sap+-+sap+-'
                       '-+-'          '-+-' '-+-' '-+-'
                         |ac            |     |ac   |ac
                       .-+-.            |   .-+-.   |
                       |CE3+-----ac-----'   |CE4+---'
                       '---'                '---'
]]></artwork>
        </artset>
      </figure>
      <t>The AC network model uses the AC common model defined in <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
      <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      <t>Sample examples are provided in <xref target="sec-examples"/>.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized values at the time of publication. This note summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>CCCC --&gt; the assigned RFC number for <xref target="I-D.ietf-opsawg-teas-common-ac"/></t>
          </li>
          <li>
            <t>SSSS --&gt; the assigned RFC number for <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/></t>
          </li>
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>2024-05-15 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

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

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

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

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

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

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

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

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

  // References

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

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

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

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

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

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

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

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

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

  // L2 conenction

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

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

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

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

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

  // IPv4 connection groupings

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

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

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

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

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

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

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

  /* Routing */
  //BGP base parameters

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

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

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

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

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

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

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

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

  grouping bgp-peer-group {
    description
      "Grouping for BGP peer group.";
    leaf name {
      type string;
      description
        "Name of the BGP peer-group";
    }
    leaf local-address {
      type union {
        type inet:ip-address;
        type if:interface-ref;
      }
    description
      "Sets the local IP address to use for the BGP 
       transport session. This may be expressed as either 
       an IP address or a reference to an interface.";
    }
    uses bgp-base;
    uses ac-common:bgp-authentication;
  }

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

  // RIP base parameters

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

  // routing profile

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

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

  grouping routing {
    description
      "Defines routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      leaf type {
        type identityref {
          base vpn-common:routing-protocol-type;
        }
        description
          "Type of routing protocol.";
      }
      list routing-profile {
        key "routing-profile-ref";
        description
          "Routing profiles.";
        uses routing-profile-reference;
        leaf type {
          type identityref {
            base vpn-common:ie-type;
          }
          description
            "Import, export, or both.";
        }
      }
      container static {
        when "derived-from-or-self(../type, "
           + "'vpn-common:static-routing')" {
          description
            "Only applies when the protocol is a static routing
             protocol.";
        }
        description
          "Configuration specific to static routing.";
        container cascaded-lan-prefixes {
          description
            "LAN prefixes from the customer.";
          list ipv4-lan-prefix {
            if-feature "vpn-common:ipv4";
            key "lan next-hop";
            description
              "List of LAN prefixes for the site.";
            uses ac-common:ipv4-static-rtg-entry;
            uses bfd-routing;
            leaf preference {
              type uint32;
              description
                "Indicates the preference associated with the static
                 route.";
            }
            uses ac-common:service-status;
          }
          list ipv6-lan-prefix {
            if-feature "vpn-common:ipv6";
            key "lan next-hop";
            description
              "List of LAN prefixes for the site.";
            uses ac-common:ipv6-static-rtg-entry;
            uses bfd-routing;
            leaf preference {
              type uint32;
              description
                "Indicates the preference associated with the static
                 route.";
            }
            uses ac-common:service-status;
          }
        }
      }
      container bgp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:bgp-routing')" {
          description
            "Only applies when the protocol is BGP.";
        }
        if-feature "vpn-common:rtg-bgp";
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Configuration for BGP peer-groups";
          uses bgp-peer-group-list;
        }
        list neighbor {
          key "remote-address";
          description
            "List of BGP neighbors.";
          leaf remote-address {
            type inet:ip-address;
            description
              "The remote IP address of this entry's BGP peer.";
          }
          leaf local-address {
            type union {
              type inet:ip-address;
              type if:interface-ref;
            }
            description
              "Sets the local IP address to use for
               the BGP transport session.  This may be
               expressed as either an IP address or a
               reference to an interface.";
          }
          leaf peer-group {
            type leafref {
              path "../../peer-groups/peer-group/name";
            }
            description
              "The peer-group with which this neighbor is
               associated.";
          }
          uses bgp-base;
          uses bfd-routing;
          uses ac-common:bgp-authentication;
          uses ac-common:service-status;
        }
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        if-feature "vpn-common:rtg-ospf";
        description
          "Configuration specific to OSPF.";
        uses ac-common:ospf-basic;
        container sham-links {
          if-feature "vpn-common:rtg-ospf-sham-link";
          description
            "List of sham links.";
          reference
            "RFC 4577: OSPF as the Provider/Customer Edge Protocol
                       for BGP/MPLS IP Virtual Private Networks
                       (VPNs), Section 4.2.7
             RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
                       (PE-CE) Routing Protocol, Section 5";
          list sham-link {
            key "target-site";
            description
              "Creates a sham link with another
               site.";
            leaf target-site {
              type string;
              description
                "Target site for the sham link connection. The site
                 is referred to by its identifier.";
            }
            leaf metric {
              type uint16;
              description
                "Metric of the sham link. It is used in the routing
                 state calculation and path selection.";
              reference
                "RFC 4577: OSPF as the Provider/Customer Edge 
                           Protocol for BGP/MPLS IP Virtual Private
                           Networks (VPNs), Section 4.2.7.3
                 RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
                           (PE-CE) Routing Protocol, Section 5.2";
            }
          }
        }
        leaf max-lsa {
          type uint32 {
            range "1..4294967294";
          }
          description
            "Maximum number of allowed Link State Advertisements
             (LSAs) that the OSPF instance will accept.";
        }
        leaf passive {
          type boolean;
          description
            "Enables when set to true a passive interface. It is
             active when set to false. A passive interface's prefix
             will be advertised, but no neighbor adjacencies will be
             formed on the interface.";
        }
        uses ac-common:ospf-authentication;
        uses ac-common:service-status;
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is IS-IS.";
        }
        if-feature "vpn-common:rtg-isis";
        description
          "Configuration specific to IS-IS.";
        uses ac-common:isis-basic;
        leaf level {
          type identityref {
            base vpn-common:isis-level;
          }
          description
            "Can be 'level-1', 'level-2', or 'level-1-2'.";
          reference
            "RFC 9181: A Common YANG Data Model for Layer 2 and
                       Layer 3 VPNs";
        }
        leaf metric {
          type uint32 {
            range "0 .. 16777215";
          }
          description
            "Metric of the AC. It is used in the routing state
             calculation and path selection.";
        }
        leaf passive {
          type boolean;
            description
              "When set to false, the interface is active. In such
               mode, the interface sends or receives IS-IS protocol
               control packets.

               When set to true, the interface is passive. That is,
               it suppresses the sending of IS-IS updates through the
               specified interface.";
        }
        uses ac-common:isis-authentication;
        uses ac-common:service-status;
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.
             For IPv4, the model assumes that RIP
             version 2 is used.";
        }
        if-feature "vpn-common:rtg-rip";
        description
          "Configuration specific to RIP routing.";
        uses rip-base;
        uses ac-common:rip-authentication;
        uses ac-common:service-status;
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the VRRP.";
        }
        if-feature "vpn-common:rtg-vrrp";
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 9568: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families
             are to be enabled.";
        }
        leaf vrrp-group {
          type uint8 {
            range "1..255";
          }
          description
            "Includes the VRRP group identifier.";
        }
        leaf backup-peer {
          type inet:ip-address;
          description
            "Indicates the IP address of the peer.";
        }
        leaf-list virtual-ip-address {
          type inet:ip-address;
          description
            "Virtual IP addresses for a single VRRP
             group.";
          reference
            "RFC 9568: Virtual Router Redundancy Protocol (VRRP)
                       Version 3 for IPv4 and IPv6, Sections 1.2
                       and 1.3";
        }
        leaf priority {
          type uint8 {
            range "1..254";
          }
          description
            "Sets the local priority of the VRRP speaker.";
        }
        leaf ping-reply {
          type boolean;
          description
            "Controls whether the VRRP speaker should reply to ping
             requests.";
        }
        uses ac-common:service-status;
      }
    }
  }

  // OAM

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

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

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

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

  // OAM

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

  // security

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

  // AC profile

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

  // Parent and Child ACs

  grouping ac-hierarchy {
    description
      "Container for parent and child AC references.";
    container ac-parent-ref {
      description
        "Specifies the parent AC that is inherited by an AC.
         Parent ACs are used, e.g., in contexts where multiple
         CEs are terminating the same AC, but some specific
         information is required for each peer SAP.";
      uses ac-ntw:attachment-circuit-reference;
    }
    container ac-child-ref {
      config false;
      description
        "Specifies a child AC that relies upon a parent AC.";
      uses ac-ntw:attachment-circuit-references;
    }
  }

  // AC network provisioning 

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

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

  augment "/nw:networks/nw:network/nw:node" {
    when '../nw:network-types/sap:sap-network' {
      description
        "Augmentation parameters apply only for SAP networks.";
    }
    description
      "Augments nodes with AC provisioning details.";
    list ac {
      key "name";
      description
        "List of ACs.";
      leaf name {
        type string;
        description
          "A name that identifies the AC locally.";
      }
      leaf ac-svc-ref {
        type ac-svc:attachment-circuit-reference;
        description
          "A reference to the AC as exposed at the service level.";
      }
      list ac-profile {
        key "ac-profile-ref";
        description
          "List of AC profiles.";
        uses ac-profile-reference;
      }
      uses ac-hierarchy;
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      uses ac-common:redundancy-group;
      uses ac-common:service-status;
      uses ac-ntw:ac;
    }
  }

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-common-ac-12"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC9067">
          <front>
            <title>A YANG Data Model for Routing Policy</title>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model for configuring and managing routing policies in a vendor-neutral way. The model provides a generic routing policy framework that can be extended for specific routing protocols using the YANG 'augment' mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9067"/>
          <seriesInfo name="DOI" value="10.17487/RFC9067"/>
        </reference>
        <reference anchor="RFC9181">
          <front>
            <title>A Common YANG Data Model for Layer 2 and Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="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="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="RFC4577">
          <front>
            <title>OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>Many Service Providers offer Virtual Private Network (VPN) services to their customers, using a technique in which customer edge routers (CE routers) are routing peers of provider edge routers (PE routers). The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. This is known as a "BGP/MPLS IP VPN". The base specification for BGP/MPLS IP VPNs presumes that the routing protocol on the interface between a PE router and a CE router is BGP. This document extends that specification by allowing the routing protocol on the PE/CE interface to be the Open Shortest Path First (OSPF) protocol.</t>
              <t>This document updates RFC 4364. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4577"/>
          <seriesInfo name="DOI" value="10.17487/RFC4577"/>
        </reference>
        <reference anchor="RFC6565">
          <front>
            <title>OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol</title>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault"/>
            <author fullname="P. Moyer" initials="P." surname="Moyer"/>
            <author fullname="J. Doyle" initials="J." surname="Doyle"/>
            <author fullname="E. Ertekin" initials="E." surname="Ertekin"/>
            <author fullname="M. Lundberg" initials="M." surname="Lundberg"/>
            <date month="June" year="2012"/>
            <abstract>
              <t>Many Service Providers (SPs) offer Virtual Private Network (VPN) services to their customers using a technique in which Customer Edge (CE) routers are routing peers of Provider Edge (PE) routers. The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone. Support currently exists for both IPv4 and IPv6 VPNs; however, only Open Shortest Path First version 2 (OSPFv2) as PE-CE protocol is specified. This document extends those specifications to support OSPF version 3 (OSPFv3) as a PE-CE routing protocol. The OSPFv3 PE-CE functionality is identical to that of OSPFv2 except for the differences described in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6565"/>
          <seriesInfo name="DOI" value="10.17487/RFC6565"/>
        </reference>
        <reference anchor="RFC4552">
          <front>
            <title>Authentication/Confidentiality for OSPFv3</title>
            <author fullname="M. Gupta" initials="M." surname="Gupta"/>
            <author fullname="N. Melam" initials="N." surname="Melam"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>This document describes means and mechanisms to provide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4552"/>
          <seriesInfo name="DOI" value="10.17487/RFC4552"/>
        </reference>
        <reference anchor="RFC5709">
          <front>
            <title>OSPFv2 HMAC-SHA Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Barnes" initials="M." surname="Barnes"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2009"/>
            <abstract>
              <t>This document describes how the National Institute of Standards and Technology (NIST) Secure Hash Standard family of algorithms can be used with OSPF version 2's built-in, cryptographic authentication mechanism. This updates, but does not supercede, the cryptographic authentication mechanism specified in RFC 2328. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5709"/>
          <seriesInfo name="DOI" value="10.17487/RFC5709"/>
        </reference>
        <reference anchor="RFC7474">
          <front>
            <title>Security Extension for OSPFv2 When Using Manual Key Management</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>The current OSPFv2 cryptographic authentication mechanism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- session replay attacks when using manual keying. Additionally, the existing cryptographic authentication mechanism does not cover the IP header. This omission can be exploited to carry out various types of attacks.</t>
              <t>This document defines changes to the authentication sequence number mechanism that will protect OSPFv2 from both inter-session and intra- session replay attacks when using manual keys for securing OSPFv2 protocol packets. Additionally, we also describe some changes in the cryptographic hash computation that will eliminate attacks resulting from OSPFv2 not protecting the IP header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7474"/>
          <seriesInfo name="DOI" value="10.17487/RFC7474"/>
        </reference>
        <reference anchor="RFC7166">
          <front>
            <title>Supporting Authentication Trailer for OSPFv3</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Currently, OSPF for IPv6 (OSPFv3) uses IPsec as the only mechanism for authenticating protocol packets. This behavior is different from authentication mechanisms present in other routing protocols (OSPFv2, Intermediate System to Intermediate System (IS-IS), RIP, and Routing Information Protocol Next Generation (RIPng)). In some environments, it has been found that IPsec is difficult to configure and maintain and thus cannot be used. This document defines an alternative mechanism to authenticate OSPFv3 protocol packets so that OSPFv3 does not depend only upon IPsec for authentication.</t>
              <t>The OSPFv3 Authentication Trailer was originally defined in RFC 6506. This document obsoletes RFC 6506 by providing a revised definition, including clarifications and refinements of the procedures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7166"/>
          <seriesInfo name="DOI" value="10.17487/RFC7166"/>
        </reference>
        <reference anchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="56"/>
          <seriesInfo name="RFC" value="2453"/>
          <seriesInfo name="DOI" value="10.17487/RFC2453"/>
        </reference>
        <reference anchor="RFC2080">
          <front>
            <title>RIPng for IPv6</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <author fullname="R. Minnear" initials="R." surname="Minnear"/>
            <date month="January" year="1997"/>
            <abstract>
              <t>This document specifies a routing protocol for an IPv6 internet. It is based on protocols and algorithms currently in wide use in the IPv4 Internet [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2080"/>
          <seriesInfo name="DOI" value="10.17487/RFC2080"/>
        </reference>
        <reference anchor="RFC9568">
          <front>
            <title>Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6</title>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="A. Dogra" initials="A." surname="Dogra"/>
            <date month="April" year="2024"/>
            <abstract>
              <t>This document defines version 3 of the Virtual Router Redundancy Protocol (VRRP) for IPv4 and IPv6. It obsoletes RFC 5798, which previously specified VRRP (version 3). RFC 5798 obsoleted RFC 3768, which specified VRRP (version 2) for IPv4. VRRP specifies an election protocol that dynamically assigns responsibility for a Virtual Router to one of the VRRP Routers on a LAN. The VRRP Router controlling the IPv4 or IPv6 address(es) associated with a Virtual Router is called the Active Router, and it forwards packets routed to these IPv4 or IPv6 addresses. Active Routers are configured with virtual IPv4 or IPv6 addresses, and Backup Routers infer the address family of the virtual addresses being advertised based on the IP protocol version. Within a VRRP Router, the Virtual Routers in each of the IPv4 and IPv6 address families are independent of one another and always treated as separate Virtual Router instances. The election process provides dynamic failover in the forwarding responsibility should the Active Router become unavailable. For IPv4, the advantage gained from using VRRP is a higher-availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host. For IPv6, the advantage gained from using VRRP for IPv6 is a quicker switchover to Backup Routers than can be obtained with standard IPv6 Neighbor Discovery mechanisms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9568"/>
          <seriesInfo name="DOI" value="10.17487/RFC9568"/>
        </reference>
        <reference anchor="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="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AC-Ntw-Tree" target="https://github.com/boucadair/attachment-circuit-model/blob/main/yang/full-trees/ac-ntw-without-groupings.txt">
          <front>
            <title>Full Network Attachment Circuit Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="PYANG" target="https://github.com/mbj4668/pyang">
          <front>
            <title>pyang</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="RFC9543">
          <front>
            <title>A Framework for Network Slices in Networks Built from IETF Technologies</title>
            <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
            <author fullname="J. Drake" initials="J." role="editor" surname="Drake"/>
            <author fullname="R. Rokui" initials="R." surname="Rokui"/>
            <author fullname="S. Homma" initials="S." surname="Homma"/>
            <author fullname="K. Makhijani" initials="K." surname="Makhijani"/>
            <author fullname="L. Contreras" initials="L." surname="Contreras"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document describes network slicing in the context of networks built from IETF technologies. It defines the term "IETF Network Slice" to describe this type of network slice and establishes the general principles of network slicing in the IETF context.</t>
              <t>The document discusses the general framework for requesting and operating IETF Network Slices, the characteristics of an IETF Network Slice, the necessary system components and interfaces, and the mapping of abstract requests to more specific technologies. The document also discusses related considerations with monitoring and security.</t>
              <t>This document also provides definitions of related terms to enable consistent usage in other IETF documents that describe or use aspects of IETF Network Slices.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9543"/>
          <seriesInfo name="DOI" value="10.17487/RFC9543"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-ac-lxsm-lxnm-glue">
          <front>
            <title>A YANG Data Model for Augmenting VPN Service and Network Models with Attachment Circuits</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="10" month="June" year="2024"/>
            <abstract>
              <t>   The document specifies a module that updates existing service (i.e.,
   the Layer 2 Service Model (L2SM) and the Layer 3 Service Model
   (L3SM)) and network (i.e., the Layer 2 Network Model (L2NM) and the
   Layer 3 Network Model (L3NM)) Virtual Private Network (VPN) modules
   with the required information to bind specific VPN services to
   Attachment Circuits (ACs) that are created using the AC service
   ("ietf-ac-svc") and network ("ietf-ac-ntw") models.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ac-lxsm-lxnm-glue-10"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC8299">
          <front>
            <title>YANG Data Model for L3VPN Service Delivery</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki"/>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used for communication between customers and network operators and to deliver a Layer 3 provider-provisioned VPN service. This document is limited to BGP PE-based VPNs as described in RFCs 4026, 4110, and 4364. This model is intended to be instantiated at the management system to deliver the overall service. It is not a configuration model to be used directly on network elements. This model provides an abstracted view of the Layer 3 IP VPN service configuration components. It will be up to the management system to take this model as input and use specific configuration models to configure the different network elements to deliver the service. How the configuration of network elements is done is out of scope for this document.</t>
              <t>This document obsoletes RFC 8049; it replaces the unimplementable module in that RFC with a new module with the same name that is not backward compatible. The changes are a series of small fixes to the YANG module and some clarifications to the text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8299"/>
          <seriesInfo name="DOI" value="10.17487/RFC8299"/>
        </reference>
        <reference anchor="RFC3644">
          <front>
            <title>Policy Quality of Service (QoS) Information Model</title>
            <author fullname="Y. Snir" initials="Y." surname="Snir"/>
            <author fullname="Y. Ramberg" initials="Y." surname="Ramberg"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="R. Cohen" initials="R." surname="Cohen"/>
            <author fullname="B. Moore" initials="B." surname="Moore"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document presents an object-oriented information model for representing Quality of Service (QoS) network management policies. This document is based on the IETF Policy Core Information Model and its extensions. It defines an information model for QoS enforcement for differentiated and integrated services using policy. It is important to note that this document defines an information model, which by definition is independent of any particular data storage mechanism and access protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3644"/>
          <seriesInfo name="DOI" value="10.17487/RFC3644"/>
        </reference>
        <reference anchor="RFC4862">
          <front>
            <title>IPv6 Stateless Address Autoconfiguration</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4862"/>
          <seriesInfo name="DOI" value="10.17487/RFC4862"/>
        </reference>
        <reference anchor="RFC9234">
          <front>
            <title>Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages</title>
            <author fullname="A. Azimov" initials="A." surname="Azimov"/>
            <author fullname="E. Bogomazov" initials="E." surname="Bogomazov"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>Route leaks are the propagation of BGP prefixes that violate assumptions of BGP topology relationships, e.g., announcing a route learned from one transit provider to another transit provider or a lateral (i.e., non-transit) peer or announcing a route learned from one lateral peer to another lateral peer or a transit provider. These are usually the result of misconfigured or absent BGP route filtering or lack of coordination between autonomous systems (ASes). Existing approaches to leak prevention rely on marking routes by operator configuration, with no check that the configuration corresponds to that of the External BGP (eBGP) neighbor, or enforcement of the two eBGP speakers agreeing on the peering relationship. This document enhances the BGP OPEN message to establish an agreement of the peering relationship on each eBGP session between autonomous systems in order to enforce appropriate configuration on both sides. Propagated routes are then marked according to the agreed relationship, allowing both prevention and detection of route leaks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9234"/>
          <seriesInfo name="DOI" value="10.17487/RFC9234"/>
        </reference>
        <reference anchor="RFC2918">
          <front>
            <title>Route Refresh Capability for BGP-4</title>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="September" year="2000"/>
            <abstract>
              <t>This document defines a new Border Gateway Protocol (BGP) capability termed 'Route Refresh Capability', which would allow the dynamic exchange of route refresh request between BGP speakers and subsequent re-advertisement of the respective Adj-RIB-Out. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2918"/>
          <seriesInfo name="DOI" value="10.17487/RFC2918"/>
        </reference>
        <reference anchor="RFC9127">
          <front>
            <title>YANG Data Model for Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="R. Rahman" initials="R." role="editor" surname="Rahman"/>
            <author fullname="L. Zheng" initials="L." role="editor" surname="Zheng"/>
            <author fullname="M. Jethanandani" initials="M." role="editor" surname="Jethanandani"/>
            <author fullname="S. Pallagatti" initials="S." surname="Pallagatti"/>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure and manage Bidirectional Forwarding Detection (BFD).</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA) (RFC 8342).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9127"/>
          <seriesInfo name="DOI" value="10.17487/RFC9127"/>
        </reference>
        <reference anchor="RFC7880">
          <front>
            <title>Seamless Bidirectional Forwarding Detection (S-BFD)</title>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="N. Akiya" initials="N." surname="Akiya"/>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Pallagatti" initials="S." surname="Pallagatti"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document defines Seamless Bidirectional Forwarding Detection (S-BFD), a simplified mechanism for using BFD with a large proportion of negotiation aspects eliminated, thus providing benefits such as quick provisioning, as well as improved control and flexibility for network nodes initiating path monitoring.</t>
              <t>This document updates RFC 5880.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7880"/>
          <seriesInfo name="DOI" value="10.17487/RFC7880"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="July" year="2024"/>
            <abstract>
              <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.  The document also updates RFC 6020 by
   clarifying how modules and their revisions are handled by IANA.

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

<section anchor="sec-examples">
      <name>Examples</name>
      <section anchor="vpls">
        <name>VPLS</name>
        <t>Let us consider the example depicted in <xref target="ex-topo"/> with two customer terminating points (CE1 and CE2). Let us also assume that the bearers to attach these CEs to the provider network are already in place. References to the identify these bearers are shown in the figure.</t>
        <figure anchor="ex-topo">
          <name>Topology Example</name>
          <artwork align="center"><![CDATA[
            .-----.   .--------------.   .-----.
.----.      | PE1 +===+              +===+ PE2 |      .----.
| CE1+------+"450"|   |     MPLS     |   |"451"+------+ CE2|
'----'   ^  '-----'   |              |   '-----'   ^  '----'
         |            |     Core     |             |  
    Bearer:1234       '--------------'         Bearer:5678
]]></artwork>
        </figure>
        <t>The AC service model <xref target="I-D.ietf-opsawg-teas-attachment-circuit"/> can be used by the provider to manage and expose the ACs over existing bearers as shown in <xref target="ex-ac"/>.</t>
        <figure anchor="ex-ac">
          <name>ACs Created Using ACaaS</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "name": "an-ac-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          }
        },
        "service": {
          "mtu": 1550,
          "svc-pe-to-ce-bandwidth": {
            "bandwidth": [
              {
                "bw-type": "ietf-vpn-common:bw-per-port",
                "cir": "20480000"
              }
            ]
          },
          "svc-ce-to-pe-bandwidth": {
            "bandwidth": [
              {
                "bw-type": "ietf-vpn-common:bw-per-port",
                "cir": "20480000"
              }
            ]
          },
          "qos": {
            "qos-profiles": {
              "qos-profile": [
                {
                  "profile": "QoS_Profile_A",
                  "direction": "ietf-vpn-common:both"
                }
              ]
            }
          }
        }
      }
    ],
    "ac": [
      {
        "name": "ac-1",
        "description": "First attachment",
        "ac-group-profile": [
          "an-ac-profile"
        ],
        "l2-connection": {
          "bearer-reference": "1234"
        }
      },
      {
        "name": "ac-2",
        "description": "Second attachment",
        "ac-group-profile": [
          "an-ac-profile"
        ],
        "l2-connection": {
          "bearer-reference": "5678"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t>The provisioned AC at PE1 can be retrieved using the AC network model as depicted in <xref target="ex-acntw-query"/>. A similar query can be used for the AC at PE2.</t>
        <figure anchor="ex-acntw-query">
          <name>Example of AC Network Response (Message Body)</name>
          <artwork><![CDATA[
{
   "ietf-ac-ntw:ac":[
      {
         "name":"ac-11",
         "ac-svc-ref":"ac-1",
         "peer-sap-id":[
            "ce-1"
         ],
         "status":{
            "admin-status":{
               "status":"ietf-vpn-common:admin-up"
            },
            "oper-status":{
               "status":"ietf-vpn-common:op-up"
            }
         },
         "l2-connection":{
            "encapsulation":{
               "encap-type":"ietf-vpn-common:dot1q",
               "dot1q":{
                  "tag-type":"ietf-vpn-common:c-vlan",
                  "cvlan-id":550
               }
            },
            "bearer-reference":"1234"
         },
         "service":{
            "mtu":1550,
            "svc-pe-to-ce-bandwidth":{
               "bandwidth":[
                  {
                     "bw-type": "ietf-vpn-common:bw-per-port",
                     "cir":"20480000"
                  }
               ]
            },
            "svc-ce-to-pe-bandwidth":{
               "bandwidth":[
                  {
                     "bw-type": "ietf-vpn-common:bw-per-port",
                     "cir":"20480000"
                  }
               ]
            },
            "qos":{
               "qos-profiles":{
                  "qos-profile":[
                     {
                        "qos-profile-ref":"QoS_Profile_A",
                        "network-ref":"example:an-id",
                        "direction":"ietf-vpn-common:both"
                     }
                  ]
               }
            }
         }
      }
   ]
}
]]></artwork>
        </figure>
        <t>Also, the AC network model can be used to retrieve the list of SAPs to which the ACs are bound as shown in <xref target="ex-acntw-query"/>.</t>
        <figure anchor="ex-acntw-query-2">
          <name>Example of AC Network Response to Retrieve the SAP (Message Body)</name>
          <artwork><![CDATA[
{
   "ietf-sap-ntw:service":[
      {
         "service-type":"ietf-vpn-common:vpls",
         "sap":[
            {
               "sap-id":"sap#1",
               "peer-sap-id":[
                  "ce-1"
               ],
               "description":"A parent SAP",
               "attachment-interface":"GE0/6/1",
               "interface-type":"ietf-sap-ntw:phy",
               "role":"ietf-sap-ntw:uni",
               "allows-child-saps":true,
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               }
            },
            {
               "sap-id":"sap#11",
               "description":"A child SAP",
               "parent-termination-point":"GE0/6/4",
               "attachment-interface":"GE0/6/4.2",
               "interface-type":"ietf-sap-ntw:logical",
               "encapsulation-type":"ietf-vpn-common:vlan-type",
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               },
               "ietf-ac-ntw:ac":[
                  {
                     "ac-ref":"ac-1",
                     "node-ref":"example:pe2",
                     "network-ref":"example:an-id"
                  }
               ]
            }
         ]
      }
   ]
}
]]></artwork>
        </figure>
      </section>
      <section anchor="parent-ac">
        <name>Parent AC</name>
        <t>In reference to the topology depicted in <xref target="sap-ac-ntw"/>, PE2 has a SAP which terminates an AC with two peer SAPs (CE2 and CE5). In order to control data that is specific to each of these peer SAPs over the same AC, child ACs can be instantiated as depicted in <xref target="ex-parent-ac"/>.</t>
        <figure anchor="ex-parent-ac">
          <name>Example of Child ACs</name>
          <artwork><![CDATA[
{
   "ietf-ac-ntw:ac":[
      {
         "name":"ac-1",
         "peer-sap-id":[
            "CE2",
            "CE5"
         ],
         "status":{
            "admin-status":{
               "status":"ietf-vpn-common:admin-up"
            },
            "oper-status":{
               "status":"ietf-vpn-common:op-up"
            }
         },
         "l2-connection":{
            "encapsulation":{
               "encap-type":"ietf-vpn-common:dot1q",
               "dot1q":{
                  "tag-type":"ietf-vpn-common:c-vlan",
                  "cvlan-id":550
               }
            },
            "bearer-reference":"1234"
         }
      },
      {
         "name":"ac-1-to-ce2",
         "ac-parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE2"
         ]
      },
      {
         "name":"ac-1-to-ce5",
         "ac-parent-ref":{
            "ac-ref":"ac-1",
            "node-ref":"example:pe2",
            "network-ref":"example:an-id"
         },
         "peer-sap-id":[
            "CE5"
         ]
      }
   ]
}
]]></artwork>
        </figure>
        <t><xref target="ex-parent-ac-sap"/> shows how to bind the parent AC to a SAP.</t>
        <figure anchor="ex-parent-ac-sap">
          <name>Example of Binding Parent AC to SAPs</name>
          <artwork><![CDATA[
{
   "ietf-sap-ntw:service":[
      {
         "service-type":"ietf-vpn-common:l3vpn",
         "sap":[
            {
               "sap-id":"sap#14587",
               "description":"A SAP",
               "parent-termination-point":"GE0/6/4",
               "attachment-interface":"GE0/6/4.2",
               "interface-type":"ietf-sap-ntw:logical",
               "encapsulation-type":"ietf-vpn-common:vlan-type",
               "sap-status":{
                  "status":"ietf-vpn-common:op-up"
               },
               "ietf-ac-ntw:ac":[
                  {
                     "ac-ref":"ac-1",
                     "node-ref":"example:pe2",
                     "network-ref":"example:an-id"
                  }
               ]
            }
         ]
      }
   ]
}
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document builds on <xref target="RFC9182"/> and <xref target="RFC9291"/>.</t>
      <t>Thanks to Moti Morgenstern for the review and comments.</t>
      <t>Thanks to Martin Björklund for the yangdoctors review, Gyan Mishra for an early rtg-dir review, Joel Halpern for the rtg-dir review,
and Giuseppe Fioccola for the ops-dir review.</t>
      <t>Thanks to Krzysztof Szarkowicz for the Shepherd review.</t>
    </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:
H4sIAAAAAAAAA+y963bbVpIw+l9rfe+AVn5QShOUdbFsq3s6oSUl0RlZVltK
MrNmzcwCSYhCGwQYAJSsxP6e5TzLebJTl33HBghKcpJOS6vbkch9qV27du26
7aowDNeqpErjg2B9GJzF1W1evA/+c3j2bXAUVVHwJp/EaXCVF8GwqqLx9SzO
quAwKcaLpCrX16LRqIhvqC/1kQMY3Q6h2Tiq4mle3B0EZTVZW5vk4yyawZST
IrqqwiSursJ8Xka30zCrbsNIzRSOeaZwe3etXIxmSVkmeVbdzaHvyfHlN2vZ
YjaKi4O1CUxwsDbOszLOykV5EFTFIl4DwHbXoiKOAMC387iIKuhdBlE2Cd5E
WTSNcY71NYR4WuSLeVuzYAjjBD9C0ySbBt9i8/W19/EddJ4crAVhcJEm4zi4
iIsb+C9+cLr7w/kZ/bIjfhkuqnxGo+NfElf2p2+L8XVcVoX6oOQRA0BochMX
dzSX+Gxe5DcJogRgMtuW8RRhro1xlcYfklGSJtWd1TyZzdPkKhnXYDOWs/vt
+bn1FawXp12LFtV1DnsQrgXwc7VIU97cN/k1/HcSvM4X42gSJQV9X+RIa/Ek
qXL+IC+mUZb8TFMfwPKjbBrTF/EsStKDYMbDDEZymK9zajMY57O12qTvkvF1
VEyCdznQRVV6Zvh/FlkCm2xOURTc+ut/8HeDLK7qQ78tx1ERfJtnP0dp/DPs
R3CU5L4ZLuM0voI9GUfmJDl2H0xF9wlgIC+/rlRT/3IuolkSF8HrqJgukjT4
NimidJJ75jzL3yfWdCX1HIy45/9OuefXGbbzz/U6D35ceIb+bhHdxgmsanyd
5Wk+TeLSnCiFIzK4XYzyr6+pIQ8OR7EqkhGQNlBGEPBcPM8PyRg+DU7zefyz
nM6zgBtqNkixmQm2HEwDfnITZcHru/f5jQf6d8lolGfBYT6bLTJB4Rb82HtA
vb8uRqOsaZK/J1kbeswR4YClgBELH/UB306j90nw7zEAdZ14xv33o6MTc9T3
cZjn2Ofr95NJ46ini6QMhnA80uDNIst/9gz8Qz6JgOasQ5ZCtxBPVTqYYbev
b0QjnifLC+RQNzHu5cnx8fHLZzuD7b+P5wc0iLxA8JvgogLGiUfwijZ5HKXE
SWdxVeTzHFgPbBby5CBjRlKG4esimUxj5rj8+0SyGfh2CKxsQix499mBezWt
EwCSBeHvAiWCrBAk+ptuCOBn8yrGKyPYebb9koGHExJXB8F1Vc3Lg62tSZ4M
oOvW9rPB9vazV1s4wsXl0QA7DF7u7b94/uzF2tpakl2ZSBkehmdwdV0WcWzh
5BvYGc3pa1dogB0AZcViXC2K2IB059nOrhe+aVJdL0a4L1uKJW55rswZomdr
lOajLdjjbOsOtncLCSWsYM5yKxrTZXsLw+WLKqQLEPh5Oag+VEhZ54hpay1z
HGJFEGejf+zt77/c4r5rYRgG0QivtzFMcnkNxArCwIJQUs7jMVxCSAeSNoKZ
kiP0CgOxwnIQXF7HoskYqGoUB4syZsKrru3bMcivfENAmwRaw/8miwKblZ6b
NdiIB9NBP4BbvG9df+q63xwEwwCWO4djBsxGDsKgwRrl0iYBcBEEzaHikmB+
HcO5KPgY9DziVi+M4JCG8vLfGB5G0cVmsHESHg1MGaqKsV2NIjYHiHGCapHG
cGZIRigJnlFUxgrpGz0aTfzZ2ySAsJWc2YDtPE/g342L4fkmL7cMkKKo+SSu
gLnQosVZAdyssjmArHNsNoHzekwcYuP8uMR1IB3NkskkjdfWvghO4K6BRY1J
elk7zLMsht9vQMqRW1Eiy+E54eYNRneK+wRVHowXJYhgiPobvoPwdkaZFZYd
F7MkA9AByjmutewH5WJ8HUSlQsc3i2zMIuMvv3z17pvDF/v7zz996uNAcmQQ
eAj8QwC/H8xj+ATFviyf5QsY6K4ErgQXcIErfQfHEWHZGF68fgfN1/jARcEY
kINfTAGy2+gOIAFcnuBnsJjg+ANIPsDBeUtKsdmw5HEMtB3jOhXO4YRJGk3M
P+YS2+r8RXeAjDkw4CDPxL7B0WWMTvJ5xcisj9CHgcfpYoJ4w25XaX4bzBcV
zjdPI5RFmwhhAhcywKxg0FsIUFzDMNDrjvYT+B9SZg7f+HgrHBA4mN/APPGH
CCTcuE8TgmQUe8iN1nqdl/DLIq0SaK5nFgzgNLrDmwMkmKJawL12XiQ3sBeK
J2wAh9ikXeGWu8wy4G8v1xDk8ur53u6nTwDpSRYwBeCKbvJkYmwSbPJVXMSA
GEJDAXsKt2xWWWcLcHsTAUMDkkpzIer0fduLS40/zPMSRxOj457AxDPSeFBt
kxsAV8QkHgSH6pAgrwVEZgDFTwvQVXAGuvRTEBh8mIVhgTebu9+XPAUHueIl
V9dR5et9a0xlsOhSDKuIgPoPDweA1j91ZImfPlm3Dp0yfeUQKnBGH2+KSo1Y
OGu//FLG45BZqzNqp7tMMl2+lXubq95tuF9d7jLnPAAFuqgCCNIP5Qz+yWbh
NF04y1lozbJkrMes4Dq6/8bpztmbTdwLJPGdV9swjLxHSDOutd812m+/3IH2
uMEJ9Dn9AO1pNlwm00lhrAvwsiglp9EcbxJfJZm8cw1JQ7BGJXikMejVEfJn
a3aE1gIfGR3yPCIJ4DiH9i6UUopjCGG7SqaoDBZogG2BFcMRhBlAlrmAw4WH
Ab7je/kWzjueTbraYiLxcX6DrDXLK2DH6R38nd1AWwAAuFETEwcWAHpYEKVl
LjdyXCLN5DB9IYQ35PJpfsczb4zTfKEYcJ+ITpCMFCJg8TZdI37jMpniyiIP
nYxyIRXYwoXozXh+ubv33CCTLuKG3KG9Zy8/fQIpLPNxEHGA9HURILUAg8dD
Lpk9jAm7cJq8j2+TUlwV9aVh7zFIevANcn4Ta8CnYMMiHKg2IzJGczKkY3Gp
RMEcqAINTIe0cmQGoBGmE2yE6P6/8BNEUXkzFYqN8TMAQWjwf+qffzw83v/o
+bwX/jns1T+PxsFHe8xOswRGL5jx+Z9D+pH/OTzecWEYGA0GBE8Y9qyh6BOn
18eG3/HPaLxCY6vpAOAYeH6XfxqN4e8ymot1id8Hvq/4x+z60Vyj+P2j76s6
iAr68+Nt5zPjqx2jq9g6ZzUNXe1ZYf+2/8xrq7do70qriMZEWyt2Vb/3wvpP
r+Wr/7NmbU/9Z9DylQ/HXUAmvEZj9zjohufHuw1jnB/viU+YWuBwPPfudRc4
BNm4R2WlMRpIjX6YjFRX/tP8t3nn+DConeM/zX893EcNZNEP/2n829iRuEB9
0fxhnUGY63TOyUfjQx/7FK0Oj3f5wIOsJAkVPtz7s4d3mQtyD7v8kFj82i8H
wReAIiECstHl39Y9dgBQ9eguLtdBnmARPUrhevq3ddYQ1z813NEkklT8Dd1h
mfjCEEmahGduD8DBNcvDkw3DEJldMQulE9RNlJioBD7tVEETCKgVcG8OC7j0
qpgFqI2zN0fDTQcsFhB2aP4LQoAUShztnpqjOC6/pi5ffBEck9chAVnpLIfL
e+OSFIginoFYRXosTCEaba6tURsBuv7iICCrVRmPWeWSaogchYVwVLYXo1TY
mweuqQut41ECghEpQ9d5iuLaTQTCtpATs5hlDRqYGk3YrgIIgb3+Gf4UzaEx
AlglID2CTGfOypBmuIxyMZuBZvgzdkhTbEia8GIEKlW1EEKaFFBx8ngCQJ+n
MdqFovkcZE3S4vMU9HgUdgVUJPkcrK19GRzCTxCGf6N2USnEJcQb++hIiOxA
XDDUBfzceyifkgdj/gf8LB2TyBdGhfY7z3b2wmfPw+3nuteYlH6S+wQCDWzz
R8Ymo2HqUMnnbL04QoJO2AVBZ+h9fBegB7EM1t98f3G53uf/Bmdv6fd3x3//
/uTd8RH+fvHd8PRU/bImWlx89/b70yP9m+55+PbNm+OzI+4MnwbWR2vrb4b/
uc5q+Prb88uTt2fD0/X6GY7YcjQSNoh5EVck4K+BRDwukhEft9eH5//f/7u9
J07pzvb2KxDjxZHdfrEHf6ASz7OR4sJ/oiFnDagrjgqyQ6Wo686TClSVPioR
5XV+mwUoVgMxfvlfiJn/Pgj+OhrPt/f+Jj7ABVsfSpxZHxLO6p/UOjMSPR95
plHYtD53MG3DO/xP62+Jd+PDv36VAssLwu2XX/1tjWmkiCNkD4CMBSgFsBNX
0SxJE8CZsrSilbK02eWFYFA7SJiGiuSyInUn4BjBunVhrOMm+EcdbOO4aL56
+Wr/lboTZnGEunCpOMzdbJSnpWX2RvdDMEmiaRHNSlcjZpMY8PlnNObph4s3
bCGylUhpiZMqorI5XJANgcbY2983bQ7CIuf22DV67Lx6JWY988/6eewcAnea
uSJOyNoj0CYs9nO0DnyIkd9G44O1A1MxFrxubQ1EB/xKTLq2BhIF/m3o0qYq
Dd/fjI3v19ZO4BxOJsSj+g4vUKSiISXCA3jYdUEwBfPruzJBtx9wVHQX469A
1O/5ghmzdR4NY8o4jgaSYAOalyABbLKG7loxBjT2iOaR6nUEJ6CI4YIvcS78
fUIzDYK3jr5dGc5ry56G27tAZTsSY7PhTcyDkSayufbhkMFbAo9wYY+cAkfQ
uJeS7ZVMf4ss+WmhRiOKIhMuzAprg4vh6k5NTKcZNhwFPOWJYROBQhTxBtEz
iYvNQXBBvghjaAEt8OkiiW9caLXZVdIXygBoW0UHnDQgyZtdWl3pFCyyaDZK
pot8UQIDV+BLq4cyVVt2WYkd2PVxPK+QLdhbOI0zwBtLNNDPMAbHNDvtKQwU
F+kdEpwgn1ZPks8GhIC4ROEzw6JlHMBCPwBMjOY27TMQkItNUcNIbwD7uilM
SDqvg40fTodn5aZ0npjD0GlISsspFenDg3SM1h/JPSigAs4dn7KjGMU6JLEr
4XyCLrgj1R2grZyDgJGMUu1kmWmRW3LmBmth/exkNQjUEWLzFxNSsxcJ5XXx
Va6im3JaxzvFZH0rYRSh3BEhx1DXnaJm3G3XT8SMovRMSLR5N0f0pn40eSiC
DYGWGxK9kJswQ8qE2BceGeWgEMIi+oaUYBjLBvHEcmBEHvS2rADJUyKE8SEt
i3nh3SkD9+62MLeWfSQ5RogP6SucxHUvnPSF7ZBvi664ZhcXGTBdAA6s9Smw
CIL8igjiEWZFtoMxMSSLGHZ4VhXpJrXdBvgRqgb5OCHXrya3vGBiIW9mMpvn
BX5Pwox0pkthlUQYHOvTJ7gWP57TqMq68oZaf2SyJ3b9ce0j0IpQgD5KF5D4
k/QTVKxEK7irVRP8XUpjzwck5WFr1J2w9SSvtn8K8f4qoUscv3y2E5qf/fKL
Gcbz6RP2Sa54dOUPLD9qvXtXtIGdka3iSgxmCIZ7Utzcf4WiEHYBHSccX4O6
y/30n1pDeMEts2g8+yjdA2g9CPEDBYIYL7v9aLoQPlrOA2xQVGrh0KzIF3gq
Nah/YlFvTzWe56ndFMOUxney7atn+wI+tI1SQzTTgKD10fI+YIubeWbtpfG3
kvhoGWjsQTKRZh6mDNYSgXKTIhhqSjwXgh8adr4A4knZrXKdzPGkviU3zvDQ
jCdBhyQQCd5fN0l8CzIpsOpkLKI9CnOEEaAxjvl+kt5jGEwbdli/X7dpcz3Y
8PgOXWV+U3XkSw+plnpqymU9orMqv2mCUh9t5wGjwYbSaKYj12qAzlD/uj0+
081Wx42NzLrF8H/Mfz3uHfNf8bXhgviz8bX58ZrZuzac+cEKLY3NCP6KthJn
v60x/0cvq/mHWn70TtfY0nbAGD+Bsb2q9bKf/+nc8uNqLf/sgwwJJjBt6Noe
bJxhZRC2DnqLCbh2YuF2V5cXSpu1k9m3j5awDpnnY7Amg9RYopQ3aP2QC0Fa
KSZKmZX3PrpAfYOIyQdrF8ksSSOQ+/taR+oya5qUlZipkqER0iPPvwhNb80M
uCFLJ930zBsVX2RPv4RaaURSxxdWQTMYQK9VedBtJmPa4RWCShGRM9Fbo1Bx
KQMhZADS+ZkTZaQlJRJbYM19l3FZAX9kWIkotuLsjexjrHIpUNTZ8DAs6cLE
A7eXsNx/X8bKSOQJ3XKuskUYf8AwFBCxGHyYgEwUQuWrvBEJvAd4ftCy6L6j
4ECRUkSRWtE3UqpL6uE7t9cJKtwmKtHfTwiMKAS0iEG9LmEKSX/zqAAxtBJ6
DuAJ9YYmdUNb4VWgHOlWSjvTYUEU0IGhvexKYDVvjjG8WnT1bKiaQNo/RCAY
x6LQYTEjIlexsw+CH69jDiqRyi5I4EJtV4ZwqeaLYDaKe3AMXhJspDGJ/xSJ
veRgDBl0Ecp4liVhEurHdQf7oxokx4b/y6g3+rutsXSDSg5v+QHVKLb1kUck
1KY7KCrCweqLv3fV3x8DU9wNS9R0QoGhvprFOJt962bBASiuxOaVbWsZOGtZ
iiW1rmVY+mi/b3oASh2zqp7BQSmcZwul9LdAqRDjHXxZsyjMCa+sOUvTz8ro
k0tZOvJjoE9Odgj6VTJdiJEkFhtHNE+OKcU0Lq5JKPKHBOlRB02f++J8jnJk
gNZ8/F/9hTtfDYdNnzv9es7CzZAeE05C81Esj4ONi8Y4DHs3OnRwyX5pB/0z
UNAOunX4KMDjxp06sI+/6Nqhp0DqdesgpnF/Wdrh7Pjy8O3ZN1uHpyeD2s/D
p/CFG1k/OMeAUc+S9HLl4aNsOZADfDw8/mJb0eKfzcYmK5E/uiX0o5C8nknA
XSAQPz2Djxg/vggt64e6XCQVyBfL5qr/UL/XWidCYVApQ5kMhpFioHprdSiO
yPclEGKLmiTUDBRLTGtO3whWdcRCNx6b/IMg0BZhlYdy/hMVVL/x/dkJvaGR
tvyGZmfQzAnPRrmVZVvLvghHkY104TwDsfg6ukEPTA+f1vZQ6lyDtfTMG+4g
y5IeyI7S+N0P6G0J4iwGKU7JWOSMTQqQT9O7NeFqYSFRtUdRNJlej3IKMZcd
b5KoFuOKHowy2GCRo8QnUnKMdbH6L7bXAZEMPora58esVhWxiGrhCOVo8o9o
TBGyNAA0Ta4CfBjAnqfDY1v6855BHeZlfz1Y81I/HpnhYe10kbm27YA4Z6mh
uTW6xMXOvUdX2HQb2eey1zD6skk7IWxFDDwGwnbvMbqXU+mgPBdhiueYJ25V
3gPsmy0Jyokk3YMtXAk05SOKsJmbPiSPpkxeCLYeizACfHFqxljIzm28jN2w
lekRWVunN5vrcPpzDLOn96Co44EKiscTZ+DwMvHUCzqTL3gUjyM0tSToTwJW
lAdpjo8otZ12d7Cnokco0gOYA3DCEhTLCT6vG9EL1VpQnx16QI5rfne3Jv13
HCrTK4W+maCKOXDR4kWH6YglHms86JXhg2+FJUE915VDmeiX5gaaqnRbNpkZ
DOae07PcSs5LJCjsDcFWBqxcEI/xO77ShSNS3Kr3HaHpFMc/rpKUnu3DgQBB
R7WPxvLLL4P/Qm/Zf/Pdjm2WTEq/ApUfGIPZg/Cn+EHthAJiEvGWWEMCWmlY
xFdf6Wb84YHndbOyIDhj6NXoP7CxAOljvSl+i1+lcXQFvzrtpNat4Qr/5mBE
okO0TCYuSPS8I6yPHdnLbQAAUGw06wTlKiDm5H7E9yY1CHMB4ZdtEOZdIMwf
AuEtvZclUSaZKFg8JERP2GHn6b/Q1t1z+Xm9v2oyB9knniBdIZQc5FLdqeWI
Q1ZF1aJ0N3MyS7LQ+eqj3UVtdW3gjwaq0qisQn7Lix2QCR9g0GkIslGIcb4O
ajHyyJ1YbW6HiYMVJ+YVTfTtpA9sfU/SndAI2Ql+Ue6IA7Ln7aCb8CsFCrMm
1TmZt3bebe2snLlFXuXjPC2bGubRrOkruGAWBSXLafpepMcRP/x1R8a5haF5
YgT+PRL5NAx2yifwv+UMJuNQWLdOXBe+cX+2oQQifUtJcUjejnZGC5Rlhhzg
h6IGva82Q1b41d15XDjKFz+jQwN8phJGGIKQAGlNG5Ln/DKQgnWOgxJDVzgW
bHjYl8IDxsXEH6paqPamiGKrRZ2oMCdyGWDgczbZwhi/wvzQtJcPgmNUqBB4
mToAHR3153+iIYiKCNyiyKTHTHUjB4qJK0obgAgLNnqSJfacd+PCmE8pCoaH
WwgHeo4ocEW/FO8rx0X9ESUhnSlYBsGoQDwQisg/Zud0ACnl+yxN3sfSD2Pn
v1jFg9AXDgGAgWMndaihirwkgUIES5KzYAwcUKimMCE/jzU8JsMAN51C9z0S
9aHEuxL/NnpGux6GEg3TMicisr2FKjbI8RiKcaUbLKosnwaxLuU+hHYq8oo8
ieldiyNRRJly0JkdT+pMKj5RkXIbPS1g9TZJ5MRnN2oCn2CKKzffW9uUyScU
P0eHqzFSNO7JBy4wMcVuBr178MIeJ1WRoWwi9o0Tc2C4YJICQJS5RCWnkDim
uF0RMmZHiKHXFIPHNtkNxUGy1JfcxkhFN1GSUhQcHjWZqICCYsq+iBSMKuPp
v3n8riJMWpX8HMv3VRRGY4V6io2lPAAskggnNWdqYJehENhlOIr8GzQlzZM4
Zl5Ql/KSwXJSI7sCmntkBC03RFZMrdiXaOaPkLsm4jnFrBQ2iQhIMuCSCWx1
H8ajqOt6dJwKtMNehQ0jkKeY+CQTSVQAPvnWmt4z6VPo9Amq6H1cGvKZjs2d
pvkIo80zsRmCy8sH2coVyWzFJmLFkQ3eKp5lEx8i9qcaYfYWfkvP2qcMpp2x
CU4qX3VOK6MEUXctVag4ukIptoqeBcXWS3AiGRXNIOyAJYGABjAF7gCfXqG9
LKazAbjjaATj2BoJMmJjBlb0e5aC0sPhTuQZo2f/eElZI8srycFBHbJgqKB2
QLtN0lRSkwzhBpxUiY4JUHDCnv4IhIwpGiwEkR84jYkaidLp9ZB8N8/DUD6Q
gF4J8S2OzQfBoWqF6DEiVDRKlELUQyaY6WuCTBmeB/10kI0EEttoKamlnulJ
FYQMDtIBr2JOVVqX8R0OjpKrkH0xsyXIQElW6QAPYdhgCV8JO5I/oMT0Xq+J
WwFLfY3GanWNYNoI7o8cg3SYhD1gN2pkRJIMM0D0DYNZUgJ1A2GYN56/8w3Q
QaWeR1gzmmZ0Mv8CM55OmY9OYlw5AJXPohTIQu2C6IRJHoHVxgU9HOA1yuCY
sZn/STDQdAdYZ18FzHib7FIToTYESm2Q3xfVlBroDKH9YGisWQaCv0FUxRnm
MAo23g7fbMoBQM+gAaRSIT+H/9Pn2FleYPKrmzGxfIxTn8hpga7gvINsXVph
HFVEYRb8dAewjAuQ8RaUsoIzVsgQTyvfR7mYY1wYElEqsEgXksQX/XFyfrNH
/+57sNQPXn9z1A/iajzYZGuZinEu1WtkwQb56ir1dadyz4koVWmD01Erwh5G
LEl+SvMvCpR3OIintOJcFG6EqIipcRYVKQb1cCGUdug6RMMlQES3kwYrKXkP
QM7JKjPBGb4jtZ4nP9dGu0ANELQZsJTK12YPwq9bNDr6+h4Wlk4Ali6EXnvQ
Z4fQMth5UGd8+9XyyVeeH+Yr7kglaIPD36obPPJnNbh+yss2gJyvO0KyGghX
IDADOwqZaS/BUGvjzwNeXtxGxcQwhHvh8rb6nDtnGKiagPI0WQGiVew5DquV
Rh3NxDnlNXJDmV5Cs0fDe1Fn2UKpIIZpKhtwAYMKERV3VkAgycPeF3xKi3LV
UCV2s9qBmssUJJBMRd82jigVHLId6GHk48ua7kV3NIymmlpPD5XSVpe8O43O
1+a5OeS5HPKXL6zG6kYlmWEJNLYjKnFeKnErx9+01IZp2imX+pwMOzgoeckk
lE++Qv2UVbVTw3pYqW7+ZfBf0r6v3kIImzGZ9w1DtDmmyQ0fPFgzJ3v40HVm
9OAxXV7SMmDQOGC717Czy2+Jjd5YktvCgNVZn8+vY7dAq5DXrWM3G03n9sfa
O4RGV9b0ai2CeiMXOWbbdlw1LsTp7HXCdO1MaV3EW7eGhpqy6N2IaKx9cDW/
QlN/EPkjUJVDa5yvmnvJ32U/7kBv+JZNhRbQxwDVGqcFVPnTHVThGcPn4mFU
OhsHP/iy8iAqQ85M0zoIERsoz/WfFQaJJhNQJsuQ8orcmfA0nhRnBDKDXOfz
+loWoAy/bJ+9pCdOBczldB/lOexZ1t4bTWoh3Gc1TC6feV5QZuOQDYjmAF1m
LrGr3HRkUwr8Tr2TKg7zqzAvkmmSLSMv+aL1gOYRnVrHT+Y3++E9J6G+nWcq
4glaQLDWQxyqmEF0XVpk1cQFP/qpEL9aTn360GdosZ8YFNBlE4DTh7PoQ8hv
v5fNoVsa0yCV7e4s6wqXOQlF1TUsEdN94QgTEJtmUbq/t6z3TZKn5IYfG4w+
hoMdyyox7f1hzirC3U2gh4S9FXCNHurjve3MGd7H8TxCd+hXYuTt/WVdEAs0
+tIu3H4czSOuXNOZtIKHkFbQfEEvkR/ycl4ftInTtgEi+hRxpIJW6IcDM/IK
jln40yKaNHTEihvJ2GSKDWjW5J2W0XLaFswTk6jdxMtOnOBGZVKnoQeiRHTk
BuYnDZ3IjWRdEcsn8qPwcXACctsjoqThnKrvF3OK5KEYVlDCvlKL8dCDlvoy
1tesXss64cGe4IVs9lrW6SpdlNcOdO3kKm9evUWeC1/wz6JwUB3cA9WqD9o8
Qsx/eNdw4TthRcZno6tJ8IvOCXEAf3/6ymilGpYxVToLpcpi/nggNLuiURru
5BDD0aoP9b3T1Gv2kiEe1K34UNs8fy+WYYUTLNGXi5zrpa8TEohk/O6PmEqZ
pSz7hDRKKatIPdSo/pjDn8ud3XHxB0yjM1FJGVVupHaLSsLlFVIOBBlf11LZ
mK90Kd2hCJCmaCatd8u0Q2VsjO0GmchEW5x0fqKieRgCUjbQbUpFEiiTmcpO
PwiGbbaevhNPbdhipJdNxnUfrK31Ws0xPUrpkxk2G2VbK4wMTzK6QQItY4mE
b9roXY6v45lIhwK9FnORPE7kfZsjtamoD1zqRRzzg2jDpzYAsP0WH4Y3+Psi
QoECYVJFdf6eX2x2Al5WgRmnyPVl8bw+3KNUIpD9eZEoDCOCCjjP4O7+3h7F
vLtA3wigu1iWxBJE00A1bYPd09hdzeuE3/+wD/EbZYcKjlSfjdffHG3qnnys
nr98+QwrNhi7BLdHjh5oL2mKvHUSWO5iVRroO7kj0GsMR5L0EuWU5Q+FbxZd
fDrQ5e3wjQgdsfyvlpuPogCNMJdSsw/274kCRirPsOmfHM5Re6Q4weFge3uw
yykRBtuUhKYpO4733TzueZvJT2623o76LnNaBLEpbILmvL25OOiqL+UkGL+P
K/FO4k5mujP3Rg2FcQ/C+Qk9nS2iKXDM4Rit+fhOFMO1gtMEc2RsDA9Py016
sJW5NN5sjhSLNVzMTfSsmljLpugSg/7E2Xv97blquMnhV7zcdzLnoOHnZ1v8
6U5wqOOP2Qaf7gjre88KbTZD3ozQDlFNx0xZase6CBhwwFoAA7K3NuM9ALCi
2d58s2GFGd/TiKvjoe8R722p76DelYvUVWftBrY05BfUtHyIyc7sL7SwHE0d
yapxMNVnfJNGINMaJoaaeOpOoWJeylojha+NfB6Or3OsIfeVrxUPeLAxz+eb
Dd9r9cM0wMWzeXXXOiJI3MuHhEZfdR6yKqKsxCu9aVy1bNXyq7ZxNSq3bWHR
yGR3gPuSTJZ05+1uhsoeUvwuqKR96J2HQbbTDJlvyDbIpFEzyTG6CBtN4/rs
9ROw5CD9lGTOOQrucY5Un7LTOQpWO3ZBl2MXGO2aj536veHYeTBuHjtXCa2P
WD92niGXHDt7yKZjp34PvMeuEdR7H7tadx9xm1B1J2536BWPXa17M2S+IRsh
E9QEt57QAV1yog3Ci3oBl2KqWjUcy1rDFubR+f5SXeZlvJjkmCa7mYmjuWSs
jlvN2lVvfRUVIYjBRFBZ7fY2p7+Zp96L8GETf9lh4g9p5P1at8gSi8e0QqDx
ic431PI774PdNZlLkyUughx2+iMvGd3Ms/oZl6SDdiVnEYapib+tkS5SnCxx
inomvqISQ9RcyKbNZ0RlmnXM0lctPUTSKbttwxwST4bgiEeBvJxctEOP4xEk
02iq09dapjbrm0+OL8zTWaCyOZpgRnWkQ8xyEWKQfoO10GjmjwcwG0uZ2xcr
scJjSBq6Jpq3BVvUGhvWS9/X9sPIpjb240huokx7QnuRRj2p/BgKV928R3qX
pSyYepeuUmnqW1ZzSmQPuv9GgqrXHZc2Fs8yxAtBIw2TytydxjdYaxUuAHrW
gK/BKmXhE8HTJUVgg8KXzOVkWhKRSig2KeJbfEUjc1T3aky/QZfk5d3ZqfHt
5IKoF0dq5TyqWQlUlRx0K9ieDs+0CeyH89OLTbNV/B9VLDKl15PcQ/v/gO5c
9zYyLhkz48M+5/mlIOlnmO55c3OAK2euZL2GMAojcL0N9ahLvpNzUnSDCo1Z
dKacv+KdsAmoWvJUwPvk3etNXecWc5JLE69EVrkYGYmvdfpSgWeuaSDJQ1ik
sGJngoYQXepyy4irV1YumgNkDuOBkGRRjqUVh+35eDK+Q7m0a086MzN+BMA8
A5rwRgIHuJ9sM2bWXS8ZYRUp7/nZfM9TcUKgyhl+QgnY8N1G/Z2iSOa6EElC
yQrHT3r0OxP5cMW9PHpsmjk595hmdj+J6jY9i1k2nCd+e+d9EmI94IIjViXj
BaWiJfBhbnFJ157VKosOn+3a6EtNOrv//Cad2gCr3lxi2l2/ZNIgZCTzmz3r
wscPPtWlcR15xVvYoHoLaexmr1Ee4wCiq+RDmMbZtLr2ubPkj0fVsv2PomiM
cvk1ANWuqW84o3hUW5IjJ3eYlXVclySNkSRcJHR5BjLEUo4w845mQsfNMBxJ
zK92IGhU6o1Z4g9ztN1WTfMoapNPnuXwcd0MUJfH5XrnOYWY4n9CO8603lN1
Fq31xw1Srbczh+Z4iazepSN1Ns2FEWt+sq/3kD+dphJUo+K6J9fjeTvRYAsp
7zCxLqOfWo+m8Y1V+IOkasB0gUMh0W7djkcaHb2cdy3DmjskdB1DM/wc+0So
ZLC88EvI1VFSuMdEfg09gtoBNHs1d1px7fdYOO8xewoVU/DayixmYMSZ+ViB
p4cdpmX+NOq5HrQ1nlD1Z8d1m6Ov9OyqaRDznVGb6SzonuDJIEsMO3Vv8P0G
Tb3pBvfgZ98fF/bAGzxY4QY3gWoPHWy9wdVOeG9wB5ltN7j6pfkGN5vc8wav
zeK7wc1GQacb3OlR24fmG7zeM+h+g7d0brrBvV06UmfTXA03uLeH/Ok01dIb
3Jxi+Q1utu52gzs95E9jmLMNTBc4guU3eB2P/hvci+8Ot5i3n/xZZZ8abnDz
l243uPNLtxvc+WXFtd9j4UtvcAeQZTd40NRjhRu8PkbbDW7+dOcB5uj3uMHr
gzTc4L6f7jf479O8vGuZl217kS9HHb5iSbJxpWw22kiXi5omkXzFLL+Q6ajM
BEvNcUHCUMbl1ckWJl8yGwZr2xIlcjTpkFGZmwIDSTUYpWNA9JhOerV0NJhB
R2VrcmrijqOiYGOXPXdkm/cskypZ3vRqxwQiQWWlDpEJ05OrABMCYQjf+D0u
QbzhYTipCXYjQy73FLY3w5akTe/XuKPaMCdKvJPhbEZlHzHgS1fBlTzkQJef
PPru8LxP/1Jc6p1IyMJRh9reNwjO8koYo2XaYQRPZLK6gPZckXgoIBku8DiY
boWNi9Ph8FBWnd57uY8RysYGAC6bUNBrEDdtC7pM4GQbKwPdh3DCiWEqdgAY
8XBIcbKI8UR1LmKQlUtV9Oj82KA/2cZaJhUDytohRn8F5qq3xI6e2AW9hSog
eRZh8rKcC7giiu4Q6PiDsHVTN76EhJ2asssnXPpVpZIjozNMTX6CXk0q6Qn8
M8aBTDstoUyjaNyT1WKpluiJke0gV1kH0UGB9RonNxgFWMaykJQZuViWC5Ei
jkhFpbnhFvpwEuGJyqXSPYL3A559XmbPUpV6REo9S+txGQMu2OlkLHPn2bPt
g8no5cGzg+2Dg23vgGb7/b1e3w+qXCzXfSrdobegJ+dzIzeLdqvo/G7Cm6XS
+MQFOjo2jdLMQPzlYpTFurCzrDIVcSwMh/3P4yLJBeMh7mo4cfpW1s5go9I1
FGDaTVGEF/YyFbW3zBwXYlLDqzFZUN0E7/SXzfkkS1kvD+sWA+0v5mZFaTO3
o0i+JLxg7BjBkFY7O7mMnBW51hv9EdDTcUhwsqQDp6ziCuki/vDJAwLLiIEY
hA9dO4Yt0Zgj4PPB+hD4afcx8L1dfQz8tPsYReJZCXzYfQR8d1UfAj91xwja
RcRgxczKj+QL++09YSvFcNyX5psR4KN/82fJWXBC/AESTz6j+uNdb2dvlv5a
p2b1xtC5VzJNmqP7ULAcCyxBdj0zT/xDj/Bo/OMzqZjyclTJssSlWtcu30gR
Qt67SQZkQWm1Nnruie25OX77/MrQkxB7jQXgXjLBwAwRXcLCiUjcytM05dOu
7IiScgw6GMgi5RqnzlWSjwZXvpBE7ukmgeQsuLVIGVNSUZERlKGZFEoXJazN
Sr0a1VkhlF/KJMGleroVVSLxBOenvsbU5zIxssrKyNlYKTX8Wg3ZUpAXZ3hT
o1Erx6UYPc5UeuI1Slh6tcisrPQCUnrXRxnb+QFZ2Vq8BhDy1kkm6zx9cogE
P9I0ohImg9S5JjOfuTglofALUk5hYbZwaDyh0wllxUO7LiKi6N9FSrTP6tNl
/nkv85Xu8qervAMWGq5yYf2NynEEBzHEByus6LqOK2vD0HOrmwJG4Q9Y9Ycq
vM7n3pQmctWtUU51wHBcY4nKbdyc9cbsiq8emgLCfbvG8HMTNy6/3t5OsNGc
k0Z1aM2g4PRQnWR2oOZ2ErUtWYPMAdtt8cunaUlF9tHCZssZCKwRg3sdBhOz
cys+v8NWmCWHfIQqHStuXSRfW2fQJY88/Z07FzBqAtZTSsl/AEXr+8AaPAhW
HSixIuuQP8vCKywgm1jHfnvCrNVYR7Ai6whWZR3Byqwj6Mg6gq6swxxwddZh
T9Mxi+Ey1hFYlHE/1hGsyjqC5azDbLWMdThLXu04Wp3veRw1sEtZh9P6PrAG
94T1ybDgjvB7NywYKpW0LTiqm/9plNYvDd3VqRck6g6RmnhyLjwymOBHMGzK
viFLwJTqVQc+XBL+lvXZ3VV0g4/MY7yF1jeV60k6IGN0gYxjJ0cRZv2QTN6Z
hSsYfagC5P9sQFDVtStbJQVdFnrqJDN2cbDM8Hf2Kb9MLBeu7hezOFRvkoDU
Xkx6qH8Ltxc+1ettci0LABmuCQfa2+uYAgJef3Nk+K1xBBiNf2fAqcqWhhxa
VsUdFlDBnjKvCfp0KAmQoczjvHy/eRDFX9SeQbl4krORW170kXtEKXnoHRm1
xEVQtlsym6BRCPD47TlCoVm7BxL9ZVdoYIhLzrmjepov3OKUqr6Ir9F4xJ2j
WS4S5scq1w3Zk4DAKxHmIEgZgRbFbhDg72VAAyW6UWCJgjnNCLMjI+T+LPRo
lOYGh9uYxJvCjS5MQUa1o9r4fA7QGIP5aNgCg3k2tfkFP+9qe6EMnU/uuc/i
nhOizVPK76eU324v+fOvnPIb2J83g+NT0vC23k9JwwX1PCUNf0oa/pQ0XHd4
Uq6fon4aB3iK+vmjuApbon4eSyvxNGrUSkwYVtZKzM72g0yzs9+Qb/ZdWaMx
O7dqNA7WVtZonP4dNZoa6XVRE5ypVtZoGkBdotHUrq/uoD5QozEHubdGYxHC
vTQam3HdR6MxR1hVo7HgX1mjsXqvqNFY6F9Zo7EY3coajdV7ibJhE2g3jca6
7bpoNA2TLNdoLOq5r0bjnNzVxE6XbXTWaJzbp02jceZYRaNxuq6o0Ti9V9Zo
XNliBY3GRU9zeRVzhi4ajdOli0ZjArOSRvOYpLWCRuPypgWGTlaiQEKjgNZI
wktoONDYx0z0QMlYFj5Km5urHhv8Kst9Qu205eYHG1G+uaydcxDDKO98FOtj
RHkISxpfR808y+wkf6BPSJ0O1G9h8xbZS5xNnndfIzT+1QFsyCFRbx0YVOFm
RW0/9N4hajd6q2haH4IKm+RhlE7Rb3o9W4ov42d58acsTqbXoxwLuRbxLEce
yUfda+SQ3NBsaM3XmIjWGWJVoV911JpJU1gb/YDKNhhswf8Mdcf4fQtZUvMk
93GUdPOSKLzfx0XyUcPX1T9iUEdHj4PmQ/fwjNQgXO4WMYi3I4QPd4g83Bvy
QFfIA/0g93aCPMADcm/3xwN8Hw9wfHT2ekj66+zyWM3fURu+k7Pj4Z6Oe0pu
Zs+VfBxdHRxaBFjNu6H6re7aUF3v49f4qDdjJadGF4/GRy0ldHJnqPYdfRn3
c2Q8AuWsJvBrbK0QoN8o8ds/7UH5PMj9suPU5Kil8fby534Rs50UoiW46YKN
ZaqQA1CzHmQuulEJMhs5kHfTgLwDtKo/Tg/501W1qC3Lq/h4wWrXeh4brmZ9
x55gdWWnqX9XTcfbv6bmBB25RmvgtORkS6PBP9rDrRBeLXrePw6ce3cKAuem
94kAvxeIT/7lwOj9+YO3ZUymjNzGeM57hG3jk2OR3krEE9OL7p7Wf3sYtY23
NAW6HlGYMwZs08UtI6exOWe6x8BYO68PdrtQNTMwzFUYAyhE3Mrab6UbEzU0
KIgYBapRmpTXCH4lwlcptw1CLusY49yGPk4zByeqKK6pq8u31DbgpkpOvbnA
pKoEyUr0Fmuqbm3SV8/2X2Bt0lxUxFTB2S5eyobg9+FFcEZaZLAxvDjbpLho
1jvlSqyoaPiqV0KnM4LcEsB87SXWhYhmrH8QiEh3QWtYpEHkVcIXnL0+/Xe/
R0nVejqbWk/FWTtjz5LpdWUEMk85kF1HbMtSGxgiT1H9i5JJY3ioQubx5PGr
eU5gxiWWNxGsCYgbN5x3DFBd5PMCQ8JVKrRvGIoTo9LwxvCbk3Iz2Aou8EX8
TwuM82hrfsHtrQxSWKBBoo0hmMB/aSFWRjKVMWqRAfrLipOrvTk/vQhOd7HS
CALTxxmCfwu2+9s7L6l2qZVQQBY02RvsDvZkSZO93X0q6EtlTdPYOViVCuqm
TApEtHwqAmAMqUpqQEkGovcxPrm7KvIZdcTKQg0Q4OyE/53dPa6pKo0JPipj
MwhFvSO3iTGjHD63oHj6gnhLxDVSkfCQcLWBQYx3hdQnMgequjMqV4N+FwGU
H8iugnL1M4l+kAziARb3nafRWHIN6sI7qJL0mfVIxDDc9H/Ph5ffEaw6/4Mi
YRzJeBQiMi+IEy6GiTARmuxKazUsIrzY70ujxkuVA0fJp7iZgoKuFyO6boHL
vY+R9OXIOJB4G8Ep7ZgTiEctZpZGZy1yALWiIh7HRMpEC5FkCKc57hnSCije
N7BOK52dGMVeENfMBV09mS1mBiHUwRTd8zHcgsT7S5jx9Z006tX3Xid6e9bD
DBv0Dqgvhinif9BzjuxOLVQvj9vKK6AOyqZ4fWIbnHhzKLGgytcJjRkhRs4R
GBvTfTAc9IyDajMfckXosrYQ8aBD0bBFb2c6yQaPyyNycWl+zIJQ6kLmYrXu
ltLTlJodjJd06AAgUS4fvcjK5zJroJpLHlfbjMWDvompalVey/0iHsLoKsoq
UwHoZ0WmiQ5HDW6SCOlPlcGhLJF4M4mnOxJZuSRJ9X4lJWI16kC9cFlmQFnv
LnCaXEq+b2kJBq0Q9xjntAF4K1MKRdns+EPFyD8EaRAWWt0hOjymPcLJYVQU
QtqhjITyrlFZX5CtyCEFPGrg2kM3K9OmWISES9RFf/FsG5izia5GRNH94TUX
NtAI0RrVTbLpgvPVnh/TiLY5r2eOw7WYRIZMEucimaJRcoukVIcZrgh6mYb8
xRwQP6i9UasxG7panKwYgbqLzGvRlc/o5uG7cJYQFgUsfeOM41hMYnbuINtc
2FMyA8vcaj01g6Rc1lDaKuHMV5RdiSeBZcI2T+NCv6aDz1wIxegOEDWM3V4n
eP2OZYW6+AOoIVWsnunpNbbj1Zw5ACoWRetFzmAXUyppMBnnOSulXOwMtiKa
xv1AvI/Ez+IPINfrQeZRdV1qQQX5EMmhwsYqb3atASAmLANsDRF9unFjIPtJ
yVlDsR1rHiAkBdFVpVgz40zKVpJ05PaCniUVE35NqY24fJYub/OA/5asdRzN
K1nZrbJSGR8EG9vSANNTZluQuhmGpPSAWk9xKjQyMc53MExwiQCY7HFvsKMY
5M6LbZSq61pWZIgLct14u23sbAY9ZYVuB88G5t9lJwZI5h2NMMsvFUhUgqEN
7J4DLKodwWtMWyxQi7cy6GSUa3libC7uiDZpu4qovJhwUtXKEL74NSXQPJ5V
wzQu9JEdUEgAmDUWueTr3LlO+yy0oYc/7s3Y7e6+6FWKZtPTXtsALAiS60ku
UrzkMfuaeugKgiBcQHBEI3lqxbbprdjeNQiHbtY+3pTAi0RtS1qGPJKXh5J8
hhYgwVvWwDegQTh8uymvsFc7z0F9JkLQyeJKg34ozRgnVo5KIdrNQJOh+w7h
enP0HNk4WRgSrpRXqfWqQZQ5gHClrgIuBHhyDrSj9FosSGAYC7gQZ1SWi1ks
cikbhTFV2UVGqJiPFyklaVN2LC2N8n18F5DFVt7+6kIU9hElzRMUsM6znEGZ
y6uC0lZHIyBb0LhuRQJ3MYweniVJDcgAucQtyAlFX7xblo+ANWRiEB4ALq4F
cJUx6l6mKWkU38GhE+nxlGTychvrcPYpOXEqB7oAMjs5or1+F49v4FfjwO/q
Ip5ME5siUzZpjzIIpe+kumu0aSWaHOjxN9ydKFyaFU0R4bxBOsmdUIVYODgg
kcmMZPEo39zAzIROb7+RvUiglUlHWtbw5idDGjU1jVEHwXkbhEJD6MmRe0JP
qOg84AbHE7Kq0S5h0zyjL0R/QUu2+ct40G7LWfotu3MTikfmby/OvxGvzNHW
azwzp2+6vjOnvk8Pzc3nIL+vPNBNoSzLY8eAeCO76gk7FPIKzmj40yJqehdj
51/CnwYntg4VSMtoSZzAH9LREDw9ZPuMR7UZAb5ja/48PWTrgIXfJH31H4br
ldfRjBIKld41hep7z+rqgwAJgvY8jSuybLU/5zMa4ocdntI5S3sEbq6az7GW
y03cIRSk65OB+zwWWOWZQOcHAhwVA/CGKrSjJTjdhCJcFjlvuP5Xjpm3weoW
Nv+ggPkHhcrfL3pkWehIt7gRZ6AV0nk+IGKka7jIPWNFHhAo8geTvT5TkIdS
iGSUB6lTXcM8qHGTXnywNGhAmqh8VdXsRxvUP5G+ZbJDyYpfE9Rkf5R54MgT
jjYuXZHNCR0g0/JPi7isyIfL3oy5dv1QrTi0N6OEK+qc2fWZ8mJ8Dd2LqMoL
ES0w1h5iuSjEzc2OsFHsPUcbBQJGH++Kj/ef76NFyvCnRFmWLzK1X7Qc9muR
vY1ve59bnLZiCN8HJ0dO1r1gKHPaoU1KZNAjP7PSnXl4fckbvmPMEgfDVmIK
bBOwIKDKOt3mVNQJviqUtRzFegSXTDDomSGD7wg2ZJIDGnAEsUbbbDzQnjXG
GfbXLZ7Lbxl15FwVdzjDfBFXTZ6bU5iT69o5RcskIKcXQxmSoVCqqjmQDTwa
j+N5RUYWlgQaHFpRJnsbpQ1FF4pKQuKNm0yoll/LbhCUQHsztqlqo7A8JSJW
ygJceCb1oWVRwD2sbJc0BhKE6kwvyfn5DplmyRoXO+ZXaZcsIlAYCj3YjnYl
voKN5T9e7L3YE7tsHY0X2/v7HAxi2IxajUaWIcgpGHFyEZ5cCPsRXgGG/Yi/
6mpAos5PBqTfrwHpMUI+H6iOWU8RzU8aOpFd1ZI2l0/kV98eqrf87qSe4Pdo
cepsWXqyID1ZkH4PfO+J7amfJ3PNk7nG7fxkrvkdmGt+R0LHZzK1KNVBmlpY
8+hqa+HWn9XYssTMIuwPZnyCrY8xiKz1cyN6k4J83qe+cXP6+iA4peCC7b74
ZUcB19mYoRU5tmYs1dC5w6+ookv9XE6sFHQONUONVpa+lC+IIh1XgyOYES9K
+54kBYan1/piTwp2qt1qitU5VLSKum3rzY6+/e5E1gSAI2wo2/h555LdyVNN
gD+6pv1wu/v9hdbmVGj8/WJOl5YMNeVrsDmzmVh9Bk2Tid1rWScMxZ3gGxez
17JOV+mivHaga/d1ytcaWoj2pEn5V1Dgn0JGnhT+Llj4p1X4n9jvPyv71Si9
vyniyRbhA2tFW8STOeGf2pyAosrvQemXSozU+VEB6qrxY9vfPLgiEHXuzKfS
MlgBc1QVQJZu6AMArpy9O3vPd9FVjIs5w8qI38aZyHAWbMCH2VQ+z9l59vIZ
tlRAFnJcS5FGHdV8AGfrqBp74uXWhu/Z1ubBmhj6y6DnXDT8mC/A93zkONeP
9irxEA2Xwp3EpgAdD4wB3UuoccRRfJVD/0ipxaQCT+JxGvH7PRrHHLp2VRlj
+4YexVXFGyLfXyPARQzXQxlbI9v32XKQFbj4KEW97pelGGkDcLs4YYp58Tlh
GvJ5OILIDR7N5KLsLTi2YaDobOIwrRWOgeOHd++khQN/NUwc9M0y2waypyfj
xpNx41ewdK8soas+c9xiTG+ihCFHsHzS9hsHeNL2n7T9JSM88aNasurlPIku
Ts64buysR5HWGxWN3y/mIb5DNbq05obXsyVFhYHEuuGXnfvOiwT1P0eRbIO0
zm/xx6vMBybRumqXjecmtVH9vpraaHVbWTnToLWojU671SALVobs11IFlcwn
dUGSFJcpgdTod6AFnuUy1xVBJPMWyHDdV8/3X376JIYS8JU8DcWwox8SZ0fx
W59hO8zcyulEs6h348YhFsqASH/EMf/me3gzl1T9/DoZG0UDYwj4kN/mY7KG
1IVDHmrlik6mWanhpbLvXMKd2ykVhBeg5iPtiR/rq0PfkhuJdYp5HL3HdHKc
HYH6UAomJBPxpKFcRb2hUQ29Rm9xlrsKli4jn6h0O6xg4SiUpAOhjdeSMutx
qjTKvQhT0TTOcBRhjwldMJnLRglHQIf4v5Ih/kxTm6RxBW+Hb+T7/2gmn/7D
Z0tf/EczR9H6/SlVSxxo4h5ry0dusyFKnBB2FATNrnAkkiKehHhnVB/qVnQd
i2UtDWhPdSs+1Mzo/l6cyJAyPc6B7xSN97nZCe0fMtW8+6Om+nWVjz//s6kf
S6ygHajNkpqZ2gB9QDwVsVlHUwgM6uIGns3rJlOV+aIYx95KPb5SParf/ZLq
q+7N2orxy6raiovBrue1jtSOR9bp2P3UOh07H1ynX6ez6+to3x1/8u2A61DC
jzv5i8zus5jyQuYsbD7J3b+K3P0Yb1jFFa+esIJYsPTlKrQxpGqROk9n6lV5
yjEfmjihB5z8m3mYLzcypk6LdXq2AbtOLNFpFs3nLO266Z4oURyMoLL1sfxy
Eh4NyCScz8vodhpWcVSGUVUBbHjJheOkGC+SClNzauBoPOmoQbGMkjFySrOY
YEAcqFTDi2wSF+kdJbnidNOch4zSNYtszZwge+eFeJNnMWIPLjjfuCmZF/XE
61I4VmmkW/Fl53x/BHQ5i/isCGu9gQh/7zANG3kwjBR8JY+FYq/8hMczriQR
iKuSzslnylbe+3ri3MichzP66nuolkswEUfhKo1ucssJiDkOQbMx9lG+lx6n
GE07pn7i5edLdvFdxNEsRargrxBVL+irzYGVpZlfZ3M6vIl+mGucSX6Wy+fa
TgNrZt22phc5/H23Ji2bEhgmGWeNFV9QQs9ZMi5yndXTKB5AdQJmCWWuJuiE
FhfMQe2LK2hNq0Wt6B8JeeQwr2LCzsymi3gVYORTbJVr2wNEEwyYdZt3D6la
VxHQN7yCJIuneZVQTlq5ZAMq1UEMiekNMSN8XyaFkx4/cQRY+zMLPODkUkyg
Sb/35SeOP8wpmTAtUnpEaTCBmTRNjPycHl/iiZmuW+If+gIss0glryUvoiI4
R4Od0b2BWWUX0rmsVdh9/Ypd0BzmjNSJp/tBTwsbPZ20mzybbHQRMdy6Gc1I
afzNOcWMJU452CUzC/5GCU1dou+QfA8WCi1R374Q97JQuuH/4g6VF/ZSzRu7
Cc2biKcne/YMpl1atwbtbkYBNGITRrEiU8zNUERXmP+SLTRToPSMcnhfqtSZ
4iJXEQoUGg9sT6C4fQbBt05Rxwp28MriX3eNLpt8k93k72NVVsMYUPPTbraG
J2X0wSE5Mg5O7YGpt+qPLRiNbip8ri7wq1a0UJaE/RX6XBjkbe3TmDfEd25E
XSAi1mT5ADnGZrPGUp9wmULbwQMXWIL9/dTagw1Z/aJ5FQohqqmlvy1R3zpp
BpIFSc1AMbW6ekAsj4vGCI53ozkef76U4d2MVzU1Ph3/XyMiT6j31aKhNGPN
SCkGgv2cx2GVh6AljOBqvU0moACY7CXJRjkoA+Ho1rLFajOa7AVbOrol0fq/
7XZqNvE1f+G301pcBBtvflX7NpBcBM7TOC83fQ0UeNAAAIN/QyP0IKgxAtVY
ZBp0zbP+5om0DGFzXQy1sf2oXKl9vOL48Yrjz1ccf95hfNoZKmrh3ZfAwV3z
QIGDtQ4t485jxp3HnHcec94wpj5pYzpp86aTBkzk6ag9HbWno/bAo/ZTbucD
gb/95wm+UDanhoNhNAHaNv6y4sUCe1fsfg3hYvU+Pnk1qNHHKvJqfQ7WFnU1
7qCJO0hBbYyBF0K1DLHCnc9nGY1THyIbmgAiQbu95VI1Tfh0uvs7+NHqdG1A
a+2nA1q11H3jSt0sP/tt8p6SmVLgNgz0ZAYUdr4SDfEgzXnMzlJ1f3P5PdmC
RndUjUfamIaHZAfxynU9Mp70/FeRMdWdBaK+rKw5DoLGWRLL9CIESGMcWT1Q
y9wbXGgQrVxpHpltVcy9BEfqjjKRJWZN3tTweBbmwCOv2S4ALeaN4GCyZgmC
A9pmO3raNkFad4oYn3RwyUAuqoITYXUzNGxOghPDkPcOrYYbhyfvNvtOq9eL
oqyCi+Rn/P71hfj++AMeas8Qx2oI0cTsf6z6n8fRe0/vc+otMzZQI7P/OfQf
BABlPzjGf7AhdKnXHRrNS6qHlMJKXl9Aa/yHWr++8LS+41wYB04KSBRoYByr
HOefuALqNtrnHSuaZX3V242j0EOaHghUQgiihyM8nW6I74eAJg/zi4HZHGPE
2trj96LcluiBdCWLbdW6YPbUNGUP3MXwXNQ0GcVpjivOdVpSHMUZl2m0cWiE
RtKxSggqa+jxeeHawsxgfsprNYm5/ikcpb/nF9q5U6/kywN4bpbGAYeHp0sH
/CII/nN49m3whusysYGDH5wQF05KWbKJyuQSedSpY//VK6IOu+yO+Gvn1Z7x
1+7erv6Lyxb3HRqDv7zOOpZL0KogEoz+8svJ8fHxy2c7g+2/j+fKuEKe5bW/
Hr49Og5eH397cnbxt4CqVq0bL2i+3nm2sxc+ex5uPx9g+3XxzMZ8ZRP8ssZu
6lAGNW4Ptv8Cn6HBpZyjv3J9UYCuD10O6B1cefBhlh5k5QE5t42h1rGbKDzI
n/wF6YyLOvOcWvSieVVz/flf6GPlvRO38jqgLkDcYUGfQx6A9vQIL8k3ZPy+
UhbrHcKcsF7X7/Ufzs9KgvWTAx2G4YS8/RZ0+HkLXEgZB3WoLpnNqOy+3imV
dc+eUX3cMi2S4IEXC/8e3wWH2Nu/TGmS8qy0EOtvmxZovWm1+s2ZeDeGKZlb
YeBa4DUg4OM2QoAjhYTgW7uc+ZwGbthm4Yl3t/mqbdlwqJvmPFGu/TdRFk0p
rXJ95jiGUxxO8mr7Jx/qjS8awEBGABLkJJDc4CB4XSSTKdVBnYjfJ8GZkFLD
sE766meIlejINrv7rEZEXqxJx7oFdHbbjrLnTSgTQAaXqiZzP6iDqz2K216Y
ymiueJiCCT5so529Zy8VUBIKDZeU1ocqaKIO1XkOFERFzM/LTS9cykpsQ6Y+
boHvEH6WMDkNW3DIAR3+cx6RGb8GAnzWMv8F/NQIgg/26xhErIKJrdeGIAVW
L8T4k1AidWN4GEUXEmXwT15Moyz5WfuTgMYvvwnenl8Mf/w22Hg7j2XJd5xT
Hy5O9f4jbB0e9W8xPp1HJdfqmEFahyF+jEcH8Otfr6tqXh5sbaFOVRUYEVDQ
3TsACLZup1t8BW/9jdcCHU9BvoCef51FSVrlB/z917LL38TT4eNJUuUFzvAm
v44wSuN1vhhHkygpXKzIkWbccDCSDb/OC4wWGwBliOkxnziP+i6BS6CYAFMb
xUVV05/lmEXB33/9j0WWAM4GcFZrY73FCrDBt3n2c5TGP4N8ExwleeOQObYe
TEXrSTyBtl9XcRpf5RlIw15oL6JZgiU3o2K6SNKmkcuSmg1G3Ox/p0kRpZP8
6yx/n/jHfZ0HPy6ahkuBKAa3i1H+9fUiuo0TGoFowVCtmR5I0iPKFmIQy3go
TtKnksPN1Enj8CdJdQwCpqXTB1BEVJXyMflhPr8rkul1FWyMNwOUvwIi6cti
UVZKA4I9KqkGqK5wH4mtiGjZpdY7J5gibwiiPQ2LL85RFtfP19/pUtOyhOyC
C0RyhBd9MkqyqCC5eIYaFEZy5YJE8Q8saQmrVvnz+kLsF7riHHS1BdcgZ6G0
XIywJjwPIJQLuG7jDEPGoJuuuosCNKuG7+IbKmz9+uIIThe15f4YQgWAoa6R
aWlpMFap9hT+emVwGk+jNDiXlUVLiYM04lf3OTc/yscLo7jBhjz/FQ4Tx/rs
C6hDjH7ZlCit1yZ1CCfRtUWRZ/4H/PwlwHcclaxLih8DWcTpFRHS1QI2MCXY
sQA1iB6DdRKOi1iUSNWiumDYLvkic8ySKsH3M6LTYL2FkSNQtYuu800C/2xt
cVQeDlzSB1/CcKKoL70JAoyXKlRQAoHbgMFZpVCxyuDLLewtewT1eMRQB+s1
rv1SVRKnCWwVXfePMs/plLyDy5PLMrJoWpMYREsh3o1oOPxFNCcniTAhqg+5
YHaw3uDR/i/9a5hM/m28KACsamNzazDYWjdNqMG6YXv8b+kI/y/x36V9sQ11
ZD3rIBrL31BtE4ti0qDwrlDp7VdRWsbye/lkrY5vwPiQMUDRRoC4UZmnomCz
Dqz0olsilUcnnVquCzor+upEEOXDKULZCqKayCK59xLKIBPEE3n8VuQxNu36
vwafkGFsDnMwvQu/BRWozZSQ/P43VYNf31d/+NYj7a8evG1T/SD8CpvrbK31
hdxVyY5CVUfdcHGV64GvD6deUjF0Sr4sSu8UnvXrLrJRMvlVacsTTro6bTk+
1sdiGqb92iIk16f7L0NB5sI/H+lcLicc39asQDCtL1QejXzELPoRQBtzagXp
X4fCmtHw29Jb417WdnMVMvTGMjwe/anh/RTnj6T41yG1+vp/4+uwZcdWoCpP
kqpHIymZIdBHT77kWP8yxOQu/rempIaNWk5GW1vB6Q4a9GAsmtgkLTvAvpGc
joSlVfpnVTQ8mRNVelURtcBZOsW7tCqXKxVP0oaHKhrnJqnu5EL0qyqAM5qX
izQyYGpA3aHqZHqPrQEGapOkyhDNOYBWUy39aQTLGV8FwQitY/ajHD06jaSp
4JP6zQcunstoOiWjqnpMDP01iLK/Rga5FQ146MXmOhAwPpQMMWYpzDEEJL3a
gFOkV9cPTFUUCbtnrIFG7W2uWwv1gwxAv83SO/HMrBRPRq9jlSGHfneXlTie
iR7POFh/AK7MzkTw+jEHja6/1egDwMJcu6E6LVdld4XO6D5I5pIWhbfbDE8J
Tirph7BXHElTqzuKPCT06Fd6KYBtYEnfPOvbo1B+WnyeCu2K+LZIiAfAqOxD
Dn44HZ7hDPRcPy5ju7excjyTMhJK55Y9PA7Pj3Xk6MDubj5mxlU4w5V3M5Hz
NhiWQbkYX/e1AV0vAA3xsd3ffBedMzWdH4eHx44LWcNl7Dzs7nWO3sh8Horf
frG6Ne0r7SymuNKbqzFq7CwHQlkzCt4xz+fOXIJ1xLN5dfcX55tmOACS83wu
IxaZSt0JP3mmX5TXjzY/jAUnCC4FpCysgY1EpKKmxKNqPD3byOJrA9BXOwjX
TQy0h6fAeevex5sMLUxRdlfvzvjuW0mU6bk10vYzfhcvJZarvOaNDZhmDs/J
/YQ72AF/9Og7xUjAR0LipRywtPcSL2wHswMCtr6MEVqv8TDNlV+wZSHm77wk
2iB7OcSge1le4YUAJLvZswekxRrRKgc3KXCnyV+6HqJhcJVg7KdYqLFLTKG4
aoVpd8WahYh8GTiKtduRgcxZzvO4o0To8wWEIdXoG0gPbuPQjzVXBvCiRvwe
TZ17nlHEZLtudihDxOZ6Z2SaMZHKfyF4OyFYXrIIcodl7XiJASlB7cnj0wOn
K/ARhJy0257sfJ49GX/GPdlpWpb8rS7RyeyKoRCaHlu2c8b/VaU8d+6V5L1z
mXZSzKNQ1iL4ORM2y9E/Jdnji9E46K+K378n2d9XQ6pKFoJdDU2tBae4qidZ
+kmWbtnXzrL0yqI0PRmtfQVrxyC7YH37444znCvqLRe862IvyRNXC7aPyNOo
dtgnvc5ZWv19S+0eedMW29uldk/3FcV2zwgoBj+ayP65icUQ8A2cKzlfSPVK
hvfgS0n1zhsm9/gbObFrg4QGGrZFGjfaYkIRxrKxTXNyAFCmTAP1UQJbpKY3
R3LYiQwC5L1MMiFvLgFmh4GhPNma6EwSa0BLYIBMvRmlEWWfE1eNSOWtQPSN
YkJdKrA1FH1UEuZkaYzTu47LacJtK1olSoEzYMY/fuPGXCTT33rXsGwTnvTB
J33wkfXBz0kMzcrgStTwr6wt8r9CIEt35APPdlfIpfGA3PSvqKefwgkoGRpK
CxoWIexQvB4wMVJBREDP6c4P52dUduFOLPCOm4nZ9CDVAqZN5YR6rVqFgMVw
o9qaGhWYIxXkL1cnpuHqfbXz7SgztRlrKiK6d9Id0OoMWIjI6EPMZGKSGG2n
oQJyE3NXG3UhO20ho1WiAWSwfMy5KekSArzbhIZv1KYFNZBP5NSjMfxj4+Td
602/r6ROXJ+afYBhcmX4eT2uQE3vLrXlGeuX5AikVWhNVgKjA4MlhLRfFgiG
Bxp3T29zSIRpu6A5hdhf2k6GeUIdpypnQFSEpafiM2AokKiS8T0jW5eLUVjD
9ycDdspDOqJXfTWX/f2gZ3B5SGcpY6JHTFXdDygRpHG2Z/OUHsCYKrPwz/IW
ZXJUlMp1x6Exxyy6o2STNgyTfAYH27P4Eb018ywbyOsqjij/3Lo+pSQkF2FE
JUniie6nyLgrukiIQKUm00vTUOiczbWMEwa+zEouvJDa+ZQmC2vlBp8DZq+J
37d2g4VYjddbV2f7u2G+q2S6KFS+1dMkex8Mp9MinvJn9LQu2DgdfmvkEdKA
RRU/PIqN+5Zp1wTJZoGejWjk3TCvac1SERRtDu9ZPBsBKaSwFI7bX3pD2Eih
N180RoBj0OsBkxvSmMYkFnd/H98F6044dgtHf6PnsW92QiKlPPSIJy7y2qaw
J6Ehu8sQMvyDahgZXFo9/rGugWR+s9cpGASHC5WoUzcpGtxP5k+3mJ6olgGD
iK+XHGirRhLrBJxJW57eXlm/+Iy4GM1meNIUYXOCN4Sw5Xy3JPhE2M7EMzcq
FCWg1OMYUhAKGpM72MJkvJyof5QGYl3ZCfVhMTCLb0ffHZ6jYEaJwkyykbPM
YpC0BccWymWSXRWRygFq0pJEgajIxby4m5V3KDvjAbzOby1kSMgFb3fsj4iU
bEEUbh8VPkL0TZhfhWJJNYqSP8oetL2/kknNzsAkIIEttWpqsSLjUd/loiR2
ZTJYtsTiNUS5ULrq8IQNWerdWaLmkCrjrAbQxUbrkp1LRILsLleRWn3ZnLYI
yc9dmeCvkojmeZ567HPEZvG70Iqh6wI9aQT49QgA9WwS0MkYCQWg9xkwA70s
nzkoCOjckRkNM44XdkUKkbiJUvv7OqvUTqUuwSbLaTTPRhYwdzZ6pB9nE+OT
IvYNoSoFcMGBGfuXImEDpWJnZXJDbAon8qJE4rC+m8pcT3vl2cqWO41/2jeT
mAdRiZYO1DUuzzovBZ103hFquMN6GybqfMty7cBiodZIzcttvMLMnxnsYVTl
BQiSxSK+F26c8vBkZ5PAJXw/IPJWWKCBlwcub0XgsbLOfWG3//ZzT/2buItU
pO/kejzvdo+d60DWIlY2WeRzob549WlxNPTzZXd1X5QiMczK9hDCgcNmsLzw
yJS4FmnJaLR/GVnea3uM3wWsbnn2fwnnPSVJgsQOHqK+ee7W0XyIzLsHTUcj
DAL5B5eLFIHGmMmbU5j56NAQErvBbP/VIpjb9C3tfAo7yVhWIhVp+oP6Khtl
BEsqYHpu2fUWIIWQikHMyj9sg2gFIIsZOSGAb9NWkCz0y21HWDcIqJ5TVOZn
7NVIna5gDATg+lMAXW/TI3+oB9/CqKDr8nkosCu7W0KpjrzbuuS+P6CRlBXJ
AVKX8leg2RaWSCit72sjP7yUxMJ9DL7Vzqo8sqraTWSu3am3haDk0A5B+cIN
utJDN2poPQJ+SvDD2k0tqEWS4eHkcu9eDaDJFpOUVVnTVGPjyQaq1jVLiQ9V
JL5LEd+R4PMCCD6ehEAfMF7RyYzSETR2oZMMZOPdqZ9McCelOILJDDPnOE3s
/tro4blx9TofwZYzzEw5VyYMpr201r7E/eVqgD7IlpBxO5CWMcOhYVBsJo1G
KGFy6fAct7t/Ahax39Uwtf8Yhqn9ToYpnK1Wulvak00cNZmi9j+jKWr/yRSl
TVH7fzhTVF18eLJEPVmijJ8nS1T96z+0Jap2Z5k///yWqNblPVmibCifLFH2
NhjzPZolqs0Q5eVsv7UhygXKsks9GaJ+V4aoFm633BC1/2SIUj9/CENUIzUs
M0R5KOHJENWCNxu0/c9tiLL72lWK/oCGqAYyXmqIqhlZfkND1ErJckAMc0Nj
Peao3V8vwnW3Y4SrFdzZFFqlWSsaGZfFOGKb9tDGZVFlYkOdKLVGiPY7QLS/
FKJWc6KGaN8L0SeRdFvGa3+5hX9vvf72nHMK6REtKhtN5yF930hgh1bcp4IQ
9hvGtqjLLE+3KlGpl8ORNYw4hLgKWD2lMeeXO2YjTVVYnCnm3PPWY5BJEk2z
vER+M18U8xy1GOKrZQzaKn6sxxBTmhMkhi0RQ32tEGeP4ZVr0hxQeSlRtCYk
jNctwz6jcFSGbI9bgjEph8tzN7wIztiOtzG8ONvsAzFSfpmLswCz/ifZuHKs
CbhQ/FrG9upox+EhgHkTp7j2LI4n+o404q6xfljHJfiNAksW5sgQCKl6yq74
slKLgEj0ykQCMw/Q8ma7imZJeufA7s3K5ebkskeQa2nPEYk0i1mrJd8oLUsP
jZRoEyS+pmFbnVpQb7IAeoFLc/y+J+zbXLQNrWh8iWYTvsHEizbdV49XR0eR
p3FnJGiPAvIN7Npp9batGQ8zzbohNYW+2s0+0VQ/iKvxYNMD7WyRVsm18Zxb
v8xtpSltO61Zu6/xjTa96Uf5Pq5u4xjzu0+TG/ivRVNZnEyvR3mhaxMe++ir
DHOQcuFWc/A6ymHRUbYETr7NgczRt0Ekr0YDEhJKNBxt0haLeJ5GY1HVUQNK
vVzxRdpLpRFqePG/58PL73RYPr01sHmD5CtnvnUiysL8NqtxgOXbcXKFGm1f
AcXbMos+JLPFzNiefMxpG8dKp9DwGWomrlcJzboSCa7HXqzuPYrhXojJdIxG
LyxQ4mdxgGK0HU7TfOTh11329ASLq3AtxQU/iukrxisLIyoFU7BfZBUaWObE
4lGMxcpbObjBPcjgTjIXNJY5oHhKAuaOPiJeIlasnDt6ED64SCmL+YQYtJVP
4zJH2CjroigneR3dJHlhSH29GjqBl2Gtm1GsTByUyrKHWb4ExEagFSqB3ZBn
3F55ZRKNvbi2NdkGKoMmSlyBeM4ZcucHH3T5OpSGK+XzyWhyg8lFRCbViJij
savyGJkJEsQAZIj19fYsJ6li9DTmRTJNtOTWnrTGvgOtxDVO2hqUoXvorbVS
QurLzMpo06DFW9lskiu+72iLnItNX0S0E7JCIeVXjcUKW/cFhcILLMkL7OYt
I0QzSGLAWGRpwqrLO9p7bqbBPf5QMYlhVbZFhllHRe4LJZvCpyC0wJrM11+G
csT5Z8RWwiYV6Gul8x5xweCbJMINjWB7x4s0KlBeszLnJaVKwDvHTC5ZpXK6
pjnceBphbj0gURFob3d/7wCPx9ab89MLvCh/SApgYFhPiXCuSgcGG1gjc9PJ
f8M/skLTizrZkSbz+Wlv/zPQ3v5KtEcLXYkAaYquVCjMFhpkkyq9xNhIjQb5
mK8Sl5LjUmJ6/uLZ9gHDORQi74VUJJED16H0EdNQosAmJrR7FbquWSzVYyPb
mWW6Y7JZoo1LHaRPBY0tOV1kpBGJhwB/nGjFtm9rGBhtzpPHBiVkxeTAfkWk
U54uU8WyV1cnZ+FAZfeNA6pz1zXOeEzdeb7CLkIHpNWMLStHgTK5oPYB0mIo
6lT+0raVh1wZuhQPbFkmYQ4TyUKXUvIkWTAaX5uHmvWO+mSGsLu7s3T9Nsbr
ki6eAp4g1tpIYr/Ldy0hVmjFiUhMxtX0YME4KoYkzTC5khpalYUfx8hbrfHF
iZZqjjO+tDLPWGaOP4zJLMCHIWI2r/OUJZZ9tQc4R79yyO16KukKHx3bAF/n
IfJK2nlBJZ1fk7U9+BYGvAWZ+FykBw/2gg1AT7jnv4r0ZfRysDPY8VP5LfA2
qnZ8DSfiOk9r9D4BrjWL0v0962BeFbywcAJMtyqD56aZWOSHejYYbD97tu47
pcjxymAdOM1YFgPmn/YYOaw7yNl7FNn2Yf/EGqh2oKzRWLcJYC6gZDpFr0XD
ibf3zEVEk7OdHN8ShM4eL75kVb8ZUHg0jdnzyZcUsVysVy8tQO4e1yiz2VhP
MAIPGkfFJIw/VEUUYimBFTx0R9wZJ4PeAfdWtqlVQQFaw/ib7tNf2pxADgCc
44pSqZgJ5YIqmdWQRWZ2IJ5lz7ub+Zk2zCqzSE9zyZ7GgaJMNxTawzNWYRQW
rQoEhLjWYhmLFseNcweVy4/bJQyqMCZQzBEtDkf2nbIiRtBGIKVc16H33Wu0
hLL9TlPWcswQhwBwJ+fSeh/H8yjFIDgPQrb3LXLTTGpn++Xe8zY21R1vlGKL
diSxrr9/Pz4+H56e/HAsD3rZAxaKdtxsbEl+2hx3fkxWt4gvSlKDndtJ2g+e
9Tgi0JgxqjxTuoGFwnYxqV2ryIQWwCnLSqQttK5wXJ+CU81iDqEmBDLOsxju
lqSYSPvcd3jHWAT2q16Fe4M9/4HCu49IcQXaCT4Gu4PB/vPnu49DP8tkJjEQ
7wlax+I0mtuZVOXGsNgJMs+cVJlyQbYdPBqaMIC+toCLfX9+NLz0b6CyuNUJ
8NLaS2nTihMy7vwcFzlqoQAmIBezyoF4YcEplvIr770rBBkK1TiaR6MkxZRe
91aiDsn2nPwMx0aokHh41cioT9eVq396RclJxLIcTtupohHvA7MptrYT+ASZ
uwu1ZdQjEaSPOCR/H33c7C7+1qhOht79qBQ6Pglv1NlyGlvo6uotPhMrkfev
BqzujJXQ/6XLuswkQMsXJ+OyfIvUgRfYqIY5X/Yf71JPxRzO6DUTYsLRaZGd
tcfCgLHOv7Rs9cq7/Bvt7rIHVoChutoi4oPq0UH87dWBTkQlylrpCX356WTG
cfaUGamD0K5W6hxguA45F6WkxAy8TkyDcPDEH+YUCEbmPXGDyK5k7dMhSkUt
BKcxgqZ2FmqPxPDLaAHTYUBEJKNL2ujjfqfld31OGo8IFrg/aY+lAZjuHUuD
YzsxC79dtIK+NqR7Ch0ufTLgUkJ7chTWghcsgdqNZGgI5+qm7Zi3GGLKVXca
zM47z14+O8AOggYRfg0htdh7vkstgh9gQNwULRMR/tkrGCrtr7M0vD0Y7O68
2H+xrlnMY0nCCC7DRYiQwQAkoczyRcaxwo7Wf5VLpVV3F+nAgYoaZJkk4zqG
v/HyL68N/Vt47iPhtqVYsHEaFWRAIHCFip5ZrxDMFUvrp+C7yohmy+eEQitS
v1L5siVb7zn0gc/VpotZM0ZRr5pg0MRvjFI7JMdFLqhNiEHDl2yioYgRS422
mKt0UV7/1uurnxgCizlHtxPDaiVqcqxXeiiPinxIX5hjk5TuVjT+1IouGhKM
DCTgihyeSBoDV4Ypeb+GfH/olRRQZHyAKPxhsGN5vTk1P9uKwjbfcDKuwRiM
a3da17wxHOus1mVvxNa3XvW1OdjlLZ77mLVAmJndN7Ho9yRC+F5quhA0nIiH
FAB1UbVyDVDxQGs5qJYZ0oCp3Rm/vG4RhwrS7A8sX6TIJSnN4GMbDw0R2EU1
DQGS5ZyjU7yzjS8tNHYsVMRPPyLTLOKRiPmnSYUj4buOgPpu5uX86hG3E4f7
DPv59uL8m5U3FGF5yI66kzoaES2VlHvdRLmD0zKy1m64GhxHjr7f9nZe7b3a
fwH/NjqEmtP/1uyf0k1MiZgvKpQHhzLkC0UQ55XhxunFsNzUFmxcfKAqSJPr
AkPe5pV/GzgcMmKraW3htTiAlpXIWACiA2G2R3MWRTTx+FqJZQu8vRLSKmKr
P0UNDoJhfYReKbzf9hjSsaSD5PrBaFGB1GjE+U7+AQNkYyLaumuHhGqjElaH
fPjWu5EyKR/xXOJwn+FcnlyEJxcrH0wE5iEHszarm9AGF+s7mRz2WSPPptu2
ft/SyDTKyif0kGMretQ73O715a87PdKa5Rfwt83ifaZ+ocK+2n5Jxv5Dgi74
z+HZt8FRVEXBm3wCCzULkdukqX/QbyafZGGkXvPpdkRQhb02rvYsGAyC7f0X
L17sbD+/B1fjKYW1T5Tlk8GLInhbii74YtA5gOMoHcsaf1wcvroGlpDW3zV+
Dkb2o8uA+jYfUGGCyMY4mtkGfwab6PbB6OKSqwaSliqOoDqUDgJEsM88Gr8H
Ud9Nt/Kjw2I9AApMoC5M4dSO1yipqF6YeprKAIpahgyZVK1Ba84X0+t6cIb5
9mAlFglYf0QOifa5x2eQoFuuzB5hqodwR4+xEH/47Vlimnh9SL0pisfEKg73
GdCKf8uIY4podZIHvIsni2wCoovh+dz44d27882VdwNX8JDtwFk7eW5fPd9/
eeCsqmUhfoYuDZW70qSpX36tO5dho/N05VuxyYHakcvfz6DsCH2Fk+G2jbuj
xoyPozyLXoXBq9hRCTZRJewN7n/0Hp9VXeeLdBLwXBhsDzPbcMv3ic0cr+6G
kzfek5nlj2dmcXfGsKeprXG+Rlfkcgb1zrbf1Ysue0Z1kxL48Li6CB3Xyt91
4xIzdIr20QFK/xV8oZuoINJJPN69JnKNPP7NFklYxdA2u6gTTgfqa76b7Kn8
5qtxVI6jCSApjbJQRYp3M2QNz3RsuQqPko9OnbwilKAEMyroeRxK6pLPgX/o
mMA4oKx/qMLrfO583xI8K/maDbus1WU9Z+EfX10fSR0gPsCxKO48PUZXE0k9
9rfyYalbrUz+eINWly2r5vMwJqjXE5PpV+oiBvk22lL01PAhk1XhiIuy6dTL
3d+/z+7v/652f/9p91fb/Wau/eRp+MyeBnsOM1pLDOP3NSx1M4gDrUylJjAs
wsSzHOP4Waa3Zml1i0h/iBzZ8YaIaH9zbOcEtYd5tc0vIg14dCvO6opf29BZ
75U6Br3R3tUSm2ZA6UaodV3Akmi1Ojita+4Sw+ZyChnS5gllM2PZ3G6+0LZ6
SJvba2mEWwP+PcFkBvawSV2WDdiEuA78BmtW63Ni/L5Vq9m4ArYvRfi4AIw4
snxMQrl2xIFyfR6BwceXpCGzo/zML/x3Uqc4wIbGTez/yR3567gjDQXoOppR
jVGb1SwBN1TdVmPR2I2qhJadXRl7z1+8OGCvY8QM51ykcNk6lFlqjjEV3LnX
0q1/xC22NDFBU3+Rr8B8CDF4YTdGePef7z9neG92Od+DhJfBhA2z4G6c7vw4
PDzeVJnZ5PI0ALbfhLN2ym1x+BPdrVVUTOOKkid0F3wPi1hkC1N7J6t/1+oo
4I9PFmbzgJ7df3f5k6K3Cq+XNCbntlDCuALTyFTJWdsS1w+EPxSPBdRXcNqL
0V2AIWO+OsD886m+NI8DTK3qHjUWbOeWWk+Lj6u+KnJ6reDn4h//MSSgVjqK
TTSNP8paveQ8to3h5hCxz+Rgt973MU8m/nQ4ncY7Kf5Zlnf4KUbkKUZE/awQ
I+K/8ZtksU6S2FPYyVPYyecNO7HSTtk/T1EnD2CNrcLcgyNPHiP2ZGn0yWPE
nzxOBErnGBT/kX9kFvzPEtZi4/CbXLrt6Tk+MQLYu8VM5liALnaPG/mmSp6t
33OgTG03scEjb/w/UeiNE9PyFEjzLxlIQxRWN6F6HyfRjik1Zuf5Pe5lnddG
xtnw3H4l3oF1BJfQgl0Xnh1qtqd3QHZ1XfcHxDUXgA0PP46+YRptKr9yb9gk
7VvVt/idtSjAh+izN956ni/2q0UEfIwz1nrKlIpdBtuDnaYBsPX2YLdFqCqS
vDATlSjELqPQe2jYjrNEzS1IwowN+wPEp6100ZlvCd8O39h5A65kVNjSZBLf
HFkP4IVfya7/tcLzd/R5mGO4l3OXhPXfHKkMX2bdMOsRZ5lg/Z9ZArN8qD9+
9Tj1xYvWWTIucvdZa2NmWBifE1XqB7siwRE64mYJAUkMCoEW5KH3W8jpfTSa
CZCbS1o15XJ9iY/qXycT6E2nF6AA0fA2KkgmP5K1b4INAKE9K/D+4OXAkxkY
KVJhs/gtsKnSYxpYlMgzbKLKTHZ+LA8aaip5Uf0OsMjeZyqYgLJeUcee52Wx
c3GvcEhUzaPAmFJmaBfUWYnKkoaHFxHsZtO6tIZTm6OiQWlzEEuys2X8k8o5
k7YA5k7USBDP9wW3zuJpXiV2rV/zIBmEcWdMDSP7VqvHoEl+BySAyQasHG5t
BycFeaXLwTn+MOdUvYh9OYO7farsBMYBJDOsuMNFEDDeasII0mFXchSDUYFO
lE8w3bZQTti6LzLcmjGGMkgBvee6/9Uic2wxv84mbL80duGTewVKXa35KpRx
3SpxFuB4al6PcoSxqUTJVRpxVVc6CrtBYYMm7RuNc0sDjyqKkIncwKrrYyaH
xhmTK9NeNODPSpWdkfP+VU6JUbbs19jWakXZ2uSXPJot3zRymMxFUly4ZIcT
vGDKij/okyT7JkKekkUGIW7AZJvBLB5fR9B6ZltKHndL7cKShqglvc5CytH7
SP5mGIuLQy9X7mV8wIlKimoHCEhpicezZfOlgU+NBtH1VZUzYEaLYuwPIWsM
zVoemLU8LOtTt/V0zyv2zZHDk7rmFHO63SezmL2g1UsgyqAk/Ykmd9vyZu0E
F5sHsCzGYXfoFs1iFL4WB8IZxhN8CCcihKOaeKlDfXmgfqtH5rXY9c3Ud3j0
aIQlYW6wACwCki+8MYarehYkSo1R0dTrhhg0BRg81qXKP/pqfdGAgwdrqiDz
LFCDt9i9/LCZ51/IFnObhLDe3mGdeQOmiru5RckNPFy3XIWVDw+NKR73cjZS
K+ON3OujiHyFFltjUcK7bVQgtf3xUqUbBG+R99wm6LHi/OAq73Lt+mY1hnyI
rs18MNiSy/o3AVdH87cwMaJDPr3j0Yx16BJrfh63PPU9wet6LVvPm0YiVjuj
LGTCt7okbTxNtfsoU+0OyL0Tf4iwtiXak+EIuOdS3CXkJBX1M+pVGMV4bl8f
ddqLWjEXL9MF5lyn4Fl7D9m9sTTduu5Ue4hnkJls00pxD4e5Rnetyrd9/HFw
YzSxGD2UKIRef23Y5KLh9l2GFpW5pYrmedEoWHMd2W1VkcWwquSzb1i7KPRn
vZdlOFmI9h0kreW3c8MbX7hygFn7cqzB3bU0vZqdUrWqovE1RnEF46QYL4Cf
um8/DZ+z88B1Sc7NpQ+M/W9K/+I9Z1p7WjIbaVDDN64ypAhRY86gba+G1ElH
anNRNulJdam1vsEgVuKmoL53eJ2kE4C7dLf6OoErpBhft8gYNhRzPehYDKql
MM+GIzlRl9A0kHew5ImJYHhpvksyuLMTYVFjCUdj61w2L1XN+n4QD6aDPkbS
IDzxh4o8FEUsrWWG1Hh4zP1UsXBhqCtREh4ecsAd188UnmLdN8kwuC6SHFQK
GYQurDrCxsGL4blDtICarLo90OcnFOfHZxJwcEq4t1DKphi2QbSKbGbhdLWF
hOMiJm/8Yp5nXNaPMbo62GXdlAFzZBxly0walUNEskOQ9+Y5doV5o79tdeyQ
93soH7i4VcBFmLqBEXdj0h2jKLpXxNaaAUtoYTRuF7AlT5JxbppxcsiXEvtV
5VlJf5pAQWjmax13QQJ4YyXdp521wA8BbHU3uQtN5isudLfzQkH9N4ZuqUDv
rT//6901n/2OcaaFkf1TOlpiE1UfhirGpaxrjc5kskXTjKTUdp9wBLRKp8c3
IVsPqoWrGTbUSxrdwcnsYAEU5+XN5fcNFlmg0PJmfMCwTarr+k3+U14uv8mh
0XJo/p5f+G3ltQmlCNPxYS0OLMW1xgmEWdUY3RFOybxqfO1k+miDAM1XOexU
ycV9DXi8L9idSVy5m2AlBi5tNg6kSyOd8Md1vpuTqoH/4nT75Pzd/lAIfYMK
RFi5LsRlYKDWz6sU1qfv8mSdy0KHwjNilkBoBt6jrg1pGOVcJrv5xvDwdNNP
oNE4XZFAYazOBGqM7iPQK2W7ezCd4iV+2kqo/snq9LpU04oWU5JT1rey2wMh
ApXG71J994g8w8nEKFjRrFRJPhuaklV9n9o0eCMNMCevV70BXdoCL+vYH2oM
iNoK1o46RlCtUobjK+viFNte2/WO1TZMUVaiSStn7h3jK4nUMSmUaRA3b2b3
QiHBeFxXQztRAv2aT2JJEWT86Q0GRhOu5bxVRvMD+H8oPu0tuYl53sgRqIgT
3bEBEtkBKChSRHfKzftIk8csqcp9yaIxY16L9pMYKMvJBRaNV93jU7Wvj7if
Q+7MmqWM6iylck/ersbKWiw3hPbVQ5MLiWK5QtcKmeXvEhChu+wDhi9MAhHr
I2UwelXTkN7Lc7Bk/bTxakm9TtsOlyb/Rk7pnhNldjA3NNS1d5C4753B7W0W
o+dwhlUSpOqtSg6rOp/Nh1iGkqsgU7MST0cPj80Q7ssI1Kr+DG3p0PNkkgHU
OAX/7/fML2gv7s0uorFFrx3MSGgQUqqxtO7oeMMHWmU+rX1a++vh26Pj4Pjs
6OJva/8XftbW1r4IlGMO7tcSLdIcjbG2Ru7wUgiOC/mUqIpncwwWEysa8fsv
6XfcHbzAw/fLL1+dhEeDJK6ucCdn+SQsrsYv9569GCXlp08c/ISSKb2Tg68X
aWw9OOLYmUk+ptIwMJeM8inH1/Esol2dRBXFxUmjG8ZnTjPxlj0WYifGTiWR
MujMoiya0jtewzwhH3sB6zo7vjx8e/YNLOBP77453N/Z2/70CU/ou+ML84uX
z/aewTJ4DfheGAhAdiUjAg6XyLdXY1TEdOIXasDBLfQuSFYoDKs8TNCbROBx
N1qf6gkjXvBoF9dxmgYbFxffbWpYd1yQFNQmTN9dXp5fdJzenvvy9ALHECjY
29s3d1I8TA/sxyqO0M6PITfOhodvJNwvdxHHOIrwiIjipTFMzBId8tJxJfZT
WnbJ1x4VCuuccUctGMi1EHrevIilNI91NRcjITxG+DT7Bs4xmZsaxlGvfHIV
psQGZbTSZpVaPla5oUo3+iE5kqeQOZh8NV2bVC9PPA50C+cQodkaY+oJ+g3w
FdNvwQaX4BHGU34byLocE9oacRmqWbPJZACqpQGEcEaOxSmnGqPwKz36Bpze
LFIQ0HEmopOMTcjy3MTZTVLkGTFGGPxHNG6bONlg+3U8AebDENL7BkQVrcBq
zMKCDR3y2XxBpxJLnCLemaXgMHktugWvyOvohjAeTyNaRHx1BV3QWyih1nOS
+V2wW5KY+E0eF8nGCH+giworTzPIGi6axKA3iTOqxrolkSaqsx4QOfTalZze
ATY64Ggjw04pX/Io7UZvD8GDhCK4f5JdpQuSu67zW1YRmQFi7WoKGrCd05G8
c+iqeE/VuHNYWikPlW9HBL0Q7angQeAWyZyChbXxMU8TfMzfZ3uC+is33cWi
O+8uompQJ1A8QPKk0LULIvd4diDLPYHsexeKcfCggPJRRdMpRYf+om6bfF5G
t9OwiqNSiD1hNJZ8qheNJfaHmY0MNHfwSiVOJBExcGOFQ5C0YAnRewyNLhIM
9+GBYMl4keAtAkc7ueJbG76DS5KqgiHPoa3iwyKGA6T1A2XZ69dtun2UJ/CT
GWC9SKJ0s48yKAUGGfuSyghe8c5XyF+GSKHII8hvZKg5Cux8ERRcqwvWfyHk
9VOU18X4wykcDroYNi5Oh5sBV52nkxXge+loAidfxGxqxI4xwl+THkgOFBYT
kbEgi2+VX+zAHIMj9nAZeE/QG5wCQIG5FxmygbygCsm8TX3zqXYknAVSguaY
OuGFm8Q/LQCDIBICUSRw45EbBxdfALT6lY/cd8sEhJ7rbBqLB9sXudaxgVNP
iHIMSvbx+Rr7xYEaOPAy9stv76vrBYUMJZQFOMoItzL+GMGSlCyYM8pB07jq
4z+CSffFfZflFTFGXOqmjxsMfjXmqY/o9/XdZtCovjzNSBs9Sf7/9o52uWkj
+N9PcaP8MBniEJs4BHcyHZMGSEuYDKEdZpiUUWzFURGWKtkJDvFr9QX6Yt2v
O91JZ8eBKdMy6AdE9yXtam+/bnddDJKUItpLd6t8TNxzZcxN07LYmsISnJOk
JkHQdE5s9Os4LAOfm2NNBCBMw9viyxAssDziXArrrFULaiFLOj2heG1YzOR2
mBrASv3EEFFgHbIU+9i2Lsb1AmZPatK0Y0E4HQC0hoIOT3nvXsSZYIFZTEuz
mFth5vWRuaejPMwAOuRSRcnmSXrTBiOOJ1yNTrhLgljXUgDnOtzCwlI8/gPF
Omih6Tm0aP5Y1pjhXdFonMB75WFiE+C95tkow/oeWBcG/8fiBE1WfptgjjXX
ERkzPkcWfbT96BHo/Od1nSOb5ujXgL3QZ5thQ/s8jHXBW11O/y31n3iSY14R
1U6LwjWfumw8le8Bz0qKdKMunSVtiv7nZJ3oY4aid8LIBCnEPgjiRv2T/cND
xUTEFcEwJDo957Ew4AJ0hSFscJAjMk9GqyvK0grP4XaoRlQSLScLF2t7ptnM
KpGLfqpS/8W4IVkqBSaMjOs5mCWXaPuwoNSPwCyJdKI1oFJN1tUQjDfTRnSU
gNiMBiECEps1BC2l1UzSmhE0jEis8UcyXBFMVcT2zuPufL6+iQbxYf9lv2YM
A01Su0RNgFHC1JlHI7D+JZHUcET166tD7YEOxkWA/IpH5oyweMyWK3QfHrx+
qt4cvVCvZEAgFPBwZ3d3Pge2SKY6DIdFYUtOcywYPznvkb+j6H38kPTGRW8G
8onaW+wWIDOGV0TRQM7zwaTHxtrhwckzkrzwXGh6+aD/gwgzDRoBgAydXg1d
kEWGgeziN7gjOmxBqNFCbUfUhsuh37qCKDFstzpgawvWrKllKHqg9BQLWbge
gFbByEsNyN0QeUy1rnpKlU2UlxKSsgqkhsj4EZZnrIvzpcfF197AJWhrtVqU
dY9kdsDaeaE+rQGPaImyXsyhb039dgy2duMFGALTwnAODi3kcUDNWTxgOQOI
ij6C+Z6lgicFu8TK97IChTI+WLq3f9DmaKuDDjBheU4IrEYKlJSZmmcR6I5i
S5OjSXgRhiGJ19eIF709yRROUAWZEcNPqOaYwYuZKP7smSypH0W/sQyWzVjT
Chvvm/xx+bK8qEpttvDaNH+Zq2zabGzqBrhu1DEg4P7e3t595VzcdHzQgSHl
0puNG4C3fZ8XvR9sd7eCG1oGL6rip+T2BjrbgR6J+L1pNPHvJnT+DpK2pW9u
3CfjbdmpRzYbzoDKzT5q7LU+vKNpTwifvXbn4bb0NF30NM0UGdrdebRrI/lT
T60JaSnQqpJoL3gNfyfpaKbpN4DPxQ7cMIlH471gEGHWSzBHByIxbe3/5wI4
sKm9xlrdiwnEbCtMwtBLXSYVbx4RMp85GD8qWTjRR2AKlEmoCaso6Yr2jJiG
NsSAuUDvfv8RSRH0xNWLTl6u+S3GPfS8lS9WHgjwyVEPRqMtaoaWWRyBo4Oa
1aUTdkyYFVI9q9IJ3eg2x8Xpna1IgmE6af8ZuKkiATdW18BVwlFr0UqD1mUS
joNq1kkwwGbQpGFOt7vl9C4IEbBAFqKoAvthMoWmNqxnPy7AU6wsQg/lIGoZ
Y7mODLvrbeV968EXwdnVQqChK0PNGZSJGuQIe5zjrM7W9u4WXEFlhBuhcWpj
owbXgODKvim4MNKoBoQdMuSjQavfA6YPUJhUTsAAo3fHfPuu7wEO6V8HwnhR
kwJ+a7OqwTanqxB6w/7/dEMzi1vYw6DVtrmCdWSE3U/jHI+ZDDuyhy7hQ9zv
cB7Tc7oqD2IGWh4r4fugWAnqIG8sBbCzBMATSqb/D0GI0tADIX/UBh+p1YVl
ONCiEgURF5EGfZqs+f5+GJ5o0Wi8wxHFNYO+hUqJiDxtaA/FFeYzgLgoSUUN
DAegoLZAJc9nZD6qIv4Qo/OFmhyJaiUJ0MM7dVFYykI+Hg56dQLWH5gI2KZg
+moSgCDdTq/ljSnXlT7gim1rM57a8/j8OuhV+EuI2eMtf6c9rbbxeeI0czf/
vCI70XP9OaunWX3p8s5+SpVCK/BVFIH6K9AA4fwr6QOqVAm8zLXUClZVCmha
qRhU9QJV5adVJNe3YYXPuAgzWkQFVaRGVLWIJXpEHZdWZ10S+WWR+hLJy9NJ
/C6UvgR+te10KT4XKRjfLMCkedShc3UPL7E76ocPBWohFirThd/dro/IVB0B
w9PEwO/xFloyzVJmVtRl6KohVFVxWhtk8ytbCp4uEIBGAmlJKLaixGXpUIFX
UZGlY7Da7h1FRYGW3JN0OFtH+Wi8nnWhV3GiOx5pHVlJoTtOrLPOtjpLp+Oh
zxC0peYiMUiBSSAHDdvxCUMdZbWAcV5mSeFIQQyOqtCbR7qIlMQ/1toeNr5E
lsqIikSVD+8RCLZWFvR1chWg1PNYyzo2xS5g1rODrQc7D3zvWRb6sPGjEZtd
zDxz8jSpjZyOY9/rULkjSTmDobDXKVDCi8+FslzdUZyrW6TabZ/Th6fqV+D0
N/9HkKxF4+fDhGH085kPsX3XL7e92bnzt0vSEZ4OeuY5isvCfYE6A/V9ha/l
gW2Bmmtfi2RguEjDdUbhuU2FxWeRB816+BKh8BlislHrWI2Dtzor8nAsHm2z
Yoy5rPP1tbUy/bXROBzXQ4gn2r/oWjZIAvx55vMNctBS+Ao9Rri8jpgs5NDR
eMLLyNp7+wcd8Xt316nQe5qLL1EfnJtYGzzbsGstU34sH0UVdrSuBFNYCbg6
VdWK5MXfA+HCeV6jTXaw3x15ZxtsZSMLsFH1EAJivptdzhO+m132fI9/x6E9
tq06VS9AmVhfp58l3HM1prkir5zfZVt4+OVKkHf/55B3fZAvlhSGcXmkhKnk
gIzfZXP4/PmcdPCCYhgxZDuWiGSrnELKHP5fVciTh3DzpRr5dnf30Qpa3Hf9
7bv+9hX0N2efeXbmk5h/DubY3mmozJCKpvqD9+P0KomGnAgDq3JUTzTcC6ho
B3uw7QSNsyns9UKZKKrH7d0ObHBUtaSh87hNys3rixB/cRMeeJROYvgnH0Vj
DBkZW/WKL+PoSuLsP+jwLmsiBpCN1ZM//v4rf5+gPa9nYuwGvNMkzQtZZUM9
g0Z1FBcXeagLzoG0S2YKf4BjGOdm4M9plKjnYZI57+IOauBLPYunRZRlkXoa
p4NBmoRmdJoV1mjnpX/Jr2fF9QSdE9dh/j69igfXZt7JRZRdRPnQTPwHK6YI
BXKIAgA=

-->

</rfc>
