<?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-teas-attachment-circuit-17" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="ACaaS">YANG Data Models for Bearers and 'Attachment Circuits'-as-a-Service (ACaaS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-teas-attachment-circuit-17"/>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Richard Roberts" role="editor">
      <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="October" day="11"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</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 127?>

<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.</t>
      <t>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>
    <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 133?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="scope-and-intended-use">
        <name>Scope and Intended Use</name>
        <t>Connectivity services are provided by networks to customers via dedicated terminating points, such as Service Functions (SFs) <xref target="RFC7665"/>, Customer Edges (CEs), peer Autonomous System Border Routers (ASBRs), data centers gateways, or Internet Exchange Points. A connectivity service is basically about ensuring data transfer received from or destined to a given terminating point to or from other terminating points within the same customer/service, an interconnection node, or an ancillary node. The objectives for the connectivity service can be negotiated and agreed upon between the customer and the network provider. To facilitate data transfer within the provider network, it is assumed that the appropriate setup is provisioned over the links that connect customer terminating points and a provider network (usually via a Provider Edge (PE)), allowing successfully data exchanged over these links. The required setup is referred to in this document as Attachment Circuit (AC), while the underlying link is referred to as "bearer".</t>
        <t>This document adheres to the definition of an Attachment Circuit as provided in "BGP/MPLS IP Virtual Private Networks (VPNs)" (<xref section="1.2" sectionFormat="of" target="RFC4364"/>), especially:</t>
        <ul empty="true">
          <li>
            <t>Routers can be attached to each other, or to end systems, in a
   variety of different ways: PPP connections, ATM Virtual Circuits
   (VCs), Frame Relay VCs, ethernet interfaces, Virtual Local Area
   Networks (VLANs) on ethernet interfaces, GRE tunnels, Layer 2
   Tunneling Protocol (L2TP) tunnels, IPsec tunnels, etc.  We will use
   the term "attachment circuit" to refer generally to some such means
   of attaching to a router.  An attachment circuit may be the sort of
   connection that is usually thought of as a "data link", or it may be
   a tunnel of some sort; what matters is that it be possible for two
   devices to be network layer peers over the attachment circuit.</t>
          </li>
        </ul>
        <t>When a customer requests a new value-added service, the service can be bound to existing attachment circuits or trigger the instantiation of new attachment circuits. The provisioning of a value-added service should, thus, accommodate both deployments.</t>
        <t>Also, because the instantiation of an attachment circuit requires coordinating the provisioning of endpoints that might not belong to the same administrative entity (customer vs. provider or distinct operational teams within the same provider, etc.), providing programmatic means to expose 'Attachment Circuits'-as-a-Service (ACaaS) greatly simplifies the provisioning of value-added services delivered over an attachment circuit. For example, management systems of adjacent domains that need to connect via an AC will use such means to agree upon the resources that are required for the activation of both sides of an AC (e.g., Layer 2 tags, IP address family, or IP subnets).</t>
        <t>This document specifies a YANG service data model ("ietf-ac-svc") for managing attachment circuits that are exposed by a network to its customers, such as an enterprise site, an SF, a hosting infrastructure, or a peer network provider. The model can be used for the provisioning of ACs prior or during advanced service provisioning (e.g., IETF Network Slice Service defined in "A Framework for Network Slices in Networks Built from IETF Technologies" <xref target="RFC9543"/>).</t>
        <t>The "ietf-ac-svc" module (<xref target="sec-ac-module"/>) includes a set of reusable groupings. Whether a service model reuses structures defined in the "ietf-ac-svc" or simply includes an AC reference (that was communicated during AC service instantiation) is a design choice of these service models. Relying upon the AC service model to manage ACs over which services are delivered has the merit of decorrelating the management of the (core) service vs. upgrade the AC components to reflect recent AC technologies or new features (e.g., new encryption scheme, additional routing protocol). This document favors the approach of completely relying upon the AC service model instead of duplicating data nodes into specific modules of advanced services that are delivered over an Attachment Circuit.</t>
        <t>Since the provisioning of an AC requires a bearer to be in place, this document introduces a new module called "ietf-bearer-svc" that enables customers to manage their bearer requests (<xref target="sec-bearer-module"/>). The customers can then retrieve a provider-assigned bearer reference that they will include in their AC service requests. Likewise, a customer may retrieve whether their bearers support a synchronization mechanism such as Sync Ethernet (SyncE) <xref target="ITU-T-G.781"/>. An example of retrieving a bearer reference is provided in <xref target="ex-create-bearer"/>.</t>
        <t>An AC service request can provide a reference to a bearer or a set of peer Service Attachment Points (SAPs) specified in "A YANG Network Data Model for Service Attachment Points (SAPs)" <xref target="RFC9408"/>. Both schemes are supported in the AC service model. When several bearers are available, the AC service request may filter them based on the bearer type, synchronization support, etc.</t>
        <t>Each AC is identified with a unique identifier within a provider domain. From a network provider standpoint, an AC can be bound to a single or multiple SAPs <xref target="RFC9408"/>. Likewise, the same SAP can be bound to one or multiple ACs. However, the mapping between an AC and a PE in the provider network that terminates that AC is hidden to the application that makes use of the AC service model. Such mapping information is internal to the network controllers. As such, the details about the (node-specific) attachment interfaces are not exposed in the AC service model. However, these details are exposed at the network model per "A Network YANG Data Model for Attachment Circuits" specification <xref target="I-D.ietf-opsawg-ntw-attachment-circuit"/>. "A YANG Data Model for Augmenting VPN Service and Network Models with Attachment Circuits" <xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/> specifies augmentations to the      L2VPN Service Model (L2SM) <xref target="RFC8466"/> and the L3VPN Service Model     (L3SM) <xref target="RFC8299"/> to bind LxVPN services to ACs.</t>
        <t>The AC service model does not make any assumptions about the internal structure or even the nature or the services that will be delivered over an attachment circuit or a set of attachment circuits. Customers do not have access to that network view other than the ACs that they ordered. For example, the AC service model can be used to provision a set of ACs to connect multiple sites (Site1, Site2, ..., SiteX) for customer who also requested VPN services. If the provisioning of these services requires specific configuration on ASBR nodes, such configuration is handled at the network level and is not exposed to the customer at the service level. However, the network controller will have access to such a view as the service points in these ASBRs will be exposed as SAPs with "role" set to "ietf-sap-ntw:nni" <xref target="RFC9408"/>.</t>
        <t>The AC service model can be used in a variety of contexts, such as (but not limited to) those provided in <xref target="examples"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Create an AC over an existing bearer <xref target="ac-bearer-exist"/>.</t>
          </li>
          <li>
            <t>Request an attachment circuit for a known peer SAP (<xref target="ac-no-bearer-peer-sap"/>).</t>
          </li>
          <li>
            <t>Instantiate multiple attachment circuits over the same bearer (<xref target="sec-ex-one-ce-multi-acs"/>).</t>
          </li>
          <li>
            <t>Control the precedence over multiple attachment circuits (<xref target="sec-ex-prec"/>).</t>
          </li>
          <li>
            <t>Create Multiple ACs bound to Multiple CEs (<xref target="sec-multiple-ces"/>).</t>
          </li>
          <li>
            <t>Bind a slice service to a set of pre-provisioned attachment circuits (<xref target="sec-ex-slice"/>).</t>
          </li>
          <li>
            <t>Connect a Cloud Infrastructure to a service provider network (<xref target="sec-ex-cloud"/>).</t>
          </li>
          <li>
            <t>Interconnect provider networks (e.g., <xref target="RFC8921"/> or <xref target="I-D.ramseyer-grow-peering-api"/>). Such ACs are identified with a "role" set to "ac-common:nni" or "ac-common:public-nni". See <xref target="sec-peering"/> to illustrate the use of the AC model for interconnection/peering.</t>
          </li>
          <li>
            <t>Manage connectivity for complex containerized or virtualized functions in the cloud (<xref target="sec-cloudified-nfs"/>).</t>
          </li>
        </ul>
        <t>The document adheres to the principles discussed in "Service Models Explained" (<xref section="3" sectionFormat="of" target="RFC8309"/>) for the encoding and communication protocols used
