<?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.6.24 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boro-opsawg-teas-attachment-circuit-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="ACaaS">YANG Data Models for 'Attachment Circuits'-as-a-Service (ACaaS)</title>
    <seriesInfo name="Internet-Draft" value="draft-boro-opsawg-teas-attachment-circuit-04"/>
    <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="2023" month="March" day="02"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>Slice Service</keyword>
    <keyword>L3VPN</keyword>
    <keyword>L2VPN</keyword>
    <abstract>
      <t>This document specifies a YANG service data model for Attachment Circuits (ACs). This model can be used for the provisioning of ACs prior or during service provisioning (e.g., Network Slice Service). The document specifies also a module that updates other service and network modules with the required information to bind specific services to ACs that are created using the AC service model.</t>
      <t>Also, the document specifies a set of reusable groupings. Whether a service model reuses structures defined in the AC models or simply include an AC reference is a design choice of these service models. Relying upon the AC service model to manage ACs over which a service is delivered has the merit to decorrelate the management of a service vs. upgrade the AC components to reflect 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>
    <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 (e.g., service functions, customer edges (CEs), peer ASBRs, data centers gateways, 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 that belong to the same customer/service, an interconnection node, or an ancillary node. A set of objectives for the connectivity service may eventually be negotiated and agreed upon between a customer a network provider. For that data transfer to take place within the provider network, it is assumed that adequate setup is provisioned over the links that connect customer terminating points and a provider network so that data can be successfully exchanged over these links. The required setup is referred to in this document as Attachment Circuits (ACs), while the underlying link is referred to as "bearers".</t>
        <t>This document adheres to the definition of an Attachment Circuit as provided in Section 1.2 of <xref 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 an 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.), <strong>programmatic means to expose 'attachment circuits'-as-a-service will greatly simplify the provisioning of value added services</strong> that will be delivered over an attachment circuits.</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 (e.g., an enterprise site, a network function, a hosting infrastructure, a peer network provider). The model can be used for the provisioning of ACs prior or during advanced service provisioning (e.g., Network Slice Service).</t>
        <t>The "ietf-ac-svc" 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 ACes over which services are delivered has the merit to decorrelate 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). <strong>This document favors the approach of completely relying upon the AC service model instead of duplicating into specific modules of advanced services that are delivered over an Attachment Circuit.</strong></t>
        <t>Because the provisioning of an AC requires a bearer to be in place, this document allows customers to manage their bearer requests by means of a new module, called "ietf-bearer-svc". The customers can then retrieve a provider-assigned bearer reference that they will include in their AC service requests.</t>
        <t>A AC service request can provide a reference to a bearer or a set of peer SAPs. Both schemes are supported in the AC service model.</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 Service Attachment Points (SAPs) <xref target="I-D.ietf-opsawg-sap"/>. Likewise, a 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.</t>
        <t>The AC service model <strong>does not make any assumption about the internal structure or even the nature or the services that will be delivered over an attachment circuit</strong>. Customers do not have access to that network view other than the ACes that the ordered. For example, the AC service model can be used to provision a set of ACes to connect multiple sites (Site1, Site2, ..., SiteX) for customer that also requested VPN services. If these provisioning of these services require specific configured on ASBR nodes, such configuration is handled at the network level and is not exposed at the service level to the customer. 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="I-D.ietf-opsawg-sap"/>.</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>Request an attachment circuit for a known peer SAP (<xref target="ac-no-bearer-peer-sap"/>).</li>
          <li>Instantiate multiple attachment circuits over the same bearer (<xref target="sec-ex-one-ce-multi-acs"/>).</li>
          <li>Control the precedence over multiple attachment circuits (<xref target="sec-ex-prec"/>).</li>
          <li>Bind a slice service to a set of pre-provisioned attachment circuits (<xref target="sec-ex-slice"/>).</li>
          <li>Connect a Cloud Infrastructure to a service provider network (<xref target="sec-ex-cloud"/>).</li>
        </ul>
        <t>These examples use the IPv4 address blocks reserved for documentation <xref target="RFC5737"/>, the IPv6 prefix reserved for documentation <xref target="RFC3849"/>, and the Autonomous System (AS) numbers reserved for documentation <xref target="RFC5398"/>.</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="position-acaas-vs-other-data-models">
        <name>Position ACaaS vs. Other Data Models</name>
        <t>The model specified in this document <strong>is not a network model</strong> <xref target="RFC8969"/>. As such, the model does not expose details related to specific nodes in the provider's network that terminate a requested AC. The mapping between an AC as seen by a customer and the network implementation of an AC is maintained by the network controllers and not exposed to the customer. Such a mapping can be maintained using a variety of network models (e.g., SAPs) AC Network Model <xref target="I-D.boro-opsawg-ntw-attachment-circuit"/>, etc.</t>
        <t>The AC service model <strong>is not a device model</strong>. A network provider may use a variety of device models (e.g., Routing management <xref target="RFC8349"/> or BGP <xref target="I-D.ietf-idr-bgp-model"/>) to provision an AC service.</t>
        <section anchor="why-not-using-l2sm-as-reference-data-model-for-acaas">
          <name>Why Not Using L2SM as Reference Data Model for ACaaS?</name>
          <t>The L2SM <xref target="RFC8466"/> covers some AC-related considerations. Nevertheless, the L2SM structure is too layer 2 centric. For example, the L2SM part does not cover Layer 3 provisioning, which is required for the instantiation of typical ACs.</t>
        </section>
        <section anchor="why-not-using-l3sm-as-reference-data-model-for-acaas">
          <name>Why Not Using L3SM as Reference Data Model for ACaaS?</name>
          <t>Similar to the L2NM, the L3SM <xref target="RFC8299"/> covers some AC-related considerations. Nevertheless, the L3SM structure does not adequately cover layer 2 provisioning matters. Moreover, the L3SM is drawn with conventional L3VPN deployments in mind and, as such, has some limitations for instantiating ACs in other deployment contexts (e.g., cloud environments). For example, the L3SM does not allow to provision multiple BGP sessions over the same AC.</t>
        </section>
      </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>
      <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      <t>This document uses the following terms:</t>
      <dl>
        <dt>Bearer:</dt>
        <dd>
          <t>A physical or logical link that connects a customer node (or site) to a provider network. A bearer can be a wireless or wired link. One or multiple technologies can be used to build a bearer. The bearer type can be specified by a customer.</t>
        </dd>
        <dt/>
        <dd>
          <t>The operator allocates a unique bearer reference to identify a bearer within its network (e.g., customer line identifier). Such a reference can be retrieved by a customer and used in subsequent service placement requests to unambiguously identify where a service is to be bound.</t>
        </dd>
        <dt/>
        <dd>
          <t>The concept of bearer can be generalized to refer to the required underlying connection for the provisioning of an attachment circuit. One or multiple attachment circuits may be hosted over the same bearer (e.g., multiple VLANs on the same bearer that is provided by a physical link).</t>
        </dd>
        <dt>Network controller:</dt>
        <dd>
          <t>Denotes a functional entity responsible for the management of the service provider network.</t>
        </dd>
        <dt>Service orchestrator:</dt>
        <dd>
          <t>Refers to a functional entity that interacts with the customer of a network service. The service orchestrator is typically responsible for the attachment circuits, the Provider Edge (PE) selection, and requesting the activation of the requested service to a network controller.</t>
        </dd>
        <dt>Service provider network:</dt>
        <dd>
          <t>A network that is able to provide network services (e.g., Layer 2 VPN, Layer 3, and 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, and Network Slice Services).</t>
        </dd>
      </dl>
    </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-devices">
        <name>ACs Terminated by One or Multiple Customer Devices</name>
        <t><xref target="uc"/> depicts two target topology flavors that involve ACs. These topologies are characterized as follows:</t>
        <ul spacing="normal">
          <li>A Customer Terminating Point (CTP) may be a physical node or a logical entity. A CTP is seen by the network as a peer SAP.</li>
          <li>The same AC request may include one or multiple ACs that may belong to one or both of these flavors. For the sake of simplfying the illustration, only a subset of these ACs is shown in <xref target="uc"/>.</li>
          <li>CTPs may be dedicated to one single service or host multiple services (e.g., service functions <xref target="RFC7665"/>).</li>
          <li>A single AC (as seen by a network provider) may be bound to one or multiple peer SAPs (e.g., CTP#1 and CTP#2). For example, and as discussed in <xref target="RFC4364"/>, multiple CTPs (CEs) can be attached to a PE over the same attachment circuit. This is typically implemented if the layer 2 infrastructure between the CTP and the network provides a multipoint service.</li>
          <li>The same CTP may terminate multiple ACs. These ACes may be over the same or distinct bearers.</li>
          <li>The customer may request protection schemes where the ACs bound to a customer endpoints are terminated by the same PE (e.g., CTP#3), distinct PEs (e.g., CTP#34), etc.</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="224" width="544" viewBox="0 0 544 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 304,176 L 304,192" fill="none" stroke="black"/>
                <path d="M 512,160 L 512,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="40" y="36">┌───────┐</text>
                  <text x="292" y="36">┌────────────────────┐</text>
                  <text x="504" y="36">┌───────┐</text>
                  <text x="8" y="52">│</text>
                  <text x="100" y="52">├──────┐</text>
                  <text x="208" y="52">│</text>
                  <text x="424" y="52">├────AC─────┤</text>
                  <text x="536" y="52">│</text>
                  <text x="8" y="68">│</text>
                  <text x="40" y="68">CTP#1</text>
                  <text x="72" y="68">│</text>
                  <text x="128" y="68">│</text>
                  <text x="208" y="68">│</text>
                  <text x="424" y="68">├────AC─────┤</text>
                  <text x="504" y="68">CTP#3</text>
                  <text x="536" y="68">|</text>
                  <text x="40" y="84">└───────┘</text>
                  <text x="128" y="84">│</text>
                  <text x="208" y="84">│</text>
                  <text x="376" y="84">│</text>
                  <text x="504" y="84">└───────┘</text>
                  <text x="168" y="100">├───AC────┤</text>
                  <text x="280" y="100">Network</text>
                  <text x="376" y="100">│</text>
                  <text x="40" y="116">┌───────┐</text>
                  <text x="128" y="116">│</text>
                  <text x="208" y="116">│</text>
                  <text x="376" y="116">│</text>
                  <text x="8" y="132">│</text>
                  <text x="72" y="132">│</text>
                  <text x="128" y="132">│</text>
                  <text x="208" y="132">│</text>
                  <text x="376" y="132">│</text>
                  <text x="504" y="132">┌───────┐</text>
                  <text x="8" y="148">│</text>
                  <text x="40" y="148">CTP#2</text>
                  <text x="100" y="148">├──────┘</text>
                  <text x="208" y="148">│</text>
                  <text x="424" y="148">│─────AC────┤</text>
                  <text x="504" y="148">CTP#4</text>
                  <text x="536" y="148">│</text>
                  <text x="40" y="164">└───────┘</text>
                  <text x="208" y="164">│</text>
                  <text x="376" y="164">│</text>
                  <text x="488" y="164">└────</text>
                  <text x="528" y="164">──┘</text>
                  <text x="252" y="180">└───────────</text>
                  <text x="344" y="180">────────┘</text>
                  <text x="408" y="212">└────────────AC───────────┘</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
┌───────┐                ┌────────────────────┐           ┌───────┐
│       ├──────┐         │                    ├────AC─────┤       │
│ CTP#1 │      │         │                    ├────AC─────┤ CTP#3 |
└───────┘      │         │                    │           └───────┘
               ├───AC────┤     Network        │
┌───────┐      │         │                    │
│       │      │         │                    │           ┌───────┐
│ CTP#2 ├──────┘         │                    │─────AC────┤ CTP#4 │
└───────┘                │                    │           └────+──┘
                         └───────────+────────┘                |
                                     |                         |
                                     └────────────AC───────────┘
]]></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, including the flow put in place for the provisioning of advanced network services and how they are bound to an attachment circuit. For example, the same attachment circuit may be used to host multiple 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 the request a base attachment circuit to be put in place, and then refer to that base AC when requesting services that are bound to that AC.</t>
        <t><xref target="_u-ex"/> shows the positioning of the AC service model is the overall service delivery process.</t>
        <figure anchor="_u-ex">
          <name>An Example of AC Model Usage</name>
          <artwork align="center"><![CDATA[
                          +---------------+
                          |   Customer    |
                          +-------+-------+
          Customer Service Model  |
          e.g., slice-svc, ac-svc,|bearer-svc
                          +-------+-------+
                          |    Service    |
                          | Orchestration |
                          +-------+-------+
           Network Model          |
     e.g., l3vpn-ntw, sap, ac-ntw |
                          +-------+-------+
                          |   Network     |
                          | Orchestration |
                          +-------+-------+
    Network Configuration Model   |
                      +-----------+-----------+
                      |                       |
             +--------+------+       +--------+------+
             |    Domain     |       |     Domain    |
             | Orchestration |       | Orchestration |
             +---+-----------+       +--------+------+
  Device         |        |                   |
  Configuration  |        |                   |
  Model          |        |                   |
            +----+----+   |                   |
            | Config  |   |                   |
            | Manager |   |                   |
            +----+----+   |                   |
                 |        |                   |
                 | NETCONF/CLI..................
                 |        |                   |
               +--------------------------------+
 +----+ Bearer |                                | Bearer +----+
 |CTP +--------+            Network             +--------+ CTP|
 +----+        |                                |        +----+
               +--------------------------------+
  Site A                                                  Site B
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="description-of-the-data-models">
      <name>Description of the Data Models</name>
      <section anchor="the-bearer-service-ietf-bearer-svc-yang-module">
        <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 the attachment that are below Layer 3). 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 anchroing of the AC can also be achieved by indicating (with or without a bearer reference), a peer SAP identifier (e.g., An identifier of a Service Function).</t>
        <figure anchor="bearer-st">
          <name>Bearers Tree Structure</name>
          <artwork align="center"><![CDATA[
module: ietf-bearer-svc
  +--rw bearers
     +--rw bearer* [id]
        +--rw id                  string
        +--rw description?        string
        +--rw customer-device
        |  +--rw device-id?   string
        |  +--rw location
        |     +--rw address?        string
        |     +--rw postal-code?    string
        |     +--rw state?          string
        |     +--rw city?           string
        |     +--rw country-code?   string
        +--rw requested-type?     identityref
        +--ro bearer-reference?   string
        |       {vpn-common:bearer-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
]]></artwork>
        </figure>
        <t>The same customer site (CE, NF, etc.) can terminate one or multiple bearers; each of them uniquely identified by a refrence 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>
      </section>
      <section anchor="the-attachment-circuit-service-ietf-ac-svc-yang-module">
        <name>The Attachment Circuit Service ("ietf-ac-svc") YANG Module</name>
        <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 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 attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
          </figure>
          <artwork><![CDATA[
> Note: The full ACaaS tree is available at {{AC-SVC-Tree}}. The full reusable groupings defined in the ACaaS module are shown in {{AC-SVC-GRP}}.
]]></artwork>
          <t>Each AC is identified with a unique identifier 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.boro-opsawg-teas-common-ac"/>. Therefore, the description of these nodes are not reiterated in the following subsections.</t>
        </section>
        <section anchor="service-profiles">
          <name>Service Profiles</name>
          <section anchor="description">
            <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 specific profiles that are similar to those defined in <xref target="RFC9181"/>. 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 Proviles</name>
              <artwork align="center"><![CDATA[
module: ietf-ac-svc
  +--rw specific-provisioning-profiles
  |  +--rw valid-provider-identifiers
  |     +--rw external-connectivity-identifier* [id]
  |     |       {external-connectivity}?
  |     |  +--rw id    string
  |     +--rw encryption-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw qos-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw bfd-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw forwarding-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw routing-profile-identifier* [id]
  |        +--rw id    string
  +--rw 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
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></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 thereff are used is local to each service provider.</t>
            <t>The following specific rovisioning profiles can be defined:</t>
            <dl>
              <dt>'external-connectivity-identifier':</dt>
              <dd>
                <t>Refers to a profile that defines the external connectivity provided to a site that is connected via an AC. External connectivity may be access to the Internet or restricted connectivity, such as access to a public/private cloud.</t>
              </dd>
              <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>'bfd-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of 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 these 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 referenc typedef is defiened 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 attahment circuits.</t>
          </section>
        </section>
        <section anchor="attachment-circuits-profiles">
          <name>Attachment Circuits Profiles</name>
          <t>TBC.</t>
        </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>Overall 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 ac* [name]
        +--rw customer-name?       string
        +--rw description?         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 peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw group* [group-id]
        |  +--rw group-id      string
        |  +--rw precedence?   identityref
        +--rw name                 string
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
          </figure>
          <section anchor="ac-placement-constraints">
            <name>AC Placement Constraints</name>
            <t>The structure of 'placement-constraints' is shown in <xref target="precedence-tree"/>.</t>
            <figure anchor="precedence-tree">
              <name>Overall Attachment Circuits Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--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 attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="layer-2-connection-structure">
            <name>Layer 2 Connection Structure</name>
            <t>As shown in the tree depicted in <xref target="l2-svc-tree"/>, the 'l2-connection' container defines service parameters to enable such connectivity at Layer 2.</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 customer-name?       string
        +--rw description?         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 peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        |  +--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
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="layer-3-connection-structure">
            <name>Layer 3 Connection Structure</name>
            <t>The 'l3-connection' container defines a set of service parameters to enable Layer 3 connectivity for an 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 specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         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 peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  +--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 ipv6 {vpn-common:ipv6}?
        |     ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></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 specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         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 peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  +--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 routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="routing">
            <name>Routing</name>
            <t>As shown in the tree depicted in <xref target="rtg-svc-tree"/>, the 'routing-protocols' container defines th erequired parameters to enable the required routing features for an AC. One or more routing protocols can be associated with an AC.  Such routing protocols are then enabled between a PE and the CE. Each routing instance is uniquely identified 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, the module supports BGP, OSPF, IS-IS, and RIP.</t>
            <t>The model also supports the Virtual Router Redundancy Protocol (VRRP) <xref target="RFC5798"/> on an AC.</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 customer-name?       string
        +--rw description?         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 peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  +--rw cascaded-lan-prefixes
        |     |     +--rw ipv4-lan-prefixes* [lan next-hop]
        |     |     |       {vpn-common:ipv4}?
        |     |     |  +--rw lan         inet:ipv4-prefix
        |     |     |  +--rw lan-tag?    string
        |     |     |  +--rw next-hop    union
        |     |     |  +--rw metric?     uint32
        |     |     |  +--rw status
        |     |     |     +--rw admin-status
        |     |     |     |  +--rw status?        identityref
        |     |     |     |  +--rw last-change?   yang:date-and-time
        |     |     |     +--ro oper-status
        |     |     |        +--ro status?        identityref
        |     |     |        +--ro last-change?   yang:date-and-time
        |     |     +--rw ipv6-lan-prefixes* [lan next-hop]
        |     |             {vpn-common:ipv6}?
        |     |        +--rw lan         inet:ipv6-prefix
        |     |        +--rw lan-tag?    string
        |     |        +--rw next-hop    union
        |     |        +--rw metric?     uint32
        |     |        +--rw status
        |     |           +--rw admin-status
        |     |           |  +--rw status?        identityref
        |     |           |  +--rw last-change?   yang:date-and-time
        |     |           +--ro oper-status
        |     |              +--ro status?        identityref
        |     |              +--ro last-change?   yang:date-and-time
        |     +--rw bgp
        |     |  +--rw peer-groups
        |     |  |  +--rw peer-group* [name]
        |     |  |     +--rw name              string
        |     |  |     +--ro local-address?    inet:ip-address
        |     |  |     +--ro local-as?         inet:as-number
        |     |  |     +--rw peer-as?          inet:as-number
        |     |  |     +--rw address-family?   identityref
        |     |  |     +--rw authentication
        |     |  |        +--rw enable?            boolean
        |     |  |        +--rw keying-material
        |     |  |           +--rw (option)?
        |     |  |              +--:(ao)
        |     |  |              |  +--rw enable-ao?          boolean
        |     |  |              |  +--rw ao-keychain?
        |     |  |              |          key-chain:key-chain-ref
        |     |  |              +--:(md5)
        |     |  |              |  +--rw md5-keychain?
        |     |  |              |          key-chain:key-chain-ref
        |     |  |              +--:(explicit)
        |     |  |                 +--rw key-id?             uint32
        |     |  |                 +--rw key?                string
        |     |  |                 +--rw crypto-algorithm?
        |     |  |                         identityref
        |     |  +--rw neighbor* [id]
        |     |     +--rw id                string
        |     |     +--rw remote-address?   inet:ip-address
        |     |     +--ro local-address?    inet:ip-address
        |     |     +--rw peer-group?
        |     |     |       -> ../../peer-groups/peer-group/name
        |     |     +--ro local-as?         inet:as-number
        |     |     +--rw peer-as?          inet:as-number
        |     |     +--rw address-family?   identityref
        |     |     +--rw authentication
        |     |     |  +--rw enable?            boolean
        |     |     |  +--rw keying-material
        |     |     |     +--rw (option)?
        |     |     |        +--:(ao)
        |     |     |        |  +--rw enable-ao?          boolean
        |     |     |        |  +--rw ao-keychain?
        |     |     |        |          key-chain:key-chain-ref
        |     |     |        +--:(md5)
        |     |     |        |  +--rw md5-keychain?
        |     |     |        |          key-chain:key-chain-ref
        |     |     |        +--:(explicit)
        |     |     |           +--rw key-id?             uint32
        |     |     |           +--rw key?                string
        |     |     |           +--rw crypto-algorithm?   identityref
        |     |     +--rw status
        |     |        +--rw admin-status
        |     |        |  +--rw status?        identityref
        |     |        |  +--rw last-change?   yang:date-and-time
        |     |        +--ro oper-status
        |     |           +--ro status?        identityref
        |     |           +--ro last-change?   yang:date-and-time
        |     +--rw ospf
        |     |  +--rw address-family?   identityref
        |     |  +--rw area-id           yang:dotted-quad
        |     |  +--rw metric?           uint16
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key-id?             uint32
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw isis
        |     |  +--rw address-family?   identityref
        |     |  +--rw area-address      area-address
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key-id?             uint32
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw rip
        |     |  +--rw address-family?   identityref
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw vrrp
        |        +--rw address-family?   identityref
        |        +--rw status
        |           +--rw admin-status
        |           |  +--rw status?        identityref
        |           |  +--rw last-change?   yang:date-and-time
        |           +--ro oper-status
        |              +--ro status?        identityref
        |              +--ro last-change?   yang:date-and-time
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
            <t>For all supported routing protocols, '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), or both are to be enabled <xref target="RFC2080"/>.</t>
            <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 <xref target="RFC8177"/>, mainly SendID and RecvID (Section 3.1 of <xref target="RFC5925"/>).</t>
          </section>
          <section anchor="oam">
            <name>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
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  +--rw bfd {vpn-common:bfd}?
        |     +--rw holdtime?   uint32
        |     +--rw status
        |        +--rw admin-status
        |        |  +--rw status?        identityref
        |        |  +--rw last-change?   yang:date-and-time
        |        +--ro oper-status
        |           +--ro status?        identityref
        |           +--ro last-change?   yang:date-and-time
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="security">
            <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
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           +--rw encryption {vpn-common:encryption}?
           |  +--rw enabled?   boolean
           |  +--rw layer?     enumeration
           +--rw encryption-profile
              +--rw (profile)?
                 +--:(provider-profile)
                 |  +--rw provider-profile?
                 |          ac-svc:encryption-profile-reference
                 +--:(customer-profile)
                    +--rw customer-key-chain?
                            key-chain:key-chain-ref
]]></artwork>
            </figure>
          </section>
        </section>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="the-bearer-service-ietf-bearer-svc-yang-module-1">
        <name>The Bearer Service ("ietf-bearer-svc") YANG Module</name>
        <t>This module uses types defined in <xref target="RFC6991"/> and <xref target="RFC9181"/>.</t>
        <sourcecode markers="true" name="ietf-bearer-svc@2022-11-30.yang"><![CDATA[
module ietf-bearer-svc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-bearer-svc";
  prefix bearer-svc;

  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 xxxx: A YANG Service Data Model for Attachment Circuits";
  }

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

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>
     Author:   Richard Roberts
               <mailto:rroberts@juniper.net>
     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) 2023 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

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

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

  revision 2022-11-30 {
    description
      "Initial revision.";
    reference
      "RFC xxxx: A YANG Service Data Model for Attachment Circuits";
  }

  // Identities 

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

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

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

  container bearers {
    description
      "Main container for the bearers.";
    list bearer {
      key "id";
      description
        "Maintains a list of bearers.";
      leaf id {
        type string;
        description
          "An identifier of the bearer.";
      }
      leaf description {
        type string;
        description
          "A description of this bearer.";
      }
      container customer-device {
        description
          "Identification of the customer device that terminates the
           bearer.";
        leaf device-id {
          type string;
          description
            "Identifier for the device.";
        }
        container location {
          description
            "Location of the node.";
          leaf address {
            type string;
            description
              "Address (number and street) of the site.";
          }
          leaf postal-code {
            type string;
            description
              "Postal code of the site.";
          }
          leaf state {
            type string;
            description
              "State of the 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 site.";
          }
          leaf country-code {
            type string {
              pattern '[A-Z]{2}';
            }
            description
              "Country of the site.
               Expressed as ISO ALPHA-2 code.";
          }
        }
      }
      leaf requested-type {
        type identityref {
          base bearer-type;
        }
        description
          "Type of the requested bearer (e.g., Ethernet, or wireless)";
      }
      leaf bearer-reference {
        if-feature "vpn-common:bearer-reference";
        type string;
        config false;
        description
          "This is an internal reference for the service provider
           to identify the bearers.";
      }
      uses ac-common:op-instructions;
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="the-ac-service-ietf-ac-svc-yang-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.boro-opsawg-teas-common-ac"/>.</t>
        <sourcecode markers="true" name="ietf-ac-svc@2022-11-30.yang"><![CDATA[
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-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 (ACs) as a service.

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

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

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

  revision 2022-11-30 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Service Data Model for Attachment Circuits";
  }

  /* 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-global-profile-reference {
    type leafref {
      path "/ac-svc:attachment-circuits/ac-global-profile/id";
    }
    description
      "Defines a reference to a gloabl attachment circuit that can be used
       by other modules.";
  }*/

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

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

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

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

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

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

  /******************** 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
          "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 "vpn-common:bearer-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;
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific parameters.";
      uses ac-common:ipv6-connection;
    }
  }

  // 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.";
      }
    }
  }

  // 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.";
        }
        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.";
        }
        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.";
        }
        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.";
        }
        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).";
        }
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families 
             are to be enabled.";
        }
      }
    }
  }

  // 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 ac-common:ipv4-static-rtg;
          uses ac-common:ipv6-static-rtg;
        }
      }
      container bgp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:bgp-routing')" {
          description
            "Only applies when the protocol is BGP.";
        }
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Configuration for BGP peer-groups";
          list peer-group {
            key "name";
            description
              "List of BGP peer-groups configured on the local system -
               uniquely identified by peer-group name";
            uses ac-common:bgp-peer-group-with-name;
            leaf local-address {
              type inet:ip-address;
              config false;
              description
                "The local IP address that will be used to establish
                 the BGP session.";
            }
            uses ac-common:bgp-authentication;
          }
        }
        list neighbor {
          key "id";
          description
            "List of BGP neighbors.";
          leaf id {
            type string;
            description
              "A neighbor identifier.";
          }
          leaf remote-address {
            type inet:ip-address;
            description
              "The remote IP address of this entry's BGP peer.

               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;
            config false;
            description
              "The local IP address that will be used to establish
               the BGP session.";
          }
          leaf peer-group {
            type leafref {
              path "../../peer-groups/peer-group/name";
            }
            description
              "The peer-group with which this neighbor is associated.";
          }
          uses ac-common:bgp-peer-group-without-name;
          uses ac-common:bgp-authentication;
          uses vpn-common:service-status;
        }
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        description
          "Configuration specific to OSPF.";
        uses ac-common:ospf-basic;
        uses ac-common:ospf-authentication;
        uses vpn-common:service-status;
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is IS-IS.";
        }
        description
          "Configuration specific to IS-IS.";
        uses ac-common:isis-basic;
        uses ac-common:isis-authentication;
        uses vpn-common:service-status;
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.
             For IPv4, the model assumes that RIP version 2 is used.";
        }
        description
          "Configuration specific to RIP routing.";
        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 vpn-common:service-status;
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the Virtual Router
             Redundancy Protocol (VRRP).";
        }
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both
             address families are to be enabled.";
        }
        uses vpn-common:service-status;
      }
    }
  }

  // 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;
    }
  }

  // Basic AC parameter

  grouping ac-basic {
    description
      "Grouping for basic parameters for an attachment circuit.";
    leaf id {
      type string;
      description
        "An identifier of the AC.";
    }
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that are required to
         enable AC connectivity.";
      uses l2-connection-basic;
    }
    container ip-connection {
      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;
    }
  }

  // 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
         circuits should use attachment-circuit-reference.";
    }
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that are required to
         enable AC connectivity.";
      uses l2-connection;
    }
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses 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.";
        uses ac-common:bfd;
        uses vpn-common:service-status;
      }
    }
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security-basic;
    }
  }

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

  container specific-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    uses vpn-common:vpn-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.";
      }
    }
  }
  container attachment-circuits {
    description
      "Main container for the attachment circuits.";
    /*list ac-global-profile {
      key "id";
      description
        "Maintains a list of AC profiles.";
      uses ac-basic;
    }*/
    list ac-group-profile {
      key "name";
      description
        "Maintains a list of per-node AC profiles.";
      uses ac;
    }
    container placement-constraints {
      description
        "Diversity constraint type.";
      uses vpn-common:placement-constraints;
    }
    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.";
      }
      uses ac-common:op-instructions;
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      /*leaf-list ac-global-profile {
        type ac-global-profile-reference;
        description
          "A reference to an AC profile.";
      }*/
      leaf-list ac-group-profile {
        type ac-group-reference;
        description
          "A reference to a per-node AC profile.";
      }
      list group {
        key "group-id";
        description
          "List of group-ids.";
        leaf group-id {
          type string;
          description
            "Indicates the group-id to which the network access 
             belongs.";
        }
        leaf precedence {
          type identityref {
            base ac-common:precedence-type;
          }
          description
            "Defines redundancy of an AC.";
        }
      }
      uses ac;
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG modules specified in this document define schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in 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.
   These are the subtrees and data nodes and their sensitivity/
   vulnerability in the "ietf-ac-svc" module:</t>
      <ul spacing="normal">
        <li>TBC</li>
        <li>TBC</li>
      </ul>
      <t>Some of the readable data nodes in these YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  These are the subtrees and data
   nodes and their sensitivity/vulnerability in the "ietf-ac-svc" module:</t>
      <ul spacing="normal">
        <li>TBC</li>
        <li>TBC</li>
      </ul>
      <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>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter">
              <organization/>
            </author>
            <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="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder">
              <organization/>
            </author>
            <author fullname="P. Shafer" initials="P." surname="Shafer">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <author fullname="R. Wilton" initials="R." surname="Wilton">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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="I-D.boro-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="2" month="March" year="2023"/>
            <abstract>
              <t>   The document specifies a common Attachment Circuits (ACs) YANG
   module, which is designed with the intent to be reusable by other
   models.  For example, this common model can be reused by service
   models to expose ACs as a service, service models that require
   binding a service to a set of ACs, network and device models to
   provision ACs, etc.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-boro-opsawg-teas-common-ac-00"/>
        </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">
              <organization/>
            </author>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios">
              <organization/>
            </author>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair">
              <organization/>
            </author>
            <author fullname="Q. Wu" initials="Q." surname="Wu">
              <organization/>
            </author>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz">
              <organization/>
            </author>
            <author fullname="D. Ward" initials="D." surname="Ward">
              <organization/>
            </author>
            <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="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem">
              <organization/>
            </author>
            <author fullname="Y. Qu" initials="Y." surname="Qu">
              <organization/>
            </author>
            <author fullname="D. Yeung" initials="D." surname="Yeung">
              <organization/>
            </author>
            <author fullname="I. Chen" initials="I." surname="Chen">
              <organization/>
            </author>
            <author fullname="J. Zhang" initials="J." surname="Zhang">
              <organization/>
            </author>
            <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="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder">
              <organization/>
            </author>
            <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="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder">
              <organization/>
            </author>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman">
              <organization/>
            </author>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman">
              <organization/>
            </author>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem.  This document obsoletes RFC 4742.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability.  There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.  This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="AC-SVC-Tree" target="https://raw.githubusercontent.com/boucadair/attachment-circuit-model/main/yang/full-trees/ac-svc-without-groupings.txt">
          <front>
            <title>Full Service Attachment Circuit Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="AC-SVC-GRP" target="https://raw.githubusercontent.com/boucadair/attachment-circuit-model/main/yang/full-trees/ac-svc-groupings.txt">
          <front>
            <title>Reusable Groupings in Service Attachment Circuits</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-opsawg-sap">
          <front>
            <title>A YANG Network Model for Service Attachment Points (SAPs)</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</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="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <date day="18" month="January" 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).

   This document augments the 'ietf-network' data model 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-Network Interface (UNI) and Network-to-
   Network Interface (NNI) are supported in the SAP data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-sap-15"/>
        </reference>
        <reference anchor="RFC5737">
          <front>
            <title>IPv4 Address Blocks Reserved for Documentation</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko">
              <organization/>
            </author>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="L. Vegoda" initials="L." surname="Vegoda">
              <organization/>
            </author>
            <date month="January" year="2010"/>
            <abstract>
              <t>Three IPv4 unicast address blocks are reserved for use in examples in specifications and other documents.  This document describes the use of these blocks.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5737"/>
          <seriesInfo name="DOI" value="10.17487/RFC5737"/>
        </reference>
        <reference anchor="RFC3849">
          <front>
            <title>IPv6 Address Prefix Reserved for Documentation</title>
            <author fullname="G. Huston" initials="G." surname="Huston">
              <organization/>
            </author>
            <author fullname="A. Lord" initials="A." surname="Lord">
              <organization/>
            </author>
            <author fullname="P. Smith" initials="P." surname="Smith">
              <organization/>
            </author>
            <date month="July" year="2004"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, an IPv6 unicast address prefix is reserved for use in examples in RFCs, books, documentation, and the like.  Since site-local and link-local unicast addresses have special meaning in IPv6, these addresses cannot be used in many example situations.  The document describes the use of the IPv6 address prefix 2001:DB8::/32 as a reserved prefix for use in documentation.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3849"/>
          <seriesInfo name="DOI" value="10.17487/RFC3849"/>
        </reference>
        <reference anchor="RFC5398">
          <front>
            <title>Autonomous System (AS) Number Reservation for Documentation Use</title>
            <author fullname="G. Huston" initials="G." surname="Huston">
              <organization/>
            </author>
            <date month="December" year="2008"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, two blocks of Autonomous System numbers (ASNs) are reserved for use in examples in RFCs, books, documentation, and the like.  This document describes the reservation of two blocks of ASNs as reserved numbers for use in documentation.  This memo provides information for the Internet  community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5398"/>
          <seriesInfo name="DOI" value="10.17487/RFC5398"/>
        </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">
              <organization/>
            </author>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair">
              <organization/>
            </author>
            <author fullname="D. Lopez" initials="D." surname="Lopez">
              <organization/>
            </author>
            <author fullname="C. Xie" initials="C." surname="Xie">
              <organization/>
            </author>
            <author fullname="L. Geng" initials="L." surname="Geng">
              <organization/>
            </author>
            <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="I-D.boro-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="1" month="March" year="2023"/>
            <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., Network Slice Service).  A
   companion service model is specified in
   [I-D.boro-opsawg-teas-attachment-circuit].

   The module augments the Service Attachment Point (SAP) model with the
   detailed information for the provisioning of attachment circuits in
   Provider Edges (PEs).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-boro-opsawg-ntw-attachment-circuit-01"/>
        </reference>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka">
              <organization/>
            </author>
            <author fullname="A. Lindem" initials="A." surname="Lindem">
              <organization/>
            </author>
            <author fullname="Y. Qu" initials="Y." surname="Qu">
              <organization/>
            </author>
            <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="1" month="March" 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-16"/>
        </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">
              <organization/>
            </author>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola">
              <organization/>
            </author>
            <author fullname="C. Xie" initials="C." surname="Xie">
              <organization/>
            </author>
            <author fullname="L. Jalil" initials="L." surname="Jalil">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski">
              <organization/>
            </author>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki">
              <organization/>
            </author>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki">
              <organization/>
            </author>
            <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="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger">
              <organization/>
            </author>
            <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="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern">
              <organization/>
            </author>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro">
              <organization/>
            </author>
            <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="RFC3644">
          <front>
            <title>Policy Quality of Service (QoS) Information Model</title>
            <author fullname="Y. Snir" initials="Y." surname="Snir">
              <organization/>
            </author>
            <author fullname="Y. Ramberg" initials="Y." surname="Ramberg">
              <organization/>
            </author>
            <author fullname="J. Strassner" initials="J." surname="Strassner">
              <organization/>
            </author>
            <author fullname="R. Cohen" initials="R." surname="Cohen">
              <organization/>
            </author>
            <author fullname="B. Moore" initials="B." surname="Moore">
              <organization/>
            </author>
            <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="RFC5798">
          <front>
            <title>Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6</title>
            <author fullname="S. Nadas" initials="S." role="editor" surname="Nadas">
              <organization/>
            </author>
            <date month="March" year="2010"/>
            <abstract>
              <t>This memo defines the Virtual Router Redundancy Protocol (VRRP) for IPv4 and IPv6.  It is version three (3) of the protocol, and it is based on VRRP (version 2) for IPv4 that is defined in RFC 3768 and in "Virtual Router Redundancy Protocol for IPv6".  VRRP specifies an election protocol that dynamically assigns responsibility for a virtual router to one of the VRRP routers on a LAN.  The VRRP router controlling the IPv4 or IPv6 address(es) associated with a virtual router is called the Master, and it forwards packets sent to these IPv4 or IPv6 addresses.  VRRP Master routers are configured with virtual IPv4 or IPv6 addresses, and VRRP Backup routers infer the address family of the virtual addresses being carried based on the transport protocol.  Within a VRRP router, the virtual routers in each of the IPv4 and IPv6 address families are a domain unto themselves and do not overlap.  The election process provides dynamic failover in the forwarding responsibility should the Master become unavailable.  For IPv4, the advantage gained from using VRRP is a higher-availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host.  For IPv6, the advantage gained from using VRRP for IPv6 is a quicker switchover to Backup routers than can be obtained with standard IPv6 Neighbor Discovery mechanisms.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5798"/>
          <seriesInfo name="DOI" value="10.17487/RFC5798"/>
        </reference>
        <reference anchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="R. Minnear" initials="R." surname="Minnear">
              <organization/>
            </author>
            <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="RFC9182">
          <front>
            <title>A YANG Network Data Model for Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil">
              <organization/>
            </author>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios">
              <organization/>
            </author>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair">
              <organization/>
            </author>
            <author fullname="L. Munoz" initials="L." surname="Munoz">
              <organization/>
            </author>
            <author fullname="A. Aguado" initials="A." surname="Aguado">
              <organization/>
            </author>
            <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="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author fullname="J. Touch" initials="J." surname="Touch">
              <organization/>
            </author>
            <author fullname="A. Mankin" initials="A." surname="Mankin">
              <organization/>
            </author>
            <author fullname="R. Bonica" initials="R." surname="Bonica">
              <organization/>
            </author>
            <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="RFC8695">
          <front>
            <title>A YANG Data Model for the Routing Information Protocol (RIP)</title>
            <author fullname="X. Liu" initials="X." surname="Liu">
              <organization/>
            </author>
            <author fullname="P. Sarda" initials="P." surname="Sarda">
              <organization/>
            </author>
            <author fullname="V. Choudhary" initials="V." surname="Choudhary">
              <organization/>
            </author>
            <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>IETF Network Slice Service YANG Model</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="Liuyan Han" initials="L." surname="Han">
              <organization>China Mobile</organization>
            </author>
            <author fullname="John Mullooly" initials="J." surname="Mullooly">
              <organization>Cisco Systems, Inc</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   This document defines a YANG model for the IETF Network Slice
   service.  The model can be used by an IETF Network Slice customer to
   manage IETF Network Slices.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slice-nbi-yang-03"/>
        </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">
              <organization/>
            </author>
            <author fullname="L. Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="K. Patel" initials="K." surname="Patel">
              <organization/>
            </author>
            <author fullname="L. Zheng" initials="L." surname="Zheng">
              <organization/>
            </author>
            <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>
      </references>
    </references>
    <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.</t>
      <section anchor="ex-create-bearer">
        <name>Request 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>
          <artwork><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-device": {
          "device-id": "CE_X_SITE_Y",
          "requested-type": "ietf-bearer-svc:ethernet";
        }
      }
    ]
  }
}
]]></artwork>
        </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>
          <artwork><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-device": {
          "device-id": "CE_X_SITE_Y",
          "requested-type": "ietf-bearer-svc:ethernet"
        },
        "bearer-reference": "line-156"
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="ac-bearer-exist">
        <name>Request 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>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "requested-ac-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"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="ac-no-bearer-peer-sap">
        <name>Request An AC for a Knwon 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 a service function. The (topological) location of that service function is assumed to be known to the network controller. For example, this can be determined as part of an on-demand procedure to instantiate a service function in a cloud. That instantiated service function 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>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "requested-ac-start": "2023-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
            }
          }
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-ex-one-ce-multi-acs">
        <name>One CE, Two ACs</name>
        <t>Lets consider the example of an eNodeB (CTP) 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.</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">
                <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 128,78 L 264,78" fill="none" stroke="black"/>
                <path d="M 128,82 L 264,82" fill="none" stroke="black"/>
                <path d="M 128,110 L 264,110" fill="none" stroke="black"/>
                <path d="M 128,114 L 264,114" 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="328" y="68">192.0.2.1</text>
                  <text x="60" y="84">eNodeB</text>
                  <text x="336" y="84">2001:db8::1</text>
                  <text x="220" y="100">vlan</text>
                  <text x="248" y="100">1</text>
                  <text x="220" y="132">vlan</text>
                  <text x="248" y="132">2</text>
                  <text x="156" y="148">Direct</text>
                  <text x="160" y="164">Routing</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------+                  +------------------+
