<?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.36 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boro-opsawg-teas-attachment-circuit-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <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-07"/>
    <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="July" day="10"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>Slice Service</keyword>
    <keyword>L3VPN</keyword>
    <keyword>L2VPN</keyword>
    <abstract>
      <?line 87?>

<t>This document specifies a YANG service data model for Attachment Circuits (ACs). This model can be used for the provisioning of ACs before or during service provisioning (e.g., Network Slice Service). The document also specifies a 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 other service models reuse structures defined in the AC models or simply include an AC reference is a design choice of these service models. Utilizing the AC service model to manage ACs over which a service is delivered has the advantage of decoupling service management from upgrading AC components to incorporate recent AC technologies or features.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/attachment-circuit-model"/>.</t>
    </note>
  </front>
  <middle>
    <?line 93?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="scope-and-intended-use">
        <name>Scope and Intended Use</name>
        <t>Connectivity services are provided by networks to customers via dedicated terminating points, such as Service Functions <xref target="RFC7665"/>, customer edges (CEs), peer Autonomous System Border Routers (ASBRs), data centers gateways, or Internet Exchange Points. A connectivity service is basically about ensuring data transfer received from or destined to a given terminating point to or from other terminating points within the same customer/service, an interconnection node, or an ancillary node. The objectives for the connectivity service can be negotiated and agreed upon between the customer and the network provider. To facilitate data transfer within the provider network, it is assumed that the appropriate setup is provisioned over the links that connect customer terminating points and a provider network, allowing successfully data 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 a value-added service should, thus, accommodate both deployments.</t>
        <t>Also, because the instantiation of an attachment circuit requires coordinating the provisioning of endpoints that might not belong to the same administrative entity (customer vs. provider or distinct operational teams within the same provider, etc.), ** providing programmatic means to expose 'attachment circuits'-as-a-service will greatly simplify the provisioning of value-added services** 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, such as an enterprise site, a network function, a hosting infrastructure, or a peer network provider. The model can be used for the provisioning of ACs prior or during advanced service provisioning (e.g., 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 data nodes into specific modules of advanced services that are delivered over an Attachment Circuit.</strong></t>
        <t>Since the provisioning of an AC requires a bearer to be in place, this document introduces a new module called "ietf-bearer-svc" that enables customers to manage their bearer requests. The customers can then retrieve a provider-assigned bearer reference that they will include in their AC service requests.</t>
        <t>An 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="RFC9408"/>. Likewise, the same SAP can be bound to one or multiple ACs. However, the mapping between an AC and a PE in the provider network that terminates that AC is hidden to the application that makes use of the AC service model. Such mapping information is internal to the network controllers. As such, the details about the (node-specific) attachment interfaces are not exposed in the AC service model.</t>
        <t>The AC service model <strong>does not make any assumptions 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 who also requested VPN services. If these provisioning of these services require specific configuration on ASBR nodes, such configuration is handled at the network level and is not exposed to the customer at the service level. However, the network controller will have access to such a view as the service points in these ASBRs will be exposed as SAPs with "role" set to "ietf-sap-ntw:nni" <xref target="RFC9408"/>.</t>
        <t>The AC service model can be used in a variety of contexts, such as (but not limited to) those provided in <xref target="examples"/>:</t>
        <ul spacing="normal">
          <li>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>Create Multiple ACs bound to Multiple CEs (<xref target="sec-multiple-ces"/>).</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>The 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 AC 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 an 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 is not exposed to the customer. This mapping can be maintained using a variety of network models, such as augmented SAP AC network model <xref target="I-D.boro-opsawg-ntw-attachment-circuit"/>.</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-the-l2sm-as-reference-data-model-for-acaas">
          <name>Why Not Using the L2SM as Reference Data Model for ACaaS?</name>
          <t>The L2SM <xref target="RFC8466"/> covers some AC-related considerations. Nevertheless, the L2SM structure is primarily focused on Layer 2 aspects. For example, the L2SM part does not cover Layer 3 provisioning, which is required for the typical AC instantiation.</t>
        </section>
        <section anchor="why-not-using-the-l3sm-as-reference-data-model-for-acaas">
          <name>Why Not Using the L3SM as Reference Data Model for ACaaS?</name>
          <t>Like the L2SM, the L3SM <xref target="RFC8299"/> addresses certain AC-related aspects. However, the L3SM structure does not sufficiently address layer 2 provisioning requirements. Additionally, the L3SM is primarily designed for conventional L3VPN deployments and, as such, has some limitations for instantiating ACs in other deployment contexts (e.g., cloud environments). For example, the L3SM does not provide the capability to provision multiple BGP 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>
      <?line -18?>

<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-edges-ces">
        <name>ACs Terminated by One or Multiple Customer Edges (CEs)</name>
        <t><xref target="uc"/> depicts two target topology flavors that involve ACs. These topologies have the following characteristics:</t>
        <ul spacing="normal">
          <li>A Customer Edges (CEs) can be either a physical device or a logical entity. Such logical entity is typically a software component (e.g., a virtual service function that is hosted within the provider's network or a third-party infrastructure). A CE is seen by the network as a peer SAP.</li>
          <li>An AC service request may include one or multiple ACs, which may be associated to a single CE or multiple CEs.</li>
          <li>CEs may be either dedicated to one single connectivity service or host multiple connectivity services (e.g., CEs with roles of service functions <xref target="RFC7665"/>).</li>
          <li>A network provider may bind a single AC to one or multiple peer SAPs (e.g., CE#1 and CE#2 are tagged as peer SAPs for the same AC). For example, and as discussed in <xref target="RFC4364"/>, multiple CEs can be attached to a PE over the same attachment circuit. This scenario is typically implemented when the layer 2 infrastructure between the CE and the network is a multipoint service.</li>
          <li>A single CE may terminate multiple ACs, which can be associated with the same bearer or distinct bearers.</li>
          <li>Customers may request protection schemes in which the ACs associated with their endpoints are terminated by the same PE (e.g., CE#3), distinct PEs (e.g., CE#34), etc. The network provider uses this request to decide where to terminate the AC in the network provider network and also whether to enable specific capabilities (e.g., Virtual Router Redundancy Protocol (VRRP)).</li>
        </ul>
        <figure anchor="uc">
          <name>Examples of ACs</name>
          <artwork align="center"><![CDATA[
┌───────┐                ┌────────────────────┐           ┌───────┐
│       ├──────┐         │                    ├────AC─────┤       │
│ CE#1  │      │         │                    ├────AC─────┤ CE#3  |
└───────┘      │         │                    │           └───────┘
               ├───AC────┤     Network        │
┌───────┐      │         │                    │
│       │      │         │                    │           ┌───────┐
│ CE#2  ├──────┘         │                    │─────AC────┤ CE#4  │
└───────┘                │                    │           └────+──┘
                         └───────────+────────┘                |
                                     |                         |
                                     └────────────AC───────────┘
]]></artwork>
        </figure>
      </section>
      <section anchor="separate-ac-provisioning-vs-actual-service-provisioning">
        <name>Separate AC Provisioning vs. Actual Service Provisioning</name>
        <t>The procedure to provision a service in a service provider network may depend on the practices adopted by a service provider. This includes the flow put in place for the provisioning of advanced network services and how they are bound to an attachment circuit. For example, a single attachment circuit may be used to host multiple connectivity services. In order to avoid service interference and redundant information in various locations, a service provider may expose an interface to manage ACs network-wide. Customers can then request a bearer or an attachment circuit to be put in place, and then refer to that bearer or AC when requesting services that are bound to the bearer or AC.</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,| and bearer-svc
                          +-------+-------+
                          |    Service    |
                          | Orchestration |
                          +-------+-------+
           Network Model          |
  e.g., l3vpn-ntw, sap, and ac-ntw|
                          +-------+-------+
                          |   Network     |
                          | Orchestration |
                          +-------+-------+
    Network Configuration Model   |
                      +-----------+-----------+
                      |                       |
             +--------+------+       +--------+------+
             |    Domain     |       |     Domain    |
             | Orchestration |       | Orchestration |
             +---+-----------+       +--------+------+
  Device         |        |                   |
  Configuration  |        |                   |
  Model          |        |                   |
            +----+----+   |                   |
            | Config  |   |                   |
            | Manager |   |                   |
            +----+----+   |                   |
                 |        |                   |
                 | NETCONF/CLI..................
                 |        |                   |
               +--------------------------------+
 +----+ Bearer |                                | Bearer +----+
 |CE#1+--------+            Network             +--------+CE#2|
 +----+        |                                |        +----+
               +--------------------------------+
  Site A                                                  Site B
]]></artwork>
        </figure>
        <t>In order to ease the mapping between the service model and underlying network models (e.g., L3NM, SAP), the name conventions used in existing network data models are reused as much as possible. For example, "local-address" is used rather than "provider-address" (or similar) to refer to an IP address used in the provider network. This approach is consistent with the automation framework defined in <xref target="RFC8969"/>.</t>
      </section>
    </section>
    <section anchor="description-of-the-data-models">
      <name>Description of the Data Models</name>
      <section anchor="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 anchoring of the AC can also be achieved by indicating (with or without a bearer reference), a peer SAP identifier (e.g., an identifier of a Service Function).</t>
        <figure anchor="bearer-st">
          <name>Bearer Service Tree Structure</name>
          <artwork align="center"><![CDATA[
module: ietf-bearer-svc
  +--rw bearers
     +--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-bearers)
     |           |  +--rw all-other-bearers?   empty
     |           +--:(all-groups)
     |              +--rw all-other-groups?     empty
     +--rw bearer* [id]
        +--rw id                  string
        +--rw description?        string
        +--rw groups
        |  +-- group* [group-id]
        |     +-- group-id    string
        +--rw op-comment?         string
        +--rw customer-point
        |  +--rw identified-by?   identityref
        |  +--rw device
        |  |  +--rw device-id?   string
        |  |  +--rw location
        |  |     +--rw location-name?  string
        |  |     +--rw address?        string
        |  |     +--rw postal-code?    string
        |  |     +--rw state?          string
        |  |     +--rw city?           string
        |  |     +--rw country-code?   string
        |  +--rw site
        |  |  +--rw site-id?    string
        |  |  +--rw location
        |  |     +--rw location-name?  string
        |  |     +--rw address?        string
        |  |     +--rw postal-code?    string
        |  |     +--rw state?          string
        |  |     +--rw city?           string
        |  |     +--rw country-code?   string
        |  +--rw custom-id?       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
        +--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
]]></artwork>
        </figure>
        <t>The same customer site (CE, NF, etc.) can terminate one or multiple bearers; each of them uniquely identified by a reference that is assigned by the network provider. These bearers can terminate on the same or distinct network nodes. CEs that terminate multiple bearers are called multi-homed CEs.</t>
        <t>A bearer request may indicate some hints about the placement constraints ('placement-constraints'). These constraints are used by a provider to determine how/where to terminate a bearer in the network side (e.g., PoP/PE selection).</t>
        <t>The descriptions of the bearer data nodes are as follows:</t>
        <dl>
          <dt>'id':</dt>
          <dd>
            <t>Used to uniquely identify a bearer. This identifier is typically selected by the client when requesting a bearer.</t>
          </dd>
          <dt>'description':</dt>
          <dd>
            <t>Includes a textual description of the bearer.</t>
          </dd>
          <dt>'op-comment':</dt>
          <dd>
            <t>Includes operational comments that may be useful for managing the bearer (building, level, etc.). No structure is associated with this data node to accommodate all deployments.</t>
          </dd>
          <dt>'group':</dt>
          <dd>
            <t>Tags a bearer with one ore more identifiers that are used to group a set of bearers.</t>
          </dd>
          <dt>'customer-point':</dt>
          <dd>
            <t>Specifies the customer terminating point for the bearer. A bearer request can indicate a device, a site, a combination thereof, or a custom information when requesting a bearer. All these schemes are supported in the model.</t>
          </dd>
          <dt>'requested-type':</dt>
          <dd>
            <t>Specifies the requested bearer type (Ethernet, wireless, etc.).</t>
          </dd>
          <dt>'bearer-reference':</dt>
          <dd>
            <t>Returns an internal reference for the service provider to identify the bearer. This reference can be used when requesting services. <xref target="ex-create-bearer"/> provides an example about how this reference can be retrieved by a customer.</t>
          </dd>
          <dt/>
          <dd>
            <t>Whether the 'bearer-reference' mirrors the content of the 'id' is deployment specific. The module does not assume nor preclude such schemes.</t>
          </dd>
          <dt>'status':</dt>
          <dd>
            <t>Used to track the overall status of a given bearer. Both operational and administrative status are maintained together with a timestamp.</t>
          </dd>
          <dt/>
          <dd>
            <t>See <xref target="RFC9181"/> for more details.</t>
          </dd>
        </dl>
      </section>
      <section anchor="the-attachment-circuit-service-ietf-ac-svc-yang-module">
        <name>The Attachment Circuit Service ("ietf-ac-svc") YANG Module</name>
        <section anchor="overall-structure">
          <name>Overall Structure</name>
          <t>The overall tree structure of the AC service module is shown in <xref target="o-svc-tree"/>.</t>
          <figure anchor="o-svc-tree">
            <name>Overall AC Service Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
          </figure>
          <t>The full ACaaS tree is available at <xref target="AC-SVC-Tree"/>. The full reusable groupings defined in the ACaaS module are shown in <xref target="AC-SVC-GRP"/>.</t>
          <ul empty="true">
            <li>
              <t>The rationale for deciding whether a reusable grouping should be maintained in this document or be moved into the AC common module <xref target="I-D.boro-opsawg-teas-common-ac"/> is as follows:</t>
              <ul spacing="normal">
                <li>Groupings that are reusable among the AC service module, AC network module, other service models, and network models are included in the AC common module.</li>
                <li>Groupings that are reusable only by other service models are maintained in the "ietf-ac-svc" module.</li>
              </ul>
            </li>
          </ul>
          <t>Each AC is identified with a unique name ('../ac/name') within a domain. The mapping between this AC and a local PE that terminates the AC is hidden to the application that makes use of the AC service model. This information is internal to the Network controller. As such, the details about the (node-specific) attachment interfaces are not exposed in this service model.</t>
          <t>The AC service model uses groupings and types defined in the AC common model <xref target="I-D.boro-opsawg-teas-common-ac"/>. Therefore, the description of these nodes are not reiterated in the following subsections.</t>
        </section>
        <section anchor="sec-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 reusable profiles. The profiles definition are similar to those defined in <xref target="RFC9181"/>, including: Quality of Service (QoS),  Bidirectional Forwarding Detection (BFD), forwarding, and routing profiles. The exact definition of the profiles is local to each service provider. The model only includes an identifier for these profiles in order to facilitate identifying and binding local policies when building an AC.</t>
            <figure anchor="gp-svc-tree">
              <name>Service Profiles</name>
              <artwork align="center"><![CDATA[
module: ietf-ac-svc
  +--rw specific-provisioning-profiles
  |  +--rw valid-provider-identifiers
  |     +--rw encryption-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw qos-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw 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
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
            <t>As shown in <xref target="gp-svc-tree"/>, two profile types can be defined: 'specific-provisioning-profiles' and 'service-provisioning-profiles'. Whether only specific profiles, service profiles, or a combination thereof are used is local to each service provider.</t>
            <t>The following specific provisioning profiles can be defined:</t>
            <dl>
              <dt>'encryption-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies related to the encryption setup that can be applied when provisioning an AC.</t>
              </dd>
              <dt>'qos-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies, such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
              </dd>
              <dt>'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 the abovementioned profiles are uniquely identified by the NETCONF/RESTCONF server by an identifier. To ease referencing these profiles by other data models, specific typedefs are defined for each of these profiles. Likewise, an attachment circuit reference typedef is defined when referencing a (global) attachment circuit by its name is required. These typedefs <bcp14>SHOULD</bcp14> be used when other modules need a reference to one of these profiles or attachment circuits.</t>
          </section>
        </section>
        <section anchor="sec-acp">
          <name>Attachment Circuits Profiles</name>
          <t>The 'ac-group-profile' defines reusable parameters for a set of ACes. Each profile is identified by 'name'. Some of the data nodes can be adjusted at the 'ac'.
These adjusted values take precedence over the global values.  The structure of 'ac-group-profile' is similar to the one used to model each 'ac' (<xref target="ac-svc-tree"/>).</t>
        </section>
        <section anchor="sec-pc">
          <name>AC Placement Contraints</name>
          <t>The 'placement-constraints' specifies the placement constraints of an AC. For example, this container can be used to request avoiding to connecting two ACes to the same PE. The full set of supported constraints is defined in <xref target="RFC9181"/> (see 'placement-diversity', in particular).</t>
          <t>The structure of 'placement-constraints' is shown in <xref target="precedence-tree"/>.</t>
          <figure anchor="precedence-tree">
            <name>Placement Constraints Subtree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name] 
     |  ...                                
     +--rw placement-constraints
     |  +--rw constraint* [constraint-type]
     |     +--rw constraint-type    identityref
     |     +--rw target
     |        +--rw (target-flavor)?
     |           +--:(id)
     |           |  +--rw group* [group-id]
     |           |     +--rw group-id    string
     |           +--:(all-accesses)
     |           |  +--rw all-other-accesses?   empty
     |           +--:(all-groups)
     |              +--rw all-other-groups?     empty
     +--rw ac* [name]
        ...
]]></artwork>
          </figure>
        </section>
        <section anchor="attachment-circuits">
          <name>Attachment Circuits</name>
          <t>The structure of 'attachment-circuits' is shown in <xref target="ac-svc-tree"/>.</t>
          <figure anchor="ac-svc-tree">
            <name>Attachment Circuits Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw 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-group-profile*    ac-group-reference
        +--rw group* [group-id]
        |  +--rw group-id      string
        |  +--rw precedence?   identityref
        +--rw name                 string
        +--rw service-profile*     service-profile-reference        
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
          </figure>
          <t>The description of the data nodes is as follows:</t>
          <dl>
            <dt>'customer-name':</dt>
            <dd>
              <t>Indicates the name of the customer who ordered the AC.</t>
            </dd>
            <dt>'description':</dt>
            <dd>
              <t>Includes a textual description of the AC.</t>
            </dd>
            <dt>'peer-sap-id':</dt>
            <dd>
              <t>Includes references to the remote endpoints of an attachment circuit <xref target="RFC9408"/>.</t>
            </dd>
            <dt>'ac-group-profile':</dt>
            <dd>
              <t>Indicates references to one or more profiles that are defined in <xref target="sec-acp"/>.</t>
            </dd>
            <dt>'group':</dt>
            <dd>
              <t>Lists the groups to which an AC belongs <xref target="RFC9181"/>. For example, the 'group-id' is used to associate redundancy or protection constraints of ACes. An example is provided in <xref target="sec-ex-prec"/>.</t>
            </dd>
            <dt>'name':</dt>
            <dd>
              <t>Associates a name that uniquely identifies an AC within a service provider network.</t>
            </dd>
            <dt>'l2-connection':</dt>
            <dd>
              <t>See <xref target="sec-l2"/>.</t>
            </dd>
            <dt>'ip-connection':</dt>
            <dd>
              <t>See <xref target="sec-l3"/>.</t>
            </dd>
            <dt>'routing':</dt>
            <dd>
              <t>See <xref target="sec-rtg"/>.</t>
            </dd>
            <dt>'oam':</dt>
            <dd>
              <t>See <xref target="sec-oam"/>.</t>
            </dd>
            <dt>'security':</dt>
            <dd>
              <t>See <xref target="sec-sec"/>.</t>
            </dd>
            <dt>'service':</dt>
            <dd>
              <t>See <xref target="sec-bw"/>.</t>
            </dd>
          </dl>
          <section anchor="sec-l2">
            <name>Layer 2 Connection Structure</name>
            <t>The 'l2-connection' container (<xref target="l2-svc-tree"/>) is used to configure the relevant Layer 2 properties of an AC including: encapsulation details and tunnel terminations. For the encapsulation details, the model supports the definition of the type as well as the Identifiers (e.g., VLAN-IDs) of each of the encapsulation-type defined. For the second case, attributes for pseudowire, Virtual Private LAN Service (VPLS), and  Virtual eXtensible Local Area Network (VXLAN) tunnel terminations are included. This structure relies upon the common groupings defined in <xref target="I-D.boro-opsawg-teas-common-ac"/>.</t>
            <figure anchor="l2-svc-tree">
              <name>Layer 2 Connection Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw 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-group-profile*    ac-group-reference
        +--rw group* [group-id]
        |  +--rw group-id      string
        |  +--rw precedence?   identityref
        +--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
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-l3">
            <name>IP Connection Structure</name>
            <t>The 'ip-connection' container is used to configure the relevant IP properties of an AC. The model supports the usage of dynamic and static addressing. This structure relies upon the common groupings defined in <xref target="I-D.boro-opsawg-teas-common-ac"/>. Both IPv4 and IPv6 parameters are supported.</t>
            <t><xref target="ipv4-svc-tree"/> shows the structure of the IPv4 connection.</t>
            <figure anchor="ipv4-svc-tree">
              <name>Layer 3 Connection Tree Structure (IPv4)</name>
              <artwork align="center"><![CDATA[
        | ...
        +--rw ip-connection
        |  +--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}?
        |     ...
]]></artwork>
            </figure>
            <t><xref target="ipv6-svc-tree"/> shows the structure of the IPv6 connection.</t>
            <figure anchor="ipv6-svc-tree">
              <name>Layer 3 Connection Tree Structure (IPv6)</name>
              <artwork align="center"><![CDATA[
        | ...
        +--rw ip-connection
        |  +--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
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-rtg">
            <name>Routing</name>
            <t>As shown in the tree depicted in <xref target="rtg-svc-tree"/>, the 'routing-protocols' container defines the required parameters to enable the desired routing features for an AC. One or more routing protocols can be associated with an AC.  Such routing protocols will be then enabled between a PE and the customer terminating points. Each routing instance is uniquely identified by the combination of the 'id' and 'type' to accommodate scenarios where multiple instances of the same routing protocol have to be configured on the same link.</t>
            <t>In addition to static routing, the module supports BGP, OSPF, IS-IS, and RIP. It also includes a reference to the 'routing-profile-identifier' defined in <xref target="sec-profiles"/>, so that additional constraints can be applied to a specific instance of each routing protocol.</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-group-profile*    ac-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 routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp
        |     |  ...
        |     |  ...
        |     +--rw isis
        |     |  ...
        |     +--rw rip
        |     |  ...
        |     +--rw vrrp
        |        ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
            <section anchor="static-routing">
              <name>Static Routing</name>
              <t>The static tree structure is shown in <xref target="static-rtg-svc-tree"/>.</t>
              <figure anchor="static-rtg-svc-tree">
                <name>Static Routing Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  +--rw cascaded-lan-prefixes
        |     |     +--rw ipv4-lan-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 ospf
        |     |  ...
        |     +--rw isis
        |     |  ...
        |     +--rw rip
        |     |  ...
        |     +--rw vrrp
        |        ...
]]></artwork>
              </figure>
            </section>
            <section anchor="bgp">
              <name>BGP</name>
              <t>The BGP tree structure is shown in <xref target="bgp-rtg-svc-tree"/>.</t>
              <figure anchor="bgp-rtg-svc-tree">
                <name>BGP Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp
        |     |  +--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 isis
        |     |  ...
        |     +--rw rip
        |     |  ...
        |     +--rw vrrp
        |        ...
]]></artwork>
              </figure>
              <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="ospf">
              <name>OSPF</name>
              <t>The OSPF tree structure is shown in <xref target="ospf-rtg-svc-tree"/>.</t>
              <figure anchor="ospf-rtg-svc-tree">
                <name>OSPF Tree Structure</name>
                <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp
        |     |  ...
        |     +--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 rip
        |     |  ...
        |     +--rw vrrp
        |        ...
]]></artwork>
              </figure>
            </section>
          </section>
          <section anchor="is-is">
            <name>IS-IS</name>
            <t>The IS-IS tree structure is shown in <xref target="isis-rtg-svc-tree"/>.</t>
            <figure anchor="isis-rtg-svc-tree">
              <name>IS-IS Tree Structure</name>
              <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp
        |     |  ...
        |     |           +--ro last-change?   yang:date-and-time
        |     +--rw ospf
        |     |  ...
        |     +--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 vrrp
        |      ...
]]></artwork>
            </figure>
          </section>
          <section anchor="rip">
            <name>RIP</name>
            <t>The RIP tree structure is shown in <xref target="rip-rtg-svc-tree"/>.</t>
            <figure anchor="rip-rtg-svc-tree">
              <name>RIP Tree Structure</name>
              <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp
        |     |  ...
        |     |           +--ro last-change?   yang:date-and-time
        |     +--rw ospf
        |     |  ...
        |     +--rw isis
        |     |  ...
        |     +--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
        |      ...
]]></artwork>
            </figure>
            <t>'address-family' indicates whether IPv4, IPv6, or both address families are to be activated. For example, this parameter is used to determine whether RIPv2 <xref target="RFC2453"/>, RIP Next Generation (RIPng), or both are to be enabled <xref target="RFC2080"/>.</t>
          </section>
          <section anchor="vrrp">
            <name>VRRP</name>
            <t>The model also supports the Virtual Router Redundancy Protocol (VRRP) <xref target="RFC5798"/> on an AC (<xref target="vrrp-rtg-svc-tree"/>).</t>
            <figure anchor="vrrp-rtg-svc-tree">
              <name>VRRP Tree Structure</name>
              <artwork align="center"><![CDATA[
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  ...
        |     +--rw bgp
        |     |  ...
        |     +--rw ospf
        |     |  ...
        |     +--rw isis
        |     |  ...
        |     +--rw rip
        |     |  ...
        |     +--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
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-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
        |  ...
        +--rw service
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-sec">
            <name>Security</name>
            <t>As shown in the tree depicted in <xref target="sec-svc-tree"/>, the 'security' container defines a set of AC security parameters.</t>
            <figure anchor="sec-svc-tree">
              <name>Security Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--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?
        |        |          encryption-profile-reference
        |        +--:(customer-profile)
        |           +--rw customer-key-chain?
        |                   key-chain:key-chain-ref
        +--rw service
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-bw">
            <name>Service</name>
            <t>As shown in the tree depicted in <xref target="bw-tree"/>, the 'service' container defines the following data nodes:</t>
            <dl>
              <dt>'mtu':</dt>
              <dd>
                <t>Specifies the Layer 2 MTU, in bytes, for the AC.</t>
              </dd>
              <dt>'svc-pe-to-ce-bandwidth':</dt>
              <dd>
                <t>Indicates the inbound bandwidth of the AC (i.e., download bandwidth from the service provider to
the customer site).</t>
              </dd>
              <dt>'svc-ce-to-pe-bandwidth':</dt>
              <dd>
                <t>Indicates the outbound bandwidth of the AC (i.e., upload bandwidth from the customer site to the service
provider).</t>
              </dd>
            </dl>
            <t>Both 'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth' can be represented using the Committed Information Rate (CIR), the Excess
Information Rate (EIR), or the Peak Information Rate (PIR). Both reuse the 'bandwidth-per-type' grouping defined in <xref target="I-D.boro-opsawg-teas-common-ac"/>.</t>
            <figure anchor="bw-tree">
              <name>Bandwidth Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
        |  ...
        +--rw service
           +--rw mtu?            uint32
           +--rw svc-pe-to-ce-bandwidth {vpn-common:inbound-bw}?
           |  +--rw bandwidth* [bw-type]
           |     +--rw bw-type      identityref
           |     +--rw (type)?
           |        +--:(per-cos)
           |        |  +--rw cos* [cos-id]
           |        |     +--rw cos-id    uint8
           |        |     +--rw cir?      uint64
           |        |     +--rw cbs?      uint64
           |        |     +--rw eir?      uint64
           |        |     +--rw ebs?      uint64
           |        |     +--rw pir?      uint64
           |        |     +--rw pbs?      uint64
           |        +--:(other)
           |           +--rw cir?   uint64
           |           +--rw cbs?   uint64
           |           +--rw eir?   uint64
           |           +--rw ebs?   uint64
           |           +--rw pir?   uint64
           |           +--rw pbs?   uint64
           +--rw svc-ce-to-pe-bandwidth {vpn-common:outbound-bw}?
              +--rw bandwidth* [bw-type]
                 +--rw bw-type      identityref
                 +--rw (type)?
                    +--:(per-cos)
                    |  +--rw cos* [cos-id]
                    |     +--rw cos-id    uint8
                    |     +--rw cir?      uint64
                    |     +--rw cbs?      uint64
                    |     +--rw eir?      uint64
                    |     +--rw ebs?      uint64
                    |     +--rw pir?      uint64
                    |     +--rw pbs?      uint64
                    +--:(other)
                       +--rw cir?   uint64
                       +--rw cbs?   uint64
                       +--rw eir?   uint64
                       +--rw ebs?   uint64
                       +--rw pir?   uint64
                       +--rw pbs?   uint64
]]></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"><![CDATA[ file ietf-bearer-svc@2022-11-30.yang
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 CCCC: A Common YANG Data Model for Attachment Circuits";
  }
  import ietf-ac-svc {
    prefix ac-svc;
    reference
      "RFC XXXX: YANG Service Data Models for Attachment Circuits";
  }

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

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>
     Author:   Richard Roberts
               <mailto:rroberts@juniper.net>
     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 identification-type {
    description
      "Base identity for identification of bearers.";
  }

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

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

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

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

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

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

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

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

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

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

  container bearers {
    description
      "Main container for the bearers.";

    container placement-constraints {
      description
        "Diversity constraint type.";
      uses placement-constraints;
    }

    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.";
      }
      uses vpn-common:vpn-components-group;
      leaf op-comment {
        type string;
        description
          "Includes comments that can be shared with operational teams and
           which may be useful for the activation of a bearer. This may include,
           for example, information about the building, level, etc.";
      }
      container customer-point {
        description
          "Base container to link the Bearer existence";
        leaf identified-by {
          type identityref {
            base identification-type;
          }
          description
            "Attribute used to identify the bearer";
        }
        container device {
          when
            "derived-from-or-self(../identified-by, "
          + "'device-id') or derived-from-or-self(../identified-by, "
          + "'site-and-device-id')" {
            description
              "Only applicable if identified-by is device.";
          }
          description
            "Bearer is linked to device.";
          leaf device-id {
            type string;
            description
              "Identifier for the device where that bearer belongs.";
          }
          uses location-information;
        }
        container site {
          when
            "derived-from-or-self(../identified-by, "
          + "'site-id') or derived-from-or-self(../identified-by, "
          + "'site-and-device-id')" {
            description
              "Only applicable if identified-by is site.";
          }
          description
            "Bearer is linked to a site.";
          leaf site-id {
            type string;
            description
              "Identifier for the site or sites where that bearer belongs.";
          }
          uses location-information;
        }
        leaf custom-id {
          when "derived-from-or-self(../identified-by, "
             + "'custom')" {
            description
              "Only enabled id identified-by is custom.";
          }
          type string;
          description
            "The semantic of this identifier is shared between the
              customer/provider using out-of-band means.";
        }
      }
      leaf 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.";
      }
      leaf-list ac-refs {
        type ac-svc:attachment-circuit-reference;
        config false;
        description
          "Specifies the set of ACes that are bound to the bearer.";
      }
      uses ac-common:op-instructions;
      uses vpn-common:service-status;
    }
  }
}
]]></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"><![CDATA[ file ietf-ac-svc@2022-11-30.yang
module ietf-ac-svc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-svc";
  prefix ac-svc;

  import ietf-ac-common {
    prefix ac-common;
    reference
      "RFC CCCC: A Common YANG Data Model for Attachment Circuits";
  }
  import ietf-vpn-common {
    prefix vpn-common;
    reference
      "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
                 VPNs";
  }
  import ietf-netconf-acm {
    prefix nacm;
    reference
      "RFC 8341: Network Configuration Access Control Model";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types, Section 4";
  }
  import ietf-key-chain {
    prefix key-chain;
    reference
      "RFC 8177: YANG Data Model for Key Chains";
  }

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

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

     Copyright (c) 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: YANG Service Data Models 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-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/ac-svc:valid-provider-identifiers"
      + "/ac-svc:encryption-profile-identifier/ac-svc:id";
    }
    description
      "Defines a type to an encryption profile for referencing
       purposes.";
  }

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

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

  typedef service-profile-reference {
    type leafref {
      path
        "/ac-svc:service-provisioning-profiles/ac-svc:service-profile-identifier"
      + "/ac-svc:id";
    }
    description
      "Defines a type to a service 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.";
      }
    }
  }

  //  BGP Service 

  grouping bgp-svc {
    description
      "Configuration specific to BGP.";
    container peer-groups {
      description
        "Configuration for BGP peer-groups";
      list peer-group {
        key "name";
        description
          "List of BGP peer-groups configured on the local system -
           uniquely identified by peer-group name";
        uses ac-common:bgp-peer-group-with-name;
        leaf local-address {
          type inet:ip-address;
          description
            "The 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;
        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;
    }
  }

  //  OSPF Service 

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

  //  IS-IS Service 

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

  //  RIP Service 

  grouping rip-svc {
    description
      "Service configuration specific to RIP routing.";
    leaf address-family {
      type identityref {
        base vpn-common:address-family;
      }
      description
        "Indicates whether IPv4, IPv6, or both address families
         are to be activated.";
    }
    uses ac-common:rip-authentication;
    uses vpn-common:service-status;
  }

  //  VRRP Service 

  grouping vrrp-svc {
    description
      "Service 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;
  }

  // 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.";
        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.";
        uses bgp-svc {
          refine "peer-groups/peer-group/local-address" {
            config false;
          }
          refine "neighbor/local-address" {
            config false;
          }
        }
      }
      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 ospf-svc;
      }
      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 isis-svc;
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.
             For IPv4, the model assumes that RIP version 2 is used.";
        }
        description
          "Configuration specific to RIP routing.";
        uses rip-svc;
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the Virtual Router
             Redundancy Protocol (VRRP).";
        }
        description
          "Configuration specific to VRRP.";
        uses vrrp-svc;
      }
    }
  }

  // Encryption choice

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

  // Basic security parameters

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

  // Bandwith

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

  // Basic AC 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;
    }
    container service {
      description
        "AC-specific bandwith parameters.";
      leaf mtu {
        type uint32;
        units "bytes";
        description
          "Layer 2 MTU.";
      }
      uses bandwidth;
    }
  }

  // Full AC parameters

  grouping ac {
    description
      "Grouping for an attachment circuit.";
    leaf name {
      type string;
      description
        "A name of the AC. Data models that need to reference an attachment
         circuits should use attachment-circuit-reference.";
    }
    leaf-list service-profile {
      type service-profile-reference;
      description
        "A reference to a service profile.";
    }
    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;
    }
    container service {
      description
        "AC-specific bandwith parameters.";
      uses bandwidth;
    }
  }

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

  container specific-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    uses ac-common:ac-profile-cfg;
  }
  container service-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    list service-profile-identifier {
      key "id";
      description
        "List of generic service profile identifiers.";
      leaf id {
        type string;
        description
          "Identification of the service profile to be used.
           The profile only has significance within the service
           provider's administrative domain.";
      }
    }
    nacm:default-deny-write;
  }
  container attachment-circuits {
    description
      "Main container for the attachment circuits.";
    list ac-group-profile {
      key "name";
      description
        "Maintains a list of profiles that are shared among
         a set of ACs.";
      uses ac;
    }
    container placement-constraints {
      description
        "Diversity constraint type.";
      uses vpn-common:placement-constraints;
    }
    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-group-profile {
        type ac-group-reference;
        description
          "A reference to an 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>
      <dl>
        <dt>'customer-name', 'l2-connection', and 'ip-connection':</dt>
        <dd>
          <t>An attacker can retrieve privacy-related information, which can be used to track a
 customer.  Disclosing such information may be considered a
 violation of the customer-provider trust relationship.</t>
        </dd>
        <dt>'keying-material':</dt>
        <dd>
          <t>An attacker can retrieve the cryptographic keys
 protecting the underlying connectivity services (routing, in
 particular).  These keys could be used to inject spoofed routing
 advertisements.</t>
        </dd>
      </dl>
      <t>Several data nodes ('bgp', 'ospf', 'isis', and 'rip') rely
   upon <xref target="RFC8177"/> for authentication purposes.  As such, the AC service module
   inherits the security considerations discussed in Section 5 of
   <xref target="RFC8177"/>.  Also, these data nodes support supplying explicit keys as
   strings in ASCII format.  The use of keys in hexadecimal string
   format would afford greater key entropy with the same number of key-
   string octets.  However, such a format is not included in this
   version of the AC service model, because it is not supported by the underlying
   device modules (e.g., <xref target="RFC8695"/>).</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URIs in the "ns" subregistry within
   the "IETF XML Registry" <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-bearer-svc
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.

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

   Name:  ietf-ac-svc
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-ac-svc
   Prefix:  ac-svc
   Reference:  RFC xxxx
]]></artwork>
    </section>
  </middle>
  <back>
    <references>
      <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"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9181">
          <front>
            <title>A Common YANG Data Model for Layer 2 and Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="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="3" month="May" 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-02"/>
        </reference>
        <reference anchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references>
        <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="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="RFC9408">
          <front>
            <title>A YANG Network Data Model for Service Attachment Points (SAPs)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="V. Lopez" initials="V." surname="Lopez"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>This document defines a YANG data model for representing an abstract view of the provider network topology that contains the points from which its services can be attached (e.g., basic connectivity, VPN, network slices). Also, the model can be used to retrieve the points where the services are actually being delivered to customers (including peer networks).</t>
              <t>This document augments the 'ietf-network' data model defined in RFC 8345 by adding the concept of Service Attachment Points (SAPs). The SAPs are the network reference points to which network services, such as Layer 3 Virtual Private Network (L3VPN) or Layer 2 Virtual Private Network (L2VPN), can be attached. One or multiple services can be bound to the same SAP. Both User-to-Network Interface (UNI) and Network-to-Network Interface (NNI) are supported in the SAP data model.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9408"/>
          <seriesInfo name="DOI" value="10.17487/RFC9408"/>
        </reference>
        <reference anchor="RFC5737">
          <front>
            <title>IPv4 Address Blocks Reserved for Documentation</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="L. Vegoda" initials="L." surname="Vegoda"/>
            <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"/>
            <author fullname="A. Lord" initials="A." surname="Lord"/>
            <author fullname="P. Smith" initials="P." surname="Smith"/>
            <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"/>
            <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"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="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="9" 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-02"/>
        </reference>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-model">
          <front>
            <title>YANG Model for Border Gateway Protocol (BGP-4)</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Kloud Services</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Susan Hares" initials="S." surname="Hares">
              <organization>Huawei</organization>
            </author>
            <author fullname="Jeffrey Haas" initials="J." surname="Haas">
              <organization>Juniper Networks</organization>
            </author>
            <date day="5" month="July" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for configuring and managing
   BGP, including protocol, policy, and operational aspects, such as
   RIB, based on data center, carrier, and content provider operational
   requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-model-17"/>
        </reference>
        <reference anchor="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC8299">
          <front>
            <title>YANG Data Model for L3VPN Service Delivery</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki"/>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used for communication between customers and network operators and to deliver a Layer 3 provider-provisioned VPN service. This document is limited to BGP PE-based VPNs as described in RFCs 4026, 4110, and 4364. This model is intended to be instantiated at the management system to deliver the overall service. It is not a configuration model to be used directly on network elements. This model provides an abstracted view of the Layer 3 IP VPN service configuration components. It will be up to the management system to take this model as input and use specific configuration models to configure the different network elements to deliver the service. How the configuration of network elements is done is out of scope for this document.</t>
              <t>This document obsoletes RFC 8049; it replaces the unimplementable module in that RFC with a new module with the same name that is not backward compatible. The changes are a series of small fixes to the YANG module and some clarifications to the text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8299"/>
          <seriesInfo name="DOI" value="10.17487/RFC8299"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC3644">
          <front>
            <title>Policy Quality of Service (QoS) Information Model</title>
            <author fullname="Y. Snir" initials="Y." surname="Snir"/>
            <author fullname="Y. Ramberg" initials="Y." surname="Ramberg"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="R. Cohen" initials="R." surname="Cohen"/>
            <author fullname="B. Moore" initials="B." surname="Moore"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document presents an object-oriented information model for representing Quality of Service (QoS) network management policies. This document is based on the IETF Policy Core Information Model and its extensions. It defines an information model for QoS enforcement for differentiated and integrated services using policy. It is important to note that this document defines an information model, which by definition is independent of any particular data storage mechanism and access protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3644"/>
          <seriesInfo name="DOI" value="10.17487/RFC3644"/>
        </reference>
        <reference anchor="RFC9182">
          <front>
            <title>A YANG Network Data Model for Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="L. Munoz" initials="L." surname="Munoz"/>
            <author fullname="A. Aguado" initials="A." surname="Aguado"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>As a complement to the Layer 3 Virtual Private Network Service Model (L3SM), which is used for communication between customers and service providers, this document defines an L3VPN Network Model (L3NM) that can be used for the provisioning of Layer 3 Virtual Private Network (L3VPN) services within a service provider network. The model provides a network-centric view of L3VPN services.</t>
              <t>The L3NM is meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices. The model can also facilitate communication between a service orchestrator and a network controller/orchestrator.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9182"/>
          <seriesInfo name="DOI" value="10.17487/RFC9182"/>
        </reference>
        <reference anchor="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5925"/>
          <seriesInfo name="DOI" value="10.17487/RFC5925"/>
        </reference>
        <reference anchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="56"/>
          <seriesInfo name="RFC" value="2453"/>
          <seriesInfo name="DOI" value="10.17487/RFC2453"/>
        </reference>
        <reference anchor="RFC2080">
          <front>
            <title>RIPng for IPv6</title>
            <author fullname="G. Malkin" initials="G." surname="Malkin"/>
            <author fullname="R. Minnear" initials="R." surname="Minnear"/>
            <date month="January" year="1997"/>
            <abstract>
              <t>This document specifies a routing protocol for an IPv6 internet. It is based on protocols and algorithms currently in wide use in the IPv4 Internet [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2080"/>
          <seriesInfo name="DOI" value="10.17487/RFC2080"/>
        </reference>
        <reference anchor="RFC5798">
          <front>
            <title>Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6</title>
            <author fullname="S. Nadas" initials="S." role="editor" surname="Nadas"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>This memo defines the Virtual Router Redundancy Protocol (VRRP) for IPv4 and IPv6. It is version three (3) of the protocol, and it is based on VRRP (version 2) for IPv4 that is defined in RFC 3768 and in "Virtual Router Redundancy Protocol for IPv6". VRRP specifies an election protocol that dynamically assigns responsibility for a virtual router to one of the VRRP routers on a LAN. The VRRP router controlling the IPv4 or IPv6 address(es) associated with a virtual router is called the Master, and it forwards packets sent to these IPv4 or IPv6 addresses. VRRP Master routers are configured with virtual IPv4 or IPv6 addresses, and VRRP Backup routers infer the address family of the virtual addresses being carried based on the transport protocol. Within a VRRP router, the virtual routers in each of the IPv4 and IPv6 address families are a domain unto themselves and do not overlap. The election process provides dynamic failover in the forwarding responsibility should the Master become unavailable. For IPv4, the advantage gained from using VRRP is a higher-availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host. For IPv6, the advantage gained from using VRRP for IPv6 is a quicker switchover to Backup routers than can be obtained with standard IPv6 Neighbor Discovery mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5798"/>
          <seriesInfo name="DOI" value="10.17487/RFC5798"/>
        </reference>
        <reference anchor="RFC8695">
          <front>
            <title>A YANG Data Model for the Routing Information Protocol (RIP)</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="P. Sarda" initials="P." surname="Sarda"/>
            <author fullname="V. Choudhary" initials="V." surname="Choudhary"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes a data model for the management of the Routing Information Protocol (RIP). Both RIP version 2 and RIPng are covered. The data model includes definitions for configuration, operational state, and Remote Procedure Calls (RPCs).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8695"/>
          <seriesInfo name="DOI" value="10.17487/RFC8695"/>
        </reference>
        <reference anchor="I-D.ietf-teas-ietf-network-slice-nbi-yang">
          <front>
            <title>A YANG Data Model for the IETF Network Slice Service</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Reza Rokui" initials="R." surname="Rokui">
              <organization>Ciena</organization>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems, Inc</organization>
            </author>
            <author fullname="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="7" month="July" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for the IETF Network Slice
   Service.  The model can be used in the IETF Network Slice Service
   interface between a customer and a provider that offers IETF Network
   Slices.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slice-nbi-yang-05"/>
        </reference>
        <reference anchor="RFC6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="L. Chen" initials="L." surname="Chen"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm. It also updates the security considerations for HMAC-MD5. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6952">
          <front>
            <title>Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="L. Zheng" initials="L." surname="Zheng"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This document analyzes TCP-based routing protocols, the Border Gateway Protocol (BGP), the Label Distribution Protocol (LDP), the Path Computation Element Communication Protocol (PCEP), and the Multicast Source Distribution Protocol (MSDP), according to guidelines set forth in Section 4.2 of "Keying and Authentication for Routing Protocols Design Guidelines", RFC 6518.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6952"/>
          <seriesInfo name="DOI" value="10.17487/RFC6952"/>
        </reference>
      </references>
    </references>
    <?line 2698?>

<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>Create A New Bearer</name>
        <t>An example of a request message body to create a bearer is shown in <xref target="create-bearer"/>.</t>
        <figure anchor="create-bearer">
          <name>Example of a Message Body to Create A New Bearer</name>
          <artwork><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-point": {
          "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-point": {
          "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>Create An AC over An Existing Bearer</name>
        <t>An example of  a request message body to create a simple AC over an existing bearer is shown in <xref target="ac-b"/>. The bearer reference is assumed to be known to both the customer and the network provider. Such a reference can be retrieved, e.g., following the example described in <xref target="ex-create-bearer"/> or using other means (including, exchanged out-of-band or via proprietary APIs).</t>
        <figure anchor="ac-b">
          <name>Example of a Message Body to Request an AC over an Existing Bearer</name>
          <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"
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t><xref target="ac-br"/> shows the message body of a response received from the controller and which indicates the "cvlan-id" that was assigned for the requested AC.</t>
        <figure anchor="ac-br">
          <name>Example of a Message Body of a Response to Assign a CVLAN ID</name>
          <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>Create An AC for a Known Peer SAP</name>
        <t>An example of a request to create a simple AC, when the peer SAP is known, is shown in <xref target="ac-known-ps"/>. In this example, the peer SAP identifier points to an identifier of 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>Let’s consider the example of an eNodeB (CE) that is directly connected to the access routers of the mobile backhaul (see <xref target="enodeb"/>). In this example, two ACs are needed to service the eNodeB (e.g., distinct VLANs for Control and User Planes).</t>
        <figure anchor="enodeb">
          <name>Example of a CE-PE ACs</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="432" viewBox="0 0 432 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,160" fill="none" stroke="black"/>
                <path d="M 120,32 L 120,160" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,224" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,224" fill="none" stroke="black"/>
                <path d="M 8,32 L 120,32" fill="none" stroke="black"/>
                <path d="M 272,32 L 424,32" fill="none" stroke="black"/>
                <path d="M 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 (Not Recommended)</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"
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-address"
          },
          "ipv6": {
            "address-allocation-type": "ietf-ac-common:static-address"
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-address"
          },
          "ipv6": {
            "address-allocation-type": "ietf-ac-common:static-address"
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t><xref target="two-acs-same-ce-res"/> shows the message body of a response received from the controller.</t>
        <figure anchor="two-acs-same-ce-res">
          <name>Example of a Message Body of a Response to Create Two ACes on The Same Link (Not Recommended)</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>
        <t>The example shown <xref target="two-acs-same-ce-res"/> is not optimal as it includes many redundant data. <xref target="two-acs-same-ce-node-profile"/> shows a more compact request that factorizes all the redundant data.</t>
        <figure anchor="two-acs-same-ce-node-profile">
          <name>Example of a Message Body to Request Two ACes on The Same Link (Node Profile)</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-node-profile",
        "l2-connection": {
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "ac-group-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-group-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "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 inherits all the data that was enclosed in the indicated per-node AC profile (IP addressing, routing, etc.).</t>
        <figure anchor="add-ac-same-ce-node-profile">
          <name>Example of a Message Body to Add a new AC over an existing link (Node Profile)</name>
          <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="sec-ex-prec">
        <name>Control Precedence over Multiple ACs</name>
        <t>When multiple ACs are requested by the same customer for the same site, the request can tag one of these ACs as "primary" and the other ones as "secondary". An example of such a request is shown in <xref target="ac-precedence"/>. In this example, both ACs are bound to the same "group-id", and the "precedence" data node is set as a function of the intended role of each AC (primary or secondary).</t>
        <figure anchor="multipleac">
          <name>An Example Topology for AC Precedence Enforcement</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="312" viewBox="0 0 312 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <g class="text">
                  <text x="288" y="36">┌───┐</text>
                  <text x="156" y="52">ac1:</text>
                  <text x="208" y="52">primary</text>
                  <text x="272" y="52">│</text>
                  <text x="304" y="52">│</text>
                  <text x="204" y="68">┌────────────────────┤PE1│</text>
                  <text x="24" y="84">┌───┐</text>
                  <text x="104" y="84">│</text>
                  <text x="192" y="84">bearerX@site1</text>
                  <text x="272" y="84">│</text>
                  <text x="304" y="84">│</text>
                  <text x="8" y="100">│</text>
                  <text x="72" y="100">├───────┘</text>
                  <text x="288" y="100">└───┘</text>
                  <text x="16" y="116">│CE</text>
                  <text x="40" y="116">│</text>
                  <text x="8" y="132">│</text>
                  <text x="72" y="132">├───────┐</text>
                  <text x="288" y="132">┌───┐</text>
                  <text x="24" y="148">└───┘</text>
                  <text x="104" y="148">│</text>
                  <text x="156" y="148">ac2:</text>
                  <text x="216" y="148">secondary</text>
                  <text x="272" y="148">│</text>
                  <text x="304" y="148">│</text>
                  <text x="204" y="164">└────────────────────┤PE2│</text>
                  <text x="192" y="180">bearerY@site1</text>
                  <text x="272" y="180">│</text>
                  <text x="304" y="180">│</text>
                  <text x="288" y="196">└───┘</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                                 ┌───┐
                 ac1: primary    │   │
            ┌────────────────────┤PE1│
┌───┐       │    bearerX@site1   │   │
│   ├───────┘                    └───┘
│CE │
│   ├───────┐                    ┌───┐
└───┘       │    ac2: secondary  │   │
            └────────────────────┤PE2│
                 bearerY@site1   │   │
                                 └───┘
]]></artwork>
          </artset>
        </figure>
        <figure anchor="ac-precedence">
          <name>Example of a Message Body to Associate a Precedence Level with ACs</name>
          <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="sec-multiple-ces">
        <name>Create Multiple ACs Bound to Multiple CEs</name>
        <t><xref target="network-example"/> shows an example of CEs that are interconnected by a service provider network.</t>
        <figure anchor="network-example">
          <name>Network Topology Example</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="504" viewBox="0 0 504 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
                <path d="M 48,48 L 48,80" fill="none" stroke="black"/>
                <path d="M 48,112 L 48,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,160" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,160" fill="none" stroke="black"/>
                <path d="M 456,48 L 456,80" fill="none" stroke="black"/>
                <path d="M 456,112 L 456,144" fill="none" stroke="black"/>
                <path d="M 496,48 L 496,80" fill="none" stroke="black"/>
                <path d="M 496,112 L 496,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 8,48 L 48,48" fill="none" stroke="black"/>
                <path d="M 456,48 L 496,48" fill="none" stroke="black"/>
                <path d="M 48,64 L 112,64" fill="none" stroke="black"/>
                <path d="M 392,64 L 456,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 48,80" fill="none" stroke="black"/>
                <path d="M 456,80 L 496,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 48,112" fill="none" stroke="black"/>
                <path d="M 456,112 L 496,112" fill="none" stroke="black"/>
                <path d="M 48,128 L 112,128" fill="none" stroke="black"/>
                <path d="M 392,128 L 456,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 48,144" fill="none" stroke="black"/>
                <path d="M 456,144 L 496,144" fill="none" stroke="black"/>
                <path d="M 112,160 L 392,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="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 response to 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": "ce2-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 across 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│   │      │   │.6      .5│   │    │
 ──┴─────┤GW1│----------│PE1│      │PE2│----------│GW2├────┴──
         │   │ vlan-id  │   │      │   │ vlan-id  │   │
         └───┘   100    └──┬┘      └┬──┘   200    └───┘
198.51.100.0/24            │        │             203.0.113.0/24
                           └────────┘
                         sdp1      sdp2
             ◄─────────► ◄────────────► ◄─────────►
             Attachment   Ietf Network   Attachment
              Circuit         Slice       Circuit
                ac1         EMBB_UP        ac2



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

 ac2 properties:
 - bearer-reference: bearerY@site2
 - vlan-id: 200
 - CE address (GW2): 192.0.2.5/30
 - PE address: 192.0.2.6/30
 - Routing: BGP local-as:65536
                customer-as:65550
                customer-address: 192.0.2.5
]]></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",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan"
          },
          "bearer-reference": "bearerX@site1"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:static-routing",
              "static": {
                "cascaded-lan-prefixes": {
                  "ipv4-lan-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",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan"
            }
          },
          "bearer-reference": "bearerY@site2"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65550
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t><xref target="slice-acs-res"/> shows the message body of a reponse received from the controller.</t>
        <figure anchor="slice-acs-res">
          <name>Example of a Message Body of a Response Indicating the Creation of the ACs</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Connection to site1 on vlan 100",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "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",
        "requested-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 200
            }
          },
          "bearer-reference": "bearerY@site2"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.6",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.5"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65550,
                    "local-as": 65536 
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></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 URLLC_UP",
        "service-description": "Dedicate TN Slice for URLLC-UP",
        "slo-sle-template": "low-latency-template",
        "status": {},
        "sdps": {
          "sdp": [
            {
              "sdp-id": "sdp1",
              "ac-svc-name": ["ac1"]
            },
            {
              "sdp-id": "sdp2",
              "ac-svc-name": ["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" stroke-linecap="round">
                <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="240" y="260">Updated</text>
                  <text x="296" 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 Updated 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.</t>
        <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-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "1243-56789"
        },
        "ip-connection": {
          "ipv4": {
            "address-allocation-type": "ietf-ac-common:static-\
                                                             address"
          },
          "routing-protocols": {
            "routing-protocol": [
              {
                "id": "1",
                "type": "ietf-vpn-common:bgp-routing",
                "bgp": {
                  "neighbor": [
                    {
                      "id": "1",
                      "peer-as": 65536
                    }
                  ]
                }
              }
            ]
          }
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t><xref target="cloud-provider-ac-res"/> shows the message body of the response received from the provider. Note that this Cloud Provider mandates the use of MD5 authentication for establishing BGP connections.</t>
        <ul empty="true">
          <li>
            <t>The module supports MD5 to basically accommodate the installed BGP base (including by some Cloud Providers). Note that MD5 suffers from the security weaknesses discussed in <xref section="2" sectionFormat="of" target="RFC6151"/> and <xref section="2.1" sectionFormat="of" target="RFC6952"/>.</t>
          </li>
        </ul>
        <figure anchor="cloud-provider-ac-res">
          <name>Message Body of a Response to the Request to Create ACs for Connecting to the Cloud Provider</name>
          <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-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 50
            }
          },
          "bearer-reference": "1243-56789"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 24,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "peer-as": 65536,
                    "local-as": 65550,
                    "authentication": {
                      "keying-material": {
                        "md5-keychain": "nyxNER_c5sdn608fFQl3331d"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to TBC for the comments.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact initials="I." surname="Bykov" fullname="Ivan Bykov">
        <organization>Ribbon Communications</organization>
        <address>
          <email>Ivan.Bykov@rbbn.com</email>
        </address>
      </contact>
      <contact initials="Q." surname="Wu" fullname="Qin Wu">
        <organization>Huawei</organization>
        <address>
          <email>bill.wu@huawei.com</email>
        </address>
      </contact>
      <contact initials="K." surname="Ogaki" fullname="Kenichi Ogaki">
        <organization>KDDI</organization>
        <address>
          <email>ke-oogaki@kddi.com</email>
        </address>
      </contact>
      <contact initials="L. A." surname="Munoz" fullname="Luis Angel Munoz">
        <organization>Vodafone</organization>
        <address>
          <email>luis-angel.munoz@vodafone.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