for the interaction between a customer and a provider. Also, consistent with "A Framework for Automating Service and Network Management with YANG" <xref target="RFC8969"/>, the service models defined in the document can be used independently of NETCONF/RESTCONF.</t>
        <t>The YANG data models in this document conform to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      </section>
      <section anchor="positioning-acaas-vs-other-data-models">
        <name>Positioning ACaaS vs. Other Data Models</name>
        <t>The AC model specified in this document is not a network model <xref target="RFC8969"/>. As such, the model does not expose details related to specific nodes in the provider's network that terminate an AC (e.g., network node identifiers). The mapping between an AC as seen by a customer and the network implementation of an AC is maintained by the network controllers and is not exposed to the customer. This mapping can be maintained using a variety of network models, such as augmented SAP AC network model <xref target="I-D.ietf-opsawg-ntw-attachment-circuit"/>.</t>
        <t>The AC service model is not a device model. A network provider may use a variety of device models (e.g., "A YANG Data Model for Routing Management (NMDA Version)" <xref target="RFC8349"/> or "YANG Model for Border Gateway Protocol (BGP-4)" <xref target="I-D.ietf-idr-bgp-model"/>) to provision an AC service in relevant network nodes.</t>
        <section anchor="why-not-use-the-l2sm-as-reference-data-model-for-acaas">
          <name>Why Not Use the L2SM as Reference Data Model for ACaaS?</name>
          <t>The L2VPN Service Model (L2SM) <xref target="RFC8466"/> covers some AC-related considerations. Nevertheless, the L2SM structure is primarily focused on Layer 2 aspects. For example, the L2SM does not cover Layer 3 provisioning, which is required for the typical AC instantiation.</t>
        </section>
        <section anchor="why-not-use-the-l3sm-as-reference-data-model-for-acaas">
          <name>Why Not Use the L3SM as Reference Data Model for ACaaS?</name>
          <t>Like the L2SM, the L3VPN Service Model (L3SM) <xref target="RFC8299"/> addresses certain AC-related aspects. However, the L3SM structure does not sufficiently address Layer 2 provisioning requirements. Additionally, the L3SM is primarily designed for conventional L3VPN deployments and, as such, has some limitations for instantiating ACs in other deployment contexts (e.g., cloud environments). For example, the L3SM does not provide the capability to provision multiple BGP peer groups over the same AC.</t>
        </section>
      </section>
      <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>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>2023-11-13 --&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 meanings of the symbols in the YANG tree diagrams are defined in "YANG Tree Diagrams" <xref target="RFC8340"/>.</t>
      <t>LxSM refers to both the L2SM and the L3SM.</t>
      <t>LxNM refers to both the L2NM and the L3NM.</t>
      <t>This document uses the following terms:</t>
      <dl>
        <dt>Bearer:</dt>
        <dd>
          <t>A physical or logical link that connects a customer node (or site) to a provider network. A bearer can be a wireless or wired link. One or multiple technologies can be used to build a bearer (e.g., Link Aggregation Group (LAG) <xref target="IEEE802.1AX"/>). The bearer type can be specified by a customer.</t>
        </dd>
        <dt/>
        <dd>
          <t>The operator allocates a unique bearer reference to identify a bearer within its network (e.g., customer line identifier). Such a reference can be retrieved by a customer and used in subsequent service placement requests to unambiguously identify where a service is to be bound.</t>
        </dd>
        <dt/>
        <dd>
          <t>The concept of bearer can be generalized to refer to the required underlying connection for the provisioning of an attachment circuit. One or multiple attachment circuits may be hosted over the same bearer (e.g., multiple VLANs on the same bearer that is provided by a physical link).</t>
        </dd>
        <dt>Customer Edge (CE):</dt>
        <dd>
          <t>Equipment that is dedicated to a customer and is connected to one or more PEs via ACs.</t>
        </dd>
        <dt/>
        <dd>
          <t>A CE can be a router, a bridge, a switch, etc.</t>
        </dd>
        <dt>Provider Edge (PE):</dt>
        <dd>
          <t>Equipment owned and managed by the service provider that can support multiple services for different customers.</t>
        </dd>
        <dt/>
        <dd>
          <t>Per "Provider Provisioned Virtual Private Network (VPN) Terminology" (<xref section="5.2" sectionFormat="of" target="RFC4026"/>), a PE is a device located at the edge of the service network with the functionality that is needed to interface with the customer.</t>
        </dd>
        <dt/>
        <dd>
          <t>A PE is connected to one or more CEs via ACs.</t>
        </dd>
        <dt>Network controller:</dt>
        <dd>
          <t>Denotes a functional entity responsible for the management of the service provider network.</t>
        </dd>
        <dt>Network Function (NF):</dt>
        <dd>
          <t>Used to refer to the same concept as Service Function (SF) (<xref section="1.4" sectionFormat="of" target="RFC7665"/>).</t>
        </dd>
        <dt/>
        <dd>
          <t>NF is also used in this document as this term is widely used outside the IETF.</t>
        </dd>
        <dt/>
        <dd>
          <t>NF and SF are used interchangeably.</t>
        </dd>
        <dt>Parent Bearer:</dt>
        <dd>
          <t>Refers to a bearer (e.g., LAG) that is used to build other bearers. These bearers (called, child bearers) inherit th parent bearer properties.</t>
        </dd>
        <dt>Parent AC:</dt>
        <dd>
          <t>Refers to an AC that is used to build other ACs. These ACs (called, child ACs) inherit th parent AC properties.</t>
        </dd>
        <dt>Service orchestrator:</dt>
        <dd>
          <t>Refers to a functional entity that interacts with the customer of a network service. The service orchestrator is typically responsible for the attachment circuits, the PE selection, and requesting the activation of the requested service to a network controller.</t>
        </dd>
        <dt>Service provider network:</dt>
        <dd>
          <t>A network that is able to provide network services (e.g., Layer 2 VPN, Layer 3 VPN, or Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>A service provider that offers network services (e.g., Layer 2 VPN, Layer 3 VPN, 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">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">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 target="sec-ac-module"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-svc" (<xref target="sec-bearer-module"/>)</t>
        </li>
        <li>
          <t>"ietf-ac-ntw" (<xref target="I-D.ietf-opsawg-ntw-attachment-circuit"/>)</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 bt "ietf-ac-ntw".</t>
    </section>
    <section anchor="sample-uses-of-the-data-models">
      <name>Sample Uses of the Data Models</name>
      <section anchor="acs-terminated-by-one-or-multiple-customer-edges-ces">
        <name>ACs Terminated by One or Multiple Customer Edges (CEs)</name>
        <t><xref target="uc"/> depicts two target topology flavors that involve ACs. These topologies have the following characteristics:</t>
        <ul spacing="normal">
          <li>
            <t>A CE can be either a physical device or a logical entity. Such logical entity is typically a software component (e.g., a virtual service function that is hosted within the provider's network or a third-party infrastructure). A CE is seen by the network as a peer SAP.</t>
          </li>
          <li>
            <t>An AC service request may include one or multiple ACs, which may be associated to a single CE or multiple CEs.</t>
          </li>
          <li>
            <t>CEs may be either dedicated to one single connectivity service or host multiple connectivity services (e.g., CEs with roles of SFs <xref target="RFC7665"/>).</t>
          </li>
          <li>
            <t>A network provider may bind a single AC to one or multiple peer SAPs (e.g., CE#1 and CE#2 are tagged as peer SAPs for the same AC). For example, and as discussed in <xref target="RFC4364"/>, multiple CEs can be attached to a PE over the same attachment circuit. This scenario is typically implemented when the Layer 2 infrastructure between the CE and the network is a multipoint service.</t>
          </li>
          <li>
            <t>A single CE may terminate multiple ACs, which can be associated with the same bearer or distinct bearers.</t>
          </li>
          <li>
            <t>Customers may request protection schemes in which the ACs associated with their endpoints are terminated by the same PE (e.g., CE#3), distinct PEs (e.g., CE#34), etc. The network provider uses this request to decide where to terminate the AC in the provider network (i.e., select which PE(s) to use) and also whether to enable specific capabilities (e.g., Virtual Router Redundancy Protocol (VRRP) <xref target="RFC9568"/>). Note that placement constraints may also be requested during the instantiation of the underlying bearers (<xref target="sec-bearer"/>).</t>
          </li>
        </ul>
        <figure anchor="uc">
          <name>Examples of ACs</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="512" viewBox="0 0 512 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 8,192" fill="none" stroke="black"/>
                <path d="M 72,64 L 72,112" fill="none" stroke="black"/>
                <path d="M 72,144 L 72,192" fill="none" stroke="black"/>
                <path d="M 112,80 L 112,176" fill="none" stroke="black"/>
                <path d="M 176,112 L 176,144" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,104" fill="none" stroke="black"/>
                <path d="M 192,152 L 192,224" fill="none" stroke="black"/>
                <path d="M 200,112 L 200,144" fill="none" stroke="black"/>
                <path d="M 280,208 L 280,240" fill="none" stroke="black"/>
                <path d="M 288,248 L 288,272" fill="none" stroke="black"/>
                <path d="M 304,208 L 304,240" fill="none" stroke="black"/>
                <path d="M 352,64 L 352,112" fill="none" stroke="black"/>
                <path d="M 352,144 L 352,192" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,56" fill="none" stroke="black"/>
                <path d="M 360,200 L 360,224" fill="none" stroke="black"/>
                <path d="M 376,64 L 376,112" fill="none" stroke="black"/>
                <path d="M 376,144 L 376,192" fill="none" stroke="black"/>
                <path d="M 448,64 L 448,112" fill="none" stroke="black"/>
                <path d="M 448,144 L 448,192" fill="none" stroke="black"/>
                <path d="M 480,192 L 480,272" fill="none" stroke="black"/>
                <path d="M 504,64 L 504,112" fill="none" stroke="black"/>
                <path d="M 504,144 L 504,192" fill="none" stroke="black"/>
                <path d="M 192,32 L 360,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 72,64" fill="none" stroke="black"/>
                <path d="M 352,64 L 376,64" fill="none" stroke="black"/>
                <path d="M 448,64 L 504,64" fill="none" stroke="black"/>
                <path d="M 72,80 L 112,80" fill="none" stroke="black"/>
                <path d="M 376,80 L 400,80" fill="none" stroke="black"/>
                <path d="M 424,80 L 448,80" fill="none" stroke="black"/>
                <path d="M 376,96 L 400,96" fill="none" stroke="black"/>
                <path d="M 424,96 L 448,96" fill="none" stroke="black"/>
                <path d="M 8,112 L 72,112" fill="none" stroke="black"/>
                <path d="M 176,112 L 200,112" fill="none" stroke="black"/>
                <path d="M 352,112 L 376,112" fill="none" stroke="black"/>
                <path d="M 448,112 L 504,112" fill="none" stroke="black"/>
                <path d="M 112,128 L 136,128" fill="none" stroke="black"/>
                <path d="M 160,128 L 176,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 72,144" fill="none" stroke="black"/>
                <path d="M 176,144 L 200,144" fill="none" stroke="black"/>
                <path d="M 352,144 L 376,144" fill="none" stroke="black"/>
                <path d="M 448,144 L 504,144" fill="none" stroke="black"/>
                <path d="M 376,160 L 400,160" fill="none" stroke="black"/>
                <path d="M 424,160 L 448,160" fill="none" stroke="black"/>
                <path d="M 72,176 L 112,176" fill="none" stroke="black"/>
                <path d="M 376,176 L 400,176" fill="none" stroke="black"/>
                <path d="M 424,176 L 448,176" fill="none" stroke="black"/>
                <path d="M 8,192 L 72,192" fill="none" stroke="black"/>
                <path d="M 352,192 L 376,192" fill="none" stroke="black"/>
                <path d="M 448,192 L 504,192" fill="none" stroke="black"/>
                <path d="M 280,208 L 304,208" fill="none" stroke="black"/>
                <path d="M 192,224 L 280,224" fill="none" stroke="black"/>
                <path d="M 304,224 L 360,224" fill="none" stroke="black"/>
                <path d="M 280,240 L 304,240" fill="none" stroke="black"/>
                <path d="M 288,272 L 376,272" fill="none" stroke="black"/>
                <path d="M 400,272 L 480,272" fill="none" stroke="black"/>
                <g class="text">
                  <text x="412" y="68">(b1)</text>
                  <text x="412" y="84">AC</text>
                  <text x="40" y="100">CE1</text>
                  <text x="364" y="100">PE</text>
                  <text x="412" y="100">AC</text>
                  <text x="480" y="100">CE3</text>
                  <text x="412" y="116">(b2)</text>
                  <text x="148" y="132">AC</text>
                  <text x="188" y="132">PE</text>
                  <text x="272" y="132">Network</text>
                  <text x="360" y="132">|</text>
                  <text x="412" y="148">(b3)</text>
                  <text x="412" y="164">AC</text>
                  <text x="40" y="180">CE2</text>
                  <text x="364" y="180">PE</text>
                  <text x="412" y="180">AC</text>
                  <text x="480" y="180">CE4</text>
                  <text x="412" y="196">(b3)</text>
                  <text x="292" y="228">PE</text>
                  <text x="388" y="276">AC</text>
                  <text x="20" y="292">(bx)</text>
                  <text x="48" y="292">=</text>
                  <text x="84" y="292">bearer</text>
                  <text x="124" y="292">Id</text>
                  <text x="144" y="292">x</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                       .--------------------.
                       |                    |
.-------.              |                   .--.  (b1)  .------.
|       +----.         |                   |  +---AC---+      |
|  CE1  |    |         |                   |PE+---AC---+  CE3 |
'-------'    |       .--.                  '--'  (b2)  '------'
             +---AC--+PE|     Network       |
.-------.    |       '--'                  .--.  (b3)  .------.
|       |    |         |                   |  +---AC---+      |
|  CE2  +----'         |                   |PE+---AC---+  CE4 |
'-------'              |                   '--'  (b3)  '---+--'
                       |          .--.      |              |
                       '----------+PE+------'              |
                                  '--'                     |
                                   |                       |
                                   '-----------AC----------'
(bx) = bearer Id x
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="separate-ac-provisioning-vs-actual-service-provisioning">
        <name>Separate AC Provisioning vs. Actual Service Provisioning</name>
        <t>The procedure to provision a service in a service provider network may depend on the practices adopted by a service provider. This includes the workflow put in place for the provisioning of network services  and how they are bound to an attachment circuit. For example, a single attachment circuit may be used to host multiple connectivity services. 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 bearer or an attachment circuit to be put in place, and then refer to that bearer or AC when requesting services that are bound to the bearer or AC. <xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/> specifies augmentations to the L2SM and the L3SM to bind LxVPN services to ACs.</t>
      </section>
      <section anchor="sample-deployment-models">
        <name>Sample Deployment Models</name>
        <t><xref target="_u-ex-c"/> shows an example to illustrate how the bearer/AC service models can be used between a customer and a provider. Internals to the provider orchestration domain (or customer orchestration domain) are hidden to the customer (or provider).</t>
        <t>Resources that are needed to activate an AC (e.g., Layer 2 or Layer 3 identifiers) are typically imposed by the provider. However, the deployment model assumes that the customer may supply a specific identifier (e.g., selected from a pool that was pre-provisioned by the provider) in a service request. The provider may accept or reject such request.</t>
        <figure anchor="_u-ex-c">
          <name>Example of Interaction Between Customer and Provider Orchestrations</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="544" viewBox="0 0 544 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 8,224" fill="none" stroke="black"/>
                <path d="M 96,96 L 96,112" fill="none" stroke="black"/>
                <path d="M 96,144 L 96,160" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,96" fill="none" stroke="black"/>
                <path d="M 192,160 L 192,224" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,96" fill="none" stroke="black"/>
                <path d="M 368,160 L 368,224" fill="none" stroke="black"/>
                <path d="M 448,96 L 448,112" fill="none" stroke="black"/>
                <path d="M 448,144 L 448,160" fill="none" stroke="black"/>
                <path d="M 536,32 L 536,96" fill="none" stroke="black"/>
                <path d="M 536,160 L 536,224" fill="none" stroke="black"/>
                <path d="M 8,32 L 192,32" fill="none" stroke="black"/>
                <path d="M 368,32 L 536,32" fill="none" stroke="black"/>
                <path d="M 208,64 L 352,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 88,96" fill="none" stroke="black"/>
                <path d="M 104,96 L 192,96" fill="none" stroke="black"/>
                <path d="M 368,96 L 440,96" fill="none" stroke="black"/>
                <path d="M 456,96 L 536,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 88,160" fill="none" stroke="black"/>
                <path d="M 104,160 L 192,160" fill="none" stroke="black"/>
                <path d="M 368,160 L 440,160" fill="none" stroke="black"/>
                <path d="M 456,160 L 536,160" fill="none" stroke="black"/>
                <path d="M 200,174 L 256,174" fill="none" stroke="black"/>
                <path d="M 200,178 L 256,178" fill="none" stroke="black"/>
                <path d="M 312,174 L 360,174" fill="none" stroke="black"/>
                <path d="M 312,178 L 360,178" fill="none" stroke="black"/>
                <path d="M 192,192 L 272,192" fill="none" stroke="black"/>
                <path d="M 296,192 L 360,192" fill="none" stroke="black"/>
                <path d="M 200,206 L 360,206" fill="none" stroke="black"/>
                <path d="M 200,210 L 360,210" fill="none" stroke="black"/>
                <path d="M 8,224 L 192,224" fill="none" stroke="black"/>
                <path d="M 368,224 L 536,224" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="456,160 444,154.4 444,165.6" fill="black" transform="rotate(90,448,160)"/>
                <polygon class="arrowhead" points="456,96 444,90.4 444,101.6" fill="black" transform="rotate(270,448,96)"/>
                <polygon class="arrowhead" points="360,64 348,58.4 348,69.6" fill="black" transform="rotate(0,352,64)"/>
                <polygon class="arrowhead" points="216,64 204,58.4 204,69.6" fill="black" transform="rotate(180,208,64)"/>
                <polygon class="arrowhead" points="104,160 92,154.4 92,165.6" fill="black" transform="rotate(90,96,160)"/>
                <polygon class="arrowhead" points="104,96 92,90.4 92,101.6" fill="black" transform="rotate(270,96,96)"/>
                <g class="text">
                  <text x="272" y="36">Bearer/AC</text>
                  <text x="92" y="52">Customer</text>
                  <text x="256" y="52">Service</text>
                  <text x="316" y="52">Models</text>
                  <text x="444" y="52">Provider</text>
                  <text x="64" y="68">Service</text>
                  <text x="132" y="68">Ordering</text>
                  <text x="424" y="68">Service</text>
                  <text x="480" y="68">Order</text>
                  <text x="444" y="84">Handling</text>
                  <text x="100" y="132">Provisioning</text>
                  <text x="452" y="132">Provisioning</text>
                  <text x="284" y="180">Bearer</text>
                  <text x="76" y="196">Customer</text>
                  <text x="132" y="196">Site</text>
                  <text x="284" y="196">AC</text>
                  <text x="420" y="196">Provider</text>
                  <text x="488" y="196">Network</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
.----------------------.     Bearer/AC       .--------------------.
|      Customer        |    Service Models   |     Provider       |
|   Service Ordering   | <-----------------> |   Service Order    |
|                      |                     |     Handling       |
'----------^-----------'                     '---------^----------'
           |                                           |
      Provisioning                                Provisioning
           |                                           |
.----------v-----------.                     .---------v----------.
|                      |========Bearer=======|                    |
|    Customer Site     +----------AC---------|  Provider Network  |
|                      |=====================|                    |
'----------------------'                     '--------------------'
]]></artwork>
          </artset>
        </figure>
        <t><xref target="_u-ex-r"/> shows an example to illustrate how the bearer/AC service models that involve a third party. This deployment model follows a recursive approach but other Client/Server alternative modes with a third party can be considered. In a recursive deployment, the Service Broker
exposes a server to a customer for the ordering of AC services, but it also acts as a client when communicating with a provider. How the Service Broker
decides to terminate a recursion for a given service request or create child service requests is deployment specific.</t>
        <figure anchor="_u-ex-r">
          <name>Example of Recursive Deployment</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="592" viewBox="0 0 592 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 96,32 L 96,96" fill="none" stroke="black"/>
                <path d="M 232,32 L 232,96" fill="none" stroke="black"/>
                <path d="M 320,32 L 320,96" fill="none" stroke="black"/>
                <path d="M 456,32 L 456,96" fill="none" stroke="black"/>
                <path d="M 584,48 L 584,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
                <path d="M 232,32 L 320,32" fill="none" stroke="black"/>
                <path d="M 456,32 L 568,32" fill="none" stroke="black"/>
                <path d="M 104,64 L 224,64" fill="none" stroke="black"/>
                <path d="M 328,64 L 448,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
                <path d="M 232,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 456,96 L 584,96" fill="none" stroke="black"/>
                <path d="M 568,32 C 576.83064,32 584,39.16936 584,48" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="456,64 444,58.4 444,69.6" fill="black" transform="rotate(0,448,64)"/>
                <polygon class="arrowhead" points="336,64 324,58.4 324,69.6" fill="black" transform="rotate(180,328,64)"/>
                <polygon class="arrowhead" points="232,64 220,58.4 220,69.6" fill="black" transform="rotate(0,224,64)"/>
                <polygon class="arrowhead" points="112,64 100,58.4 100,69.6" fill="black" transform="rotate(180,104,64)"/>
                <g class="text">
                  <text x="160" y="36">Bearer/AC</text>
                  <text x="384" y="36">Bearer/AC</text>
                  <text x="52" y="52">Customer</text>
                  <text x="136" y="52">Service</text>
                  <text x="196" y="52">Models</text>
                  <text x="272" y="52">Service</text>
                  <text x="360" y="52">Service</text>
                  <text x="416" y="52">Model</text>
                  <text x="516" y="52">Provider</text>
                  <text x="48" y="68">Service</text>
                  <text x="276" y="68">Broker</text>
                  <text x="496" y="68">Service</text>
                  <text x="552" y="68">Order</text>
                  <text x="52" y="84">Ordering</text>
                  <text x="264" y="84">B2B</text>
                  <text x="296" y="84">C/S</text>
                  <text x="524" y="84">Handling</text>
                  <text x="16" y="132">B2B</text>
                  <text x="52" y="132">C/S:</text>
                  <text x="124" y="132">Back-to-back</text>
                  <text x="232" y="132">Client/Server</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
.----------.   Bearer/AC    .----------.   Bearer/AC    .--------------.
| Customer | Service Models | Service  | Service Model  |   Provider    |
| Service  |<-------------->|  Broker  |<-------------->| Service Order |
| Ordering |                |  B2B C/S |                |    Handling   |
'----------'                '----------'                '---------------'

B2B C/S: Back-to-back Client/Server
]]></artwork>
          </artset>
        </figure>
        <t><xref target="_u-ex"/> shows the positioning of the AC service model in the overall service delivery process, with a focus the provider.</t>
        <figure anchor="_u-ex">
          <name>An Example of AC Model Usage (Focus on the Provider's Internals)</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>In order to ease the mapping between the service model and underlying network models (e.g., the L3VPN Network Model (L3NM), SAP), the name conventions used in existing network data models are reused as much as possible. For example, "local-address" is used rather than "provider-address" (or similar) to refer to an IP address used in the provider network. This approach is consistent with the automation framework defined in <xref target="RFC8969"/>.</t>
      </section>
    </section>
    <section anchor="description-of-the-data-models">
      <name>Description of the Data Models</name>
      <section anchor="sec-bearer">
        <name>The Bearer Service ("ietf-bearer-svc") YANG Module</name>
        <t><xref target="bearer-st"/> shows the tree for managing the bearers (that is, the properties of an attachment that are below Layer 3). A bearer can be a physical or logical link (e.g., LAG <xref target="IEEE802.1AX"/>). Also, a bearer can be a wireless or wired link. A reference to a bearer is generated by the operator.
Such a reference can be used, e.g., in a subsequent service request to create an AC. The anchoring of the AC can also be achieved by indicating (with or without a bearer reference), a peer SAP identifier (e.g., an identifier of an SF).</t>
        <figure anchor="bearer-st">
          <name>Bearer Service Tree Structure</name>
          <artwork align="center"><![CDATA[
module: ietf-bearer-svc
  +--rw locations
  |  +--rw customer* [name peer-as]
  |     +--rw name        string
  |     +--rw peer-as     inet:as-number
  |     +--ro location* [name]
  |        +--ro name            string
  |        +--ro address?        string
  |        +--ro postal-code?    string
  |        +--ro state?          string
  |        +--ro city?           string
  |        +--ro country-code?   string
  +--rw bearers
     +--rw customer-name?           string
     +--rw requested-start?         yang:date-and-time
     +--rw requested-stop?          yang:date-and-time
     +--ro actual-start?            yang:date-and-time
     +--ro actual-stop?             yang:date-and-time
     +--rw placement-constraints
     |  +--rw constraint* [constraint-type]
     |          {vpn-common:placement-diversity}?
     |     +--rw constraint-type    identityref
     |     +--rw target
     |        +--rw (target-flavor)?
     |           +--:(id)
     |           |  +--rw group* [group-id]
     |           |     +--rw group-id    string
     |           +--:(all-bearers)
     |           |  +--rw all-other-bearers?   empty
     |           +--:(all-groups)
     |              +--rw all-other-groups?    empty
     +--rw bearer* [name]
        +--rw name                           string
        +--rw description?                   string
        +--rw customer-name?                 string
        +--rw groups
        |  +--rw group* [group-id]
        |     +--rw group-id    string
        +--rw op-comment?                    string
        +--rw bearer-parent-ref?             bearer-svc:bearer-ref
        +--ro bearer-lag-member*             bearer-svc:bearer-ref
        +--ro sync-phy-capable?              boolean
        +--rw sync-phy-enabled?              boolean
        +--rw sync-phy-type?                 identityref
        +--rw provider-location-reference?   string
        +--rw customer-point
        |  +--rw identified-by?   identityref
        |  +--rw device
        |  |  +--rw device-id?   string
        |  |  +--rw location
        |  |     +--rw name?           string
        |  |     +--rw address?        string
        |  |     +--rw postal-code?    string
        |  |     +--rw state?          string
        |  |     +--rw city?           string
        |  |     +--rw country-code?   string
        |  +--rw site
        |  |  +--rw site-id?    string
        |  |  +--rw location
        |  |     +--rw name?           string
        |  |     +--rw address?        string
        |  |     +--rw postal-code?    string
        |  |     +--rw state?          string
        |  |     +--rw city?           string
        |  |     +--rw country-code?   string
        |  +--rw custom-id?       string
        +--rw type?                          identityref
        +--rw test-only?                     empty
        +--ro bearer-reference?              string
        |       {ac-common:server-assigned-reference}?
        +--ro ac-svc-ref*
        |       ac-svc:attachment-circuit-reference
        +--rw requested-start?               yang:date-and-time
        +--rw requested-stop?                yang:date-and-time
        +--ro actual-start?                  yang:date-and-time
        +--ro actual-stop?                   yang:date-and-time
        +--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
]]></artwork>
        </figure>
        <t>In some deployments, a customer may first retrieve a list of available presence locations before actually placing an order for a bearer creation. The request is filtered based upon a customer name and an Autonomous System Number (ASN). The reserved value "AS 0" <xref target="RFC7607"/> is used for customers with no ASN. The retrieved location names may be then referenced in a bearer creation request ("provider-location-reference"). See the example provided in <xref target="sec-ret-loc"/>.</t>
        <t>The same customer site (CE, SF, etc.) can terminate one or multiple bearers; each of them uniquely identified by a reference that is assigned by the network provider. These bearers can terminate on the same or distinct network nodes. CEs that terminate multiple bearers are called multi-homed CEs.</t>
        <t>A bearer can be created, modified, or discovered from the network. For example, the following deployment options can be considered:</t>
        <dl>
          <dt>Greenfield creation:</dt>
          <dd>
            <t>In this scenario, bearers are created from scratch using specific requests made to a network controller. This method  allows providers to tailor bearer creation to meet customer-specific needs. For example, a bearer request may indicate some hints about the placement constraints ('placement-constraints'). These constraints are used by a provider to determine how/where to terminate a bearer in the network side (e.g., Point of Presence (PoP) or PE selection).</t>
          </dd>
          <dt>Auto-discovery using network protocols:</dt>
          <dd>
            <t>Devices can use specific protocols (e.g., Link Layer Discovery Protocol (LLDP) <xref target="IEEE802.1AB"/>) to automatically discover and connect to available network resources. A network controller can use such reported information to expose discovered bearers from the network using the same bearer data model structure.</t>
          </dd>
        </dl>
        <t>A request to create a bearer may include a set of constraints ("placement-constraints") that are used by a controller to decide the network terminating side of a bearer (e.g., PE selection, PE redundancy, or PoP selection). Future placement criteria ("constraint-type") may be defined in the future to accommodate specific deployment contexts.</t>
        <t>The descriptions of the bearer data nodes are as follows:</t>
        <dl>
          <dt>'name':</dt>
          <dd>
            <t>Used to uniquely identify a bearer. This name is typically selected by the client when requesting a bearer.</t>
          </dd>
          <dt>'customer-name':</dt>
          <dd>
            <t>Indicates the name of the customer who ordered the bearer.</t>
          </dd>
          <dt>'description':</dt>
          <dd>
            <t>Includes a textual description of the bearer.</t>
          </dd>
          <dt>'group':</dt>
          <dd>
            <t>Tags a bearer with one ore more identifiers that are used to group a set of bearers.</t>
          </dd>
          <dt>'op-comment':</dt>
          <dd>
            <t>Includes operational comments that may be useful for managing the bearer (building, level, etc.). No structure is associated with this data node to accommodate all deployments.</t>
          </dd>
          <dt>'bearer-parent-ref':</dt>
          <dd>
            <t>Specifies the parent bearer. This data node can be used, e.g., if a bearer is a member of a LAG.</t>
          </dd>
          <dt>'bearer-lag-member':</dt>
          <dd>
            <t>Lists the bearers that are members of a LAG. Members can be declared as part of a LAG using 'bearer-parent-ref'.</t>
          </dd>
          <dt>'sync-phy-capable':</dt>
          <dd>
            <t>Reports whether a synchronization physical (Sync PHY) mechanism is supported for this bearer.</t>
          </dd>
          <dt>'sync-phy-enabled':</dt>
          <dd>
            <t>Indicates whether a Sync PHY mechanism is enabled for a bearer. Only applies when 'sync-phy-capable' is set to 'true'.</t>
          </dd>
          <dt>'sync-phy-type':</dt>
          <dd>
            <t>Specifies the Sync PHY mechanism (e.g., SynchE <xref target="ITU-T-G.781"/>) enabled for the bearer.</t>
          </dd>
          <dt>'provider-location-reference':</dt>
          <dd>
            <t>Indicates a location identified by a provider-assigned reference.</t>
          </dd>
          <dt>'customer-point':</dt>
          <dd>
            <t>Specifies the customer terminating point for the bearer. A bearer request can indicate a device, a site, a combination thereof, or a custom information when requesting a bearer. All these schemes are supported in the model.</t>
          </dd>
          <dt>'type':</dt>
          <dd>
            <t>Specifies the bearer type (Ethernet, wireless, LAG, etc.).</t>
          </dd>
          <dt>'test-only':</dt>
          <dd>
            <t>Indicates that a request is only for test and not for setting, even if there are no errors. This is used for feasibility checks. This data node is applicable only when the data model is used with protocols which do not natively support such option. For example, this data node is redundant with the "test-only" value of the <tt>&lt;test-option&gt;</tt> parameter in the NETCONF <tt>&lt;edit-config&gt;</tt> operation (<xref section="7.2" sectionFormat="of" target="RFC6241"/>).</t>
          </dd>
          <dt>'bearer-reference':</dt>
          <dd>
            <t>Returns an internal reference for the service provider to uniquely identify the bearer. This reference can be used when requesting services. <xref target="ex-create-bearer"/> provides an example about how this reference can be retrieved by a customer.</t>
          </dd>
          <dt/>
          <dd>
            <t>Whether the 'bearer-reference' mirrors the content of the 'name' is deployment-specific. The module does not assume nor preclude such schemes.</t>
          </dd>
          <dt>'ac-svc-ref':</dt>
          <dd>
            <t>Specifies the set of attachment circuits that are bound to the bearer.</t>
          </dd>
          <dt>'requested-start':</dt>
          <dd>
            <t>Specifies the requested date and time when the bearer is expected to be active.</t>
          </dd>
          <dt>'requested-stop':</dt>
          <dd>
            <t>Specifies the requested date and time when the bearer is expected to be disabled.</t>
          </dd>
          <dt>'actual-start':</dt>
          <dd>
            <t>Reports the actual date and time when the bearer actually was enabled.</t>
          </dd>
          <dt>'actual-stop':</dt>
          <dd>
            <t>Reports the actual date and time when the bearer actually was disabled.</t>
          </dd>
          <dt>'status':</dt>
          <dd>
            <t>Used to track the overall status of a given bearer. Both operational and administrative status are maintained together with a timestamp.</t>
          </dd>
          <dt/>
          <dd>
            <t>The "admin-status" attribute is typically configured by a network operator to indicate whether the service is enabled, disabled, or subjected to additional testing or pre-deployment checks. These additional options, such as 'admin-testing' and 'admin-pre-deployment', provide the operators the flexibility to conduct additional validations on the bearer before deploying services over that connection.</t>
          </dd>
          <dt>'oper-status':</dt>
          <dd>
            <t>The "oper-status" of a bearer reflects its operational state as observed. As a bearer can contain multiple services, the operational status should only reflect the status of the bearer connection. To obtain network-level service status, specific network models such as those in <xref section="7.3" sectionFormat="of" target="RFC9182"/>  or <xref section="7.3" sectionFormat="of" target="RFC9291"/> should be consulted.</t>
          </dd>
          <dt/>
          <dd>
            <t>It is important to note that the "admin-status" attribute should remain independent of the "oper-status". In other words, the setting of the intended administrative state (e.g., whether "admin-up" or "admin-testing") <bcp14>MUST NOT</bcp14> be influenced by the current operational state. If the bearer is administratively set to 'admin-down', it is expected that the bearer will also be operationally 'op-down' as a result of this administrative decision.</t>
          </dd>
          <dt/>
          <dd>
            <t>To assess the service delivery status for a given bearer comprehensively, it is recommended to consider both administrative and operational service status values in conjunction. This holistic approach  allows a network controller or operator to identify anomalies effectively.</t>
          </dd>
          <dt/>
          <dd>
            <t>For instance, when a bearer is administratively enabled but the "operational-status" of that bearer is reported as "op-down", it should be expected that the "oper-status" of services transported over that bearer is also down. These status values differing should trigger the detection of an anomaly condition.</t>
          </dd>
          <dt/>
          <dd>
            <t>See "A Common YANG Data Model for Layer 2 and Layer 3 VPNs" <xref target="RFC9181"/> for more details.</t>
          </dd>
        </dl>
      </section>
      <section anchor="the-attachment-circuit-service-ietf-ac-svc-yang-module">
        <name>The Attachment Circuit Service ("ietf-ac-svc") YANG Module</name>
        <t>The full tree diagram of the module can be generated using, e.g., the
"pyang" tool <xref target="PYANG"/>.  That tree is not included here because it is
too long (<xref section="3.4" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>).  Instead, subtrees are provided
for the reader's convenience. The full tree of the 'ac-svc' is provided in <xref target="AC-svc-Tree"/>.</t>
        <section anchor="overall-structure">
          <name>Overall Structure</name>
          <t>The overall tree structure of the AC service module is shown in <xref target="o-svc-tree"/>.</t>
          <figure anchor="o-svc-tree">
            <name>Overall AC Service Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection  {ac-common:layer2-ac}?
        |  ...
        +--rw ip-connection  {ac-common:layer3-ac}?
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
          </figure>
          <t>The rationale for deciding whether a reusable grouping should be maintained in this document or be moved into the AC common module <xref target="I-D.ietf-opsawg-teas-common-ac"/> is as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Groupings that are reusable among the AC service module, AC network module, other service models, and network models are included in the AC common module.</t>
            </li>
            <li>
              <t>Groupings that are reusable only by other service models are maintained in the "ietf-ac-svc" module.</t>
            </li>
          </ul>
          <t>Each AC is identified with a unique name ('../ac/name') within a domain. The mapping between this AC and a local PE that terminates the AC is hidden to the application that makes use of the AC service model. This information is internal to the Network controller. As such, the details about the (node-specific) attachment interfaces are not exposed in this service model.</t>
          <t>The AC service model uses groupings and types defined in the AC common model <xref target="I-D.ietf-opsawg-teas-common-ac"/> ('op-instructions', 'dot1q', 'qinq', 'priority-tagged', 'l2-tunnel-service', etc.). Therefore, the description of these nodes are not reiterated in the following subsections.</t>
          <t>Features are used to tag conditional protions of the model in order to accomodate various deployments (support of layer 2 ACs, Layer 3 ACs, IPv4, IPv6, routing protocols,  Bidirectional Forwarding Detection (BFD), etc.).</t>
        </section>
        <section anchor="sec-profiles">
          <name>Service Profiles</name>
          <section anchor="sec-profiles-desc">
            <name>Description</name>
            <t>The 'specific-provisioning-profiles' container (<xref target="gp-svc-tree"/>) can be used by a service provider to maintain a set of reusable profiles. The profiles definitions are similar to those defined in <xref target="RFC9181"/>, including: Quality of Service (QoS), BFD, forwarding, and routing profiles. The exact definition of the profiles is local to each service provider. The model only includes an identifier for these profiles in order to facilitate identifying and binding local policies when building an AC.</t>
            <figure anchor="gp-svc-tree">
              <name>Service Profiles</name>
              <artwork align="center"><![CDATA[
module: ietf-ac-svc
  +--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 service-provisioning-profiles
  |  +--rw service-profile-identifier* [id]
  |     +--rw id    string
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection  {ac-common:layer2-ac}? 
        |  ...
        +--rw ip-connection  {ac-common:layer3-ac}?
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
            <t>As shown in <xref target="gp-svc-tree"/>, two profile types can be defined: 'specific-provisioning-profiles' and 'service-provisioning-profiles'. Whether only specific profiles, service profiles, or a combination thereof are used is local to each service provider.</t>
            <t>The following specific provisioning profiles can be defined:</t>
            <dl>
              <dt>'encryption-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies related to the encryption setup that can be applied when provisioning an AC.</t>
              </dd>
              <dt>'qos-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies, such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
              </dd>
              <dt>'failure-detection-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of failure detection policies (e.g., Bidirectional Forwarding Detection (BFD) policies <xref target="RFC5880"/>) that can be invoked when building an AC.</t>
              </dd>
              <dt>'forwarding-profile-identifier':</dt>
              <dd>
                <t>Refers to the policies that apply to the forwarding of packets conveyed within an AC. Such policies may consist, for example, of applying Access Control Lists (ACLs).</t>
              </dd>
              <dt>'routing-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of routing policies that will be invoked (e.g., BGP policies) when building an AC.</t>
              </dd>
            </dl>
          </section>
          <section anchor="referencing-servicespecific-profiles">
            <name>Referencing Service/Specific Profiles</name>
            <t>All the above mentioned profiles are uniquely identified by the NETCONF/RESTCONF server by an identifier. To ease referencing these profiles by other data models, specific typedefs are defined for each of these profiles. Likewise, an attachment circuit reference typedef is defined when referencing a (global) attachment circuit by its name is required. These typedefs <bcp14>SHOULD</bcp14> be used when other modules need a reference to one of these profiles or attachment circuits.</t>
          </section>
        </section>
        <section anchor="sec-acp">
          <name>Attachment Circuits Profiles</name>
          <t>The 'ac-group-profile' defines reusable parameters for a set of ACs. Each profile is identified by 'name'. Some of the data nodes can be adjusted at the 'ac' level.
These adjusted values take precedence over the global values.  The structure of 'ac-group-profile' is similar to the one used to model each 'ac' (<xref target="ac-svc-tree"/>).</t>
        </section>
        <section anchor="sec-pc">
          <name>AC Placement Contraints</name>
          <t>The 'placement-constraints' specifies the placement constraints of an AC. For example, this container can be used to request avoidance of connecting two ACs to the same PE. The full set of supported constraints is defined in <xref target="RFC9181"/> (see 'placement-diversity', in particular).</t>
          <t>The structure of 'placement-constraints' is shown in <xref target="precedence-tree"/>.</t>
          <figure anchor="precedence-tree">
            <name>Placement Constraints Subtree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name] 
     |  ...                                
     +--rw placement-constraints
     |  +--rw constraint* [constraint-type]
     |     +--rw constraint-type    identityref
     |     +--rw target
     |        +--rw (target-flavor)?
     |           +--:(id)
     |           |  +--rw group* [group-id]
     |           |     +--rw group-id    string
     |           +--:(all-accesses)
     |           |  +--rw all-other-accesses?   empty
     |           +--:(all-groups)
     |              +--rw all-other-groups?     empty
     +--rw ac* [name]
        ...
]]></artwork>
          </figure>
        </section>
        <section anchor="attachment-circuits">
          <name>Attachment Circuits</name>
          <t>The structure of 'attachment-circuits' is shown in <xref target="ac-svc-tree"/>.</t>
          <figure anchor="ac-svc-tree">
            <name>Attachment Circuits Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw customer-name?           string
     +--rw requested-start?         yang:date-and-time
     +--rw requested-stop?          yang:date-and-time
     +--ro actual-start?            yang:date-and-time
     +--ro actual-stop?             yang:date-and-time
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw test-only?           empty
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw role?                identityref
        +--rw peer-sap-id*         string
        +--rw ac-group-profile-ref*    ac-group-reference
        +--rw ac-parent-ref*       ac-svc:attachment-circuit-reference
        +--ro ac-child-ref*        ac-svc:attachment-circuit-reference
        +--rw group* [group-id]
        |  +--rw group-id      string
        |  +--rw precedence?   identityref
        +--ro service-ref* [service-type service-id]
        |  +--ro service-type    identityref
        |  +--ro service-id      string
        +--ro server-reference?    string
        |       {ac-common:server-assigned-reference}?
        +--rw name                 string
        +--rw service-profile*     service-profile-reference     
        +--rw l2-connection  {ac-common:layer2-ac}?
        |  ...
        +--rw ip-connection  {ac-common:layer3-ac}?
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
          </figure>
          <t>The description of the data nodes is as follows:</t>
          <dl>
            <dt>'customer-name':</dt>
            <dd>
              <t>Indicates the name of the customer who ordered the AC or a set of ACs.</t>
            </dd>
            <dt>'description':</dt>
            <dd>
              <t>Includes a textual description of the AC.</t>
            </dd>
            <dt>'test-only':</dt>
            <dd>
              <t>Indicates that a request is only for test and not for setting, even if there are no errors. This is used for feasibility checks. This data node is applicable only when the data model is used with protocols which do not natively support such option.</t>
            </dd>
            <dt>'requested-start':</dt>
            <dd>
              <t>Specifies the requested date and time when the attachment circuit is expected to be active.</t>
            </dd>
            <dt>'requested-stop':</dt>
            <dd>
              <t>Specifies the requested date and time when the attachment circuit is expected to be disabled.</t>
            </dd>
            <dt>'actual-start':</dt>
            <dd>
              <t>Reports the actual date and time when the attachment circuit actually was enabled.</t>
            </dd>
            <dt>'actual-stop':</dt>
            <dd>
              <t>Reports the actual date and time when the attachment circuit actually was disabled.</t>
            </dd>
            <dt>'role':</dt>
            <dd>
              <t>Specifies whether an AC is used, e.g., as User-to-Network Interface (UNI) or Network-to-Network Interface (NNI).</t>
            </dd>
            <dt>'peer-sap-id':</dt>
            <dd>
              <t>Includes references to the remote endpoints of an attachment circuit <xref target="RFC9408"/>. 'peer' is drawn here from the perspective of the provider network. That is, a 'peer-sap' will refer to a customer node.</t>
            </dd>
            <dt>'ac-group-profile-ref':</dt>
            <dd>
              <t>Indicates references to one or more profiles that are defined in <xref target="sec-acp"/>.</t>
            </dd>
            <dt>'ac-parent-ref':</dt>
            <dd>
              <t>Specifies an AC that is inherited by an attachment circuit.</t>
            </dd>
            <dt/>
            <dd>
              <t>In contexts where dynamic terminating points are managed for a given AC,
a parent AC can be defined with a set of stable and common information, while
"child" ACs are defined to track dynamic information. These "child" ACs are bound to the parent AC, which is exposed to services (as a stable reference).</t>
            </dd>
            <dt/>
            <dd>
              <t>Whenever a parent AC is deleted, all its "child" ACs <bcp14>MUST</bcp14> be deleted.</t>
            </dd>
            <dt/>
            <dd>
              <t>A "child" AC <bcp14>MAY</bcp14> rely upon more than one parent AC (e.g., parent Layer 2 AC and parent Layer 3 AC). In such cases, these ACs <bcp14>MUST NOT</bcp14> be overlapping. An example to illustrate the use of multiple parent ACs is provided in  <xref target="sec-bfd-static"/>.</t>
            </dd>
            <dt>'ac-child-ref':</dt>
            <dd>
              <t>Lists one or more references of child ACs that rely upon this attachment circuit as a parent AC.</t>
            </dd>
            <dt>'group':</dt>
            <dd>
              <t>Lists the groups to which an AC belongs <xref target="RFC9181"/>. For example, the 'group-id' is used to associate redundancy or protection constraints of ACs. An example is provided in <xref target="sec-ex-prec"/>.</t>
            </dd>
            <dt>'service-ref':</dt>
            <dd>
              <t>Reports the set of services that are bound to the attachment circuit. The services are indexed by their type.</t>
            </dd>
            <dt>'server-reference':</dt>
            <dd>
              <t>Reports the internal reference that is assigned by the provider for this AC. This reference is used to accomodate deployment contexts (e.g., <xref section="9.1.2" sectionFormat="of" target="RFC8921"/>) where an identifier is generated by the provider to identify a service order locally.</t>
            </dd>
            <dt>'name':</dt>
            <dd>
              <t>Associates a name that uniquely identifies an AC within a service provider network.</t>
            </dd>
            <dt>'service-profile':</dt>
            <dd>
              <t>References a set of service-specific profiles.</t>
            </dd>
            <dt>'l2-connection':</dt>
            <dd>
              <t>See <xref target="sec-l2"/>.</t>
            </dd>
            <dt>'ip-connection':</dt>
            <dd>
              <t>See <xref target="sec-l3"/>.</t>
            </dd>
            <dt>'routing':</dt>
            <dd>
              <t>See <xref target="sec-rtg"/>.</t>
            </dd>
            <dt>'oam':</dt>
            <dd>
              <t>See <xref target="sec-oam"/>.</t>
            </dd>
            <dt>'security':</dt>
            <dd>
              <t>See <xref target="sec-sec"/>.</t>
            </dd>
            <dt>'service':</dt>
            <dd>
              <t>See <xref target="sec-bw"/>.</t>
            </dd>
          </dl>
          <section anchor="sec-l2">
            <name>Layer 2 Connection Structure</name>
            <t>The 'l2-connection' container (<xref target="l2-svc-tree"/>) is used to configure the relevant Layer 2 properties of an AC including: encapsulation details and tunnel terminations. For the encapsulation details, the model supports the definition of the type as well as the Identifiers (e.g., VLAN-IDs) of each of the encapsulation-type defined. For the second case, attributes for pseudowire, Virtual Private LAN Service (VPLS), and  Virtual eXtensible Local Area Network (VXLAN) tunnel terminations are included.</t>
            <t>'bearer-reference' is used to link an AC with a bearer over which the AC is instantiated.</t>
            <t>This structure relies upon the common groupings defined in <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
            <figure anchor="l2-svc-tree">
              <name>Layer 2 Connection Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw name                 string
        +--rw l2-connection  {ac-common:layer2-ac}?
        |  +--rw encapsulation
        |  |  +--rw type?              identityref
        |  |  +--rw dot1q
        |  |  |  +--rw tag-type?   identityref
        |  |  |  +--rw cvlan-id?   uint16
        |  |  +--rw priority-tagged
        |  |  |  +--rw tag-type?   identityref
        |  |  +--rw qinq
        |  |     +--rw tag-type?   identityref
        |  |     +--rw svlan-id?   uint16
        |  |     +--rw cvlan-id?   uint16
        |  +--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 bearer-reference?          string
        |          {vpn-common:bearer-reference}?
        +--rw ip-connection  {ac-common:layer3-ac}?
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-l3">
            <name>IP Connection Structure</name>
            <t>The 'ip-connection' container is used to configure the relevant IP properties of an AC. The model supports the usage of dynamic and static addressing. This structure relies upon the common groupings defined in <xref target="I-D.ietf-opsawg-teas-common-ac"/>. Both IPv4 and IPv6 parameters are supported.</t>
            <t><xref target="ipv4-svc-tree"/> shows the structure of the IPv4 connection.</t>
            <figure anchor="ipv4-svc-tree">
              <name>Layer 3 Connection Tree Structure (IPv4)</name>
              <artwork align="center"><![CDATA[
        | ...
        +--rw ip-connection  {ac-common:layer3-ac}?
        |  +--rw ipv4 {vpn-common:ipv4}?
        |  |  +--rw local-address?
        |  |  |       inet:ipv4-address
        |  |  +--rw virtual-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
        |  |     |  +--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? 
        |  |                      failure-detection-profile-reference
        |  |                      {vpn-common:bfd}?
        |  +--rw ipv6 {vpn-common:ipv6}?
        |     ...
]]></artwork>
            </figure>
            <t><xref target="ipv6-svc-tree"/> shows the structure of the IPv6 connection.</t>
            <figure anchor="ipv6-svc-tree">
              <name>Layer 3 Connection Tree Structure (IPv6)</name>
              <artwork align="center"><![CDATA[
        | ...
        +--rw ip-connection  {ac-common:layer3-ac}?
        |  +--rw ipv4 {vpn-common:ipv4}?
        |  |  ...
        |  +--rw ipv6 {vpn-common:ipv6}?
        |     +--rw local-address?
        |     |       inet:ipv6-address
        |     +--rw virtual-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
        |        |  +--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? 
        |                         failure-detection-profile-reference
        |                         {vpn-common:bfd}?
        | ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-rtg">
            <name>Routing</name>
            <t>As shown in the tree depicted in <xref target="rtg-svc-tree"/>, the 'routing-protocols' container defines the required parameters to enable the desired routing features for an AC. One or more routing protocols can be associated with an AC.  Such routing protocols will be then enabled between a PE and the customer terminating points. Each routing instance is uniquely identified by the combination of the 'id' and 'type' to accommodate scenarios where multiple instances of the same routing protocol have to be configured on the same link.</t>
            <t>In addition to static routing (<xref target="sec-static-rtg"/>), the module supports BGP (<xref target="sec-bgp-rtg"/>), OSPF (<xref target="sec-ospf-rtg"/>), IS-IS (<xref target="sec-isis-rtg"/>), and RIP (<xref target="sec-rip-rtg"/>). It also includes a reference to the 'routing-profile-identifier' defined in <xref target="sec-profiles"/>, so that additional constraints can be applied to a specific instance of each routing protocol. Moreover, the module supports VRRP (<xref target="sec-vrrp-rtg"/>).</t>
            <figure anchor="rtg-svc-tree">
              <name>Routing Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--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-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--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>
            <section anchor="sec-static-rtg">
              <name>Static Routing</name>
              <t>The static tree structure is shown in <xref target="static-rtg-svc-tree"/>.</t>
              <figure anchor="static-rtg-svc-tree">
                <name>Static Routing Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--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 failure-detection-profile?
        |     |     |  |       failure-detection-profile-reference
        |     |     |  |       {vpn-common:bfd}?
        |     |     |  +--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 failure-detection-profile?
        |     |        |       failure-detection-profile-reference
        |     |        |       {vpn-common:bfd}?
        |     |        +--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}?
        |        ...
]]></artwork>
              </figure>
              <t>As depicted in <xref target="static-rtg-svc-tree"/>, 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>'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>'failure-detection-profile':</dt>
                <dd>
                  <t>Indicates a failure detection profile (e.g., BFD) that applies for this entry.</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>An AC service activation with BGP routing <bcp14>SHOULD</bcp14> include at least the customer's AS Number (ASN) and the provider's ASN.
Additional information can be supplied by a customer in a request or exposed by a provider in a response to a query request
in order ease the process of automating the provisioning of BGP sessions (the customer does not use the primary IP address
to establish the underlying BGP session, communicate the provider's IP address used to establish the BGP session,
share authentication parameters, bind the session to a forwarding protection profile, etc.).</t>
              <t>The BGP tree structure is shown in <xref target="bgp-rtg-svc-tree"/>.</t>
              <figure anchor="bgp-rtg-svc-tree">
                <name>BGP Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp {vpn-common:rtg-bgp}?
        |     |  +--rw peer-groups
        |     |  |  +--rw peer-group* [name]
        |     |  |     +--rw name              string
        |     |  |     +--rw local-as?         inet:as-number
        |     |  |     +--rw peer-as?          inet:as-number
        |     |  |     +--rw address-family?   identityref
        |     |  |     +--rw role?             identityref
        |     |  |     +--rw local-address?    inet:ip-address
        |     |  |     +--rw bgp-max-prefix
        |     |  |     |  +--rw max-prefix?   uint32
        |     |  |     +--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* [id]
        |     |     +--rw id                  string
        |     |     +--ro server-reference?   string
        |     |     |       {ac-common:server-assigned-reference}?
        |     |     +--rw remote-address?     inet:ip-address
        |     |     +--rw local-address?      inet:ip-address
        |     |     +--rw local-as?           inet:as-number
        |     |     +--rw peer-as?            inet:as-number
        |     |     +--rw address-family?     identityref
        |     |     +--rw role?               identityref
        |     |     +--rw bgp-max-prefix
        |     |     |  +--rw max-prefix?   uint32
        |     |     +--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 requested-start?    yang:date-and-time
        |     |     +--rw requested-stop?     yang:date-and-time
        |     |     +--ro actual-start?       yang:date-and-time
        |     |     +--ro actual-stop?        yang:date-and-time
        |     |     +--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 peer-group?
        |     |     |       -> ../../peer-groups/peer-group/name
        |     |     +--rw failure-detection-profile? 
        |     |                   failure-detection-profile-reference
        |     |                   {vpn-common:bfd}?
        |     +--rw ospf {vpn-common:rtg-ospf}?
        |     |  ...
        |     +--rw isis {vpn-common:rtg-isis}?
        |     |  ...
        |     +--rw rip {vpn-common:rtg-rip}?
        |     |  ...
        |     +--rw vrrp {vpn-common:rtg-vrrp}?
        |        ...
]]></artwork>
              </figure>
              <t>For deployment cases where an AC service request includes a list of neighors with redundant information,