|             |                  | PE               |
|             |                  |  192.0.2.1       |
|   eNodeB    |==================|  2001:db8::1     |
|             |          vlan 1  |                  |
|             |==================|                  |
|             |          vlan 2  |                  |
|             | 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 ACes on The Same Link</name>
          <artwork><![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"
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </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 ACes 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 ACes 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="ac-precedence">
          <name>Example of a Message Body to Associate a Precedence Level with ACes</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Example to illustrate AC precedence usage",
        "group": [
          {
            "group-id": "1",
            "precedence": "ietf-ac-common:primary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerX@site1"
        }
      },
      {
        "name": "ac2",
        "description": "Example to illustrate AC precedence usage",
        "group": [
          {
            "group-id": "1",
            "precedence": "ietf-ac-common:secondary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerY@site1"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="illustrate-the-use-of-global-profiles">
        <name>Illustrate the Use of Global Profiles</name>
        <t>An example of a request to create two ACs to service the same CE on the same link is shown in <xref target="two-acs-same-ce-profile"/>. Unlike <xref target="two-acs-same-ce"/>, this example factorizes some of the redundant data.</t>
        <figure anchor="two-acs-same-ce-profile">
          <name>Example of a Message Body to Request Two ACes on The Same Link (Global Profile)</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          }
        },
        "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": ["simple-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 1
            }
          }
        },
        "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"
              }
            ]
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-group-profile": ["simple-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 2
            }
          }
        },
        "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"
              }
            ]
          }
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="illustrate-the-use-of-per-node-profiles">
        <name>Illustrate the Use of Per-Node Profiles</name>
        <t>An example of a request to create two ACs to service the same CE on the same link is shown in <xref target="two-acs-same-ce-node-profile"/>. Unlike <xref target="two-acs-same-ce"/>, this example factorizes all redundant data.</t>
        <figure anchor="two-acs-same-ce-node-profile">
          <name>Example of a Message Body to Request Two ACes on The Same Link (Node Profile)</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-node-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          }
        },
        "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": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-group-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 2
            }
          }
        }
     }
    ]
  }
}
]]></artwork>
        </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 inherites 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>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac3",
        "description": "a third AC with a same peer node",
        "ac-group-profile": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 3
            }
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="multiple-ces">
        <name>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">
                <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="32" y="68">CE1</text>
                  <text x="480" y="68">CE3</text>
                  <text x="256" y="100">Network</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[
                   +----------------------------------+
      +----+       |                                  |       +----+
      | CE1+-------+                                  +-------+ CE3|
      +----+       |                                  |       +----+
                   |              Network             |
      +----+       |                                  |       +----+
      |CE2 +-------+                                  +-------+ CE4|
      +----+       |                                  |       +----+
                   +----------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t><xref target="multiple-sites"/> depicts an example of the message body of a request to instantiate the various ACs that are shown in <xref target="network-example"/>.</t>
        <figure anchor="multiple-sites">
          <name>Example of a Message Body of a Request to Create Multiple ACs bound to Multiple CEs</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "First site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce1-network"
        }
      },
      {
        "name": "ac2",
        "description": "Second Site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce1-network"
        }
      },
      {
        "name": "ac3",
        "description": "Third site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce3-network"
        }
      },
      {
        "name": "ac4",
        "description": "Another site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce4-network"
        }
      }
    ]
  }
}
]]></artwork>
        </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 <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>The topology is made up of two sites (site1 and site2), interconnected via a Transport Network (e.g. IP/MPLS Network). A Network Function is deployed within each site in a dedicated IP Subnet.</li>
          <li>A 5G SMO is responsible for the deployment Network Functions and the indirect management of a local Gateway (i.e., CE device).</li>
          <li>An IETF Network Slice Controller is responsible for the deployment of IETF Network Slices accross the TN.</li>
        </ul>
        <t>Network Functions are deployed within each site.</t>
        <figure anchor="slice-vlan-1">
          <name>An Example of a Network Topology Used to Deploy Slices</name>
          <artwork><![CDATA[
      5G SMO                 IETF NSC                 5G SMO
         │               (TN ORCHESTRATOR)               │
         │                        │                      │
   ◄─────┴─────►        ◄─────────┴────────►        ◄────┴─────►
       Site1             TRANSPORT NETWORK              Site2
   ┌───┐                  ┌──────────────┐                 ┌───┐
   │NF1│                  │              │                 │NF2│
   └─┬─┘   ┌───┐        ┌─┴─┐          ┌─┴─┐        ┌───┐  └─┬─┘
     │     │   │        │   │          │   │        │   │    │
   ──┴─────┤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>
        </figure>
        <t><xref target="slice-vlan-2"/> describes the logical connectivity enforced thanks to both IETF Network Slice and Attachment Circuit models.</t>
        <figure anchor="slice-vlan-2">
          <name>Logical Overview</name>
          <artwork><![CDATA[
                             AS 65536  ◄────BGP───► AS 65550

 ┌───┐                     ┌────────┐                    ┌───┐
 │NF1│       192.0.2.0/30  │        │   192.0.2.4/30     │NF2│
 └─┬─┘   ┌───┐          ┌──┴┐      ┌┴──┐          ┌───┐  └─┬─┘
   │     │   │.1      .2│   │      │   │.5      .6│   │    │
 ──┴─────┤GW1│----------│PE1│      │PE2│----------│GW2├────┴──
         │   │ vlan-id  │   │      │   │ vlan-id  │   │
         └───┘   100    └──┬┘      └┬──┘   200    └───┘
198.51.100.0/24            │        │             203.0.113.0/24
                           └────────┘
                         sdp1      sdp2
             ◄─────────► ◄────────────► ◄─────────►
             Attachment   Ietf Network   Attachment
              Circuit         Slice       Circuit
                ac1         EMBB_UP        ac2



 ac1 properties:
 - bearer-reference: bearerX@site1
 - vlan-id: 100
 - CE-address: 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: 192.0.2.5/30
 - PE-address: 192.0.2.6/30
 - Routing: BGP local-as:65536
                customer-as:65550
                customer-address: 192.0.2.6
]]></artwork>
        </figure>
        <t><xref target="slice-acs"/> shows the message body of the request to create the required ACs using the Attachment Circuit module.</t>
        <figure anchor="slice-acs">
          <name>Message Body of a Request to Create Required ACs</name>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Connection to site1 on vlan 100 for slice \
                                                            EMBB_UP",
        "requested-ac-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-prefixes": [
                    {
                      "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 for slice \
                                                            EMBB_UP",
        "requested-ac-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",
                    "local-as": "65536",
                    "peer-as": "65550"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t><xref target="slice-prov"/> shows the message body of the request to create the 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. This example assumes that the module that "glues" the service/AC is also supported by the NSC.</t>
        <figure anchor="slice-prov">
          <name>Message Body of a Request to Create a Slice Service Referring to the ACs</name>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network-slice-service:network-slice-services": {
    "slo-sle-templates": {
      "slo-sle-template": [
        {
          "id": "low-latency-template",
          "template-description": "Lowest possible latencey \
                                                 forwarding behavior"
        }
      ]
    },
    "slice-service": [
      {
        "service-id": "Slice EMBB_UP",
        "service-description": "Dedicate TN Slice for EMBB-UP",
        "slo-sle-template": "low-latency-template",
        "status": {},
        "sdps": {
          "sdp": [
            {
              "sdp-id": "sdp1",
              "ietf-ac-glue:ac-ref": [
                "ac1"
              ]
            },
            {
              "sdp-id": "sdp2",
              "ietf-ac-glue:ac-ref": [
                "ac2"
              ]
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </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>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.</li>
          <li>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.</li>
          <li>The customer provisions the networking logic within the Cloud Provider based on that unique connection Identifier (i.e., logical interfaces, IP addressing, and routing).</li>
        </ol>
        <figure anchor="cloud-provider-1">
          <name>An Example of Realization for Connecting a Cloud Site</name>
          <artwork><![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
    .--------------------│-▼---------------------------------.
    |             If-A┌──┴──┐       Service Provider Network |
    |                 │     │                                |
    |                 │ PE1 │ BGP_ASN: 65550                 |
    |                 │     │                                |
    |                 └─────┘                                |
    |                                                        |
    |                                                        |
    |                                                        |
    |                                                        |
    '--------------------------------------------------------'
]]></artwork>
        </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">
                <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="148" y="52">DIRECT</text>
                  <text x="240" y="52">INTERCONNECTION</text>
                  <text x="340" y="52">ORDERING</text>
                  <text x="400" y="52">(API)</text>
                  <text x="548" y="52">Provider</text>
                  <text x="312" y="68">──────────────────────────────────────────────►</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="464" y="100">ID:1234-56789</text>
                  <text x="316" y="116">◄───────────────────────────────────────────────</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="168" y="260">Inventory</text>
                  <text x="236" y="260">Upated</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="468" 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 Upated with:
         bearer-reference: 1234-56789 for PE1/Interface If-A
]]></artwork>
          </artset>
        </figure>
        <t>Next, API workflows can be initiated:</t>
        <ul spacing="normal">
          <li>Cloud Provider for the configuration as per (3) above.</li>
          <li>Service provider network via the Attachment Circuit model. This request can be used in conjunction with additional requests based on L3SM (VPN provisioning) or Network Slice Service model (5G hybrid Cloud deployment).</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. 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 Section 2 of <xref target="RFC6151"/> and Section 2.1 of <xref target="RFC6952"/>.</t>
          </li>
        </ul>
        <figure anchor="cloud-provider-ac">
          <name>Message Body of a Request to Create the ACs for Connecting to the Cloud Provider</name>
          <artwork><![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-ac-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",
                      "local-as": "65550",
                      "peer-as": "65536",
                      "authentication": {
                         "keying-material": "\
                                            nyxNER_c5sdn608fFQl3331d"
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TBC.</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>
    </section>
  </back>
  <!-- ##markdown-source:
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
j/w0dTlLXTpimo4wOFHhkX+MeEX+tkrKvvBH8amJgmRLBkJ+zKqaoQdJNc2j
W91KO9uu0c4oviDZXqBr6bCAJqVL9mTpXWf8kiV0LlMubp6XEy/Oovyauh0r
OTediYtnl08MxdAIdK/EClKregwPKt6Diveg4rksbgm7Vb6GVWVyV3xw41Ex
ch7Un0iB4RaRzFrIFVjWtZIFZSC/ROp+GuMZfIMkSs/LC0dvtT4oZp95mxDN
ByJjGm6bku5TB9cCPXLNaaeiszEhYifXMOfx2CNkjbYkbBRK7mvKkNk8/bC/
PRNCXi7IzgIBQmCcyqjTV41+orcYgxiXtT2xCpMSHUTuJDILtc6EzLIsAe6H
f1xfdLWqqi2K68dVzaKhNvGjGoqr1mlLq3W9gWJZtwyqVeSnXWeCgFT02eRi
PFtAP1hEGgacdBdOcKVKm2FEQIAipWsT6NQ2RiNc18DNBNz62JKEBhQOP+wm
8r3VGmqpiryoqVM315KfFhNH48HTTHpRRr6hMGetwDKRq8a7UjxVWq0RL74M
btE4JCVldlwps2NLGfZRqOeWPmor6Nv1CjpbQ+V0vUFPJ013p72mu/Og6frp
7kHTfdB02QfUdM1ml2Rfi5RkphmqZJk7PpapmmpSkpdu7PZKMnOFRpOSbMLl
V5JVc81KMpMl/Uqy+tJCSVZfGpRks8xtleRKP14l2SzFKvzNqyQ7VSoT0qAk
V6uq2i2U5IbatUqyt05bWq3rrU5J9laRn3adLVaSzU5aKMkOTG2U5Jph1CjJ
Luh1SrL5paWS7HxpqSQ7X1TFZiW5Wkt+WkzcYiXZgWWhkszqqrRaI158eZTk
6pB+Pk1355aa7k6TpssDcfloWkUG5OV5NTSggg6fy7q8YJHKzu51V1v522XM
sbq+1PBby7TseHuSe1mpvp29KLJxTIHx/Pwnr8sjqqu1Qp40NhXATPQ9Q3jY
U+bEHe51GZ0xlQ3wa0F4DntfSDKGURs3VReAekyoJ9PUqoP/sh19/wLqXC6Y
/G44ngTPvtFOVaFkL53OfqpudKWLmGjtyfbULU7zRLn4Cwzc3mCHJ0cvNtj+
SbB/wgP2j/ePuuZlUpSfRdXBduQV88d05zo7FpkEx9fG3fDfHh8fras7vfAq
LSav+HkwmB4MpgeD6Q4G05KOGH8RJ1+RqQy1yFpkFveEoyw0LpwjKYUXmvcu
QO5BlupsOBUXBIQocDi3rGtlHBbjcAIrBANBuKFWMQAs/KGXyiwLo4OfLI3e
lsFFNvOMk2ldpdkGrkKHLSu0K18f73phTQzOqc/c5JSX8OPDSqBFtfgUL5YZ
c8qoRlBUy+MkzP14tc3caZwGCws7zSoCrSeFGhwVwOkvgEcRITUwKz+8GaVW
WwyuKn4rcFXt24Gr3SjLk638LPS/OFaLj2x3msiWLUm2bDmyZUuSLWtBtmax
hWSrntyKbJ3at6MDDe9isnWK3wpcdluy5YMcnc/qWDbpDDzsvVrEU6qippmF
VYdVKV9HfyYDsF2OhJ364K7a6hq3vHpYBNz/1QwyDdGsvFRtaWKfhdM4uW6W
pG7VORpXZexNNGi6UqQHCY0wS40YZVkShYurvonwEGwwDfEmnzBpKK+qrGWk
UFf8MU5hJhwZYea6LqoF39sjCcLMGMzioTiNhFkAw4IVEaeLYTR+QqWAavXV
t6BhquxhTidPlxgnlP4ZYKzz2VaLM4M+3DjIWsbe0EbFKd+89qtt0CH9LAiT
c4yLvpguRprxaVx3Us7F5xejzM1E6hH0Ff2+QYxKK3GaITuueMzqeRi7A/9j
VQ5dqwXTJ/gCrKJN+GcwfuP7JnLuxSAuwWPZ7RksuyV3ZW1ZK6two3Z81ay3
kKk6MDVwVKanqYGdmqVux0u9LTQzUqeK/LTmUJWh+VmoF7IF/PPeQWvgnHYX
t2CbdQ205pneBioMk7VdIc16a3uF/L3d4DLqrap6a1V8GT38Dkr4XTTwrJjV
iqMluZuolEehffqCQ5KV6KH8h3k4qatpmm38490Bft+Wid6Kg7Znny15p8M4
AeZArfsmFcgEJFioot1JObMha6mf3U0zu5tOdkvmspCztHdP3dYxdReG0pqb
3JaV3IWPxEXsgeeufETU5AXMJw884YEnPPCEj5wn5HGtd+92LOFhcX8Mi/th
ef51LM/LPHfXJ7vN+mSN02S3WjtN6vuS0+TUWxYTJhbrp8kpuCRwbPlpErbZ
nWPQzNAvGYImQsfaH4HGK07pakx5sLgairXBVm2KWZUXQPEU4JSYEI9wbNDZ
iw11pb1U8KhWLPJEluI2qZJSrk4ql6zGhQ5GoyAucafqJOK5/SPV5TH01hMx
TL0nT7cx/A2esYPobcle8iu0KOMoPEzP1w24FBgytkw08hizkHY7nROdwJ2/
+WzrWY9H1wFEGL9p5GnntyGERTGfykycRjSdTkzJk42eDo+CwSGBgHmHdMxY
SOMuZavAihlxe5UkV0VT2PcwdNlBxnufyZsJpuEkErcM4HW3PA+s0SKi2Oy7
y77OrqJLvHTXe6JG1ywusnmCiXUvZQJOnt5/FF1nFJGH2e5VlvtnW7/6FWIN
k+cn1+wkSif7z3kQWzS+hK9rJyJMcru7hZ2JeLTPek959lmKhjwcvG4VCQkL
qhoJCQ99sY/QZiCz9BqThUlbH0LgfhmJvvjD0dnEzm5xNqk5WXKRJRNkw/Lw
QcVgaRZzbWTcrQTcXaRbO9F2K7l2O6G2+NIbY5GqRGuD10tmaTyR3bThCwBT
lS9IQBtzedBlKrycwSUemIM95x8jc2inTUl7UqVnNzmJfmwwFFaxQ8kV4tqf
zFrW11Eucjt6DqR4wJBTaZZRxdbEy/UvnddMWH7qJI4sWC2nYHPLeto0eAJP
vNr35MavBnraMKlw6nqY1ABVWY+l7PvUGciK5ZjrX98oIZZ1e75j3tl3+4tp
6SIpEehPVzNVLmPiqtPOZ59t3dyQrmTdGMR5D/90/m54+HyP7e693D84+YLR
XQxu/1/1Hvd6wdZWsP24i9x7pSNvCrTLsXcdzt4Dqd1udbc+h2e4+osZ8Ay2
Ms/TPlbrEy8s+m+nST8t+iQU3GFjVR4syPTTz/GasniKdgbvXy836l9V0c8/
p8cufa0AQhhipM8GbMgbIDTru4PpeIrMDYVoFIdzqrT07dFBQfDeONABvfuA
U48bYHsLH4SNgJLE4QDnySsqwID/svw8TOMfNa9Y2d87fcEOj04G371ka4cz
wUf4jV78bm9qapBHIfsuoxse2EuUDOvUKom5ccnbgia+i0Z9+Pp3F2U5K/qb
m6jMgzQYv4nyLo6+CxBsXp1v8ru/Nr/go4OKeHsB1Pw7UOqTMuvz91/JKl/w
m+jY3iQusxx7eJ1dhHhV5m42H4eTMM7dGZAtTXnB7kgW/CrLUfHoArZF94M5
WBjU6nEMKz0HQyIbRXlZ1LWZ5/z9V3+YpzHgrJtGZaWtw2IMtt7LLP0xTKIf
YS2y53FW22SGpbvnovQkmkDZr8ooic5Ako9DL7QnYAAD8e2G+fk8TupaLgoq
1h3xYj+cx3mYTLKv0uxN7G93N2PfzeuaS4AoulfzUfbVxTy8imJqgWjBOLPC
6YG4EtGq4A5aFaKrqMF8lW8F8dJddMovKC9UVbelFvoata6giGE2u87j84uS
rY3XGbClbUYkfZoDw1fnuWCOCqRq48RWKKYipGGr81h4pXAXkIE3FmKzaCDT
icmJ7PE4whtf83g0J+GOXcy5eVpk83wcyZvNwpySsE2LDSYus+b15Y3WMGrj
9hQ0ntERUZLtOM+LeYj3gWf8dFYxH/0hEstMmvwJYCHF6x2gWqH0TWT2XBk9
jkAPxBVy8hxWF5Xl9VENBcAAJIBZmspPumOV6ULhb7Vgr6JzvAdRKpWFxEHC
7+kGWKj482w8R0Yh3q/J9V9iM1Gk176AOsBbD9clSk8r/g+HcGLtxRB88HMY
Bp3kEwDBU+B0UXJGdEQ3TiYEepqV0GXRXSExkUd8HEwLMMGGXepF3og354WJ
qtRd+ZC8eXOT7XPrCX1aJNOEMSVlHSVHr4V2F284UVWwO7lusF5Xd6TKkL8L
7zfibY5CdeUxdfV5XU97op6vTXUt/ZJtfifqGW1qE0oOpHbsr9GLpMuLGwll
PTlvCaxbeY38O1EVnVAr8USU8DUumsemkf9QI0CHTtvQehSeYZDlO1WP5otv
dHyuHvo6gC4qt9Vr+HUXN2ZX5rWYt+yzerVmXNR2qtHr3EZv9F7T0b4Ymbge
VbJaeQG4aMZz06ophFy4FBrI7LUQX4OGOvgMCA3i4Q2b/d2obxoXMlmG1Xtt
N68yGwXo5jR7EGOSHu53Vu2aMdV3h1MsWhLZNbgwQZOlXFcnkOPSgeHGhQeE
ckk3uE2ie4DpiFojSbsEDAXdIHr33k+oHbNfIX+oFzxUTkefRxWjU+8YYNu4
2QCC4Bwn80zcszdPy/yayNitO8nwcqWs5Ae7aSjFgvGOkZvefbhDbKY9lsUg
Fky18wZsmLDEq/LY6u8HwX/9/l3vZtUG8KY1uAKJJsQuMvfeziizBG1u7J8c
ssGro68HQY/rbjXjk98sFqpPQRuiVY3V8GVaA/bLNLu7GkZ4iu2KsanOpUgS
F6tJ6UobS1KcrvtlgJt12YAzPgtETgW20pCn2UCXl7z4dg47g0URLRQo/D5r
fj+wvMZawyYZq3vFpDm/sL7kJcE+Ca6HT14OZTODvRhgagV0uKCWykvfkCZx
IxwaewfPT74w/RzS2WLciy4cLdwldTcny4blYdlw9q6EB2bhXdjtHDMc3man
DC9zLw4ZgR7DGcOfVBwxd3B1DOGzwA1Tr03/ktxBeG4k4JRkQYfPG+BCIutX
oUIGAwansuq8XSqPpt2jetzQLdJv34uFvwdFeoi1H9xND+6mj83d1Ohmqt6o
SdeoFusPDifewIPD6bfw+eg8TgjU3TxOj6C22JRWl8SWnrtyx3lWFIG8JPbR
JlaW99ZWN5Ir6igplqivmpo0mAwXbGVT7P55tqPVq7H8hjrKilbtvBh8rta8
dYmt/xJe82JoNO8kE1KXAYshd02cqYHXZxi687jthjeVf2rpYTNoKRwl9zB4
Z9bHbmqku4/ZjDfYvPe5Fg0bUynH0rTz3H5UzfEam5dhEk8CtTOufX3FihZ9
n0JzjXfEL0UJBDTHhxGMIBol7mCscQkESAKQjRbJSzyZF8b/jAjy31sve7kV
gthvspM6xDRhxLzF/mfEiAnGfWFk98Xz22BEX3r/MSDGA8194Uc3fRs01aY0
+8vjyAXlrszGDPRui5bNR54P6HzzghKGkmSAqqB6eD6bYvNsNyzisTLGjYAw
eC1bsKPKghFVqdXG5Ohkm0YW0dTObWqI0jOwT7M8/lEL1CtMN2rOUgVIflEq
WPLnOlMoGCBS+9O7DdYtkYowvHtWQ2s3TPZoNeDsXS3tA7XD2nS7y3pF96xR
6d1Ks7IRT4mXWhrAEHpXgMhjsJmCszybBlkeoGK+1u1uYmsbbNUAleqvrq+0
27E5xBDzcDajgwbUFcWDGn5cftEld3ieoQPNNmXBkljlXfq3kupcqU6rZmXH
90mt1+MLr8+8A7qw+gfEVhVZ1OFSuNpPx8kczwv8Jk5/Y4bU1uMMO7FRdqOY
0SZ7gcbcMpzkvngInt+Q+0w8EFQOYDC0uMUDa/glsoaPjDM4d/UuibgVczSg
SZiIdFr+kNw2dnycq27fSyH3yEFJGyw7HT5w4nvgxIC2iwz9WfqK5Waehht5
XrVK1hbqmdCIJ+jmEMcNzXPIoL/OMkKJsJxf9b49OqAjftfiSAae+IZisjN+
bbMh9KW/WA3ZCBZxb3leHDqjNWynQxkog8zanLp9OtWXqekfkwpNFBDKunTs
jyfgb5iZCrQVykZOTzcOG+MgeSGvIa7G5FTuIv68DTXvq4OhSLl8TiQKPRcA
7MMEnuf4yCZqeYwVRe9uHk/O8cfa/vHuun+h33josnnffdldd8+eew15321n
3b+vXsEd+cEHQ4kDUyfi5tX+UZ0+ZB3CaWtZjaqNeriGXkD8uqhmXGOZ5nA+
PFQcqBO0Pi7lrATKre2OzjSNLQh3WkC4sxDCnWUh3GmA0FJsW87h4tn7pc3b
xzxj1bk6di8FwchTa7rcw2wBxabWTtsrEblavRSFTI5Mnv5W4bIVzb9B73e1
/gpspuJ/04RJGSPlgmkyJRHL694noOBpFdV7bDuqFofy1nrttMSokeLH5v4E
BX85TjKeNwDnoSba9y4WWBwta3btU7TIBm2U56VKceDCVpUPalxqAXgpdinx
YBjJ5Et0ydcK73bpbjmSWHaJ3DXq+xu6SsiM/JaivI76nQg4LwuoKp6j89kd
DA+oHYiO7mh/qFmJ6R6ipWyLoUgswV0BZgIMpyXDwNVpgdtBbfeBcwFtm80Y
3QiC0y+tLgTBGduYizo3yM/p1HMHFKUuZsV1UUZTFjjteG+oAvvFANUDlyOf
cNJ1hQDVQ7q2yKxUH16r5wCThd6jZwGb+wDEiPdh3RM1uk25kao4AEM98+EM
EyPeI86wuQ+AM7o97J6QVmnL1ZZwCAuwBh3eI9KgtQ+AM7pmzaxDeYp4lqNS
X75mZv2BKnYNGbfUk3mM7mkOMMmRGHHllI2dqalq1tepIlVlxG7Jz01aeQIa
UkTZ+GqVL6rW6jcpDLOf3SOJYXMfgMacc1Os/c1990RI2JbZlC+PA0Ww4RWB
/fbguWJOjE4sh22S10gN5N9BgvhlU3GVcB26dvONNbuuLB9AOz19sYb+oIzz
v8so4+KSzvvjI+LG3fvnJPZ1og75VZFxJ6Zh9+XX571X8rUb7KvBAVM1EMXW
EVT71JjPiyRxXJ43l9zxlqwXKctbZk2U8GCpPVhqXktN7suYl/I4WJAy0L6l
53OnjP884CJ8iQ06jgtQMyUEpOBexSCQRkbgA6ygEczYRaURQiiiHBBghsfL
z80iNNnZoJtNWUE18n4lC1uu/GoavUUrsjXn9G9VcNFob3PgWwOsBdmCQ7/2
NU8+IBqJogGaUzrniq2bsy4PXER41He1UItIns7Qn31RkuOHH6HGw79QU2RN
nUZhKuiIs614GubXbjsq1YABhUwCGxZVEBcgrGkZLcZX/RJagMk7Lp/GxVM9
81/HLb2xqfLDY1QXXsrVuG4XYMEAjPYsry7isdi51KRfGFub9QNdzEhBllZ4
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

-->

</rfc>