the ACaaS allows to factorize shared data by means of 'peer-group'. The presence of 'peer-groups' in a service request is thus optional.</t>
              <t>The following data nodes are supported for each BGP 'peer-group':</t>
              <dl>
                <dt>'name':</dt>
                <dd>
                  <t>Defines a name for the peer group.</t>
                </dd>
                <dt>'local-as':</dt>
                <dd>
                  <t>Reports the provider's ASN. This information is used at the customer side to configure the BGP session with the provider network.</t>
                </dd>
                <dt>'peer-as':</dt>
                <dd>
                  <t>Indicates the customer's ASN. This information is used at the provider side to configure the BGP session with the customer equipment.</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"/>. This parameter is useful for interconnection scenarios.</t>
                </dd>
                <dt/>
                <dd>
                  <t>This is an optional parameter.</t>
                </dd>
                <dt>'local-address':</dt>
                <dd>
                  <t>Reports a provider's IP address to use to establish the BGP transport session.</t>
                </dd>
                <dt>'bgp-max-prefix':</dt>
                <dd>
                  <t>Indicates the maximum number of BGP prefixes allowed in a session for this group.</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>Similar to <xref target="RFC9182"/>, this version of the ACaaS assumes that parameters specific to the TCP-AO are preconfigured as part of the key chain that is referenced in the ACaaS. 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 "YANG Data Model for Key Chains" <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>'server-reference':</dt>
                <dd>
                  <t>Reports the internal reference that is assigned by the provider for this BGP session. This is an optional parameter.</t>
                </dd>
                <dt>'remote-address':</dt>
                <dd>
                  <t>Specifies the customer's IP address used to establishing this BGP session. If not present, this means that the primary
customer IP address is used as remote IP address.</t>
                </dd>
                <dt>'requested-start':</dt>
                <dd>
                  <t>Specifies the requested date and time when the BGP session is expected to be active.</t>
                </dd>
                <dt>'requested-stop':</dt>
                <dd>
                  <t>Specifies the requested date and time when the BGP session is expected to be disabled.</t>
                </dd>
                <dt>'actual-start':</dt>
                <dd>
                  <t>Reports the actual date and time when the BGP session actually was enabled.</t>
                </dd>
                <dt>'actual-stop':</dt>
                <dd>
                  <t>Reports the actual date and time when the BGP session actually was disabled.</t>
                </dd>
                <dt>'status':</dt>
                <dd>
                  <t>Indicates the status of the BGP routing instance.</t>
                </dd>
                <dt>'peer-group':</dt>
                <dd>
                  <t>Specifies 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/>
                <dd>
                  <t>This is an optional parameter.</t>
                </dd>
                <dt>'failure-detection-profile':</dt>
                <dd>
                  <t>Indicates a failure detection profile (BFD) that applies for a BGP neighbor. This is an optional parameter.</t>
                </dd>
              </dl>
            </section>
            <section anchor="sec-ospf-rtg">
              <name>OSPF</name>
              <t>The OSPF tree structure is shown in <xref target="ospf-rtg-svc-tree"/>.</t>
              <figure anchor="ospf-rtg-svc-tree">
                <name>OSPF Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--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 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}?
        |        ...
]]></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>'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>'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 tree structure is shown in <xref target="isis-rtg-svc-tree"/>.</t>
              <figure anchor="isis-rtg-svc-tree">
                <name>IS-IS Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--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 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}?
        |      ...
]]></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>'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 tree structure is shown in <xref target="rip-rtg-svc-tree"/>.</t>
              <figure anchor="rip-rtg-svc-tree">
                <name>RIP Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--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 authentication
        |     |  |  +--rw enabled?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--ro last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw vrrp {vpn-common:rtg-vrrp}?
        |      ...
]]></artwork>
              </figure>
              <t>'address-family' indicates whether IPv4, IPv6, or both address families are to be activated. For example, 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>
            </section>
            <section anchor="sec-vrrp-rtg">
              <name>VRRP</name>
              <t>The model supports the Virtual Router Redundancy Protocol (VRRP) <xref target="RFC9568"/> on an AC (<xref target="vrrp-rtg-svc-tree"/>).</t>
              <figure anchor="vrrp-rtg-svc-tree">
                <name>VRRP Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--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 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
]]></artwork>
              </figure>
              <t>The following 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>'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>Operations, Administration, and Maintenance (OAM)</name>
            <t>As shown in the tree depicted in <xref target="oam-svc-tree"/>, the 'oam' container defines OAM-related parameters of an AC.</t>
            <figure anchor="oam-svc-tree">
              <name>OAM Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--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* [id]
        |        +--rw id                string
        |        +--rw local-address?    inet:ip-address
        |        +--rw remote-address?   inet:ip-address
        |        +--rw profile?
        |        |       failure-detection-profile-reference
        |        +--rw holdtime?         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 security
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
            <t>This version of the module supports BFD. The following BFD data nodes can be specified:</t>
            <dl>
              <dt>'id':</dt>
              <dd>
                <t>An identifier that uniquely identifies a BFD session.</t>
              </dd>
              <dt>'local-address':</dt>
              <dd>
                <t>Indicates the provider's IP address used for a BFD session.</t>
              </dd>
              <dt>'remote-address':</dt>
              <dd>
                <t>Indicates the customer's IP address used for a BFD session.</t>
              </dd>
              <dt>'profile':</dt>
              <dd>
                <t>Refers to a BFD profile.</t>
              </dd>
              <dt>'holdtime':</dt>
              <dd>
                <t>Used to indicate the expected BFD holddown time, in milliseconds.</t>
              </dd>
              <dt>'status':</dt>
              <dd>
                <t>Indicates the status of the BFD session.</t>
              </dd>
            </dl>
          </section>
          <section anchor="sec-sec">
            <name>Security</name>
            <t>As shown in the tree depicted in <xref target="sec-svc-tree"/>, the 'security' container defines a set of AC security parameters.</t>
            <figure anchor="sec-svc-tree">
              <name>Security Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--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 provider-profile?
        |        |          encryption-profile-reference
        |        +--:(customer-profile)
        |           +--rw customer-key-chain?
        |                   key-chain:key-chain-ref
        +--rw service
           ...
]]></artwork>
            </figure>
            <t>The 'security' container specifies a minimum set of encryption-related parameters that can be requested to be applied to traffic for a given AC. Typically, 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 (see  <xref target="sec-profiles-desc"/>). For example, a service provider may use IPsec when a customer requests Layer 3 encryption for an AC.</t>
          </section>
          <section anchor="sec-bw">
            <name>Service</name>
            <t>The structure of the 'service' container is depicted in <xref target="bw-tree"/>.</t>
            <figure anchor="bw-tree">
              <name>Bandwidth Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--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* [profile]
           |        +--rw profile      qos-profile-reference
           |        +--rw direction?   identityref
           +--rw access-control-list
              +--rw acl-profiles
                 +--rw acl-profile* [profile]
                    +--rw profile    forwarding-profile-reference
]]></artwork>
            </figure>
            <t>The 'service' container defines the following data nodes:</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/>
              </dd>
              <dt>   'svc-pe-to-ce-bandwidth':</dt>
              <dd>
                <t>Indicates the inbound bandwidth of the AC (i.e., download bandwidth from the service provider to
the customer site).</t>
              </dd>
              <dt>'svc-ce-to-pe-bandwidth':</dt>
              <dd>
                <t>Indicates the outbound bandwidth of the AC (i.e., upload bandwidth from the customer site to the service
provider).</t>
              </dd>
              <dt/>
              <dd>
                <t>Both 'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth' can be represented using the Committed Information Rate (CIR), the Excess
Information Rate (EIR), or the Peak Information Rate (PIR). Both reuse the 'bandwidth-per-type' grouping defined in <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
              </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>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="sec-bearer-module">
        <name>The Bearer Service ("ietf-bearer-svc") YANG Module</name>
        <t>This module uses types defined in <xref target="RFC6991"/>, <xref target="RFC9181"/>, and <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
        <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-bearer-svc@2024-08-06.yang"
module ietf-bearer-svc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-bearer-svc";
  prefix bearer-svc;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types, Section 4";
  }
  import ietf-vpn-common {
    prefix vpn-common;
    reference
      "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
                 VPNs";
  }
  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 XXXX: 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 generic YANG model for exposing
     network bearers as a service.

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

  revision 2024-08-06 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: YANG Data Models for Bearers and 'Attachment
                 Circuits'-as-a-Service (ACaaS)";
  }

  // Identities 

  identity identification-type {
    description
      "Base identity for identification of bearers.";
  }

  identity device-id {
    base identification-type;
    description
      "Identification of bearers based on device.";
  }

  identity site-id {
    base identification-type;
    description
      "Identification of bearers based on site.";
  }

  identity site-and-device-id {
    base identification-type;
    description
      "Identification of bearers based on site and device.";
  }

  identity custom {
    base identification-type;
    description
      "Identification of bearers based on other custom criteria.";
  }

  identity bearer-type {
    description
      "Base identity for bearers type.";
  }

  identity ethernet {
    base bearer-type;
    description
      "Ethernet.";
  }

  identity wireless {
    base bearer-type;
    description
      "Wireless.";
  }

  identity lag {
    base bearer-type;
    description
      "Link Aggregation Group (LAG).";
  }

  identity network-termination-hint {
    base vpn-common:placement-diversity;
    description
      "A hint about the termination at the network side
       is provided (e.g., geoproximity).";
  }

  identity sync-phy-type {
    description
      "Base identity for physical layer synchronization.";
  }

  identity sync-e {
    base sync-phy-type;
    description
      "Sync Ethernet (SyncE).";
    reference
      "ITU-T G.781: Synchronization layer functions for frequency
                    synchronization based on the physical layer";
  }

  // Typedef to ease referencing cross-modules

  typedef bearer-ref {
    type leafref {
      path "/bearer-svc:bearers/bearer-svc:bearer/bearer-svc:name";
    }
    description
      "Defines a type to reference a bearer.";
  }

  // Reusable groupings

  grouping location-information {
    description
      "Basic location information.";
    leaf name {
      type string;
      description
        "Provides a location name. This data node can be mapped,
         e.g., to the 3GPP NRM IOC ManagedElement.";
    }
    leaf address {
      type string;
      description
        "Address (number and street) of the device/site.";
    }
    leaf postal-code {
      type string;
      description
        "Postal code of the device/site.";
    }
    leaf state {
      type string;
      description
        "State of the device/site.  This leaf can also be
         used to describe a region for a country that
         does not have states.";
    }
    leaf city {
      type string;
      description
        "City of the device/site.";
    }
    leaf country-code {
      type string {
        pattern '[A-Z]{2}';
      }
      description
        "Country of the device/site.
         Expressed as ISO ALPHA-2 code.";
    }
  }

  grouping placement-constraints {
    description
      "Constraints related to placement of a bearer.";
    list constraint {
      if-feature "vpn-common:placement-diversity";
      key "constraint-type";
      description
        "List of constraints.";
      leaf constraint-type {
        type identityref {
          base vpn-common:placement-diversity;
        }
        must "not(derived-from-or-self(current(), "
           + "'vpn-common:bearer-diverse') or "
           + "derived-from-or-self(current(), "
           + "'vpn-common:same-bearer'))" {
          error-message "Only bearer-specific diversity"
                      + "constraints must be provided.";
        }
        description
          "Diversity constraint type for bearers.";
      }
      container target {
        description
          "The constraint will apply against this list of
           groups.";
        choice target-flavor {
          description
            "Choice for the group definition.";
          case id {
            list group {
              key "group-id";
              description
                "List of groups.";
              leaf group-id {
                type string;
                description
                  "The constraint will apply against this
                   particular group ID.";
              }
            }
          }
          case all-bearers {
            leaf all-other-bearers {
              type empty;
              description
                "The constraint will apply against all other
                 bearers of a site.";
            }
          }
          case all-groups {
            leaf all-other-groups {
              type empty;
              description
                "The constraint will apply against all other
                 groups managed by the customer.";
            }
          }
        }
      }
    }
  }

  container locations {
    description
      "Retrieves the available provider locations for terminating
       bearers for a given customer.";

    list customer {
      key "name peer-as";
      description
        "List of locations per customer.";
      leaf name {
        type string;
        description
          "Indicates the name of the customer.";
      }
      leaf peer-as {
        type inet:as-number;
        description
          "Indicates the customer's ASN.
           0 is used when the customer does not have an ASN.";
        reference
          "RFC 7607: Codification of AS 0 Processing";
      }
      list location {
        key "name";
        config false;
        description
          "Reports the list of available locations.";
        uses location-information;
      }
    }
  }
  container bearers {
    description
      "Main container for the bearers.";
    leaf customer-name {
      type string;
      description
        "Indicates the name of the customer that requested these
         bearers.";
    }
    uses ac-common:op-instructions;
    container placement-constraints {
      description
        "Diversity constraint type.";
      uses placement-constraints;
    }
    list bearer {
      key "name";
      description
        "Maintains a list of bearers.";
      leaf name {
        type string;
        description
          "A name that uniquely identifies a bearer for
           a given customer.";
      }
      leaf description {
        type string;
        description
          "A description of this bearer.";
      }
      leaf customer-name {
        type string;
        description
          "Indicates the name of the customer that requested this
           bearer.";
      }
      uses vpn-common:vpn-components-group;
      leaf op-comment {
        type string;
        description
          "Includes comments that can be shared with operational
           teams and which may be useful for the activation of a
           bearer. This may include, for example, information
           about the building, level, etc.";
      }
      leaf bearer-parent-ref {
        type bearer-svc:bearer-ref;
        description
          "Specifies the parent bearer. This can be used, e.g.,
           for a Link Aggregation Group (LAG).";
      }
      leaf-list bearer-lag-member {
        type bearer-svc:bearer-ref;
        config false;
        description
          "Reports LAG members.";
      }
      leaf sync-phy-capable {
        type boolean;
        config false;
        description
          "Indicates when set to true that a mechanism for physical
           layer synchronization is supported for this bearer. 
           No such mechanism is supported if set to false.";
      }
      leaf sync-phy-enabled {
        type boolean;
        description
          "Indicates when set to true that a mechanism for physical
           layer synchronization is enabled for this bearer. No such
           mechanism is enabled if set to false.";
      }
      leaf sync-phy-type {
        when "../sync-phy-enabled='true'";
        type identityref {
          base sync-phy-type;
        }
        description
          "Type of the physical layer synchronization.";
      }
      leaf provider-location-reference {
        type string;
        description
          "Specifies the provider's location reference.";
      }
      container customer-point {
        description
          "Base container to link the Bearer existence.";
        leaf identified-by {
          type identityref {
            base identification-type;
          }
          description
            "Specifies how the customer point is identified.";
        }
        container device {
          when "derived-from-or-self(../identified-by, "
             + "'bearer-svc:device-id') or "
             + "derived-from-or-self(../identified-by, "
             + "'bearer-svc:site-and-device-id')" {
            description
              "Only applicable if identified-by is device.";
          }
          description
            "Bearer is linked to device.";
          leaf device-id {
            type string;
            description
              "Identifier for the device where that bearer belongs.";
          }
          container location {
            description
              "Location of the node.";
            uses location-information;
          }
        }
        container site {
          when "derived-from-or-self(../identified-by, "
             + "'bearer-svc:site-id') or "
             + "derived-from-or-self(../identified-by, "
             + "'bearer-svc:site-and-device-id')" {
            description
              "Only applicable if identified-by is site.";
          }
          description
            "Bearer is linked to a site.";
          leaf site-id {
            type string;
            description
              "Identifier for the site or sites where that bearer
               belongs.";
          }
          container location {
            description
              "Location of the node.";
            uses location-information;
          }
        }
        leaf custom-id {
          when "derived-from-or-self(../identified-by, "
             + "'bearer-svc:custom')" {
            description
              "Only enabled id identified-by is custom.";
          }
          type string;
          description
            "The semantic of this identifier is shared between the
              customer/provider using out-of-band means.";
        }
      }
      leaf type {
        type identityref {
          base bearer-type;
        }
        description
          "Type of the bearer (e.g., Ethernet or wireless).";
      }
      leaf test-only {
        type empty;
        description
          "When present, this indicates that this is a feasibility
           check request. No resources are commited for such bearer
           requests.";
      }
      leaf bearer-reference {
        if-feature "ac-common:server-assigned-reference";
        type string;
        config false;
        description
          "This is an internal reference for the service provider
           to identify the bearers.";
      }
      leaf-list ac-svc-ref {
        type ac-svc:attachment-circuit-reference;
        config false;
        description
          "Specifies the set of ACes that are bound to the bearer.";
      }
      uses ac-common:op-instructions;
      uses ac-common:service-status;
    }
  }
}
<CODE ENDS>
]]></sourcecode>
      </section>
      <section anchor="sec-ac-module">
        <name>The AC Service ("ietf-ac-svc") YANG Module</name>
        <t>This module uses types defined in <xref target="RFC6991"/>, <xref target="RFC9181"/>, <xref target="RFC8177"/>, and <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
        <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-ac-svc@2024-08-06.yang"
module ietf-ac-svc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-svc";
  prefix ac-svc;

  import ietf-ac-common {
    prefix ac-common;
    reference
      "RFC CCCC: A Common YANG Data Model for Attachment Circuits";
  }
  import ietf-vpn-common {
    prefix vpn-common;
    reference
      "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
                 VPNs";
  }
  import ietf-netconf-acm {
    prefix nacm;
    reference
      "RFC 8341: Network Configuration Access Control Model";
  }
  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";
  }

  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 model for exposing
     attachment circuits as a service (ACaaS).

     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-08-06 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: YANG Data Models for Bearers and 'Attachment
                 Circuits'-as-a-Service (ACaaS)";
  }

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

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

  typedef ac-group-reference {
    type leafref {
      path "/ac-svc:attachment-circuits/ac-svc:ac-group-profile"
         + "/ac-svc:name";
    }
    description
      "Defines a reference to an attachment circuit profile.";
  }

  typedef encryption-profile-reference {
    type leafref {
      path
        "/ac-svc:specific-provisioning-profiles"
      + "/ac-svc:valid-provider-identifiers"
      + "/ac-svc:encryption-profile-identifier/ac-svc:id";
    }
    description
      "Defines a reference to an encryption profile.";
  }

  typedef qos-profile-reference {
    type leafref {
      path
        "/ac-svc:specific-provisioning-profiles"
      + "/ac-svc:valid-provider-identifiers"
      + "/ac-svc:qos-profile-identifier/ac-svc:id";
    }
    description
      "Defines a reference to a QoS profile.";
  }

  typedef failure-detection-profile-reference {
    type leafref {
      path
        "/ac-svc:specific-provisioning-profiles"
      + "/ac-svc:valid-provider-identifiers"
      + "/ac-svc:failure-detection-profile-identifier"
      + "/ac-svc:id";
    }
    description
      "Defines a reference to a BFD profile.";
  }

  typedef forwarding-profile-reference {
    type leafref {
      path
        "/ac-svc:specific-provisioning-profiles"
      + "/ac-svc:valid-provider-identifiers"
      + "/ac-svc:forwarding-profile-identifier/ac-svc:id";
    }
    description
      "Defines a reference to a forwarding profile.";
  }

  typedef routing-profile-reference {
    type leafref {
      path
        "/ac-svc:specific-provisioning-profiles"
      + "/ac-svc:valid-provider-identifiers"
      + "/ac-svc:routing-profile-identifier/ac-svc:id";
    }
    description
      "Defines a reference to a routing profile.";
  }

  typedef service-profile-reference {
    type leafref {
      path
        "/ac-svc:service-provisioning-profiles"
      + "/ac-svc:service-profile-identifier"
      + "/ac-svc:id";
    }
    description
      "Defines a reference to a service profile.";
  }

  /******************** Reusable groupings ********************/
  // Basic Layer 2 connection

  grouping l2-connection-basic {
    description
      "Defines Layer 2 protocols and parameters that can be
       factorized when provisioning Layer 2 connectivity
       among multiple ACs.";
    container encapsulation {
      description
        "Container for Layer 2 encapsulation.";
      leaf type {
        type identityref {
          base vpn-common:encapsulation-type;
        }
        description
          "Encapsulation type.";
      }
      container dot1q {
        when "derived-from-or-self(../type, 'vpn-common:dot1q')" {
          description
            "Only applies when the type of the tagged interface
             is 'dot1q'.";
        }
        description
          "Tagged interface.";
        uses ac-common:dot1q;
      }
      container qinq {
        when "derived-from-or-self(../type, 'vpn-common:qinq')" {
          description
            "Only applies when the type of the tagged interface
             is 'qinq'.";
        }
        description
          "Includes QinQ parameters.";
        uses ac-common:qinq;
      }
    }
  }

  // Full Layer 2 connection

  grouping l2-connection {
    description
      "Defines Layer 2 protocols and parameters that are used to
       enable AC connectivity.";
    container encapsulation {
      description
        "Container for Layer 2 encapsulation.";
      leaf type {
        type identityref {
          base vpn-common:encapsulation-type;
        }
        description
          "Indicates the encapsulation type.";
      }
      container dot1q {
        when "derived-from-or-self(../type, 'vpn-common:dot1q')" {
          description
            "Only applies when the type of the tagged interface
             is 'dot1q'.";
        }
        description
          "Tagged interface.";
        uses ac-common:dot1q;
      }
      container priority-tagged {
        when "derived-from-or-self(../type, "
           + "'vpn-common:priority-tagged')" {
          description
            "Only applies when the type of the tagged interface is
             'priority-tagged'.";
        }
        description
          "Priority-tagged interface.";
        uses ac-common:priority-tagged;
      }
      container qinq {
        when "derived-from-or-self(../type, 'vpn-common:qinq')" {
          description
            "Only applies when the type of the tagged interface
             is 'qinq'.";
        }
        description
          "Includes QinQ parameters.";
        uses ac-common:qinq;
      }
    }
    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.
           It is only applicable when a tunnel is required.";
        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.";
        }
      }
    }
    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.";
    }
  }

  // Basic IP connection

  grouping ip-connection-basic {
    description
      "Defines basic IP connection parameters.";
    container ipv4 {
      if-feature "vpn-common:ipv4";
      description
        "IPv4-specific parameters.";
      uses ac-common:ipv4-connection-basic;
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific parameters.";
      uses ac-common:ipv6-connection-basic;
    }
  }

  // Full IP connection

  grouping ip-connection {
    description
      "Defines IP connection parameters.";
    container ipv4 {
      if-feature "vpn-common:ipv4";
      description
        "IPv4-specific parameters.";
      uses ac-common:ipv4-connection {
        augment ac-svc:allocation-type/static-addresses/address {
          leaf failure-detection-profile {
            if-feature "vpn-common:bfd";
            type failure-detection-profile-reference;
            description
              "Points to a failure detection profile.";
          }
          description
            "Adds a failure detection profile.";
        }
      }
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific parameters.";
      uses ac-common:ipv6-connection {
        augment ac-svc:allocation-type/static-addresses/address {
          leaf failure-detection-profile {
            if-feature "vpn-common:bfd";
            type failure-detection-profile-reference;
            description
              "Points to a failure detection profile.";
          }
          description
            "Adds a failure detection profile.";
        }
      }
    }
  }

  // Routing protocol list

  grouping routing-protocol-list {
    description
      "List of routing protocols used on the AC.";
    leaf type {
      type identityref {
        base vpn-common:routing-protocol-type;
      }
      description
        "Type of routing protocol.";
    }
    list routing-profiles {
      key "id";
      description
        "Routing profiles.";
      leaf id {
        type routing-profile-reference;
        description
          "Reference to the routing profile to be used.";
      }
      leaf type {
        type identityref {
          base vpn-common:ie-type;
        }
        description
          "Import, export, or both.";
      }
    }
  }

  // Static routing with BFD

  grouping ipv4-static-rtg-with-bfd {
    description
      "Configuration specific to IPv4 static routing with
       failure protection (e.g., BFD).";
    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;
      leaf failure-detection-profile {
        if-feature "vpn-common:bfd";
        type failure-detection-profile-reference;
        description
          "Points to a failure detection profile.";
      }
      uses ac-common:service-status;
    }
  }

  grouping ipv6-static-rtg-with-bfd {
    description
      "Configuration specific to IPv6 static routing with
       failure protection (e.g., BFD).";
    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;
      leaf failure-detection-profile {
        if-feature "vpn-common:bfd";
        type failure-detection-profile-reference;
        description
          "Points to a failure detection profile.";
      }
      uses ac-common:service-status;
    }
  }

  //  BGP Service 

  grouping bgp-neighbor-without-name {
    description
      "A grouping with generic parameters for configuring a BGP 
       neighbor.";
    leaf remote-address {
      type inet:ip-address;
      description
        "The remote IP address of this entry's BGP peer. This is
         a customer IP address.

         If this leaf is not present, this means that the primary
         customer IP address is used as remote IP address.";
    }
    leaf local-address {
      type inet:ip-address;
      description
        "The provider's IP address that will be used to establish
         the BGP session.";
    }
    uses ac-common:bgp-peer-group-without-name;
    container bgp-max-prefix {
      description
        "A container for the maximum number of BGP prefixes
         allowed in the BGP session.";
      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.";
        reference
          "RFC 4271: A Border Gateway Protocol 4 (BGP-4),
                     Section 8.2.2";
      }
    }
    uses ac-common:bgp-authentication;
    uses ac-common:op-instructions;
    uses ac-common:service-status;
  }

  grouping bgp-neighbor-with-name {
    description
      "A grouping with generic parameters for configuring a BGP 
       neighbor with an identifier.";
    leaf id {
      type string;
      description
        "An identifier that uniquely identifies a neighbor.";
    }
    uses ac-svc:bgp-neighbor-without-name;
  }

  grouping bgp-neighbor-with-server-reference {
    description
      "A grouping with generic parameters for configuring a BGP 
       neighbor with a reference generated by the provider.";
    leaf server-reference {
      if-feature "ac-common:server-assigned-reference";
      type string;
      config false;
      description
        "This is an internal reference for the service provider
         to identify the BGP session.";
    }
    uses ac-svc:bgp-neighbor-without-name;
  }

  grouping bgp-neighbor-with-name-server-reference {
    description
      "A grouping with generic parameters for configuring a BGP 
       neighbor with an identifier and a reference generated by 
       the provider.";
    leaf id {
      type string;
      description
        "An identifier that uniquely identifiers a neighbor.";
    }
    uses ac-svc:bgp-neighbor-with-server-reference;
  }

  grouping bgp-svc {
    description
      "Configuration specific to BGP.";
    container peer-groups {
      description
        "Configuration for BGP peer-groups";
      list peer-group {
        key "name";
        description
          "List of BGP peer-groups configured on the local 
           system - uniquely identified by peer-group
           name.";
        uses ac-common:bgp-peer-group-with-name;
        leaf local-address {
          type inet:ip-address;
          description
            "The provider's local IP address that will be used to
             establish the BGP session.";
        }
        container bgp-max-prefix {
          description
            "A container for the maximum number of BGP prefixes
             allowed in the BGP session.";
          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.";
            reference
              "RFC 4271: A Border Gateway Protocol 4 (BGP-4),
                         Section 8.2.2";
          }
        }
        uses ac-common:bgp-authentication;
      }
    }
    list neighbor {
      key "id";
      description
        "List of BGP neighbors.";
      uses ac-svc:bgp-neighbor-with-name-server-reference;
      leaf peer-group {
        type leafref {
          path "../../peer-groups/peer-group/name";
        }
        description
          "The peer-group with which this neighbor is associated.";
      }
      leaf failure-detection-profile {
        if-feature "vpn-common:bfd";
        type failure-detection-profile-reference;
        description
          "Points to a failure detection profile.";
      }
    }
  }

  //  OSPF Service 

  grouping ospf-svc {
    description
      "Service configuration specific to OSPF.";
    uses ac-common:ospf-basic;
    uses ac-common:ospf-authentication;
    uses ac-common:service-status;
  }

  //  IS-IS Service 

  grouping isis-svc {
    description
      "Service configuration specific to IS-IS.";
    uses ac-common:isis-basic;
    uses ac-common:isis-authentication;
    uses ac-common:service-status;
  }

  //  RIP Service 

  grouping rip-svc {
    description
      "Service 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.";
    }
    uses ac-common:rip-authentication;
    uses ac-common:service-status;
  }

  //  VRRP Service 

  grouping vrrp-svc {
    description
      "Service 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.";
    }
    uses ac-common:service-status;
  }

  // Basic routing parameters

  grouping routing-basic {
    description
      "Defines basic parameters for routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      uses routing-protocol-list;
      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";
          list peer-group {
            key "name";
            description
              "List of BGP peer-groups configured on the local
               system - uniquely identified by peer-group
               name.";
            uses ac-common:bgp-peer-group-with-name;
          }
        }
      }
      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 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;
      }
      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.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both
             address families are to be activated.";
        }
      }
      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.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families
             are to be enabled.";
        }
      }
    }
  }

  // Full routing parameters

  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.";
      }
      uses routing-protocol-list;
      container static {
        when "derived-from-or-self(../type, "
           + "'vpn-common:static-routing')" {
          description
            "Only applies when the protocol is static routing
             protocol.";
        }
        description
          "Configuration specific to static routing.";
        container cascaded-lan-prefixes {
          description
            "LAN prefixes from the customer.";
          uses ipv4-static-rtg-with-bfd;
          uses ipv6-static-rtg-with-bfd;
        }
      }
      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.";
        uses bgp-svc;
      }
      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 ospf-svc;
      }
      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 isis-svc;
      }
      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-svc;
      }
      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.";
        uses vrrp-svc;
      }
    }
  }

  // Encryption choice

  grouping encryption-choice {
    description
      "Container for the encryption profile.";
    choice profile {
      description
        "Choice for the encryption profile.";
      case provider-profile {
        leaf provider-profile {
          type encryption-profile-reference;
          description
            "Reference to a provider encryption profile.";
        }
      }
      case customer-profile {
        leaf customer-key-chain {
          type key-chain:key-chain-ref;
          description
            "Customer-supplied key chain.";
        }
      }
    }
  }

  // Basic security parameters

  grouping ac-security-basic {
    description
      "AC-specific security parameters.";
    container encryption {
      if-feature "vpn-common:encryption";
      description
        "Container for AC security 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.";
      uses encryption-choice;
    }
  }

  // Bandwith parameters

  grouping bandwidth {
    description
      "Container for bandwidth.";
    container svc-pe-to-ce-bandwidth {
      if-feature "vpn-common:inbound-bw";
      description
        "From the customer site's perspective, the inbound
         bandwidth of the AC or download bandwidth from the
         service provider to the site.";
      uses ac-common:bandwidth-per-type;
    }
    container svc-ce-to-pe-bandwidth {
      if-feature "vpn-common:outbound-bw";
      description
        "From the customer site's perspective, the outbound
         bandwidth of the AC or upload bandwidth from
         the CE to the PE.";
      uses ac-common:bandwidth-per-type;
    }
  }

  // Basic AC parameters

  grouping ac-basic {
    description
      "Grouping for basic parameters for an attachment circuit.";
    leaf name {
      type string;
      description
        "A name that uniquely identifies the 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-basic;
    }
    container ip-connection {
      if-feature "ac-common:layer3-ac";
      description
        "Defines IP connection parameters.";
      uses ip-connection-basic;
    }
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing-basic;
    }
    container oam {
      description
        "Defines the Operations, Administration, and Maintenance
         (OAM) mechanisms used.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        uses ac-common:bfd;
      }
    }
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security-basic;
    }
    container service {
      description
        "AC-specific bandwith parameters.";
      leaf mtu {
        type uint32;
        units "bytes";
        description
          "Layer 2 MTU.";
      }
      uses bandwidth;
    }
  }


  // Full AC parameters

  grouping ac {
    description
      "Grouping for an attachment circuit.";
    leaf name {
      type string;
      description
        "A name of the AC. Data models that need to reference  
         an attachment circuit should use 
         attachment-circuit-reference.";
    }
    leaf-list service-profile {
      type service-profile-reference;
      description
        "A reference to a service profile.";
    }
    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;
    }
    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.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        list session {
          key "id";
          description
            "List of BFD sessions.";
          leaf id {
             type string;
             description
               "A unique identifer for the BFD session.";
          }
          leaf local-address {
            type inet:ip-address;
            description
              "Provider's IP address of the BFD session.";
          }
          leaf remote-address {
            type inet:ip-address;
            description
              "Customer's IP address of the BFD session.";
          }
          leaf profile {
            type failure-detection-profile-reference;
            description
              "Points to a BFD profile.";
          }
          uses ac-common:bfd;
          uses ac-common:service-status;
        } 
      }
    }
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security-basic;
    }
    container service {
      description
        "AC-specific bandwith parameters.";
      leaf mtu {
        type uint32;
        units "bytes";
        description
          "Layer 2 MTU.";
      }
      uses bandwidth;
      container qos {
        if-feature "vpn-common:qos";
        description
          "QoS configuration.";
        container qos-profiles {
          description
            "QoS profile configuration.";
          list qos-profile {
            key "profile";
            description
              "Points to a QoS profile.";
            leaf profile {
              type qos-profile-reference;
              description
                "QoS profile to be used.";
            }
            leaf direction {
              type identityref {
                base vpn-common:qos-profile-direction;
              }
              description
                "The direction to which the QoS profile
                 is applied.";
            }
          }
        }
      }
      container access-control-list {
        description
          "Container for the Access Control List (ACL).";
        container acl-profiles {
          description
            "ACL profile configuration.";
          list acl-profile {
            key "profile";
            description
              "Points to an ACL profile.";
            leaf profile {
              type forwarding-profile-reference;
              description
                "Forwarding profile to be used.";
            }
          }
        }
      }
    }
  }

  // Parent and Child ACs

  grouping ac-hierarchy {
    description
      "Container for parent and child AC references.";
    leaf-list ac-parent-ref {
      type ac-svc:attachment-circuit-reference;
      description
        "Specifies a parent AC that is inherited by an AC.
         In contexts where dynamic terminating points are 
         bound to the same AC, a parent AC with stable
         information is created with a set of child ACs
         to track dynamic AC information.";
    }
    leaf-list ac-child-ref {
      type ac-svc:attachment-circuit-reference;
      config false;
      description
        "Specifies a child AC that relies upon a parent AC.";
    }
  }

  /******************** Main AC containers ********************/

  container specific-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    uses ac-common:ac-profile-cfg;
  }
  container service-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    list service-profile-identifier {
      key "id";
      description
        "List of generic service profile identifiers.";
      leaf id {
        type string;
        description
          "Identification of the service profile to be used.
           The profile only has significance within the service
           provider's administrative domain.";
      }
    }
    nacm:default-deny-write;
  }
  container attachment-circuits {
    description
      "Main container for the attachment circuits.";
    list ac-group-profile {
      key "name";
      description
        "Maintains a list of profiles that are shared among
         a set of ACs.";
      uses ac;
    }
    container placement-constraints {
      description
        "Diversity constraint type.";
      uses vpn-common:placement-constraints;
    }
    leaf customer-name {
      type string;
      description
        "Indicates the name of the customer that requested these
         ACs.";
    }
    uses ac-common:op-instructions;
    list ac {
      key "name";
      description
        "Global provisioning of attachment circuits.";
      leaf customer-name {
        type string;
        description
          "Indicates the name of the customer that requested this
           AC.";
      }
      leaf description {
        type string;
        description
          "Associates a description with an AC.";
      }
      leaf test-only {
        type empty;
        description
         "When present, this indicates that this is a feasibility
          check request. No resources are commited for such AC 
          requests.";
      }
      uses ac-common:op-instructions;
      leaf role {
        type identityref {
          base ac-common:role;
        }
        description
          "Indicates whether this AC is used as UNI, NNI, etc.";
      }
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      leaf-list ac-group-profile-ref {
        type ac-group-reference;
        description
          "A reference to an AC profile.";
      }
      uses ac-hierarchy;
      uses ac-common:redundancy-group;
      list service-ref {
        key "service-type service-id";
        config false;
        description
          "Reports the set of services that are bound to the AC.";
        leaf service-type {
          type identityref {
            base vpn-common:service-type;
          }
          description
            "Indicates the service type (e.g., L3VPN or Network Slice
             Service).";
          reference
            "RFC 9408: A YANG Network Data Model for Service 
                       Attachment Points (SAPs), Section 5";
        }
        leaf service-id {
          type string;
          description
            "Indicates an identifier of a service instance
             of a given type that uses the AC.";
        }
      }
      leaf server-reference {
        if-feature "ac-common:server-assigned-reference";
        type string;
        config false;
        description
          "Reports an internal reference for the service provider
           to identify the AC.";
      }
      uses ac;
    }
  }
}
<CODE ENDS>
]]></sourcecode>
      </section>
    </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 modules specified in this document defines a data model that is
   designed to be accessed via YANG-based management protocols, such as
   NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have to
   use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
   QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in these YANG modules 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 in the "ietf-bearer-svc" module:</t>
      <dl>
        <dt>'placement-constraints':</dt>
        <dd>
          <t>An attacker who is able to access this data node can modify the
   attributes to influence how a service is delivered to a customer, and
   this leads to Service Level Agreement (SLA) violations.</t>
        </dd>
        <dt>'bearer':</dt>
        <dd>
          <t>An attacker who is able to access this data node can modify
   the attributes of bearer and, thus, hinder how ACs are built.</t>
        </dd>
        <dt/>
        <dd>
          <t>In addition, an attacker could attempt to add a new bearer or
   delete existing ones. An attacker may also change the requested
   type, whether it is for test-only, or the activation scheduling.</t>
        </dd>
      </dl>
      <t>The following subtrees and data nodes have particular
sensitivities/vulnerabilities in the "ietf-ac-svc" module:</t>
      <dl>
        <dt>'specific-provisioning-profiles':</dt>
        <dd>
          <t>This container includes a set of sensitive data that influence
 how an AC will be delivered. For example, an attacker who has access
 to these data nodes may be able to manipulate routing policies, QoS
 policies, or encryption properties.</t>
        </dd>
        <dt/>
        <dd>
          <t>These profiles are defined with "nacm:default-deny-write"
 tagging <xref target="I-D.ietf-opsawg-teas-common-ac"/>.</t>
        </dd>
        <dt>'service-provisioning-profiles':</dt>
        <dd>
          <t>An attacker who has access to these data nodes may be able
   to manipulate service-specific policies to be applied for an AC.</t>
        </dd>
        <dt/>
        <dd>
          <t>This container is defined with "nacm:default-deny-write" tagging.</t>
        </dd>
        <dt>'ac':</dt>
        <dd>
          <t>An attacker who is able to access this data node can modify
   the attributes of an AC (e.g., QoS, bandwidth, routing protocols,
   keying material), leading to malfunctioning of services that will
   be delivered over that AC and therefore to SLA violations.
   In addition, an attacker could attempt to add a new AC.</t>
        </dd>
      </dl>
      <t>Some of the readable data nodes in these YANG modules 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 in the "ietf-bearer-svc" module:</t>
      <dl>
        <dt>'customer-point' and 'locations':</dt>
        <dd>
          <t>An attacker can retrieve privacy-related information about locations from where
 the customer is connected or can be serviced. Disclosing such information may be used to infer
 the identity of the customer.</t>
        </dd>
      </dl>
      <t>The following subtrees and data nodes have particular
sensitivities/vulnerabilities in the "ietf-ac-svc" module:</t>
      <dl>
        <dt>'customer-name', '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 the underlying connectivity services (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 service 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 service 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 URIs in the "ns" subregistry within
   the "IETF XML Registry" <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-bearer-svc
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.

   URI:  urn:ietf:params:xml:ns:yang:ietf-ac-svc
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG modules in the "YANG Module
   Names" subregistry <xref target="RFC6020"/> within the "YANG Parameters" registry.</t>
      <artwork><![CDATA[
   Name:  ietf-bearer-svc
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-bearer-svc
   Prefix:  bearer-svc
   Reference:  RFC xxxx

   Name:  ietf-ac-svc
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-ac-svc
   Prefix:  ac-svc
   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="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="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="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="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="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="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="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="RFC9182">
          <front>
            <title>A YANG Network Data Model for Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="L. Munoz" initials="L." surname="Munoz"/>
            <author fullname="A. Aguado" initials="A." surname="Aguado"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>As a complement to the Layer 3 Virtual Private Network Service Model (L3SM), which is used for communication between customers and service providers, this document defines an L3VPN Network Model (L3NM) that can be used for the provisioning of Layer 3 Virtual Private Network (L3VPN) services within a service provider network. The model provides a network-centric view of L3VPN services.</t>
              <t>The L3NM is meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices. The model can also facilitate communication between a service orchestrator and a network controller/orchestrator.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9182"/>
          <seriesInfo name="DOI" value="10.17487/RFC9182"/>
        </reference>
        <reference anchor="RFC9291">
          <front>
            <title>A YANG Network Data Model for Layer 2 VPNs</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="L. Munoz" initials="L." surname="Munoz"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document defines an L2VPN Network Model (L2NM) that can be used to manage the provisioning of Layer 2 Virtual Private Network (L2VPN) services within a network (e.g., a service provider network). The L2NM complements the L2VPN Service Model (L2SM) by providing a network-centric view of the service that is internal to a service provider. The L2NM is particularly meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices.</t>
              <t>Also, this document defines a YANG module to manage Ethernet segments and the initial versions of two IANA-maintained modules that include a set of identities of BGP Layer 2 encapsulation types and pseudowire types.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9291"/>
          <seriesInfo name="DOI" value="10.17487/RFC9291"/>
        </reference>
        <reference anchor="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="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="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-svc-Tree" target="https://github.com/boucadair/attachment-circuit-model/blob/main/yang/full-trees/ac-svc-without-groupings.txt">
          <front>
            <title>Full ACaaS Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="Instance-Data" target="https://github.com/boucadair/attachment-circuit-model/blob/main/xml-examples/svc-full-instance.xml">
          <front>
            <title>Example of AC SVC Instance Data</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="PYANG" target="https://github.com/mbj4668/pyang">
          <front>
            <title>pyang</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="IEEE802.1AB" target="https://standards.ieee.org/ieee/802.1AB/6047/">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks - Station and Media Access Control Connectivity Discovery</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2016" month="January"/>
          </front>
        </reference>
        <reference anchor="IEEE802.1AX" target="https://doi.org/10.1109/IEEESTD.2020.9105034">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks--Link Aggregation</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2020" month="May"/>
          </front>
        </reference>
        <reference anchor="ITU-T-G.781" target="https://www.itu.int/rec/T-REC-G.781">
          <front>
            <title>Synchronization layer functions for frequency synchronization based on the physical layer</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2024" month="January"/>
          </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-ntw-attachment-circuit">
          <front>
            <title>A Network 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="5" month="September" year="2024"/>
            <abstract>
              <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).

   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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ntw-attachment-circuit-13"/>
        </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="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="RFC8921">
          <front>
            <title>Dynamic Service Negotiation: The Connectivity Provisioning Negotiation Protocol (CPNP)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="P. Georgatsos" initials="P." surname="Georgatsos"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>This document defines the Connectivity Provisioning Negotiation Protocol (CPNP), which is designed to facilitate the dynamic negotiation of service parameters.</t>
              <t>CPNP is a generic protocol that can be used for various negotiation purposes that include (but are not necessarily limited to) connectivity provisioning services, storage facilities, Content Delivery Networks, etc.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8921"/>
          <seriesInfo name="DOI" value="10.17487/RFC8921"/>
        </reference>
        <reference anchor="I-D.ramseyer-grow-peering-api">
          <front>
            <title>Peering API</title>
            <author fullname="Carlos Aguado" initials="C." surname="Aguado">
              <organization>Amazon</organization>
            </author>
            <author fullname="Matt Griswold" initials="M." surname="Griswold">
              <organization>FullCtl</organization>
            </author>
            <author fullname="Jenny Ramseyer" initials="J." surname="Ramseyer">
              <organization>Meta</organization>
            </author>
            <author fullname="Arturo L. Servin" initials="A. L." surname="Servin">
              <organization>Google</organization>
            </author>
            <author fullname="Tom Strickx" initials="T." surname="Strickx">
              <organization>Cloudflare</organization>
            </author>
            <date day="30" month="May" year="2024"/>
            <abstract>
              <t>   We propose an API standard for BGP Peering, also known as interdomain
   interconnection through global Internet Routing.  This API offers a
   standard way to request public (settlement-free) peering, verify the
   status of a request or BGP session, and list potential connection
   locations.  The API is backed by PeeringDB OIDC, the industry
   standard for peering authentication.  We also propose future work to
   cover private peering, and alternative authentication methods.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ramseyer-grow-peering-api-05"/>
        </reference>
        <reference anchor="RFC8309">
          <front>
            <title>Service Models Explained</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions.</t>
              <t>A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049).</t>
              <t>This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture. Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8309"/>
          <seriesInfo name="DOI" value="10.17487/RFC8309"/>
        </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="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-model">
          <front>
            <title>YANG Model for Border Gateway Protocol (BGP-4)</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Kloud Services</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Susan Hares" initials="S." surname="Hares">
              <organization>Huawei</organization>
            </author>
            <author fullname="Jeffrey Haas" initials="J." surname="Haas">
              <organization>Juniper Networks</organization>
            </author>
            <date day="5" month="July" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for configuring and managing
   BGP, including protocol, policy, and operational aspects, such as
   RIB, based on data center, carrier, and content provider operational
   requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-model-17"/>
        </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="RFC4026">
          <front>
            <title>Provider Provisioned Virtual Private Network (VPN) Terminology</title>
            <author fullname="L. Andersson" initials="L." surname="Andersson"/>
            <author fullname="T. Madsen" initials="T." surname="Madsen"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The widespread interest in provider-provisioned Virtual Private Network (VPN) solutions lead to memos proposing different and overlapping solutions. The IETF working groups (first Provider Provisioned VPNs and later Layer 2 VPNs and Layer 3 VPNs) have discussed these proposals and documented specifications. This has lead to the development of a partially new set of concepts used to describe the set of VPN services.</t>
              <t>To a certain extent, more than one term covers the same concept, and sometimes the same term covers more than one concept. This document seeks to make the terminology in the area clearer and more intuitive. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4026"/>
          <seriesInfo name="DOI" value="10.17487/RFC4026"/>
        </reference>
        <reference anchor="RFC7607">
          <front>
            <title>Codification of AS 0 Processing</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="H. Schiller" initials="H." surname="Schiller"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="August" year="2015"/>
            <abstract>
              <t>This document updates RFC 4271 and proscribes the use of Autonomous System (AS) 0 in the Border Gateway Protocol (BGP) OPEN, AS_PATH, AS4_PATH, AGGREGATOR, and AS4_AGGREGATOR attributes in the BGP UPDATE message.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7607"/>
          <seriesInfo name="DOI" value="10.17487/RFC7607"/>
        </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="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="27" month="September" 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-17"/>
        </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="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="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="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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8695">
          <front>
            <title>A YANG Data Model for the Routing Information Protocol (RIP)</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="P. Sarda" initials="P." surname="Sarda"/>
            <author fullname="V. Choudhary" initials="V." surname="Choudhary"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes a data model for the management of the Routing Information Protocol (RIP). Both RIP version 2 and RIPng are covered. The data model includes definitions for configuration, operational state, and Remote Procedure Calls (RPCs).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8695"/>
          <seriesInfo name="DOI" value="10.17487/RFC8695"/>
        </reference>
        <reference anchor="I-D.ietf-teas-ietf-network-slice-nbi-yang">
          <front>
            <title>A YANG Data Model for the RFC 9543 Network Slice Service</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Reza Rokui" initials="R." surname="Rokui">
              <organization>Ciena</organization>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems, Inc</organization>
            </author>
            <author fullname="John Mullooly" initials="J." surname="Mullooly">
              <organization>Cisco Systems, Inc</organization>
            </author>
            <date day="28" month="August" year="2024"/>
            <abstract>
              <t>   This document defines a YANG data model for RFC 9543 Network Slice
   Service.  The model can be used in the Network Slice Service
   interface between a customer and a provider that offers RFC 9543
   Network Slice Services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slice-nbi-yang-16"/>
        </reference>
        <reference anchor="RFC6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="L. Chen" initials="L." surname="Chen"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm. It also updates the security considerations for HMAC-MD5. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6952">
          <front>
            <title>Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="L. Zheng" initials="L." surname="Zheng"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This document analyzes TCP-based routing protocols, the Border Gateway Protocol (BGP), the Label Distribution Protocol (LDP), the Path Computation Element Communication Protocol (PCEP), and the Multicast Source Distribution Protocol (MSDP), according to guidelines set forth in Section 4.2 of "Keying and Authentication for Routing Protocols Design Guidelines", RFC 6518.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6952"/>
          <seriesInfo name="DOI" value="10.17487/RFC6952"/>
        </reference>
        <reference anchor="RFC0826">
          <front>
            <title>An Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware</title>
            <author fullname="D. Plummer" initials="D." surname="Plummer"/>
            <date month="November" year="1982"/>
            <abstract>
              <t>The purpose of this RFC is to present a method of Converting Protocol Addresses (e.g., IP addresses) to Local Network Addresses (e.g., Ethernet addresses). This is an issue of general concern in the ARPA Internet Community at this time. The method proposed here is presented for your consideration and comment. This is not the specification of an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="37"/>
          <seriesInfo name="RFC" value="826"/>
          <seriesInfo name="DOI" value="10.17487/RFC0826"/>
        </reference>
        <reference anchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
      </references>
    </references>
    <?line 3682?>

<section anchor="examples">
      <name>Examples</name>
      <t>This section includes a non-exhaustive list of examples to illustrate the use of the service models defined in this document. An example instance data can also be found at <xref target="Instance-Data"/>.</t>
      <section anchor="ex-create-bearer">
        <name>Create a New Bearer</name>
        <t>An example of a request message body to create a bearer is shown in <xref target="create-bearer"/>.</t>
        <figure anchor="create-bearer">
          <name>Example of a Message Body to Create a New Bearer</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "name": "a-name-choosen-by-client",
        "description": "A bearer example",
        "customer-point": {
          "identified-by": "ietf-bearer-svc:device-id",
          "device": {
            "device-id": "CE_X_SITE_Y"
          }
        },
        "type": "ietf-bearer-svc:ethernet"
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t>A "bearer-reference" is then generated by the controller for this bearer. <xref target="get-bearer"/> shows the example of a response message body that is sent by the controller to reply to a GET request:</t>
        <figure anchor="get-bearer">
          <name>Example of a Response Message Body with the Bearer Reference</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "name": "a-name-choosen-by-client",
        "description": "A bearer example",
        "sync-phy-capable": true,
        "customer-point": {
          "identified-by": "ietf-bearer-svc:device-id",
          "device": {
            "device-id": "CE_X_SITE_Y"
          }
        },
        "type": "ietf-bearer-svc:ethernet",
        "bearer-reference": "line-156"
      }
    ]
  }
}
  
]]></sourcecode>
        </figure>
        <t>Note that the response also indicates that Sync Phy mechanism is supported for this bearer.</t>
      </section>
      <section anchor="ac-bearer-exist">
        <name>Create an AC over an Existing Bearer</name>
        <t>An example of a request message body to create a simple AC over an existing bearer is shown in <xref target="ac-b"/>. The bearer reference is assumed to be known to both the customer and the network provider. Such a reference can be retrieved, e.g., following the example described in <xref target="ex-create-bearer"/> or using other means (including, exchanged out-of-band or via proprietary APIs).</t>
        <figure anchor="ac-b">
          <name>Example of a Message Body to Request an AC over an Existing Bearer</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="ac-br"/> shows the message body of a GET response received from the controller and which indicates the "cvlan-id" that was assigned for the requested AC.</t>
        <figure anchor="ac-br">
          <name>Example of a Message Body of a Response to Assign a CVLAN ID</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "actual-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="ac-no-bearer-peer-sap">
        <name>Create an AC for a Known Peer SAP</name>
        <t>An example of a request to create a simple AC, when the peer SAP is known, is shown in <xref target="ac-known-ps"/>. In this example, the peer SAP identifier points to an identifier of an SF. The (topological) location of that SF is assumed to be known to the network controller. For example, this can be determined as part of an on-demand procedure to instantiate an SF in a cloud. That instantiated SF can be granted a connectivity service via the provider network.</t>
        <figure anchor="ac-known-ps">
          <name>Example of a Message Body to Request an AC with a Peer SAP</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC for a known peer SAP",
        "requested-start": "2025-12-12T05:00:00.00Z",
        "peer-sap-id": [
          "nf-termination-ip"
        ]
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="ac-known-ps-res"/> shows the received GET response with the required informaiton to connect the SF.</t>
        <figure anchor="ac-known-ps-res">
          <name>Example of a Message Body of a Response to Create an AC with a Peer SAP</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC for a known peer SAP",
        "actual-start": "2025-12-12T05:00:00.00Z",
        "peer-sap-id": [
          "nf-termination-ip"
        ],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          }
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-ex-one-ce-multi-acs">
        <name>One CE, Two ACs</name>
        <t>Let us consider the example of an eNodeB (CE) that is directly connected to the access routers of the mobile backhaul (see <xref target="enodeb"/>). In this example, two ACs are needed to service the eNodeB (e.g., distinct VLANs for Control and User Planes).</t>
        <figure anchor="enodeb">
          <name>Example of a CE-PE ACs</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="432" viewBox="0 0 432 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,160" fill="none" stroke="black"/>
                <path d="M 120,32 L 120,160" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,224" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,224" fill="none" stroke="black"/>
                <path d="M 8,32 L 120,32" fill="none" stroke="black"/>
                <path d="M 272,32 L 424,32" fill="none" stroke="black"/>
                <path d="M 120,64 L 184,64" fill="none" stroke="black"/>
                <path d="M 216,64 L 272,64" fill="none" stroke="black"/>
                <path d="M 120,112 L 184,112" fill="none" stroke="black"/>
                <path d="M 216,112 L 272,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 120,160" fill="none" stroke="black"/>
                <path d="M 272,224 L 424,224" fill="none" stroke="black"/>
                <g class="text">
                  <text x="292" y="52">PE</text>
                  <text x="200" y="68">ac1</text>
                  <text x="328" y="68">192.0.2.1</text>
                  <text x="60" y="84">eNodeB</text>
                  <text x="220" y="84">VLAN</text>
                  <text x="248" y="84">1</text>
                  <text x="336" y="84">2001:db8::1</text>
                  <text x="220" y="100">VLAN</text>
                  <text x="248" y="100">2</text>
                  <text x="200" y="116">ac2</text>
                  <text x="156" y="148">Direct</text>
                  <text x="160" y="164">Routing</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
.-------------.                  .------------------.
|             |                  | PE               |
|             +--------ac1-------+  192.0.2.1       |
|   eNodeB    |          VLAN 1  |  2001:db8::1     |
|             |          VLAN 2  |                  |
|             +--------ac2-------+                  |
|             |                  |                  |
|             | Direct           |                  |
'-------------' Routing          |                  |
                                 |                  |
                                 |                  |
                                 |                  |
                                 '------------------'
]]></artwork>
          </artset>
        </figure>
        <t>An example of a request to create the ACs to service the eNodeB is shown in <xref target="two-acs-same-ce"/>. This example assumes that static addressing is used for both ACs.</t>
        <figure anchor="two-acs-same-ce">
          <name>Example of a Message Body to Request Two ACs on the Same Link (Not Recommended)</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          },
          "ipv6": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          },
          "ipv6": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="two-acs-same-ce-res"/> shows the message body of a GET response received from the controller.</t>
        <figure anchor="two-acs-same-ce-res">
          <name>Example of a Message Body of a Response to Create Two ACs on the Same Link (Not Recommended)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 2
            }
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t>The example shown <xref target="two-acs-same-ce-res"/> is not optimal as it includes many redundant data. <xref target="two-acs-same-ce-node-profile"/> shows a more compact request that factorizes all the redundant data.</t>
        <figure anchor="two-acs-same-ce-node-profile">
          <name>Example of a Message Body to Request Two ACs on the Same Link (Node Profile)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "name": "simple-node-profile",
        "l2-connection": {
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "ac-group-profile-ref": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-group-profile-ref": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 2
            }
          }
        }
     }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t>A customer may request adding a new AC by simply referring to an existing per-node AC profile as shown in <xref target="add-ac-same-ce-node-profile"/>. This AC inherits all the data that was enclosed in the indicated per-node AC profile (IP addressing, routing, etc.).</t>
        <figure anchor="add-ac-same-ce-node-profile">
          <name>Example of a Message Body to Add a new AC over an existing link (Node Profile)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "name": "simple-node-profile"
      }
    ],
    "ac": [
      {
        "name": "ac3",
        "description": "a third AC with a same peer node",
        "ac-group-profile-ref": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 3
            }
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-ex-prec">
        <name>Control Precedence over Multiple ACs</name>
        <t>When multiple ACs are requested by the same customer for the same site, the request can tag one of these ACs as "primary" and the other ones as "secondary". An example of such a request is shown in <xref target="ac-precedence"/>. In this example, both ACs are bound to the same "group-id", and the "precedence" data node is set as a function of the intended role of each AC (primary or secondary).</t>
        <figure anchor="multipleac">
          <name>An Example Topology for AC Precedence Enforcement</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="312" viewBox="0 0 312 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,80 L 8,144" fill="none" stroke="black"/>
                <path d="M 40,80 L 40,144" fill="none" stroke="black"/>
                <path d="M 104,64 L 104,96" fill="none" stroke="black"/>
                <path d="M 104,128 L 104,160" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,96" fill="none" stroke="black"/>
                <path d="M 272,128 L 272,192" fill="none" stroke="black"/>
                <path d="M 304,32 L 304,96" fill="none" stroke="black"/>
                <path d="M 304,128 L 304,192" fill="none" stroke="black"/>
                <path d="M 272,32 L 304,32" fill="none" stroke="black"/>
                <path d="M 104,64 L 272,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 40,80" fill="none" stroke="black"/>
                <path d="M 40,96 L 104,96" fill="none" stroke="black"/>
                <path d="M 272,96 L 304,96" fill="none" stroke="black"/>
                <path d="M 40,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 272,128 L 304,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 40,144" fill="none" stroke="black"/>
                <path d="M 104,160 L 272,160" fill="none" stroke="black"/>
                <path d="M 272,192 L 304,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="156" y="52">ac1:</text>
                  <text x="208" y="52">primary</text>
                  <text x="288" y="68">PE1</text>
                  <text x="192" y="84">bearerX@site1</text>
                  <text x="20" y="116">CE</text>
                  <text x="156" y="148">ac2:</text>
                  <text x="216" y="148">secondary</text>
                  <text x="288" y="164">PE2</text>
                  <text x="192" y="180">bearerY@site1</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                                 .---.
                 ac1: primary    |   |
            .--------------------+PE1|
.---.       |    bearerX@site1   |   |
|   +-------'                    '---'
|CE |
|   +-------.                    .---.
'---'       |    ac2: secondary  |   |
            '--------------------+PE2|
                 bearerY@site1   |   |
                                 '---'
]]></artwork>
          </artset>
        </figure>
        <figure anchor="ac-precedence">
          <name>Example of a Message Body to Associate a Precedence Level with ACs</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "An example to illustrate AC precedence usage\
                                                                   ",
        "group": [
          {
            "group-id": "1",
            "precedence": "ietf-ac-common:primary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerX@site1"
        }
      },
      {
        "name": "ac2",
        "description": "An AC example to illustrate AC precedence \
                                                              usage",
        "group": [
          {
            "group-id": "1",
            "precedence": "ietf-ac-common:secondary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerY@site1"
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-multiple-ces">
        <name>Create Multiple ACs Bound to Multiple CEs</name>
        <t><xref target="network-example"/> shows an example of CEs that are interconnected by a service provider network.</t>
        <figure anchor="network-example">
          <name>Network Topology Example</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="504" viewBox="0 0 504 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
                <path d="M 48,48 L 48,80" fill="none" stroke="black"/>
                <path d="M 48,112 L 48,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,160" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,160" fill="none" stroke="black"/>
                <path d="M 456,48 L 456,80" fill="none" stroke="black"/>
                <path d="M 456,112 L 456,144" fill="none" stroke="black"/>
                <path d="M 496,48 L 496,80" fill="none" stroke="black"/>
                <path d="M 496,112 L 496,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 8,48 L 48,48" fill="none" stroke="black"/>
                <path d="M 456,48 L 496,48" fill="none" stroke="black"/>
                <path d="M 48,64 L 112,64" fill="none" stroke="black"/>
                <path d="M 392,64 L 456,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 48,80" fill="none" stroke="black"/>
                <path d="M 456,80 L 496,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 48,112" fill="none" stroke="black"/>
                <path d="M 456,112 L 496,112" fill="none" stroke="black"/>
                <path d="M 48,128 L 112,128" fill="none" stroke="black"/>
                <path d="M 392,128 L 456,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 48,144" fill="none" stroke="black"/>
                <path d="M 456,144 L 496,144" fill="none" stroke="black"/>
                <path d="M 112,160 L 392,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="80" y="52">ac1</text>
                  <text x="424" y="52">ac3</text>
                  <text x="32" y="68">CE1</text>
                  <text x="480" y="68">CE3</text>
                  <text x="256" y="100">Network</text>
                  <text x="80" y="116">ac2</text>
                  <text x="424" y="116">ac4</text>
                  <text x="24" y="132">CE2</text>
                  <text x="480" y="132">CE4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                   .----------------------------------.
      .----.  ac1  |                                  |  ac3  .----.
      | CE1+-------+                                  +-------+ CE3|
      '----'       |                                  |       '----'
                   |              Network             |
      .----.  ac2  |                                  |  ac4  .----.
      |CE2 +-------+                                  +-------+ CE4|
      '----'       |                                  |       '----'
                   '----------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>Let's assume that a request to instantiate various ACs that are shown in <xref target="network-example"/> is sent by the customer. <xref target="multiple-sites"/> depicts the example of the message body of a GET response that is received from the controller.</t>
        <figure anchor="multiple-sites">
          <name>Example of a Message Body of a Request to Create Multiple ACs bound to Multiple CEs</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "name": "simple-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "First site",
        "ac-group-profile-ref": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce1-network"
        }
      },
      {
        "name": "ac2",
        "description": "Second Site",
        "ac-group-profile-ref": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce2-network"
        }
      },
      {
        "name": "ac3",
        "description": "Third site",
        "ac-group-profile-ref": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce3-network"
        }
      },
      {
        "name": "ac4",
        "description": "Another site",
        "ac-group-profile-ref": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce4-network"
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-ex-slice">
        <name>Binding Attachment Circuits to an IETF Network Slice</name>
        <t>This example shows how the AC service model complements the model defined in "A YANG Data Model for the RFC 9543 Network Slice Service" <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/> to connect a site to a Slice Service.</t>
        <t>First, <xref target="slice-vlan-1"/> describes the end-to-end network topology as well the orchestration scopes:</t>
        <ul spacing="normal">
          <li>
            <t>The topology is made up of two sites ("site1" and "site2"), interconnected via a Transport Network (e.g., IP/MPLS network). An SF is deployed within each site in a dedicated IP subnet.</t>
          </li>
          <li>
            <t>A 5G Service Management and Orchestration (SMO) is responsible for the deployment of SFs and the indirect management of a local Gateway (i.e., CE).</t>
          </li>
          <li>
            <t>An IETF Network Slice Controller (NSC) <xref target="RFC9543"/> is responsible for the deployment of IETF Network Slices across the Transport Network.</t>
          </li>
        </ul>
        <t>SFs are deployed within each site.</t>
        <figure anchor="slice-vlan-1">
          <name>An Example of a Network Topology Used to Deploy Slices</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="520" viewBox="0 0 520 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 32,112 L 32,144" fill="none" stroke="black"/>
                <path d="M 48,144 L 48,176" fill="none" stroke="black"/>
                <path d="M 64,112 L 64,144" fill="none" stroke="black"/>
                <path d="M 64,184 L 64,240" fill="none" stroke="black"/>
                <path d="M 80,48 L 80,80" fill="none" stroke="black"/>
                <path d="M 96,144 L 96,208" fill="none" stroke="black"/>
                <path d="M 128,144 L 128,208" fill="none" stroke="black"/>
                <path d="M 168,184 L 168,304" fill="none" stroke="black"/>
                <path d="M 200,144 L 200,208" fill="none" stroke="black"/>
                <path d="M 216,112 L 216,136" fill="none" stroke="black"/>
                <path d="M 216,208 L 216,240" fill="none" stroke="black"/>
                <path d="M 232,144 L 232,208" fill="none" stroke="black"/>
                <path d="M 280,64 L 280,80" fill="none" stroke="black"/>
                <path d="M 320,144 L 320,208" fill="none" stroke="black"/>
                <path d="M 336,112 L 336,136" fill="none" stroke="black"/>
                <path d="M 336,208 L 336,240" fill="none" stroke="black"/>
                <path d="M 352,144 L 352,208" fill="none" stroke="black"/>
                <path d="M 384,184 L 384,304" fill="none" stroke="black"/>
                <path d="M 424,144 L 424,208" fill="none" stroke="black"/>
                <path d="M 456,144 L 456,208" fill="none" stroke="black"/>
                <path d="M 464,48 L 464,80" fill="none" stroke="black"/>
                <path d="M 480,112 L 480,144" fill="none" stroke="black"/>
                <path d="M 480,184 L 480,240" fill="none" stroke="black"/>
                <path d="M 496,144 L 496,176" fill="none" stroke="black"/>
                <path d="M 512,112 L 512,144" fill="none" stroke="black"/>
                <path d="M 32,80 L 128,80" fill="none" stroke="black"/>
                <path d="M 200,80 L 352,80" fill="none" stroke="black"/>
                <path d="M 424,80 L 504,80" fill="none" stroke="black"/>
                <path d="M 32,112 L 64,112" fill="none" stroke="black"/>
                <path d="M 216,112 L 336,112" fill="none" stroke="black"/>
                <path d="M 480,112 L 512,112" fill="none" stroke="black"/>
                <path d="M 32,144 L 64,144" fill="none" stroke="black"/>
                <path d="M 96,144 L 128,144" fill="none" stroke="black"/>
                <path d="M 200,144 L 232,144" fill="none" stroke="black"/>
                <path d="M 320,144 L 352,144" fill="none" stroke="black"/>
                <path d="M 424,144 L 456,144" fill="none" stroke="black"/>
                <path d="M 480,144 L 512,144" fill="none" stroke="black"/>
                <path d="M 32,176 L 96,176" fill="none" stroke="black"/>
                <path d="M 128,176 L 200,176" fill="none" stroke="black"/>
                <path d="M 352,176 L 424,176" fill="none" stroke="black"/>
                <path d="M 456,176 L 512,176" fill="none" stroke="black"/>
                <path d="M 96,208 L 128,208" fill="none" stroke="black"/>
                <path d="M 200,208 L 232,208" fill="none" stroke="black"/>
                <path d="M 320,208 L 352,208" fill="none" stroke="black"/>
                <path d="M 424,208 L 456,208" fill="none" stroke="black"/>
                <path d="M 216,240 L 336,240" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="512,80 500,74.4 500,85.6" fill="black" transform="rotate(0,504,80)"/>
                <polygon class="arrowhead" points="488,184 476,178.4 476,189.6" fill="black" transform="rotate(270,480,184)"/>
                <polygon class="arrowhead" points="432,80 420,74.4 420,85.6" fill="black" transform="rotate(180,424,80)"/>
                <polygon class="arrowhead" points="392,184 380,178.4 380,189.6" fill="black" transform="rotate(270,384,184)"/>
                <polygon class="arrowhead" points="360,80 348,74.4 348,85.6" fill="black" transform="rotate(0,352,80)"/>
                <polygon class="arrowhead" points="208,80 196,74.4 196,85.6" fill="black" transform="rotate(180,200,80)"/>
                <polygon class="arrowhead" points="176,184 164,178.4 164,189.6" fill="black" transform="rotate(270,168,184)"/>
                <polygon class="arrowhead" points="136,80 124,74.4 124,85.6" fill="black" transform="rotate(0,128,80)"/>
                <polygon class="arrowhead" points="72,184 60,178.4 60,189.6" fill="black" transform="rotate(270,64,184)"/>
                <polygon class="arrowhead" points="40,80 28,74.4 28,85.6" fill="black" transform="rotate(180,32,80)"/>
                <g class="text">
                  <text x="60" y="36">5G</text>
                  <text x="88" y="36">SMO</text>
                  <text x="252" y="36">IETF</text>
                  <text x="288" y="36">NSC</text>
                  <text x="444" y="36">5G</text>
                  <text x="472" y="36">SMO</text>
                  <text x="216" y="52">(TN</text>
                  <text x="288" y="52">Orchestrator)</text>
                  <text x="80" y="100">Site1</text>
                  <text x="240" y="100">Transport</text>
                  <text x="312" y="100">Network</text>
                  <text x="472" y="100">Site2</text>
                  <text x="48" y="132">SF1</text>
                  <text x="496" y="132">SF2</text>
                  <text x="112" y="180">GW1</text>
                  <text x="216" y="180">PE1</text>
                  <text x="336" y="180">PE2</text>
                  <text x="440" y="180">GW2</text>
                  <text x="60" y="260">LAN1</text>
                  <text x="484" y="260">LAN2</text>
                  <text x="64" y="276">198.51.100.0/24</text>
                  <text x="460" y="276">203.0.113.0/24</text>
                  <text x="132" y="324">Physical</text>
                  <text x="188" y="324">Link</text>
                  <text x="224" y="324">ID:</text>
                  <text x="356" y="324">Physical</text>
                  <text x="412" y="324">Link</text>
                  <text x="448" y="324">ID:</text>
                  <text x="168" y="340">bearerX@site1</text>
                  <text x="392" y="340">bearerX@site2</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
      5G SMO                 IETF NSC                 5G SMO
         |               (TN Orchestrator)               |
         |                        |                      |
   <-----+----->        <---------+-------->        <----+---->
       Site1             Transport Network              Site2
   .---.                  .--------------.                 .---.
   |SF1|                  |              |                 |SF2|
   '-+-'   .---.        .---.          .---.        .---.  '-+-'
     |     |   |        |   |          |   |        |   |    |
   --+-----+GW1+--------+PE1|          |PE2+--------+GW2+----+--
       ^   |   |    ^   |   |          |   |   ^    |   |  ^
       |   '---'    |   '-+-'          '-+-'   |    '---'  |
       |            |     |              |     |           |
       |            |     '--------------'     |           |
     LAN1           |                          |          LAN2
198.51.100.0/24     |                          |  203.0.113.0/24
                    |                          |
                    |                          |
            Physical Link ID:           Physical Link ID:
              bearerX@site1               bearerX@site2

]]></artwork>
          </artset>
        </figure>
        <t><xref target="slice-vlan-2"/> describes the logical connectivity enforced thanks to both IETF Network Slice and ACaaS models.</t>
        <figure anchor="slice-vlan-2">
          <name>Logical Overview</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="568" viewBox="0 0 568 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,48 L 16,80" fill="none" stroke="black"/>
                <path d="M 32,80 L 32,112" fill="none" stroke="black"/>
                <path d="M 48,48 L 48,80" fill="none" stroke="black"/>
                <path d="M 80,80 L 80,144" fill="none" stroke="black"/>
                <path d="M 112,80 L 112,144" fill="none" stroke="black"/>
                <path d="M 208,80 L 208,144" fill="none" stroke="black"/>
                <path d="M 224,48 L 224,80" fill="none" stroke="black"/>
                <path d="M 224,144 L 224,176" fill="none" stroke="black"/>
                <path d="M 240,80 L 240,144" fill="none" stroke="black"/>
                <path d="M 280,80 L 280,144" fill="none" stroke="black"/>
                <path d="M 296,48 L 296,80" fill="none" stroke="black"/>
                <path d="M 296,144 L 296,176" fill="none" stroke="black"/>
                <path d="M 312,80 L 312,144" fill="none" stroke="black"/>
                <path d="M 400,80 L 400,144" fill="none" stroke="black"/>
                <path d="M 432,80 L 432,144" fill="none" stroke="black"/>
                <path d="M 464,48 L 464,80" fill="none" stroke="black"/>
                <path d="M 480,80 L 480,112" fill="none" stroke="black"/>
                <path d="M 496,48 L 496,80" fill="none" stroke="black"/>
                <path d="M 320,32 L 352,32" fill="none" stroke="black"/>
                <path d="M 384,32 L 400,32" fill="none" stroke="black"/>
                <path d="M 16,48 L 48,48" fill="none" stroke="black"/>
                <path d="M 224,48 L 296,48" fill="none" stroke="black"/>
                <path d="M 464,48 L 496,48" fill="none" stroke="black"/>
                <path d="M 16,80 L 48,80" fill="none" stroke="black"/>
                <path d="M 80,80 L 112,80" fill="none" stroke="black"/>
                <path d="M 208,80 L 240,80" fill="none" stroke="black"/>
                <path d="M 280,80 L 312,80" fill="none" stroke="black"/>
                <path d="M 400,80 L 432,80" fill="none" stroke="black"/>
                <path d="M 464,80 L 496,80" fill="none" stroke="black"/>
                <path d="M 16,112 L 80,112" fill="none" stroke="black"/>
                <path d="M 112,112 L 208,112" fill="none" stroke="black"/>
                <path d="M 312,112 L 400,112" fill="none" stroke="black"/>
                <path d="M 432,112 L 496,112" fill="none" stroke="black"/>
                <path d="M 80,144 L 112,144" fill="none" stroke="black"/>
                <path d="M 208,144 L 240,144" fill="none" stroke="black"/>
                <path d="M 280,144 L 312,144" fill="none" stroke="black"/>
                <path d="M 400,144 L 432,144" fill="none" stroke="black"/>
                <path d="M 224,176 L 296,176" fill="none" stroke="black"/>
                <path d="M 112,208 L 200,208" fill="none" stroke="black"/>
                <path d="M 216,208 L 312,208" fill="none" stroke="black"/>
                <path d="M 328,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,32 396,26.4 396,37.6" fill="black" transform="rotate(0,400,32)"/>
                <polygon class="arrowhead" points="400,208 388,202.4 388,213.6" fill="black" transform="rotate(0,392,208)"/>
                <polygon class="arrowhead" points="336,208 324,202.4 324,213.6" fill="black" transform="rotate(180,328,208)"/>
                <polygon class="arrowhead" points="328,32 316,26.4 316,37.6" fill="black" transform="rotate(180,320,32)"/>
                <polygon class="arrowhead" points="320,208 308,202.4 308,213.6" fill="black" transform="rotate(0,312,208)"/>
                <polygon class="arrowhead" points="224,208 212,202.4 212,213.6" fill="black" transform="rotate(180,216,208)"/>
                <polygon class="arrowhead" points="208,208 196,202.4 196,213.6" fill="black" transform="rotate(0,200,208)"/>
                <polygon class="arrowhead" points="120,208 108,202.4 108,213.6" fill="black" transform="rotate(180,112,208)"/>
                <circle cx="16" cy="272" r="6" class="closeddot" fill="black"/>
                <circle cx="16" cy="400" r="6" class="closeddot" fill="black"/>
                <g class="text">
                  <text x="244" y="36">AS</text>
                  <text x="280" y="36">65536</text>
                  <text x="368" y="36">BGP</text>
                  <text x="420" y="36">AS</text>
                  <text x="456" y="36">65550</text>
                  <text x="32" y="68">SF1</text>
                  <text x="156" y="68">192.0.2.0/30</text>
                  <text x="372" y="68">192.0.2.4/30</text>
                  <text x="480" y="68">SF2</text>
                  <text x="124" y="100">.1</text>
                  <text x="196" y="100">.2</text>
                  <text x="324" y="100">.6</text>
                  <text x="388" y="100">.5</text>
                  <text x="96" y="116">GW1</text>
                  <text x="224" y="116">PE1</text>
                  <text x="296" y="116">PE2</text>
                  <text x="416" y="116">GW2</text>
                  <text x="152" y="132">vlan-id</text>
                  <text x="352" y="132">vlan-id</text>
                  <text x="152" y="148">100</text>
                  <text x="352" y="148">200</text>
                  <text x="64" y="164">198.51.100.0/24</text>
                  <text x="444" y="164">203.0.113.0/24</text>
                  <text x="212" y="196">sdp1</text>
                  <text x="292" y="196">sdp2</text>
                  <text x="148" y="228">Attachment</text>
                  <text x="240" y="228">Network</text>
                  <text x="296" y="228">Slice</text>
                  <text x="372" y="228">Attachment</text>
                  <text x="136" y="244">Circuit</text>
                  <text x="192" y="244">"ac1"</text>
                  <text x="272" y="244">EMBB_UP</text>
                  <text x="360" y="244">Circuit</text>
                  <text x="416" y="244">"ac2"</text>
                  <text x="48" y="276">"ac1"</text>
                  <text x="120" y="276">properties:</text>
                  <text x="16" y="292">-</text>
                  <text x="96" y="292">bearer-reference:</text>
                  <text x="224" y="292">bearerX@site1</text>
                  <text x="16" y="308">-</text>
                  <text x="60" y="308">vlan-id:</text>
                  <text x="112" y="308">100</text>
                  <text x="16" y="324">-</text>
                  <text x="36" y="324">CE</text>
                  <text x="80" y="324">address</text>
                  <text x="140" y="324">(GW1):</text>
                  <text x="220" y="324">192.0.2.1/30</text>
                  <text x="16" y="340">-</text>
                  <text x="36" y="340">PE</text>
                  <text x="84" y="340">address:</text>
                  <text x="172" y="340">192.0.2.2/30</text>
                  <text x="16" y="356">-</text>
                  <text x="60" y="356">Routing:</text>
                  <text x="124" y="356">static</text>
                  <text x="216" y="356">198.51.100.0/24</text>
                  <text x="296" y="356">via</text>
                  <text x="136" y="372">192.0.2.1</text>
                  <text x="192" y="372">tag</text>
                  <text x="276" y="372">primary_UP_slice</text>
                  <text x="48" y="404">"ac2"</text>
                  <text x="120" y="404">properties:</text>
                  <text x="16" y="420">-</text>
                  <text x="96" y="420">bearer-reference:</text>
                  <text x="224" y="420">bearerY@site2</text>
                  <text x="16" y="436">-</text>
                  <text x="60" y="436">vlan-id:</text>
                  <text x="112" y="436">200</text>
                  <text x="16" y="452">-</text>
                  <text x="36" y="452">CE</text>
                  <text x="80" y="452">address</text>
                  <text x="140" y="452">(GW2):</text>
                  <text x="220" y="452">192.0.2.5/30</text>
                  <text x="16" y="468">-</text>
                  <text x="36" y="468">PE</text>
                  <text x="84" y="468">address:</text>
                  <text x="172" y="468">192.0.2.6/30</text>
                  <text x="16" y="484">-</text>
                  <text x="60" y="484">Routing:</text>
                  <text x="112" y="484">BGP</text>
                  <text x="168" y="484">local-as:</text>
                  <text x="232" y="484">65536</text>
                  <text x="296" y="484">(Provider</text>
                  <text x="356" y="484">ASN)</text>
                  <text x="164" y="500">peer-as:</text>
                  <text x="224" y="500">65550</text>
                  <text x="288" y="500">(customer</text>
                  <text x="348" y="500">ASN)</text>
                  <text x="192" y="516">remote-address:</text>
                  <text x="296" y="516">192.0.2.5</text>
                  <text x="376" y="516">(Customer</text>
                  <text x="452" y="516">address)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                             AS 65536  <----BGP--> AS 65550
 .---.                     .--------.                    .---.
 |SF1|       192.0.2.0/30  |        |   192.0.2.4/30     |SF2|
 '-+-'   .---.           .-+-.    .-+-.          .---.   '-+-'
   |     |   |.1       .2|   |    |   |.6      .5|   |     |
 --+-----+GW1+-----------+PE1|    |PE2+----------+GW2+-----+--
         |   | vlan-id   |   |    |   | vlan-id  |   |
         '---'   100     '-+-'    '-+-'   200    '---'
198.51.100.0/24            |        |           203.0.113.0/24
                           '--------'
                        sdp1      sdp2
             <----------> <-----------> <------->
             Attachment   Network Slice  Attachment
             Circuit "ac1"    EMBB_UP    Circuit "ac2"                

 * "ac1" properties:
 - bearer-reference: bearerX@site1
 - vlan-id: 100
 - CE address (GW1): 192.0.2.1/30
 - PE address: 192.0.2.2/30
 - Routing: static 198.51.100.0/24 via
            192.0.2.1 tag primary_UP_slice

 * "ac2" properties:
 - bearer-reference: bearerY@site2
 - vlan-id: 200
 - CE address (GW2): 192.0.2.5/30
 - PE address: 192.0.2.6/30
 - Routing: BGP local-as: 65536 (Provider ASN)
                peer-as: 65550 (customer ASN)
                remote-address: 192.0.2.5 (Customer address)
]]></artwork>
          </artset>
        </figure>
        <t><xref target="slice-acs"/> shows the message body of the request to create the required ACs using the ACaaS module.</t>
        <figure anchor="slice-acs">
          <name>Message Body of a Request to Create Required ACs</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Connection to site1 on vlan 100",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan"
            }
          },
          "bearer-reference": "bearerX@site1"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:static-routing",
              "static": {
                "cascaded-lan-prefixes": {
                  "ipv4-lan-prefix": [
                    {
                      "lan": "198.51.100.0/24",
                      "next-hop": "192.0.2.1",
                      "lan-tag": "primary_UP_slice"
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "Connection to site2 on vlan 200",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan"
            }
          },
          "bearer-reference": "bearerY@site2"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65550
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="slice-acs-res"/> shows the message body of a response to a GET request received from the controller.</t>
        <figure anchor="slice-acs-res">
          <name>Example of a Message Body of a Response Indicating the Creation of the ACs</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Connection to site1 on vlan 100",
        "actual-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 100
            }
          },
          "bearer-reference": "bearerX@site1"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.2",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.1"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:static-routing",
              "static": {
                "cascaded-lan-prefixes": {
                  "ipv4-lan-prefix": [
                    {
                      "lan": "198.51.100.0/24",
                      "next-hop": "192.0.2.1",
                      "lan-tag": "primary_UP_slice"
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "Connection to site2 on vlan 200",
        "actual-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 200
            }
          },
          "bearer-reference": "bearerY@site2"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.6",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.5"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65550,
                    "local-as": 65536 
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="slice-prov"/> shows the message body of the request to create a Slice Service bound to the ACs created using <xref target="slice-acs"/>. Only references to these ACs are included in the Slice Service request.</t>
        <figure anchor="slice-prov">
          <name>Message Body of a Request to Create a Slice Service Referring to the ACs</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network-slice-service:network-slice-services": {
    "slo-sle-templates": {
      "slo-sle-template": [
        {
          "id": "low-latency-template",
          "description": "Lowest possible latency forwarding \
                                                            behavior"
        }
      ]
    },
    "slice-service": [
      {
        "id": "Slice URLLC_UP",
        "description": "Dedicated TN Slice for URLLC-UP",
        "slo-sle-template": "low-latency-template",
        "status": {},
        "sdps": {
          "sdp": [
            {
              "id": "sdp1",
              "ac-svc-name": [
                "ac1"
              ]
            },
            {
              "id": "sdp2",
              "ac-svc-name": [
                "ac2"
              ]
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-ex-cloud">
        <name>Connecting a Virtualized Environment Running in a Cloud Provider</name>
        <t>This example (<xref target="cloud-provider-1"/>) shows how the AC service model can be used to connect a Cloud Infrastructure to a service provider network. This example makes the following assumptions:</t>
        <ol spacing="normal" type="1"><li>
            <t>A customer (e.g., Mobile Network Team or partner) has a virtualized infrastructure running in a Cloud Provider. A simplistic deployment is represented here with a set of Virtual Machines running in a Virtual Private Environment. The deployment and management of this infrastructure is achieved via private APIs that are supported by the Cloud Provider: this realization is out of the scope of this document.</t>
          </li>
          <li>
            <t>The connectivity to the Data Center is achieved thanks to a service based on direct attachment (physical connection), which is delivered upon ordering via an API exposed by the Cloud Provider. When ordering that connection, a unique "Connection Identifier" is generated and returned via the API.</t>
          </li>
          <li>
            <t>The customer provisions the networking logic within the Cloud Provider based on that unique connection identifier (i.e., logical interfaces, IP addressing, and routing).</t>
          </li>
        </ol>
        <figure anchor="cloud-provider-1">
          <name>An Example of Realization for Connecting a Cloud Site</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="560" width="496" viewBox="0 0 496 560" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 32,32 L 32,272" fill="none" stroke="black"/>
                <path d="M 32,384 L 32,528" fill="none" stroke="black"/>
                <path d="M 56,80 L 56,112" fill="none" stroke="black"/>
                <path d="M 72,112 L 72,144" fill="none" stroke="black"/>
                <path d="M 88,80 L 88,112" fill="none" stroke="black"/>
                <path d="M 104,80 L 104,112" fill="none" stroke="black"/>
                <path d="M 120,112 L 120,144" fill="none" stroke="black"/>
                <path d="M 136,80 L 136,112" fill="none" stroke="black"/>
                <path d="M 152,80 L 152,112" fill="none" stroke="black"/>
                <path d="M 168,112 L 168,144" fill="none" stroke="black"/>
                <path d="M 168,176 L 168,240" fill="none" stroke="black"/>
                <path d="M 176,400 L 176,464" fill="none" stroke="black"/>
                <path d="M 184,80 L 184,112" fill="none" stroke="black"/>
                <path d="M 200,144 L 200,176" fill="none" stroke="black"/>
                <path d="M 200,240 L 200,400" fill="none" stroke="black"/>
                <path d="M 216,248 L 216,304" fill="none" stroke="black"/>
                <path d="M 216,336 L 216,392" fill="none" stroke="black"/>
                <path d="M 224,400 L 224,464" fill="none" stroke="black"/>
                <path d="M 240,176 L 240,240" fill="none" stroke="black"/>
                <path d="M 488,32 L 488,272" fill="none" stroke="black"/>
                <path d="M 488,384 L 488,528" fill="none" stroke="black"/>
                <path d="M 32,32 L 488,32" fill="none" stroke="black"/>
                <path d="M 56,80 L 88,80" fill="none" stroke="black"/>
                <path d="M 104,80 L 136,80" fill="none" stroke="black"/>
                <path d="M 152,80 L 184,80" fill="none" stroke="black"/>
                <path d="M 56,112 L 88,112" fill="none" stroke="black"/>
                <path d="M 104,112 L 136,112" fill="none" stroke="black"/>
                <path d="M 152,112 L 184,112" fill="none" stroke="black"/>
                <path d="M 64,144 L 384,144" fill="none" stroke="black"/>
                <path d="M 168,176 L 240,176" fill="none" stroke="black"/>
                <path d="M 168,240 L 240,240" fill="none" stroke="black"/>
                <path d="M 32,272 L 192,272" fill="none" stroke="black"/>
                <path d="M 224,272 L 488,272" fill="none" stroke="black"/>
                <path d="M 32,384 L 192,384" fill="none" stroke="black"/>
                <path d="M 224,384 L 488,384" fill="none" stroke="black"/>
                <path d="M 176,400 L 224,400" fill="none" stroke="black"/>
                <path d="M 176,464 L 224,464" fill="none" stroke="black"/>
                <path d="M 32,528 L 488,528" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="224,392 212,386.4 212,397.6" fill="black" transform="rotate(90,216,392)"/>
                <polygon class="arrowhead" points="224,248 212,242.4 212,253.6" fill="black" transform="rotate(270,216,248)"/>
                <g class="text">
                  <text x="360" y="52">Cloud</text>
                  <text x="420" y="52">Provider</text>
                  <text x="468" y="52">DC</text>
                  <text x="72" y="100">VM1</text>
                  <text x="120" y="100">VM2</text>
                  <text x="168" y="100">VM3</text>
                  <text x="232" y="100">Virtual</text>
                  <text x="296" y="100">Private</text>
                  <text x="352" y="100">Cloud</text>
                  <text x="84" y="132">.2</text>
                  <text x="132" y="132">.5</text>
                  <text x="184" y="132">.12</text>
                  <text x="304" y="132">198.51.100.0/24</text>
                  <text x="212" y="164">.1</text>
                  <text x="200" y="196">Cloud</text>
                  <text x="284" y="196">BGP_ASN:</text>
                  <text x="344" y="196">65536</text>
                  <text x="204" y="212">Provider</text>
                  <text x="264" y="212">BGP</text>
                  <text x="300" y="212">md5:</text>
                  <text x="204" y="228">GW</text>
                  <text x="372" y="228">"nyxNER_c5sdn608fFQl3331d"</text>
                  <text x="236" y="260">.2</text>
                  <text x="208" y="276">-</text>
                  <text x="28" y="308">Direct</text>
                  <text x="120" y="308">Interconnection</text>
                  <text x="60" y="324">connection_id:</text>
                  <text x="216" y="324">BGP</text>
                  <text x="324" y="324">vlan-id:50</text>
                  <text x="60" y="340">1234-56789</text>
                  <text x="332" y="340">192.0.2.0/24</text>
                  <text x="236" y="372">.1</text>
                  <text x="208" y="388">-</text>
                  <text x="156" y="404">If-A</text>
                  <text x="312" y="404">Service</text>
                  <text x="380" y="404">Provider</text>
                  <text x="448" y="404">Network</text>
                  <text x="200" y="436">PE1</text>
                  <text x="268" y="436">BGP_ASN:</text>
                  <text x="328" y="436">65550</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
    .--------------------------------------------------------.
    |                                      Cloud Provider DC |
    |                                                        |
    |  .---. .---. .---.                                     |
    |  |VM1| |VM2| |VM3|  Virtual Private Cloud              |
    |  '-+-' '-+-' '-+-'                                     |
    |    |.2   |.5   |.12      198.51.100.0/24               |
    |   -+-----+-----+---+-----------------------            |
    |                    |.1                                 |
    |                .---+----.                              |
    |                | Cloud  | BGP_ASN: 65536               |
    |                |Provider| BGP md5:                     |
    |                |   GW   |   "nyxNER_c5sdn608fFQl3331d" |
    |                '---+----'                              |
    |                    | ^ .2                              |
    '--------------------|-|---------------------------------'
                         | |
 Direct Interconnection  | |
 connection_id:          |BGP       vlan-id:50
   1234-56789            | |        192.0.2.0/24
                         | |
                         | | .1
    .--------------------|-v---------------------------------.
    |             If-A.--+--.       Service Provider Network |
    |                 |     |                                |
    |                 | PE1 | BGP_ASN: 65550                 |
    |                 |     |                                |
    |                 '-----'                                |
    |                                                        |
    |                                                        |
    |                                                        |
    '--------------------------------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t><xref target="cloud-provider-2"/> illustrates the pre-provisioning logic for the physical connection to the Cloud Provider. After this connection is delivered to the service provider, the network inventory is updated with "bearer-reference" set to the value of the "Connection Identifier".</t>
        <figure anchor="cloud-provider-2">
          <name>Illustration of Pre-provisioning</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="584" viewBox="0 0 584 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 136,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 128,112 L 512,112" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="528,64 516,58.4 516,69.6" fill="black" transform="rotate(0,520,64)"/>
                <polygon class="arrowhead" points="136,112 124,106.4 124,117.6" fill="black" transform="rotate(180,128,112)"/>
                <g class="text">
                  <text x="52" y="36">Customer</text>
                  <text x="544" y="36">Cloud</text>
                  <text x="56" y="52">Orchestration</text>
                  <text x="188" y="52">DIRECT</text>
                  <text x="280" y="52">INTERCONNECTION</text>
                  <text x="380" y="52">ORDERING</text>
                  <text x="440" y="52">(API)</text>
                  <text x="548" y="52">Provider</text>
                  <text x="164" y="100">Connection</text>
                  <text x="240" y="100">Created</text>
                  <text x="292" y="100">with</text>
                  <text x="360" y="100">"Connection</text>
                  <text x="468" y="100">ID:1234-56789"</text>
                  <text x="328" y="132">x</text>
                  <text x="328" y="148">x</text>
                  <text x="328" y="164">x</text>
                  <text x="328" y="180">x</text>
                  <text x="92" y="212">Physical</text>
                  <text x="172" y="212">Connection</text>
                  <text x="260" y="212">1234-56789</text>
                  <text x="316" y="212">is</text>
                  <text x="368" y="212">delivered</text>
                  <text x="424" y="212">and</text>
                  <text x="240" y="228">connected</text>
                  <text x="292" y="228">to</text>
                  <text x="320" y="228">PE1</text>
                  <text x="88" y="260">Network</text>
                  <text x="160" y="260">Inventory</text>
                  <text x="232" y="260">Updated</text>
                  <text x="288" y="260">with:</text>
                  <text x="144" y="276">bearer-reference:</text>
                  <text x="260" y="276">1234-56789</text>
                  <text x="320" y="276">for</text>
                  <text x="392" y="276">PE1/Interface</text>
                  <text x="476" y="276">"If-A"</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  Customer                                                       Cloud
Orchestration       DIRECT INTERCONNECTION ORDERING (API)       Provider
                ------------------------------------------------>

               Connection Created with "Connection ID:1234-56789"
               <------------------------------------------------
                                        x
                                        x
                                        x
                                        x

       Physical Connection 1234-56789 is delivered and
                         connected to PE1

       Network Inventory Updated with:
         bearer-reference: 1234-56789 for PE1/Interface "If-A"
]]></artwork>
          </artset>
        </figure>
        <t>Next, API workflows can be initiated by:</t>
        <ul spacing="normal">
          <li>
            <t>The Cloud Provider for the configuration per Step (3) above.</t>
          </li>
          <li>
            <t>The Service provider network via the ACaaS model. This request can be used in conjunction with additional requests based on the L3SM (VPN provisioning) or Network Slice Service model (5G hybrid Cloud deployment).</t>
          </li>
        </ul>
        <t><xref target="cloud-provider-ac"/> shows the message body of the request to create the required ACs to connect the Cloud Provider Virtualized (VM) using the Attachment Circuit module.</t>
        <figure anchor="cloud-provider-ac">
          <name>Message Body of a Request to Create the ACs for Connecting to the Cloud Provider</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac--BXT-DC-customer-VPC-foo",
        "description": "Connection to Cloud Provider BXT on \
                                              connection 1234-56789",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "1243-56789"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65536
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="cloud-provider-ac-res"/> shows the message body of the response received from the provider as a response to a query message. Note that this Cloud Provider mandates the use of MD5 authentication for establishing BGP connections.</t>
        <ul empty="true">
          <li>
            <t>The module supports MD5 to basically accommodate the installed BGP base (including by some Cloud Providers). Note that MD5 suffers from the security weaknesses discussed in <xref section="2" sectionFormat="of" target="RFC6151"/> and <xref section="2.1" sectionFormat="of" target="RFC6952"/>.</t>
          </li>
        </ul>
        <figure anchor="cloud-provider-ac-res">
          <name>Message Body of a Response to the Request to Create ACs for Connecting to the Cloud Provider</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac--BXT-DC-customer-VPC-foo",
        "description": "Connection to Cloud Provider BXT on \
                                              connection 1234-56789",
        "actual-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 50
            }
          },
          "bearer-reference": "1243-56789"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 24,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65536,
                    "local-as": 65550,
                    "authentication": {
                      "enabled": true,
                      "keying-material": {
                        "md5-keychain": "nyxNER_c5sdn608fFQl3331d"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="connect-customer-network-through-bgp">
        <name>Connect Customer Network Through BGP</name>
        <t>CE-PE routing using BGP is a common scenario in the context of MPLS VPNs and is widely used in enterprise networks. In the example depicted in <xref target="provider-network"/>, the CE routers are customer-owned devices belonging to an AS (ASN 65536). CEs are located at the edge of the provider's network (PE, or Provider Edge) and use point-to-point interfaces to establish BGP sessions. The point-to-point interfaces rely upon a physical bearer ("line-113") to reach the provider network.</t>
        <figure anchor="provider-network">
          <name>Illustration of Provider Network Scenario</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="552" viewBox="0 0 552 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,352" fill="none" stroke="black"/>
                <path d="M 80,80 L 80,176" fill="none" stroke="black"/>
                <path d="M 80,208 L 80,240" fill="none" stroke="black"/>
                <path d="M 80,304 L 80,336" fill="none" stroke="black"/>
                <path d="M 184,80 L 184,176" fill="none" stroke="black"/>
                <path d="M 184,208 L 184,240" fill="none" stroke="black"/>
                <path d="M 184,304 L 184,336" fill="none" stroke="black"/>
                <path d="M 208,32 L 208,88" fill="none" stroke="black"/>
                <path d="M 208,104 L 208,352" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,80" fill="none" stroke="black"/>
                <path d="M 392,112 L 392,144" fill="none" stroke="black"/>
                <path d="M 464,80 L 464,112" fill="none" stroke="black"/>
                <path d="M 544,32 L 544,144" fill="none" stroke="black"/>
                <path d="M 8,32 L 208,32" fill="none" stroke="black"/>
                <path d="M 392,32 L 544,32" fill="none" stroke="black"/>
                <path d="M 80,80 L 184,80" fill="none" stroke="black"/>
                <path d="M 408,80 L 464,80" fill="none" stroke="black"/>
                <path d="M 184,96 L 352,96" fill="none" stroke="black"/>
                <path d="M 408,112 L 464,112" fill="none" stroke="black"/>
                <path d="M 392,144 L 544,144" fill="none" stroke="black"/>
                <path d="M 80,176 L 184,176" fill="none" stroke="black"/>
                <path d="M 80,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 80,240 L 184,240" fill="none" stroke="black"/>
                <path d="M 80,304 L 184,304" fill="none" stroke="black"/>
                <path d="M 80,336 L 184,336" fill="none" stroke="black"/>
                <path d="M 8,352 L 208,352" fill="none" stroke="black"/>
                <g class="text">
                  <text x="60" y="52">Provider</text>
                  <text x="128" y="52">Network</text>
                  <text x="436" y="52">Customer</text>
                  <text x="504" y="52">Network</text>
                  <text x="300" y="68">CE-PE-AC</text>
                  <text x="220" y="84">.2</text>
                  <text x="372" y="84">.1</text>
                  <text x="504" y="84">ASN</text>
                  <text x="132" y="100">PE1(VRF11)</text>
                  <text x="384" y="100">sap#113</text>
                  <text x="432" y="100">CE1</text>
                  <text x="504" y="100">65536</text>
                  <text x="296" y="116">Bearer=line-113</text>
                  <text x="132" y="132">PE1(VRF12)</text>
                  <text x="300" y="132">192.0.2.1/30</text>
                  <text x="132" y="164">PE1(VRF1n)</text>
                  <text x="32" y="196">AS1</text>
                  <text x="132" y="228">PE2(VRF21)</text>
                  <text x="128" y="260">.</text>
                  <text x="128" y="276">.</text>
                  <text x="128" y="292">.</text>
                  <text x="132" y="324">PEm(VRFmn)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
.------------------------.                      .------------------.
|  Provider Network      |                      | Customer Network |
|                        |       CE-PE-AC       |                  |
|        .------------.  |.2                 .1 | .------.   ASN   |
|        | PE1(VRF11) +---------------------sap#113 CE1  |  65536  |
|        |            |  |   Bearer=line-113    | '------'         |
|        | PE1(VRF12) |  |     192.0.2.1/30     |                  |
|        |            |  |                      '------------------'
|        | PE1(VRF1n) |  |
|        '------------'  |
| AS1                    |
|        .------------.  |
|        | PE2(VRF21) |  |
|        '------------'  |
|              .         |
|              .         |
|              .         |
|        .------------.  |
|        | PEm(VRFmn) |  |
|        '------------'  |
'------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>The attachment circuit in this case use a SAP identifier to refer to the physical interface used for the connection between the PE and the CE. The attachment circuit includes all the additional logical attributes to describe the connection between the two ends, including VLAN information and IP addressing. Also, the configuration details of the BGP session makes use of peer group details instead of defining the entire configuration inside the 'neighbor' data node.</t>
        <figure anchor="add-attachment-circuit-bgp-routing">
          <name>Message Body of a Request to Create ACs for Connecting CEs to a Provider Network</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "CE-PE-AC",
        "customer-name": "Customer-4875",
        "description": "An AC between a CP and a PE",
        "peer-sap-id": [
          "sap#113"
        ],
        "ip-connection": {
          "ipv4": {
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.1"
              }
            ]
          }
        },
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "line-113"
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "BGP-Single-Access",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "peer-groups": {
                  "peer-group": [
                    {
                      "name": "first-peer-group",
                      "peer-as": 65536,
                      "address-family": "ietf-vpn-common:ipv4"
                    }
                  ]
                },
                "neighbor": [
                  {
                    "id": "session#57",
                    "remote-address": "192.0.2.1",
                    "peer-group": "first-peer-group",
                    "status": {
                      "admin-status": {
                        "status": "ietf-vpn-common:admin-up"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t>This scenario allows the provider to maintain a list of ACs belonging to the same customer without requiring the full service configuration.</t>
      </section>
      <section anchor="sec-peering">
        <name>Interconnection via Internet eXchange Points (IXPs)</name>
        <t>This section illustrates how to use the AC service model for interconnection purposes. To that aim, the document assumes a simplified Internet eXchange Point (IXP) configuration without zooming into IXP deployment specifics. Let us assume that networks are interconnected via a Layer 2 facility. Let us also assume a deployment context where selective peering is in place between these networks. Networks that are interested in establishing selective BGP peerings expose a dedicated ACaaS server to the IXP to behave as an ACaaS provider. BGP is used to exchange routing information and reachability announcements between those networks. Any network operator connected to an IXP can behave as a client (i.e., initiate a BGP peering request).</t>
        <t>This example follows the recursive deployment model depicted in <xref target="_u-ex-r"/>. Specifically, base AC service requests are handled locally by the IXP. However, binding BGP sessions to existing ACs involves a recursion step.</t>
        <figure anchor="_u-ex-rb">
          <name>Recursive Deployment Example</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="584" viewBox="0 0 584 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,176 L 8,272" fill="none" stroke="black"/>
                <path d="M 64,96 L 64,128" fill="none" stroke="black"/>
                <path d="M 64,160 L 64,176" fill="none" stroke="black"/>
                <path d="M 104,176 L 104,272" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,96" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,96" fill="none" stroke="black"/>
                <path d="M 248,176 L 248,272" fill="none" stroke="black"/>
                <path d="M 296,96 L 296,128" fill="none" stroke="black"/>
                <path d="M 296,160 L 296,176" fill="none" stroke="black"/>
                <path d="M 336,32 L 336,96" fill="none" stroke="black"/>
                <path d="M 336,176 L 336,224" fill="none" stroke="black"/>
                <path d="M 336,256 L 336,272" fill="none" stroke="black"/>
                <path d="M 472,32 L 472,96" fill="none" stroke="black"/>
                <path d="M 472,176 L 472,272" fill="none" stroke="black"/>
                <path d="M 528,96 L 528,128" fill="none" stroke="black"/>
                <path d="M 528,160 L 528,176" fill="none" stroke="black"/>
                <path d="M 576,32 L 576,96" fill="none" stroke="black"/>
                <path d="M 576,176 L 576,272" fill="none" stroke="black"/>
                <path d="M 8,32 L 112,32" fill="none" stroke="black"/>
                <path d="M 248,32 L 336,32" fill="none" stroke="black"/>
                <path d="M 472,32 L 576,32" fill="none" stroke="black"/>
                <path d="M 120,64 L 240,64" fill="none" stroke="black"/>
                <path d="M 344,64 L 464,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 56,96" fill="none" stroke="black"/>
                <path d="M 72,96 L 112,96" fill="none" stroke="black"/>
                <path d="M 248,96 L 288,96" fill="none" stroke="black"/>
                <path d="M 304,96 L 336,96" fill="none" stroke="black"/>
                <path d="M 472,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 536,96 L 576,96" fill="none" stroke="black"/>
                <path d="M 8,176 L 56,176" fill="none" stroke="black"/>
                <path d="M 72,176 L 104,176" fill="none" stroke="black"/>
                <path d="M 248,176 L 288,176" fill="none" stroke="black"/>
                <path d="M 304,176 L 336,176" fill="none" stroke="black"/>
                <path d="M 472,176 L 520,176" fill="none" stroke="black"/>
                <path d="M 536,176 L 576,176" fill="none" stroke="black"/>
                <path d="M 112,190 L 152,190" fill="none" stroke="black"/>
                <path d="M 112,194 L 152,194" fill="none" stroke="black"/>
                <path d="M 208,190 L 240,190" fill="none" stroke="black"/>
                <path d="M 208,194 L 240,194" fill="none" stroke="black"/>
                <path d="M 344,190 L 376,190" fill="none" stroke="black"/>
                <path d="M 344,194 L 376,194" fill="none" stroke="black"/>
                <path d="M 432,190 L 464,190" fill="none" stroke="black"/>
                <path d="M 432,194 L 464,194" fill="none" stroke="black"/>
                <path d="M 104,208 L 144,208" fill="none" stroke="black"/>
                <path d="M 208,208 L 248,208" fill="none" stroke="black"/>
                <path d="M 336,208 L 376,208" fill="none" stroke="black"/>
                <path d="M 440,208 L 464,208" fill="none" stroke="black"/>
                <path d="M 112,254 L 240,254" fill="none" stroke="black"/>
                <path d="M 112,258 L 240,258" fill="none" stroke="black"/>
                <path d="M 344,254 L 464,254" fill="none" stroke="black"/>
                <path d="M 344,258 L 464,258" fill="none" stroke="black"/>
                <path d="M 8,272 L 104,272" fill="none" stroke="black"/>
                <path d="M 248,272 L 336,272" fill="none" stroke="black"/>
                <path d="M 472,272 L 576,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="536,176 524,170.4 524,181.6" fill="black" transform="rotate(90,528,176)"/>
                <polygon class="arrowhead" points="536,96 524,90.4 524,101.6" fill="black" transform="rotate(270,528,96)"/>
                <polygon class="arrowhead" points="472,64 460,58.4 460,69.6" fill="black" transform="rotate(0,464,64)"/>
                <polygon class="arrowhead" points="352,64 340,58.4 340,69.6" fill="black" transform="rotate(180,344,64)"/>
                <polygon class="arrowhead" points="304,176 292,170.4 292,181.6" fill="black" transform="rotate(90,296,176)"/>
                <polygon class="arrowhead" points="304,96 292,90.4 292,101.6" fill="black" transform="rotate(270,296,96)"/>
                <polygon class="arrowhead" points="248,64 236,58.4 236,69.6" fill="black" transform="rotate(0,240,64)"/>
                <polygon class="arrowhead" points="128,64 116,58.4 116,69.6" fill="black" transform="rotate(180,120,64)"/>
                <polygon class="arrowhead" points="72,176 60,170.4 60,181.6" fill="black" transform="rotate(90,64,176)"/>
                <polygon class="arrowhead" points="72,96 60,90.4 60,101.6" fill="black" transform="rotate(270,64,96)"/>
                <g class="text">
                  <text x="180" y="36">AC</text>
                  <text x="404" y="36">AC</text>
                  <text x="56" y="52">Network</text>
                  <text x="152" y="52">Service</text>
                  <text x="208" y="52">Model</text>
                  <text x="296" y="52">IXP</text>
                  <text x="376" y="52">Service</text>
                  <text x="432" y="52">Model</text>
                  <text x="528" y="52">Network</text>
                  <text x="52" y="68">Operator</text>
                  <text x="96" y="68">A</text>
                  <text x="292" y="68">Operator</text>
                  <text x="516" y="68">Operator</text>
                  <text x="560" y="68">B</text>
                  <text x="280" y="84">B2B</text>
                  <text x="312" y="84">C/S</text>
                  <text x="68" y="148">Provisioning</text>
                  <text x="300" y="148">Provisioning</text>
                  <text x="532" y="148">Provisioning</text>
                  <text x="52" y="196">ASBR</text>
                  <text x="180" y="196">Bearer</text>
                  <text x="280" y="196">Layer</text>
                  <text x="312" y="196">2</text>
                  <text x="404" y="196">Bearer</text>
                  <text x="524" y="196">ASBR</text>
                  <text x="164" y="212">Base</text>
                  <text x="196" y="212">AC</text>
                  <text x="292" y="212">Facility</text>
                  <text x="396" y="212">Base</text>
                  <text x="428" y="212">AC</text>
                  <text x="176" y="244">.................</text>
                  <text x="264" y="244">BGP</text>
                  <text x="376" y="244">Session................</text>
                  <text x="16" y="308">B2B</text>
                  <text x="52" y="308">C/S:</text>
                  <text x="124" y="308">Back-to-back</text>
                  <text x="232" y="308">Client/Server</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
.------------.       AC       .----------.       AC       .------------.
|  Network   | Service Model  |    IXP   | Service Model  |   Network  |
| Operator A |<-------------->| Operator |<-------------->| Operator B |
|            |                |  B2B C/S |                |            |
'------^-----'                '-----^----'                '------^-----'
       |                            |                            |
       |                            |                            |
  Provisioning                 Provisioning                 Provisioning
       |                            |                            |
.------v----.                 .-----v----.                .------v-----.
|   ASBR    |======Bearer=====| Layer 2  |=====Bearer=====|    ASBR    |
|           +-----Base AC-----+ Facility +-----Base AC----|            |
|           |                 |          |                |            |
|           +..................BGP Session................+            |
|           |=================|          |================|            |
'-----------'                 '----------'                '------------'

B2B C/S: Back-to-back Client/Server
]]></artwork>
          </artset>
        </figure>
        <t>The following subsections exemplify a deployment flow, but BGP sessions can be managed without having to execute systematically all the steps detailed hereafter.</t>
        <t>The bearer/AC service models can be used to establish interconnection between two networks without involving an IXP.</t>
        <section anchor="sec-ret-loc">
          <name>Retrieve Interconnection Locations</name>
          <t><xref target="ex-retrieve-locations"/> shows an example a message body of a request to retrieve a list of interconnection locations. The request includes a customer name and an ASN to filter out the locations.</t>
          <figure anchor="ex-retrieve-locations">
            <name>Message Body of a Request to Retrieve Interconnection Locations</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-bearer-svc:locations": {
    "filtered-by": "ietf-bearer-svc:customer-name",
    "customer": [
      {
        "name": "a future peer",
        "peer-as": 65536
      }
    ]
  }
}
]]></sourcecode>
          </figure>
          <t><xref target="ex-retrieve-locations-res"/> provides an example of a response to a query received from the server with a list of available interconnection locations.</t>
          <figure anchor="ex-retrieve-locations-res">
            <name>Message Body of a Response to Retrieve Interconnection Locations</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-bearer-svc:locations": {
    "filtered-by": "ietf-bearer-svc:customer-name",
    "customer": [
      {
        "name": "a future peer",
        "peer-as": 65536,
        "location": [
          {
            "name": "Location-X",
            "_comment": "other location attributes"
          },
          {
            "_comment": "other locations"
          }
        ]
      }
    ]
  }
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="create-bearers-and-retrieve-bearer-references">
          <name>Create Bearers and Retrieve Bearer References</name>
          <t>A peer can then use the location information and select the ones where it can request new bearers. As shown in <xref target="ex-create-bearer-parent-ref"/>, the request includes a location reference which is known to the server (returned in <xref target="ex-retrieve-locations-res"/>).</t>
          <figure anchor="ex-create-bearer-parent-ref">
            <name>Message Body of a Request to Create a Bearer using a Provider-Assigned Reference</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "name": "a-name-choosen-by-client",
        "provider-location-reference": "Location-X",
        "customer-point": {
          "identified-by": "ietf-bearer-svc:device-id",
          "device": {
            "device-id": "ASBR_1_Location_X"
          }
        },
        "type": "ietf-bearer-svc:ethernet"
      }
    ]
  }
}
]]></sourcecode>
          </figure>
          <t>The bearer is then activated by the server as shown in <xref target="ex-create-bearer-parent-ref-res"/>. A "bearer-reference" is also returned. That reference can be used for subsequent AC activation requests.</t>
          <figure anchor="ex-create-bearer-parent-ref-res">
            <name>Message Body of a Response for a Bearer Created in a Specific Location</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "name": "a-name-choosen-by-client"
        "provider-location-reference": "Location-X",
        "customer-point": {
          "identified-by": "ietf-bearer-svc:device-id",
          "device": {
            "device-id": "ASBR_1_Location_X"
          }
        },
        "type": "ietf-bearer-svc:ethernet",
        "bearer-reference": "Location-X-Line-114",
        "status": {
          "oper-status": {
            "status": "ietf-vpn-common:op-up"
          }
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="sec-manage-ac-bgp">
          <name>Manage ACs and BGP Sessions</name>
          <t>As depicted in <xref target="bgp-peer-network"/>, each network connects to the IXP switch via a bearer over which an AC is created.</t>
          <figure anchor="bgp-peer-network">
            <name>Simple Interconnection Topology</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="432" width="472" viewBox="0 0 472 432" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,176" fill="none" stroke="black"/>
                  <path d="M 8,272 L 8,416" fill="none" stroke="black"/>
                  <path d="M 24,96 L 24,144" fill="none" stroke="black"/>
                  <path d="M 24,336 L 24,384" fill="none" stroke="black"/>
                  <path d="M 152,112 L 152,144" fill="none" stroke="black"/>
                  <path d="M 152,336 L 152,384" fill="none" stroke="black"/>
                  <path d="M 192,32 L 192,104" fill="none" stroke="black"/>
                  <path d="M 192,160 L 192,176" fill="none" stroke="black"/>
                  <path d="M 192,272 L 192,344" fill="none" stroke="black"/>
                  <path d="M 192,360 L 192,416" fill="none" stroke="black"/>
                  <path d="M 248,208 L 248,240" fill="none" stroke="black"/>
                  <path d="M 312,112 L 312,208" fill="none" stroke="black"/>
                  <path d="M 312,240 L 312,352" fill="none" stroke="black"/>
                  <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
                  <path d="M 8,32 L 192,32" fill="none" stroke="black"/>
                  <path d="M 24,96 L 152,96" fill="none" stroke="black"/>
                  <path d="M 160,112 L 312,112" fill="none" stroke="black"/>
                  <path d="M 24,144 L 152,144" fill="none" stroke="black"/>
                  <path d="M 8,176 L 192,176" fill="none" stroke="black"/>
                  <path d="M 248,208 L 304,208" fill="none" stroke="black"/>
                  <path d="M 320,208 L 368,208" fill="none" stroke="black"/>
                  <path d="M 176,224 L 248,224" fill="none" stroke="black"/>
                  <path d="M 368,224 L 424,224" fill="none" stroke="black"/>
                  <path d="M 248,240 L 304,240" fill="none" stroke="black"/>
                  <path d="M 320,240 L 368,240" fill="none" stroke="black"/>
                  <path d="M 8,272 L 192,272" fill="none" stroke="black"/>
                  <path d="M 24,336 L 152,336" fill="none" stroke="black"/>
                  <path d="M 160,352 L 312,352" fill="none" stroke="black"/>
                  <path d="M 24,384 L 152,384" fill="none" stroke="black"/>
                  <path d="M 8,416 L 192,416" fill="none" stroke="black"/>
                  <circle cx="144" cy="112" r="6" class="closeddot" fill="black"/>
                  <circle cx="144" cy="352" r="6" class="closeddot" fill="black"/>
                  <circle cx="152" cy="112" r="6" class="closeddot" fill="black"/>
                  <circle cx="152" cy="352" r="6" class="closeddot" fill="black"/>
                  <circle cx="312" cy="208" r="6" class="closeddot" fill="black"/>
                  <circle cx="312" cy="240" r="6" class="closeddot" fill="black"/>
                  <g class="text">
                    <text x="60" y="52">Provider</text>
                    <text x="128" y="52">Network</text>
                    <text x="168" y="52">A</text>
                    <text x="56" y="68">BGP</text>
                    <text x="112" y="68">ASN:65536</text>
                    <text x="284" y="68">Attachment-Circuit</text>
                    <text x="368" y="68">1</text>
                    <text x="332" y="84">Bearer=Location-X-Line-114</text>
                    <text x="68" y="116">ASBR-A-1</text>
                    <text x="220" y="132">192.0.2.1/24</text>
                    <text x="216" y="148">vlan-id:114</text>
                    <text x="152" y="228">...</text>
                    <text x="288" y="228">IXP</text>
                    <text x="316" y="228">SW</text>
                    <text x="448" y="228">...</text>
                    <text x="60" y="292">Provider</text>
                    <text x="128" y="292">Network</text>
                    <text x="168" y="292">B</text>
                    <text x="56" y="308">BGP</text>
                    <text x="112" y="308">ASN:65537</text>
                    <text x="232" y="340">.2/24</text>
                    <text x="68" y="356">ASBR-B-1</text>
                    <text x="268" y="372">Attachment-Circuit</text>
                    <text x="352" y="372">2</text>
                    <text x="308" y="388">Bearer=Location-X-Line-448</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
.----------------------.                       
|  Provider Network A  |                       
|    BGP ASN:65536     |  Attachment-Circuit 1 
|                      |    Bearer=Location-X-Line-114    
| .---------------.    |        
| | ASBR-A-1     **-------------------+
| |               |  192.0.2.1/24     |
| '---------------'  vlan-id:114      |
|                      |              |           
'----------------------'              |
                                      | 
                              .-------*------.  
                 ... ---------+   IXP SW     +------- ...
                              '-------*------'
                                      |
.----------------------.              |
|  Provider Network B  |              |
|    BGP ASN:65537     |              |
|                      |              |
| +---------------+    |  .2/24       |
| | ASBR-B-1     **-------------------+
| |               |    |Attachment-Circuit 2
| '---------------'    | Bearer=Location-X-Line-448
|                      |
'----------------------'
]]></artwork>
            </artset>
          </figure>
          <t>The AC configuration (<xref target="bgp-peer-network-add-attachment-circuit"/>) includes parameters such as VLAN configuration, IP addresses, MTU, and any additional settings required for connectivity. The peering location is inferred from the "bearer-reference".</t>
          <figure anchor="bgp-peer-network-add-attachment-circuit">
            <name>Message Body of a Request to Create an AC to Connect to an IXP</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "Attachment Circuit 1",
        "customer-name": "Network A",
        "description": "An AC to IXP SW in Location X",
        "requested-start": "2025-12-12T05:00:00.00Z",
        "peer-sap-id": [
          "asbr-1-interface"
        ],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "Location-X-Line-114"
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
          <t><xref target="bgp-peer-network-response"/> shows the received response to a query with the required information for the activation of the AC.</t>
          <figure anchor="bgp-peer-network-response">
            <name>Message Body of a Response to an AC Request to Connect to an IXP</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "Attachment Circuit 1",
        "customer-name": "Network A",
        "description": "An AC to IXP SW in Location X",
        "role": "ietf-ac-common:public-nni",
        "actual-start": "2025-12-12T05:00:00.00Z",
        "peer-sap-id": [
          "asbr-1-interface"
        ],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 114
            }
          },
          "bearer-reference": "Location-X-Line-114"
        },
        "ip-connection": {
          "ipv4": {
            "prefix-length": 24,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.1"
              }
            ]
          }
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
          <t>Once the ACs are established, BGP peering sessions can be configured between routers of the participating networks. BGP sessions can be established via a route server or between two networks. For the sake of illustration, let us assume that BGP sessions are established directly between two network. <xref target="bgp-peer-network-add-bgp-attachment-circuit"/> shows an example of a request to add a BGP session to an existing AC. The properties of that AC are not repeated in this request because that information is already communicated during the creation of the AC.</t>
          <figure anchor="bgp-peer-network-add-bgp-attachment-circuit">
            <name>Message Body of a Request to Create a BGP Session over an AC</name>
            <sourcecode type="json"><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "Attachment Circuit 1",
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "BGP",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "Session-Network-B",
                    "remote-address": "192.0.2.1",
                    "local-as": 65537,
                    "peer-as": 65536,
                    "address-family": "ietf-vpn-common:ipv4",
                    "authentication": {
                      "enabled": true,
                      "keying-material": {
                        "key-id": 1,
                        "key": "test##"
                      }
                    },
                    "status": {
                      "admin-status": {
                        "status": "ietf-vpn-common:admin-up"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
          <t><xref target="bgp-awaiting-validation"/> provides the example of a response which indicates that the request is awaiting validation. The response includes also a server-assigned reference for this BGP session.</t>
          <figure anchor="bgp-awaiting-validation">
            <name>Message Body of a Response for a BGP Session Awaiting Validation</name>
            <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "Attachment Circuit 1",
        "role": "ietf-ac-common:public-nni",
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "BGP",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "Session-Network-B",
                    "server-reference": "peering-svc-45857",
                    "local-address": "192.0.2.2",
                    "remote-address": "192.0.2.1",
                    "local-as": 65537,
                    "peer-as": 65536,
                    "address-family": "ietf-vpn-common:ipv4",
                    "authentication": {
                      "enabled": true,
                      "keying-material": {
                        "key-id": 1,
                        "key": "test##"
                      }
                    },
                    "status": {
                      "admin-status": {
                        "status": "ietf-ac-common:awaiting-\
                                                          validation"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
          <t>Once validation is accomplished, a status update is communicated back to the requestor. The BGP session can then be established over the AC. The BGP session configuration includes parameters such as neighbor IP addresses, ASNs, authentication settings (if required), etc. The configuration is triggered at each side of the BGP connection (i.e., peer ASBRs).</t>
          <figure anchor="bgp-peering-all-sessions">
            <name>Message Body of a Response to Report All Active BGP sessions over an AC</name>
            <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:routing-protocols": {
    "routing-protocol": [
      {
        "id": "BGP",
        "type": "ietf-vpn-common:bgp-routing",
        "bgp": {
          "neighbor": [
            {
              "id": "Session-Network-B",
              "server-reference": "peering-svc-45857",
              "local-address": "192.0.2.2",
              "remote-address": "192.0.2.1",
              "local-as": 65537,
              "peer-as": 65536,
              "address-family": "ietf-vpn-common:ipv4",
              "authentication": {
                "enabled": true,
                "keying-material": {
                  "key-id": 1,
                  "key": "test##"
                }
              },
              "status": {
                "admin-status": {
                  "status": "ietf-ac-common:up"
                }
              }
            },
            {
              "id": "Session-Network-C",
              "server-reference": "peering-svc-7866",
              "local-address": "192.0.2.3",
              "remote-address": "192.0.2.1",
              "local-as": 65538,
              "peer-as": 65536,
              "address-family": "ietf-vpn-common:ipv4",
              "authentication": {
                "enabled": true,
                "keying-material": {
                  "key-id": 1,
                  "key": "##test##"
                }
              },
              "status": {
                "admin-status": {
                  "status": "ietf-ac-common:up"
                }
              }
            },
            {
              "_comment": "list of other active BGP sessions over \
                                                             this AC"
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="sec-cloudified-nfs">
        <name>Connectivity of Cloud Network Functions</name>
        <section anchor="scope">
          <name>Scope</name>
          <t>This section demonstrates how the AC service model permits managing connectivity requirements for complex Network Functions (NFs) - containerized or virtualized -  that are typically deployed in Telco networks. This integration leverages the concept of "parent AC" to decouple physical and logical connectivity so that several ACs can shares Layer 2 and Layer 3 resources. This approach provides flexibility, scalability, and API stability.</t>
          <t>The NFs have the following characteristics:</t>
          <ul spacing="normal">
            <li>
              <t>The NF is distributed on a set of compute nodes with scaled-out and redundant instances.</t>
            </li>
            <li>
              <t>The NF has two distinct type of instances: user plane ("nf-up") and routing control plane ("nf-cp").</t>
            </li>
            <li>
              <t>The user plane component can be distributed among the first 8 compute nodes ("compute-01" to "compute-08") to achieve high performance.</t>
            </li>
            <li>
              <t>The control plane is deployed in a redundant fashion on two instances running on distinct compute nodes ("compute-09" and "compute-10").</t>
            </li>
            <li>
              <t>The NF is attached to distinct networks, each making use of a dedicated VLAN. These VLANs are therefore instantiated as separate ACs. From a realization standpoint, the NF interface connectivity is generally provided thanks to MacVLAN or Single Root I/O Virtualization (SR-IOV). For the sake of simplicity only two VLANs are presented in this example, additional VLANs are configured following a similar logic.</t>
            </li>
          </ul>
        </section>
        <section anchor="physical-infrastructure">
          <name>Physical Infrastructure</name>
          <t><xref target="cloud-parent-infra"/> describes the physical infrastructure. The compute nodes (customer) are attached to the provider infrastructure thanks to a set of physical links on which attachment circuits are provisioned (i.e., "compute-XX-nicY"). The provider infrastructure can be realized in multiple ways, such as IP Fabric, Layer 2/Layer 3 Edge Routers. This document does not intend to detail these aspects.</t>
          <figure anchor="cloud-parent-infra">
            <name>Example Physical Topology for Cloud Deployment</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="544" viewBox="0 0 544 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,48 L 8,112" fill="none" stroke="black"/>
                  <path d="M 8,160 L 8,224" fill="none" stroke="black"/>
                  <path d="M 8,288 L 8,352" fill="none" stroke="black"/>
                  <path d="M 112,48 L 112,112" fill="none" stroke="black"/>
                  <path d="M 112,160 L 112,224" fill="none" stroke="black"/>
                  <path d="M 112,288 L 112,352" fill="none" stroke="black"/>
                  <path d="M 312,32 L 312,368" fill="none" stroke="black"/>
                  <path d="M 360,48 L 360,80" fill="none" stroke="black"/>
                  <path d="M 360,112 L 360,144" fill="none" stroke="black"/>
                  <path d="M 360,176 L 360,208" fill="none" stroke="black"/>
                  <path d="M 360,240 L 360,272" fill="none" stroke="black"/>
                  <path d="M 432,48 L 432,80" fill="none" stroke="black"/>
                  <path d="M 432,112 L 432,144" fill="none" stroke="black"/>
                  <path d="M 432,176 L 432,208" fill="none" stroke="black"/>
                  <path d="M 432,240 L 432,272" fill="none" stroke="black"/>
                  <path d="M 448,112 L 448,144" fill="none" stroke="black"/>
                  <path d="M 448,176 L 448,208" fill="none" stroke="black"/>
                  <path d="M 520,112 L 520,144" fill="none" stroke="black"/>
                  <path d="M 520,176 L 520,208" fill="none" stroke="black"/>
                  <path d="M 536,32 L 536,368" fill="none" stroke="black"/>
                  <path d="M 312,32 L 536,32" fill="none" stroke="black"/>
                  <path d="M 8,48 L 112,48" fill="none" stroke="black"/>
                  <path d="M 360,48 L 432,48" fill="none" stroke="black"/>
                  <path d="M 120,80 L 304,80" fill="none" stroke="black"/>
                  <path d="M 360,80 L 432,80" fill="none" stroke="black"/>
                  <path d="M 8,112 L 112,112" fill="none" stroke="black"/>
                  <path d="M 360,112 L 432,112" fill="none" stroke="black"/>
                  <path d="M 448,112 L 520,112" fill="none" stroke="black"/>
                  <path d="M 360,144 L 432,144" fill="none" stroke="black"/>
                  <path d="M 448,144 L 520,144" fill="none" stroke="black"/>
                  <path d="M 8,160 L 112,160" fill="none" stroke="black"/>
                  <path d="M 360,176 L 432,176" fill="none" stroke="black"/>
                  <path d="M 448,176 L 520,176" fill="none" stroke="black"/>
                  <path d="M 120,192 L 304,192" fill="none" stroke="black"/>
                  <path d="M 360,208 L 432,208" fill="none" stroke="black"/>
                  <path d="M 448,208 L 520,208" fill="none" stroke="black"/>
                  <path d="M 8,224 L 112,224" fill="none" stroke="black"/>
                  <path d="M 360,240 L 432,240" fill="none" stroke="black"/>
                  <path d="M 360,272 L 432,272" fill="none" stroke="black"/>
                  <path d="M 8,288 L 112,288" fill="none" stroke="black"/>
                  <path d="M 120,320 L 304,320" fill="none" stroke="black"/>
                  <path d="M 8,352 L 112,352" fill="none" stroke="black"/>
                  <path d="M 312,368 L 536,368" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="196" y="52">bearer</text>
                    <text x="232" y="52">=</text>
                    <text x="208" y="68">compute-01-nic1</text>
                    <text x="60" y="84">compute-01</text>
                    <text x="196" y="164">bearer</text>
                    <text x="232" y="164">=</text>
                    <text x="208" y="180">compute-02-nic2</text>
                    <text x="60" y="196">compute-02</text>
                    <text x="208" y="260">[...]</text>
                    <text x="196" y="292">bearer</text>
                    <text x="232" y="292">=</text>
                    <text x="208" y="308">compute-10-nic0</text>
                    <text x="60" y="324">compute-10</text>
                    <text x="388" y="324">Provider</text>
                    <text x="456" y="324">Network</text>
                    <text x="428" y="340">Infrastructure</text>
                    <text x="328" y="356">(IP</text>
                    <text x="376" y="356">Fabric,</text>
                    <text x="448" y="356">Gateways,</text>
                    <text x="512" y="356">etc.)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                                       .---------------------------.
 .------------.       bearer =         |     .--------.            |
 |            |    compute-01-nic1     |     |        |            |
 | compute-01 |------------------------|     '--------'            |
 |            |                        |                           |
 '------------'                        |     .--------. .--------. |
                                       |     |        | |        | |
                                       |     '--------' '--------' |
 .------------.       bearer =         |                           |
 |            |    compute-02-nic2     |     .--------. .--------. |
 | compute-02 |------------------------|     |        | |        | |
 |            |                        |     '--------' '--------' |
 '------------'                        |                           |
                                       |     .--------.            |
                        [...]          |     |        |            |
                                       |     '--------'            |
 .------------.       bearer =         |                           |
 |            |    compute-10-nic0     |                           |
 | compute-10 |------------------------|     Provider Network      |
 |            |                        |       Infrastructure      |
 '------------'                        |(IP Fabric, Gateways, etc.)|
                                       '---------------------------'
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="nfs-deployment">
          <name>NFs Deployment</name>
          <t>The NFs are deployed on this infrastructure in the following way:</t>
          <ul spacing="normal">
            <li>
              <t>Configuration of a parent AC as a centralized attachment for "vlan 100". The parent AC captures Layer 2 and Layer 3 properties for this VLAN: vlan-id, IP default gateway and subnet, IP address pool for NFs endpoints, static routes with BFD to user plane, and BGP configuration to control plane NFs. In addition, the IP addresses of the user plane ("nf-up") instances are protected using BFD.</t>
            </li>
            <li>
              <t>Configuration of a parent AC as a centralized attachment for "vlan 200". This vlan is for Layer 2 connectivity between NFs (no IP configuration in the provider network).</t>
            </li>
            <li>
              <t>"Child ACs" binding bearers to parent ACs for "vlan 100" and "vlan 200".</t>
            </li>
            <li>
              <t>The deployment of the network service to all compute nodes ("compute-01" to "compute-10"), even though the NF is not instantiated on "compute-07"/"compute-08". This approach permits handling compute failures and scale-out scenarios in a reactive and flexible fashion thanks to a pre-provisioned networking logic.</t>
            </li>
          </ul>
          <figure anchor="cloud-parent-logical">
            <name>Logical Topology of the NFs Deployment</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1088" width="544" viewBox="0 0 544 1088" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,256 L 8,320" fill="none" stroke="black"/>
                  <path d="M 8,352 L 8,416" fill="none" stroke="black"/>
                  <path d="M 8,464 L 8,528" fill="none" stroke="black"/>
                  <path d="M 8,560 L 8,592" fill="none" stroke="black"/>
                  <path d="M 8,624 L 8,656" fill="none" stroke="black"/>
                  <path d="M 8,688 L 8,752" fill="none" stroke="black"/>
                  <path d="M 8,784 L 8,848" fill="none" stroke="black"/>
                  <path d="M 8,880 L 8,1056" fill="none" stroke="black"/>
                  <path d="M 16,272 L 16,320" fill="none" stroke="black"/>
                  <path d="M 16,368 L 16,416" fill="none" stroke="black"/>
                  <path d="M 16,480 L 16,528" fill="none" stroke="black"/>
                  <path d="M 16,704 L 16,752" fill="none" stroke="black"/>
                  <path d="M 16,800 L 16,848" fill="none" stroke="black"/>
                  <path d="M 72,272 L 72,320" fill="none" stroke="black"/>
                  <path d="M 72,368 L 72,416" fill="none" stroke="black"/>
                  <path d="M 72,480 L 72,528" fill="none" stroke="black"/>
                  <path d="M 72,704 L 72,752" fill="none" stroke="black"/>
                  <path d="M 72,800 L 72,848" fill="none" stroke="black"/>
                  <path d="M 80,256 L 80,320" fill="none" stroke="black"/>
                  <path d="M 80,352 L 80,416" fill="none" stroke="black"/>
                  <path d="M 80,464 L 80,528" fill="none" stroke="black"/>
                  <path d="M 80,560 L 80,592" fill="none" stroke="black"/>
                  <path d="M 80,624 L 80,656" fill="none" stroke="black"/>
                  <path d="M 80,688 L 80,752" fill="none" stroke="black"/>
                  <path d="M 80,784 L 80,848" fill="none" stroke="black"/>
                  <path d="M 200,32 L 200,192" fill="none" stroke="black"/>
                  <path d="M 296,880 L 296,1056" fill="none" stroke="black"/>
                  <path d="M 336,224 L 336,848" fill="none" stroke="black"/>
                  <path d="M 360,304 L 360,384" fill="none" stroke="black"/>
                  <path d="M 360,416 L 360,496" fill="none" stroke="black"/>
                  <path d="M 376,200 L 376,240" fill="none" stroke="black"/>
                  <path d="M 440,240 L 440,296" fill="none" stroke="black"/>
                  <path d="M 512,304 L 512,384" fill="none" stroke="black"/>
                  <path d="M 512,416 L 512,496" fill="none" stroke="black"/>
                  <path d="M 520,32 L 520,192" fill="none" stroke="black"/>
                  <path d="M 528,224 L 528,848" fill="none" stroke="black"/>
                  <path d="M 200,32 L 520,32" fill="none" stroke="black"/>
                  <path d="M 200,192 L 520,192" fill="none" stroke="black"/>
                  <path d="M 336,224 L 368,224" fill="none" stroke="black"/>
                  <path d="M 384,224 L 528,224" fill="none" stroke="black"/>
                  <path d="M 376,240 L 440,240" fill="none" stroke="black"/>
                  <path d="M 8,256 L 80,256" fill="none" stroke="black"/>
                  <path d="M 24,272 L 64,272" fill="none" stroke="black"/>
                  <path d="M 88,288 L 144,288" fill="none" stroke="black"/>
                  <path d="M 216,288 L 328,288" fill="none" stroke="black"/>
                  <path d="M 88,304 L 144,304" fill="none" stroke="black"/>
                  <path d="M 216,304 L 328,304" fill="none" stroke="black"/>
                  <path d="M 360,304 L 512,304" fill="none" stroke="black"/>
                  <path d="M 24,320 L 64,320" fill="none" stroke="black"/>
                  <path d="M 8,352 L 80,352" fill="none" stroke="black"/>
                  <path d="M 24,368 L 64,368" fill="none" stroke="black"/>
                  <path d="M 88,384 L 144,384" fill="none" stroke="black"/>
                  <path d="M 216,384 L 328,384" fill="none" stroke="black"/>
                  <path d="M 360,384 L 512,384" fill="none" stroke="black"/>
                  <path d="M 88,400 L 144,400" fill="none" stroke="black"/>
                  <path d="M 216,400 L 328,400" fill="none" stroke="black"/>
                  <path d="M 24,416 L 64,416" fill="none" stroke="black"/>
                  <path d="M 360,416 L 512,416" fill="none" stroke="black"/>
                  <path d="M 8,464 L 80,464" fill="none" stroke="black"/>
                  <path d="M 24,480 L 64,480" fill="none" stroke="black"/>
                  <path d="M 88,496 L 144,496" fill="none" stroke="black"/>
                  <path d="M 216,496 L 328,496" fill="none" stroke="black"/>
                  <path d="M 360,496 L 512,496" fill="none" stroke="black"/>
                  <path d="M 88,512 L 144,512" fill="none" stroke="black"/>
                  <path d="M 216,512 L 328,512" fill="none" stroke="black"/>
                  <path d="M 24,528 L 64,528" fill="none" stroke="black"/>
                  <path d="M 8,560 L 80,560" fill="none" stroke="black"/>
                  <path d="M 88,576 L 152,576" fill="none" stroke="black"/>
                  <path d="M 224,576 L 328,576" fill="none" stroke="black"/>
                  <path d="M 88,592 L 152,592" fill="none" stroke="black"/>
                  <path d="M 224,592 L 328,592" fill="none" stroke="black"/>
                  <path d="M 8,624 L 80,624" fill="none" stroke="black"/>
                  <path d="M 88,640 L 152,640" fill="none" stroke="black"/>
                  <path d="M 224,640 L 328,640" fill="none" stroke="black"/>
                  <path d="M 88,656 L 152,656" fill="none" stroke="black"/>
                  <path d="M 224,656 L 328,656" fill="none" stroke="black"/>
                  <path d="M 8,688 L 80,688" fill="none" stroke="black"/>
                  <path d="M 96,688 L 176,688" fill="none" stroke="black"/>
                  <path d="M 208,688 L 328,688" fill="none" stroke="black"/>
                  <path d="M 24,704 L 64,704" fill="none" stroke="black"/>
                  <path d="M 88,720 L 144,720" fill="none" stroke="black"/>
                  <path d="M 216,720 L 328,720" fill="none" stroke="black"/>
                  <path d="M 88,736 L 144,736" fill="none" stroke="black"/>
                  <path d="M 216,736 L 328,736" fill="none" stroke="black"/>
                  <path d="M 24,752 L 64,752" fill="none" stroke="black"/>
                  <path d="M 8,784 L 80,784" fill="none" stroke="black"/>
                  <path d="M 96,784 L 184,784" fill="none" stroke="black"/>
                  <path d="M 216,784 L 328,784" fill="none" stroke="black"/>
                  <path d="M 24,800 L 64,800" fill="none" stroke="black"/>
                  <path d="M 88,816 L 152,816" fill="none" stroke="black"/>
                  <path d="M 224,816 L 328,816" fill="none" stroke="black"/>
                  <path d="M 88,832 L 152,832" fill="none" stroke="black"/>
                  <path d="M 224,832 L 328,832" fill="none" stroke="black"/>
                  <path d="M 24,848 L 64,848" fill="none" stroke="black"/>
                  <path d="M 336,848 L 528,848" fill="none" stroke="black"/>
                  <path d="M 8,880 L 296,880" fill="none" stroke="black"/>
                  <path d="M 312,960 L 344,960" fill="none" stroke="black"/>
                  <path d="M 8,1056 L 296,1056" fill="none" stroke="black"/>
                  <path d="M 24,272 C 15.16936,272 8,279.16936 8,288" fill="none" stroke="black"/>
                  <path d="M 64,272 C 72.83064,272 80,279.16936 80,288" fill="none" stroke="black"/>
                  <path d="M 24,320 C 15.16936,320 8,312.83064 8,304" fill="none" stroke="black"/>
                  <path d="M 64,320 C 72.83064,320 80,312.83064 80,304" fill="none" stroke="black"/>
                  <path d="M 24,368 C 15.16936,368 8,375.16936 8,384" fill="none" stroke="black"/>
                  <path d="M 64,368 C 72.83064,368 80,375.16936 80,384" fill="none" stroke="black"/>
                  <path d="M 24,416 C 15.16936,416 8,408.83064 8,400" fill="none" stroke="black"/>
                  <path d="M 64,416 C 72.83064,416 80,408.83064 80,400" fill="none" stroke="black"/>
                  <path d="M 24,480 C 15.16936,480 8,487.16936 8,496" fill="none" stroke="black"/>
                  <path d="M 64,480 C 72.83064,480 80,487.16936 80,496" fill="none" stroke="black"/>
                  <path d="M 24,528 C 15.16936,528 8,520.83064 8,512" fill="none" stroke="black"/>
                  <path d="M 64,528 C 72.83064,528 80,520.83064 80,512" fill="none" stroke="black"/>
                  <path d="M 24,704 C 15.16936,704 8,711.16936 8,720" fill="none" stroke="black"/>
                  <path d="M 64,704 C 72.83064,704 80,711.16936 80,720" fill="none" stroke="black"/>
                  <path d="M 24,752 C 15.16936,752 8,744.83064 8,736" fill="none" stroke="black"/>
                  <path d="M 64,752 C 72.83064,752 80,744.83064 80,736" fill="none" stroke="black"/>
                  <path d="M 24,800 C 15.16936,800 8,807.16936 8,816" fill="none" stroke="black"/>
                  <path d="M 64,800 C 72.83064,800 80,807.16936 80,816" fill="none" stroke="black"/>
                  <path d="M 24,848 C 15.16936,848 8,840.83064 8,832" fill="none" stroke="black"/>
                  <path d="M 64,848 C 72.83064,848 80,840.83064 80,832" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="448,296 436,290.4 436,301.6" fill="black" transform="rotate(90,440,296)"/>
                  <polygon class="arrowhead" points="352,960 340,954.4 340,965.6" fill="black" transform="rotate(0,344,960)"/>
                  <polygon class="arrowhead" points="336,784 324,778.4 324,789.6" fill="black" transform="rotate(0,328,784)"/>
                  <polygon class="arrowhead" points="336,688 324,682.4 324,693.6" fill="black" transform="rotate(0,328,688)"/>
                  <polygon class="arrowhead" points="104,784 92,778.4 92,789.6" fill="black" transform="rotate(180,96,784)"/>
                  <polygon class="arrowhead" points="104,688 92,682.4 92,693.6" fill="black" transform="rotate(180,96,688)"/>
                  <g class="text">
                    <text x="220" y="52">VLAN</text>
                    <text x="260" y="52">100:</text>
                    <text x="228" y="84">Static</text>
                    <text x="280" y="84">route</text>
                    <text x="316" y="84">to</text>
                    <text x="360" y="84">virtual</text>
                    <text x="408" y="84">BGP</text>
                    <text x="436" y="84">NH</text>
                    <text x="460" y="84">in</text>
                    <text x="492" y="84">user</text>
                    <text x="224" y="100">plane</text>
                    <text x="288" y="100">instances</text>
                    <text x="340" y="100">NF</text>
                    <text x="372" y="100">with</text>
                    <text x="408" y="100">BFD</text>
                    <text x="472" y="100">protection:</text>
                    <text x="208" y="132">-</text>
                    <text x="288" y="132">198.51.100.100/32</text>
                    <text x="376" y="132">via</text>
                    <text x="432" y="132">192.0.2.1</text>
                    <text x="208" y="148">-</text>
                    <text x="288" y="148">198.51.100.100/32</text>
                    <text x="376" y="148">via</text>
                    <text x="432" y="148">192.0.2.2</text>
                    <text x="216" y="164">...</text>
                    <text x="208" y="180">-</text>
                    <text x="288" y="180">198.51.100.100/32</text>
                    <text x="376" y="180">via</text>
                    <text x="432" y="180">192.0.2.8</text>
                    <text x="124" y="228">vlan</text>
                    <text x="160" y="228">100</text>
                    <text x="188" y="228">IP</text>
                    <text x="228" y="228">subnet</text>
                    <text x="188" y="244">192.0.2.0/24</text>
                    <text x="92" y="276">.1</text>
                    <text x="148" y="276">&lt;-</text>
                    <text x="176" y="276">bfd</text>
                    <text x="204" y="276">-&gt;</text>
                    <text x="44" y="292">nf-up1</text>
                    <text x="180" y="292">vlan-100</text>
                    <text x="180" y="308">vlan-200</text>
                    <text x="396" y="324">Bridge</text>
                    <text x="444" y="324">vlan</text>
                    <text x="480" y="324">100</text>
                    <text x="44" y="340">compute-01</text>
                    <text x="432" y="340">(l2/l3)</text>
                    <text x="396" y="356">IP</text>
                    <text x="444" y="356">gateway:</text>
                    <text x="92" y="372">.2</text>
                    <text x="148" y="372">&lt;-</text>
                    <text x="176" y="372">bfd</text>
                    <text x="204" y="372">-&gt;</text>
                    <text x="436" y="372">192.0.2.254/24</text>
                    <text x="44" y="388">nf-up2</text>
                    <text x="180" y="388">vlan-100</text>
                    <text x="180" y="404">vlan-200</text>
                    <text x="44" y="436">compute-02</text>
                    <text x="184" y="452">[...]</text>
                    <text x="396" y="452">Bridge</text>
                    <text x="444" y="452">vlan</text>
                    <text x="480" y="452">200</text>
                    <text x="408" y="468">(l2</text>
                    <text x="448" y="468">only)</text>
                    <text x="92" y="484">.6</text>
                    <text x="148" y="484">&lt;-</text>
                    <text x="176" y="484">bfd</text>
                    <text x="204" y="484">-&gt;</text>
                    <text x="44" y="500">nf-up6</text>
                    <text x="180" y="500">vlan-100</text>
                    <text x="180" y="516">vlan-200</text>
                    <text x="44" y="548">compute-06</text>
                    <text x="188" y="580">vlan-100</text>
                    <text x="188" y="596">vlan-200</text>
                    <text x="44" y="612">compute-07</text>
                    <text x="188" y="644">vlan-100</text>
                    <text x="188" y="660">vlan-200</text>
                    <text x="44" y="676">compute-08</text>
                    <text x="192" y="692">BGP</text>
                    <text x="92" y="708">.9</text>
                    <text x="300" y="708">.252</text>
                    <text x="44" y="724">nf-cp1</text>
                    <text x="180" y="724">vlan-100</text>
                    <text x="180" y="740">vlan-200</text>
                    <text x="44" y="772">compute-09</text>
                    <text x="200" y="788">BGP</text>
                    <text x="96" y="804">.10</text>
                    <text x="308" y="804">.253</text>
                    <text x="44" y="820">nf-cp2</text>
                    <text x="188" y="820">vlan-100</text>
                    <text x="188" y="836">vlan-200</text>
                    <text x="44" y="868">compute-10</text>
                    <text x="32" y="900">nf-cp</text>
                    <text x="88" y="900">routing</text>
                    <text x="136" y="900">for</text>
                    <text x="172" y="900">VLAN</text>
                    <text x="208" y="900">100</text>
                    <text x="52" y="916">advertises</text>
                    <text x="120" y="916">pools</text>
                    <text x="164" y="916">with</text>
                    <text x="200" y="916">1:N</text>
                    <text x="244" y="916">backup</text>
                    <text x="36" y="932">route.</text>
                    <text x="24" y="948">BGP</text>
                    <text x="72" y="948">UPDATE:</text>
                    <text x="72" y="964">203.0.113.0/24,</text>
                    <text x="148" y="964">NH</text>
                    <text x="168" y="964">=</text>
                    <text x="236" y="964">198.51.100.100</text>
                    <text x="72" y="980">203.0.113.0/28,</text>
                    <text x="148" y="980">NH</text>
                    <text x="168" y="980">=</text>
                    <text x="216" y="980">192.0.2.1</text>
                    <text x="76" y="996">203.0.113.16/28,</text>
                    <text x="156" y="996">NH</text>
                    <text x="176" y="996">=</text>
                    <text x="224" y="996">192.0.2.2</text>
                    <text x="24" y="1012">...</text>
                    <text x="76" y="1028">203.0.113.80/28,</text>
                    <text x="156" y="1028">NH</text>
                    <text x="176" y="1028">=</text>
                    <text x="224" y="1028">192.0.2.6</text>
                    <text x="76" y="1044">203.0.113.96/28,</text>
                    <text x="156" y="1044">NH</text>
                    <text x="176" y="1044">=</text>
                    <text x="224" y="1044">192.0.2.7</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                         .---------------------------------------. 
                         |VLAN 100:                              | 
                         |                                       | 
                         |Static route to virtual BGP NH in user | 
                         |plane instances NF with BFD protection:| 
                         |                                       | 
                         |- 198.51.100.100/32 via 192.0.2.1      | 
                         |- 198.51.100.100/32 via 192.0.2.2      | 
                         |...                                    | 
                         |- 198.51.100.100/32 via 192.0.2.8      | 
                         '---------------------------------------' 
                                               |                   
              vlan 100 IP subnet          .----|------------------.
                  192.0.2.0/24            |    +-------+          |
 .--------.                               |            |          |
 |.------.|.1     <- bfd ->               |            |          |
 ||nf-up1||--------vlan-100---------------|            v          |
 ||      ||--------vlan-200---------------|  .------------------. |
 |'------'|                               |  | Bridge vlan 100  | |
 compute-01                               |  |     (l2/l3)      | |
 .--------.                               |  |   IP gateway:    | |
 |.------.|.2     <- bfd ->               |  |  192.0.2.254/24  | |
 ||nf-up2||--------vlan-100---------------|  '------------------' |
 ||      ||--------vlan-200---------------|                       |
 |'------'|                               |  .------------------. |
 compute-02                               |  |                  | |
                     [...]                |  | Bridge vlan 200  | |
 .--------.                               |  |    (l2 only)     | |
 |.------.|.6     <- bfd ->               |  |                  | |
 ||nf-up6||--------vlan-100---------------|  '------------------' |
 ||      ||--------vlan-200---------------|                       |
 |'------'|                               |                       |
 compute-06                               |                       |
 .--------.                               |                       |
 |        |---------vlan-100--------------|                       |
 |        |---------vlan-200--------------|                       |
 compute-07                               |                       |
 .--------.                               |                       |
 |        |---------vlan-100--------------|                       |
 |        |---------vlan-200--------------|                       |
 compute-08                               |                       |
 .--------. <----------BGP--------------->|                       |
 |.------.|.9                       .252  |                       |
 ||nf-cp1||--------vlan-100---------------|                       |
 ||      ||--------vlan-200---------------|                       |
 |'------'|                               |                       |
 compute-09                               |                       |
 .--------. <-----------BGP-------------->|                       |
 |.------.|.10                       .253 |                       |
 ||nf-cp2||---------vlan-100--------------|                       |
 ||      ||---------vlan-200--------------|                       |
 |'------'|                               '-----------------------'
 compute-10                                                        
 .-----------------------------------.                             
 |nf-cp routing for VLAN 100         |                             
 |advertises pools with 1:N backup   |                             
 |route.                             |                             
 |BGP UPDATE:                        |                             
 |203.0.113.0/24, NH = 198.51.100.100| ---->                       
 |203.0.113.0/28, NH = 192.0.2.1     |                             
 |203.0.113.16/28, NH = 192.0.2.2    |                             
 |...                                |                             
 |203.0.113.80/28, NH = 192.0.2.6    |                             
 |203.0.113.96/28, NH = 192.0.2.7    |                             
 '-----------------------------------'                              
]]></artwork>
            </artset>
          </figure>
          <t>For readability the payload is displayed as single JSON file (<xref target="parent-profile"/>). In practice, several API calls may take place to initialize these resources (e.g., GET requests from the customer to retrieve the IP address pools for NFs on "vlan 100" thanks to parent configuration and BGP configuration, and POST extra routes for user planes and BFD).</t>
          <t>Note that no individual IP addresses are assigned for the NF user plane instances (i.e., no "customer-address" in the Child AC). The assignment of IP addresses to the NF endpoints is managed by the Cloud Infrastructure IPAM based on the 'customer-address' IP address pool "192.0.2.1-200". Like in any conventional LAN-facing scenario, it is assumed that the actual binding of IP endpoints to logical attachments (here Child ACs) relies on a dedicated protocol logic (typically, Address Resolution Protocol (ARP) <xref target="RFC0826"/> or Neighbor Discovery <xref target="RFC4861"/>) and is not captured in the data model. Hence, the IP addresses displayed for NF user plane instances are simply examples to illustrate a realization approach. Note also that the Control Plane is defined with static IP address assignments on a given AC/bearer to illustrate another deployment alternative.</t>
          <figure anchor="parent-profile">
            <name>Message Body for the Configuration of the NF ACs</name>
            <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:specific-provisioning-profiles": {
    "valid-provider-identifiers": {
      "failure-detection-profile-identifier": [
        {
          "id": "single-hop-bfd-user-plane"
        }
      ]
    }
  },
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "parent-vlan-100",
        "description": "This parent represents a bridge with L3 \
                          interface (IRB) to connect NF in vlan 100",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 100
            }
          }
        },
        "ip-connection": {
          "ipv4": {
            "virtual-address": "192.0.2.254",
            "prefix-length": 24,
            "customer-addresses": {
              "address-pool": [
                {
                  "pool-id": "pool-1",
                  "start-address": "192.0.2.1",
                  "end-address": "192.0.2.200"
                }
              ]
            }
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:static-routing",
              "static": {
                "cascaded-lan-prefixes": {
                  "ipv4-lan-prefix": [
                    {
                      "lan": "198.51.100.100/32",
                      "next-hop": "192.0.2.1",
                      "lan-tag": "virtual-next-hop",
                      "failure-detection-profile": "single-hop-bfd-\
                                                          user-plane"
                    },
                    {
                      "lan": "198.51.100.100/32",
                      "next-hop": "192.0.2.2",
                      "lan-tag": "virtual-next-hop",
                      "failure-detection-profile": "single-hop-bfd-\
                                                          user-plane"
                    },
                    {
                      "_comment": "192.0.2.3-192.0.2.7 are not \
                                                           displayed"
                    },
                    {
                      "lan": "198.51.100.100/32",
                      "next-hop": "192.0.2.8",
                      "lan-tag": "virtual-next-hop",
                      "failure-detection-profile": "single-hop-bfd-\
                                                          user-plane"
                    }
                  ]
                }
              }
            },
            {
              "id": "2",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "peer-groups": {
                  "peer-group": [
                    {
                      "name": "peer-nf-cp-vlan-100-gw1",
                      "local-as": 65536,
                      "peer-as": 65537,
                      "local-address": "192.0.2.252"
                    },
                    {
                      "name": "peer-nf-cp-vlan-100-gw2",
                      "local-as": 65536,
                      "peer-as": 65537,
                      "local-address": "192.0.2.253"
                    }
                  ]
                },
                "neighbor": [
                  {
                    "id": "gw1-cp1",
                    "remote-address": "192.0.2.101",
                    "peer-group": "peer-nf-cp-vlan-100-gw1"
                  },
                  {
                    "id": "gw1-cp2",
                    "remote-address": "192.0.2.102",
                    "peer-group": "peer-nf-cp-vlan-100-gw1"
                  },
                  {
                    "id": "gw2-cp1",
                    "remote-address": "192.0.2.101",
                    "peer-group": "peer-nf-cp-vlan-100-gw2"
                  },
                  {
                    "id": "gw2-cp2",
                    "remote-address": "192.0.2.102",
                    "peer-group": "peer-nf-cp-vlan-100-gw2"
                  }
                ]
              }
            }
          ]
        },
        "oam": {
          "bfd": {
            "session": [
              {
                "id": "bfd-gw1-nf-up1",
                "local-address": "192.0.2.252",
                "remote-address": "192.0.2.1",
                "profile": "single-hop-bfd-user-plane"
              },
              {
                "id": "bfd-gw2-nf-up1",
                "local-address": "192.0.2.253",
                "remote-address": "192.0.2.1",
                "profile": "single-hop-bfd-user-plane"
              },
              {
                "id": "bfd-gw1-nf-up2",
                "local-address": "192.0.2.252",
                "remote-address": "192.0.2.2",
                "profile": "single-hop-bfd-user-plane"
              },
              {
                "id": "bfd-gw2-nf-up2",
                "local-address": "192.0.2.253",
                "remote-address": "192.0.2.2",
                "profile": "single-hop-bfd-user-plane"
              },
              {
                "_comment": "192.0.2.3-192.0.2.7 sessions are not \
                                                           displayed"
              },
              {
                "id": "bfd-gw1-nf-up8",
                "local-address": "192.0.2.252",
                "remote-address": "192.0.2.8",
                "profile": "single-hop-bfd-user-plane"
              },
              {
                "id": "bfd-gw2-nf-up8",
                "local-address": "192.0.2.253",
                "remote-address": "192.0.2.8",
                "profile": "single-hop-bfd-user-plane"
              }
            ]
          }
        }
      },
      {
        "name": "parent-vlan-200",
        "description": "This parent represents a bridge that \
                                          connects a NF in vlan 200",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 200
            }
          }
        }
      },
      {
        "name": "ac-nf-up-01-vlan-100",
        "description": "attachment to NF-up instance 1 in vlan 100",
        "ac-parent-ref": ["parent-vlan-100"],
        "l2-connection": {
          "bearer-reference": "compute-01-nic1"
        }
      },
      {
        "name": "ac-nf-up-02-vlan-100",
        "description": "attachment to NF-up instance 2 in vlan 100",
        "ac-parent-ref": ["parent-vlan-100"],
        "l2-connection": {
          "bearer-reference": "compute-02-nic2"
        }
      },
      {
        "_comment": "ac-nf-up-03-vlan-100 to ac-nf-up-07-vlan-100 \
                                                          are hidden"
      },
      {
        "name": "ac-nf-up-08-vlan-100",
        "description": "attachment to NF-up instance 10 in vlan 100",
        "ac-parent-ref": ["parent-vlan-100"],
        "l2-connection": {
          "bearer-reference": "compute-08-nic1"
        }
      },
      {
        "name": "ac-nf-cp-01-vlan-100",
        "description": "attachment to NF-CP instance 1 in vlan 100",
        "ac-parent-ref": ["parent-vlan-100"],
        "l2-connection": {
          "bearer-reference": "compute-09-nic0"
        },
        "ip-connection": {
          "ipv4": {
            "prefix-length": 24,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.101"
              }
            ]
          }
        }
      },
      {
        "name": "ac-nf-cp-02-vlan-100",
        "description": "attachment to NF-CP instance 2 in vlan 100",
        "ac-parent-ref": ["parent-vlan-100"],
        "l2-connection": {
          "bearer-reference": "compute-10-nic0"
        },
        "ip-connection": {
          "ipv4": {
            "prefix-length": 24,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.102"
              }
            ]
          }
        }
      },
      {
        "name": "ac-nf-up-1-vlan-200",
        "description": "attachment to NF-up instance 1 in vlan 200",
        "ac-parent-ref": ["parent-vlan-200"],
        "l2-connection": {
          "bearer-reference": "compute-01-nic1"
        }
      },
      {
        "_comment": "ac-nf-up-2-vlan-200 to ac-nf-cp-01-vlan-200 \
                                                   are not displayed"
      },
      {
        "name": "ac-nf-cp-2-vlan-200",
        "description": "attachment to NF-CP instance 2 in vlan 200",
        "ac-parent-ref": ["parent-vlan-200"],
        "l2-connection": {
          "bearer-reference": "compute-10-nic0"
        }
      }
    ]
  }
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="nf-failure-and-scale-out">
          <name>NF Failure and Scale-Out</name>
          <t>Assuming a failure of "compute-01", the instance "nf-up-1" can be redeployed to "compute-07" by the NF/Cloud Orchestration. The NFs can be scaled-out thanks to the creation of an extra instance "nf-up7" on "compute-08". Since connectivity is pre-provisioned, these operations happen without any API calls. In other words, this redeployment is transparent from the perspective of the configuration of the provider network.</t>
          <figure anchor="cloud-parent-nf-lcm">
            <name>Example of Compute Failure and Scale-out</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="536" viewBox="0 0 536 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                  <path d="M 8,272 L 8,336" fill="none" stroke="black"/>
                  <path d="M 8,368 L 8,432" fill="none" stroke="black"/>
                  <path d="M 16,288 L 16,336" fill="none" stroke="black"/>
                  <path d="M 16,384 L 16,432" fill="none" stroke="black"/>
                  <path d="M 48,160 L 48,264" fill="none" stroke="black"/>
                  <path d="M 72,288 L 72,336" fill="none" stroke="black"/>
                  <path d="M 72,384 L 72,432" fill="none" stroke="black"/>
                  <path d="M 80,64 L 80,128" fill="none" stroke="black"/>
                  <path d="M 80,272 L 80,336" fill="none" stroke="black"/>
                  <path d="M 80,368 L 80,432" fill="none" stroke="black"/>
                  <path d="M 336,32 L 336,448" fill="none" stroke="black"/>
                  <path d="M 360,64 L 360,128" fill="none" stroke="black"/>
                  <path d="M 360,160 L 360,224" fill="none" stroke="black"/>
                  <path d="M 512,64 L 512,128" fill="none" stroke="black"/>
                  <path d="M 512,160 L 512,224" fill="none" stroke="black"/>
                  <path d="M 528,32 L 528,448" fill="none" stroke="black"/>
                  <path d="M 336,32 L 528,32" fill="none" stroke="black"/>
                  <path d="M 8,64 L 80,64" fill="none" stroke="black"/>
                  <path d="M 360,64 L 512,64" fill="none" stroke="black"/>
                  <path d="M 88,96 L 144,96" fill="none" stroke="black"/>
                  <path d="M 216,96 L 328,96" fill="none" stroke="black"/>
                  <path d="M 88,112 L 144,112" fill="none" stroke="black"/>
                  <path d="M 216,112 L 328,112" fill="none" stroke="black"/>
                  <path d="M 360,128 L 512,128" fill="none" stroke="black"/>
                  <path d="M 360,160 L 512,160" fill="none" stroke="black"/>
                  <path d="M 360,224 L 512,224" fill="none" stroke="black"/>
                  <path d="M 8,272 L 80,272" fill="none" stroke="black"/>
                  <path d="M 24,288 L 64,288" fill="none" stroke="black"/>
                  <path d="M 88,304 L 152,304" fill="none" stroke="black"/>
                  <path d="M 224,304 L 328,304" fill="none" stroke="black"/>
                  <path d="M 88,320 L 152,320" fill="none" stroke="black"/>
                  <path d="M 224,320 L 328,320" fill="none" stroke="black"/>
                  <path d="M 24,336 L 64,336" fill="none" stroke="black"/>
                  <path d="M 8,368 L 80,368" fill="none" stroke="black"/>
                  <path d="M 24,384 L 64,384" fill="none" stroke="black"/>
                  <path d="M 88,400 L 152,400" fill="none" stroke="black"/>
                  <path d="M 224,400 L 328,400" fill="none" stroke="black"/>
                  <path d="M 88,416 L 152,416" fill="none" stroke="black"/>
                  <path d="M 224,416 L 328,416" fill="none" stroke="black"/>
                  <path d="M 24,432 L 64,432" fill="none" stroke="black"/>
                  <path d="M 336,448 L 528,448" fill="none" stroke="black"/>
                  <path d="M 24,288 C 15.16936,288 8,295.16936 8,304" fill="none" stroke="black"/>
                  <path d="M 64,288 C 72.83064,288 80,295.16936 80,304" fill="none" stroke="black"/>
                  <path d="M 24,336 C 15.16936,336 8,328.83064 8,320" fill="none" stroke="black"/>
                  <path d="M 64,336 C 72.83064,336 80,328.83064 80,320" fill="none" stroke="black"/>
                  <path d="M 24,384 C 15.16936,384 8,391.16936 8,400" fill="none" stroke="black"/>
                  <path d="M 64,384 C 72.83064,384 80,391.16936 80,400" fill="none" stroke="black"/>
                  <path d="M 24,432 C 15.16936,432 8,424.83064 8,416" fill="none" stroke="black"/>
                  <path d="M 64,432 C 72.83064,432 80,424.83064 80,416" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="56,264 44,258.4 44,269.6" fill="black" transform="rotate(90,48,264)"/>
                  <g class="text">
                    <text x="40" y="100">status=</text>
                    <text x="180" y="100">vlan-100</text>
                    <text x="396" y="100">Bridge</text>
                    <text x="444" y="100">vlan</text>
                    <text x="480" y="100">100</text>
                    <text x="44" y="116">DOWN</text>
                    <text x="180" y="116">vlan-200</text>
                    <text x="44" y="148">compute-01</text>
                    <text x="396" y="196">Bridge</text>
                    <text x="444" y="196">vlan</text>
                    <text x="480" y="196">200</text>
                    <text x="184" y="244">[...]</text>
                    <text x="92" y="292">.1</text>
                    <text x="144" y="292">&lt;</text>
                    <text x="160" y="292">-</text>
                    <text x="184" y="292">bfd</text>
                    <text x="208" y="292">-</text>
                    <text x="224" y="292">&gt;</text>
                    <text x="44" y="308">nf-up1</text>
                    <text x="188" y="308">vlan-100</text>
                    <text x="380" y="308">nf-up1</text>
                    <text x="432" y="308">moved</text>
                    <text x="468" y="308">to</text>
                    <text x="188" y="324">vlan-200</text>
                    <text x="420" y="324">compute-07</text>
                    <text x="44" y="356">compute-07</text>
                    <text x="404" y="372">nf-up7</text>
                    <text x="444" y="372">on</text>
                    <text x="92" y="388">.7</text>
                    <text x="144" y="388">&lt;</text>
                    <text x="160" y="388">-</text>
                    <text x="184" y="388">bfd</text>
                    <text x="208" y="388">-</text>
                    <text x="224" y="388">&gt;</text>
                    <text x="412" y="388">compute-08</text>
                    <text x="44" y="404">nf-up7</text>
                    <text x="188" y="404">vlan-100</text>
                    <text x="400" y="404">created</text>
                    <text x="448" y="404">for</text>
                    <text x="188" y="420">vlan-200</text>
                    <text x="416" y="420">scale-out</text>
                    <text x="44" y="452">compute-08</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                                          .-----------------------.
                                          |                       |
 .--------.                               |  .------------------. |
 |        |                               |  |                  | |
 |status= |--------vlan-100---------------|  | Bridge vlan 100  | |
 |  DOWN  |--------vlan-200---------------|  |                  | |
 |        |                               |  '------------------' |
 compute-01                               |                       |
      |                                   |  .------------------. |
      |                                   |  |                  | |
      |                                   |  | Bridge vlan 200  | |
      |                                   |  |                  | |
      |                                   |  '------------------' |
      |              [...]                |                       |
      v                                   |                       |
 .--------.                               |                       |
 |.------.|.1     < - bfd - >             |                       |
 ||nf-up1||---------vlan-100--------------|  nf-up1 moved to      |
 ||      ||---------vlan-200--------------|     compute-07        |
 |'------'|                               |                       |
 compute-07                               |                       |
 .--------.                               |     nf-up7 on         |
 |.------.|.7     < - bfd - >             |    compute-08         |
 ||nf-up7||---------vlan-100--------------|    created for        |
 ||      ||---------vlan-200--------------|     scale-out         |
 |'------'|                               |                       |
 compute-08                               '-----------------------'
]]></artwork>
            </artset>
          </figure>
          <t>Finally, the addition or deletion of compute nodes in the deployment ("compute-11", "compute-12", etc.) involves merely changes on Child ACs and possible routing on the parent AC. In any case, the parent AC is a stable identifier, which can be consumed as a reference by end-to-end service models for VPN configuration such as <xref target="I-D.ietf-opsawg-ac-lxsm-lxnm-glue"/>, Slice Service <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/>, etc. This decoupling to a stable identifier provides great benefits in terms of scalability and flexibility since once the reference with the parent AC is implemented, no API call involving the VPN model is needed for any modification in the cloud.</t>
        </section>
      </section>
      <section anchor="sec-bfd-static">
        <name>BFD and Static Addressing</name>
        <t><xref target="ex-bfd-static"/> shows a topology example of a set of CEs connected to a provider network via dedicated bearers. Each of these CE maintains two BFD sessions with the provider network.</t>
        <figure anchor="ex-bfd-static">
          <name>Example of Static Addressing with BFD</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="464" viewBox="0 0 464 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
                <path d="M 8,208 L 8,240" fill="none" stroke="black"/>
                <path d="M 8,320 L 8,352" fill="none" stroke="black"/>
                <path d="M 80,48 L 80,80" fill="none" stroke="black"/>
                <path d="M 80,112 L 80,144" fill="none" stroke="black"/>
                <path d="M 80,208 L 80,240" fill="none" stroke="black"/>
                <path d="M 80,320 L 80,352" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,272" fill="none" stroke="black"/>
                <path d="M 208,96 L 208,128" fill="none" stroke="black"/>
                <path d="M 208,160 L 208,176" fill="none" stroke="black"/>
                <path d="M 240,64 L 240,96" fill="none" stroke="black"/>
                <path d="M 248,176 L 248,224" fill="none" stroke="black"/>
                <path d="M 264,184 L 264,208" fill="none" stroke="black"/>
                <path d="M 280,96 L 280,128" fill="none" stroke="black"/>
                <path d="M 280,160 L 280,176" fill="none" stroke="black"/>
                <path d="M 312,96 L 312,144" fill="none" stroke="black"/>
                <path d="M 312,176 L 312,224" fill="none" stroke="black"/>
                <path d="M 400,96 L 400,144" fill="none" stroke="black"/>
                <path d="M 400,176 L 400,224" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,272" fill="none" stroke="black"/>
                <path d="M 184,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 8,48 L 80,48" fill="none" stroke="black"/>
                <path d="M 88,64 L 176,64" fill="none" stroke="black"/>
                <path d="M 192,64 L 240,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
                <path d="M 208,96 L 280,96" fill="none" stroke="black"/>
                <path d="M 312,96 L 400,96" fill="none" stroke="black"/>
                <path d="M 8,112 L 80,112" fill="none" stroke="black"/>
                <path d="M 288,112 L 304,112" fill="none" stroke="black"/>
                <path d="M 88,128 L 176,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 80,144" fill="none" stroke="black"/>
                <path d="M 312,144 L 400,144" fill="none" stroke="black"/>
                <path d="M 208,176 L 280,176" fill="none" stroke="black"/>
                <path d="M 312,176 L 400,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 80,208" fill="none" stroke="black"/>
                <path d="M 264,208 L 312,208" fill="none" stroke="black"/>
                <path d="M 88,224 L 176,224" fill="none" stroke="black"/>
                <path d="M 192,224 L 248,224" fill="none" stroke="black"/>
                <path d="M 312,224 L 400,224" fill="none" stroke="black"/>
                <path d="M 8,240 L 80,240" fill="none" stroke="black"/>
                <path d="M 184,272 L 416,272" fill="none" stroke="black"/>
                <path d="M 8,320 L 80,320" fill="none" stroke="black"/>
                <path d="M 120,336 L 144,336" fill="none" stroke="black"/>
                <path d="M 176,336 L 200,336" fill="none" stroke="black"/>
                <path d="M 8,352 L 80,352" fill="none" stroke="black"/>
                <path d="M 120,352 L 144,352" fill="none" stroke="black"/>
                <path d="M 176,352 L 200,352" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="208,352 196,346.4 196,357.6" fill="black" transform="rotate(0,200,352)"/>
                <polygon class="arrowhead" points="208,336 196,330.4 196,341.6" fill="black" transform="rotate(0,200,336)"/>
                <polygon class="arrowhead" points="128,352 116,346.4 116,357.6" fill="black" transform="rotate(180,120,352)"/>
                <polygon class="arrowhead" points="128,336 116,330.4 116,341.6" fill="black" transform="rotate(180,120,336)"/>
                <g class="text">
                  <text x="100" y="52">.1</text>
                  <text x="48" y="68">CE1</text>
                  <text x="356" y="84">.252</text>
                  <text x="100" y="116">.2</text>
                  <text x="248" y="116">LAN</text>
                  <text x="352" y="116">GW1</text>
                  <text x="48" y="132">CE2</text>
                  <text x="196" y="132">--</text>
                  <text x="352" y="132">[bfd]</text>
                  <text x="244" y="148">192.0.2/24</text>
                  <text x="364" y="164">.253</text>
                  <text x="16" y="180">...</text>
                  <text x="352" y="196">GW2</text>
                  <text x="104" y="212">.10</text>
                  <text x="352" y="212">[bfd]</text>
                  <text x="52" y="228">CE10</text>
                  <text x="260" y="260">Provider</text>
                  <text x="328" y="260">Network</text>
                  <text x="20" y="308">Each</text>
                  <text x="52" y="308">CE</text>
                  <text x="80" y="308">has</text>
                  <text x="104" y="308">a</text>
                  <text x="128" y="308">BFD</text>
                  <text x="176" y="308">session</text>
                  <text x="220" y="308">to</text>
                  <text x="252" y="308">each</text>
                  <text x="304" y="308">gateway</text>
                  <text x="352" y="308">for</text>
                  <text x="416" y="308">redundancy:</text>
                  <text x="48" y="340">CEx</text>
                  <text x="100" y="340">.x</text>
                  <text x="160" y="340">bfd</text>
                  <text x="228" y="340">.252</text>
                  <text x="160" y="356">bfd</text>
                  <text x="228" y="356">.253</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +----------------------------+
+--------+ .1         |                            |
|   CE1  |------------|------+                     |
+--------+            |      |            .252     |
                      |  +---+----+   +----------+ |
+--------+ .2         |  |   LAN  |---|   GW1    | |
|   CE2  |------------|--|        |   |  [bfd]   | |
+--------+            |  192.0.2/24   +----------+ |
                      |  |        |        .253    |
...                   |  +----+---+   +----------+ |
                      |       | |     |   GW2    | |
+--------+ .10        |       | +-----+  [bfd]   | |
|   CE10 |------------|-------+       +----------+ |
+--------+            |                            |
                      |     Provider Network       |
                      +----------------------------+

Each CE has a BFD session to each gateway for redundancy:
+--------+
|   CEx  | .x <---bfd---> .252
+--------+    <---bfd---> .253
]]></artwork>
          </artset>
        </figure>
        <t><xref target="ex-json-bfd-static"/> shows the message body of the ACaaS configuration to enable the target architecture shown in <xref target="ex-bfd-static"/>. This example uses an AC group profile to factorize common data between all involved ACs. It also uses child ACs that inherit the properties of two parent ACs; each terminating in a separate gateway in the provider network.</t>
        <figure anchor="ex-json-bfd-static">
          <name>Message Body for the Configuration of CEs with Static Addressing and BFD Protection</name>
          <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:specific-provisioning-profiles": {
    "valid-provider-identifiers": {
      "failure-detection-profile-identifier": [
        {
          "id": "single-hop-bfd"
        }
      ]
    }
  },
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "name": "profile-vlan-100",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 100
            }
          }
        },
        "ip-connection": {
          "ipv4": {
            "virtual-address": "192.0.2.254",
            "prefix-length": 24,
            "address": [
              {
                "address-id": "ce1",
                "customer-address": "192.0.2.1",
                "failure-detection-profile": "single-hop-bfd"
              },
              {
                "address-id": "ce2",
                "customer-address": "192.0.2.2",
                "failure-detection-profile": "single-hop-bfd"
              },
              {
                "_comment": "ce3 to ce9 are not displayed"
              },
              {
                "address-id": "ce10",
                "customer-address": "192.0.2.10",
                "failure-detection-profile": "single-hop-bfd"
              }
            ]
          }
        }
      }
    ],
    "ac": [
      {
        "name": "parent-vlan-100-gw1",
        "description": "This parent represents a bridge with Layer \
                       3 interface (IRB) to connect NFs in VLAN 100",
        "ac-group-profile-ref": [
          "profile-vlan-100"
        ],
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.252",
            "prefix-length": 24
          }
        }
      },
      {
        "name": "parent-vlan-100-gw2",
        "description": "This parent represents a bridge with Layer \
                       3 interface (IRB) to connect NFs in VLAN 100",
        "ac-group-profile-ref": [
          "profile-vlan-100"
        ],
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.253",
            "prefix-length": 24
          }
        }
      },
      {
        "name": "ac-ce-01-vlan-100",
        "description": "attachment to CE1 in VLAN 100",
        "ac-parent-ref": [
          "parent-vlan-100-gw1",
          "parent-vlan-100-gw2"
        ],
        "l2-connection": {
          "bearer-reference": "bearer--1"
        }
      },
      {
        "name": "ac-ce-02-vlan-100",
        "description": "attachment to CE2 in VLAN 100",
        "ac-parent-ref": [
          "parent-vlan-100-gw1",
          "parent-vlan-100-gw2"
        ],
        "l2-connection": {
          "bearer-reference": "bearer--2"
        }
      },
      {
        "_comment": "ac-ce-03-vlan-100 to ac-ce-09-vlan-100 are \
                                                              hidden"
      },
      {
        "name": "ac-ce-10-vlan-100",
        "description": "attachment to CE10 in VLAN 100",
        "ac-parent-ref": [
          "parent-vlan-100-gw1",
          "parent-vlan-100-gw2"
        ],
        "l2-connection": {
          "bearer-reference": "bearer--10"
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document leverages <xref target="RFC9182"/> and <xref target="RFC9291"/>. Thanks to Gyan Mishra for the review.</t>
      <t>Thanks to Ebben Aries for the YANG Doctors review and for providing <xref target="Instance-Data"/>.</t>
      <t>Thanks to Donald Eastlake for the careful rtg-dir reviews and Tero Kivinen for the sec-dir review.</t>
      <t>Thanks to Luis Miguel Contreras Murillo for the careful Shepherd review.</t>
      <t>Thanks to Mahesh for the AD review.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact initials="I." surname="Bykov" fullname="Ivan Bykov">
        <organization>Ribbon Communications</organization>
        <address>
          <email>Ivan.Bykov@rbbn.com</email>
        </address>
      </contact>
      <contact initials="Q." surname="Wu" fullname="Qin Wu">
        <organization>Huawei</organization>
        <address>
          <email>bill.wu@huawei.com</email>
        </address>
      </contact>
      <contact initials="K." surname="Ogaki" fullname="Kenichi Ogaki">
        <organization>KDDI</organization>
        <address>
          <email>ke-oogaki@kddi.com</email>
        </address>
      </contact>
      <contact initials="L. A." surname="Munoz" fullname="Luis Angel Munoz">
        <organization>Vodafone</organization>
        <address>
          <email>luis-angel.munoz@vodafone.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y963obx5Uo+h/ft9+hh/5B0iFAiaJliU5sQxSlcI9EMaJs
Z858M3s3gCbZEYBGuhukaEvzLOdZzpOddauqVdXVuJB04iTCNxNTQF1XrVq3
Wpdut9up83qcHSQb/9E/eZk8T+s0eV2MsnGVnBdl8ixLy6ysknQ6Sjb7dZ0O
LyfZtE4O83I4z+tqs5tW3bR7lpVX+TBLtvqHaXq2vdFJB4Myu4JR6YuNzjCt
s4uivDlIqnrU6YyK4TSdwKyjMj2vu3lWn3eLWZVeX3TrDEe0M3WHPFP34ded
aj6Y5FWVF9P6Zgadj4/evehM55NBVh50RjDDQWdYTKtsWs2rg6Qu51kHlvCo
A1tIYSlvZlmZ1tCbt/M6naYXGc6x0bkuyvcXZTGfYbPTs/5PLzc677Mb+Hp0
0Em6ydkYdye7xC9ePfrx9IT+2JM/+vO6mNDw+K+TrMYxg2/flMPLrKpL+0Ul
cAN451dZeUNzyXezsrjKcbP59EK3rbILXHRjjPNx9iEf5OO8vvGa55PZOD/P
h421qe08enl66v0E+8VpO+m8vixKhEEngc/5fDzmg3tdXMJ/R8mzYj5MR2le
0u9FeZFO859pqgPYbjq9yOiHskAcy0Z5XXDLbJLm44NkwsP0BmaY7wvq1BsW
k05z1rf58DItR8nbAs68riJz/u/5NIdzXjhpWXL37//CjXvTrI5M9qYapmXy
spj+nI6zn+GMkud5EZvzXTbOzuGchqmepcDuvQvpPoJlFNX3tW3assOzdJJn
cO/S8mKej5OXeZmOR0Vk0pPife7NV1HP3oB7/p8L7vn9FNu1TPasSH6aR8b+
4zy9znLY1/ByWoyLizyr9ExjuDm96/mg+P6SGvLocPXqMh8AwiO+yFw8z4/5
EL5NXhWz7GczXWQHV9SsN8Zm3rq9wY6v0mny7OZ9ceWGepsPBsU0OSwmk/lU
UN1bMnbqUafvy8FgGhv3T/lUQcMAQQ8Cl2sM+/Z27Y/x7xnMfpknby7S97kb
6t+fPz/WA73PukWBTb5/PxpFB3o1z6ukDxdhnLyeTwsFtR+LUQoYlHkHAq27
eG3GvQm2/v5KGvHQ06JEGnQF9LGTT8/Vv5Kkf9itrobdd2WWHdCQwg5eAJIk
RLwT/C05A3I6rOclz0vENtl7sLfPfQDnsvoguazrWXWwu3uR15fzAU6+ay/2
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
e9s+yWIyK2uvw1haaT24mNmmb85OX5jvi2p2bn84Pusen5lf8iqv7C8IlLfH
drQyN6P1MBEpJTh0OU38yM4QVcOg4aZTmU1iA4heFeIw4tLXam+VII6do46N
k4FFBPOoHJ5IL3kNyIzPrHH4/fj2rd3yVVnaPX9+FfWo+7pvnX97Z/V4E5vJ
RLMOWZDikeYT5ZWtj7JL9YXgSlTR1XwMFxRepDYO+DFc2rLlMDlpjhJokLY9
EBSPpSKHgu8aauSCIZD2NMbAL9cZBMlUYxD8cp1BgJ41xoDv1hkC6UNjDPyy
MUjyd3yl0nKEEW2MSLLy29QXJMmcMVfyBRrFlExAJbUK0pP6MZSuUzSWcsF2
P1/6eMe7XnoR/NNqmI6yURd9INjg0lDkPfihBc61hb3BP5Jp9qHuXhazyC4T
dyUWW7Kaawte8vX/hsr5vqxn6YDorBI3JUWxIBjA7DM6QMM1odl/gpU/hi2m
rKYTQnOAdiVrGaTWV7AaQyy06TbXGpS4bWKEUVkjFXmbjYNhF5bHbe29Tr3e
+Hrj5Xtj2C7Nb7Xc5G7LdSbgda+q+Sy1HAf2lrarqv5w5oQFVzW561VN7nhV
k7te1eSWV1X9cdurqv5Y7aomK1xV3WzpVbXf3Oqqer1vi/tuvcuvatD8VstN
brvczyJ2bIi1RWwr9kYkTJvT0BdjVxaC+1VgootKsY3qzY2cUDrNl4lbI5cs
pIMYbCzULlo9cExJjcWJfmNyc475aHLAK+hkiswqD7AMg9KkpLrLEktxIkIR
Y8HM8FOCxJItVzbkt3bSPcqnmRSlMfnw/JKGtCcxFe9QhcPMbNwSY67hx3vZ
xEK+aTnaRIvjJj9ConFsU9Igw5KZCEcWzD9Eaof66wVo1OWNq1SNfWzwsQli
5ZYSiyd1CdHIBPt5ebowQ2HjvCL5CCWbmMl8h6kGbb6/XIyvFIHES41X5uLM
f3Z7piRX61b90qamso1yEqSsf5S0fJRtU4izNZJiluGrfDSXojve+IxJrBui
4ZEVQmN3hAsz1TnL1bh0OtjDmOckg5ytrFwn4yytas8MvFkl/bPkhF40k63+
2cm2tRSbpy9qctLr9J3pUCd2F0RFY9/YVt60VmYKfTIR8xRox7GYfslvaVXN
imklxdChR3ljenZs+mbKDCiro/SKeEhSMFvqBHj5N+FnBAnWCOIMmZ4N3Jbp
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
3tVvUEj+QEP2zxZYW+72RedSayB4JKHXBweKR48aSGAapRhEu2MeqDMv2tIj
78xTCeX0w2SNZCIc6skApX8R8vvDvhQpPL4C8ftvJKZ4nLjCF7AGJ/3TqbwL
VZKdSTqKVjZWo+Q4u0ib0rxTogwwgpHxxxcFgZ22SakeQP6BN/5LJTdiqbvX
6+Mv2FFpktsSURq92Oi8jFZ+OTqM7EVYRU1BMLhQVB4rm8+js6vjcb8nkzdi
OQpEBWybdG/Dz9Wr/Octu60OWvnl5artFlsI6/yGfGTj+Olvb+K93Vjbkn45
2o1Psqy2EdNbKOgOt39eHXE3hBLusu/bXJbJVvvhho/2v/un/fXshhuPvpY9
sIAy59GhK4OcxwYH2dMgPwzAOMufjfFxac0ZTb5Isey6vsFwgdJLh83oMJtI
BhVikT38hAWENU8OpA3f/XJvM0qmcAG4167h+GERkuNBPz+jGuggNpszipFr
PxF9ZVSvVLw59YURcAmxOoMrLKGJQNlTC0n5ZwYDmBx2ifQyWmFbJVUMv4py
QMPeqPNVe1r4inx6coIVOfUC5Wl3OkbV72WavB/CWqRY1zMHtC7k++PHjiDY
Ns4Z47EftTYxxh4VjtbdZkvff7IJksx3Mlb/M5OM/RW9eqoq7X4N0lmVM999
0vfoaT/8ih49BZvqd4+ekmHNGJzc9ihzLY+eUscfl3yU+FrSk+kQiEqKQ5uM
p2mp2+P79Aq34hzIxrifDCp6hIfPe5sxNOieJX1CbaUK8ZIuQi6T4atfh1mx
nZiqK6NQBpsCAzMP82J5AhitlTZ0nwHwnp4h6V5a4kK8As0iECJNR0trxPAe
5V3Y73E/U15I6IiffiDLLqWHAeGYM7BAo0sYAjAMSt4ms+1o3M+1xi6XLMYm
nRynmFMEXq+YPP/pEyv8dvd1BW80R2skk12ihbSXkgMSiPqDbHhqMrrvdKKV
nc4hnw5gQDBvJDYneQNVNCwop71TrQxUA1jOtZph5Wh/DQV+TVn34flVmjJy
X6OsDyR/ksX0xTKL4iA0A0bLmqOBFFkv4rvKG45pEdEQnRitKpOWaEVyeLc2
Gqv4hjHlhnEYzGCyy1Kja4nxrKzIeMEcQZ+yfC9F+POrbDtP84egMt7Z9S7b
T5pOmt5crgMmrSbaNZpmuggTTidk+1j55fWzVms1Chs082R0DxYd83XSkMRS
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
zp5+6P8Dd75EQ5B+AwA=

-->

</rfc>
