<?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.25 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boro-opsawg-teas-attachment-circuit-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="ACaaS">YANG Data Models for 'Attachment Circuits'-as-a-Service (ACaaS)</title>
    <seriesInfo name="Internet-Draft" value="draft-boro-opsawg-teas-attachment-circuit-05"/>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Richard Roberts" role="editor">
      <organization>Juniper</organization>
      <address>
        <email>rroberts@juniper.net</email>
      </address>
    </author>
    <author fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <author fullname="Samier Barguil Giraldo">
      <organization>Nokia</organization>
      <address>
        <email>samier.barguil_giraldo@nokia.com</email>
      </address>
    </author>
    <author fullname="Bo Wu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>lana.wubo@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="09"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>Slice Service</keyword>
    <keyword>L3VPN</keyword>
    <keyword>L2VPN</keyword>
    <abstract>
      <t>This document specifies a YANG service data model for Attachment Circuits (ACs). This model can be used for the provisioning of ACs prior or during service provisioning (e.g., Network Slice Service). The document specifies also a module that updates other service and network modules with the required information to bind specific services to ACs that are created using the AC service model.</t>
      <t>Also, the document specifies a set of reusable groupings. Whether a service model reuses structures defined in the AC models or simply include an AC reference is a design choice of these service models. Relying upon the AC service model to manage ACs over which a service is delivered has the merit to decorrelate the management of a service vs. upgrade the AC components to reflect recent AC technologies or features.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/attachment-circuit-model"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <section anchor="scope-and-intended-use">
        <name>Scope and Intended Use</name>
        <t>Connectivity services are provided by networks to customers via dedicated terminating points (e.g., service functions, customer edges (CEs), peer ASBRs, data centers gateways, Internet Exchange Points). A connectivity service is basically about ensuring data transfer received from (or destined to) a given terminating point to (or from) other terminating points that belong to the same customer/service, an interconnection node, or an ancillary node. A set of objectives for the connectivity service may eventually be negotiated and agreed upon between a customer a network provider. For that data transfer to take place within the provider network, it is assumed that adequate setup is provisioned over the links that connect customer terminating points and a provider network so that data can be successfully exchanged over these links. The required setup is referred to in this document as Attachment Circuits (ACs), while the underlying link is referred to as "bearers".</t>
        <t>This document adheres to the definition of an Attachment Circuit as provided in Section 1.2 of <xref target="RFC4364"/>, especially:</t>
        <ul empty="true">
          <li>
            <t>Routers can be attached to each other, or to end systems, in a
   variety of different ways: PPP connections, ATM Virtual Circuits
   (VCs), Frame Relay VCs, ethernet interfaces, Virtual Local Area
   Networks (VLANs) on ethernet interfaces, GRE tunnels, Layer 2
   Tunneling Protocol (L2TP) tunnels, IPsec tunnels, etc.  We will use
   the term "attachment circuit" to refer generally to some such means
   of attaching to a router.  An attachment circuit may be the sort of
   connection that is usually thought of as a "data link", or it may be
   a tunnel of some sort; what matters is that it be possible for two
   devices to be network layer peers over the attachment circuit.</t>
          </li>
        </ul>
        <t>When a customer requests a new value-added service, the service can be bound to existing attachment circuits or trigger the instantiation of new attachment circuits. The provisioning of an value-added service should, thus, accommodate both deployments.</t>
        <t>Also, because the instantiation of an attachment circuit requires coordinating the provisioning of endpoints that might not belong to the same administrative entity (customer vs. provider or distinct operational teams within the same provider, etc.), <strong>programmatic means to expose 'attachment circuits'-as-a-service will greatly simplify the provisioning of value added services</strong> that will be delivered over an attachment circuits.</t>
        <t>This document specifies a YANG service data model ("ietf-ac-svc") for managing attachment circuits that are exposed by a network to its customers (e.g., an enterprise site, a network function, a hosting infrastructure, a peer network provider). The model can be used for the provisioning of ACs prior or during advanced service provisioning (e.g., Network Slice Service).</t>
        <t>The "ietf-ac-svc" includes a set of reusable groupings. Whether a service model reuses structures defined in the "ietf-ac-svc" or simply includes an AC reference (that was communicated during AC service instantiation) is a design choice of these service models. Relying upon the AC service model to manage ACes over which services are delivered has the merit to decorrelate the management of the (core) service vs. upgrade the AC components to reflect recent AC technologies or new features (e.g., new encryption scheme, additional routing protocol). <strong>This document favors the approach of completely relying upon the AC service model instead of duplicating data nodes into specific modules of advanced services that are delivered over an Attachment Circuit.</strong></t>
        <t>Because the provisioning of an AC requires a bearer to be in place, this document allows customers to manage their bearer requests by means of a new module, called "ietf-bearer-svc". The customers can then retrieve a provider-assigned bearer reference that they will include in their AC service requests.</t>
        <t>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="I-D.ietf-opsawg-sap"/>. 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 assumption about the internal structure or even the nature or the services that will be delivered over an attachment circuit</strong>. Customers do not have access to that network view other than the ACes that the ordered. For example, the AC service model can be used to provision a set of ACes to connect multiple sites (Site1, Site2, ..., SiteX) for customer that also requested VPN services. If these provisioning of these services require specific configured on ASBR nodes, such configuration is handled at the network level and is not exposed at the service level to the customer. However, the network controller will have access to such a view as the service points in these ASBRs will be exposed as SAPs with "role" set to "ietf-sap-ntw:nni" <xref target="I-D.ietf-opsawg-sap"/>.</t>
        <t>The AC service model can be used in a variety of contexts, such as (but not limited to) those provided in <xref target="examples"/>:</t>
        <ul spacing="normal">
          <li>Request an attachment circuit for a known peer SAP (<xref target="ac-no-bearer-peer-sap"/>).</li>
          <li>Instantiate multiple attachment circuits over the same bearer (<xref target="sec-ex-one-ce-multi-acs"/>).</li>
          <li>Control the precedence over multiple attachment circuits (<xref target="sec-ex-prec"/>).</li>
          <li>Bind a slice service to a set of pre-provisioned attachment circuits (<xref target="sec-ex-slice"/>).</li>
          <li>Connect a Cloud Infrastructure to a service provider network (<xref target="sec-ex-cloud"/>).</li>
        </ul>
        <t>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. Such a mapping can be maintained using a variety of network models, e.g., 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-l2sm-as-reference-data-model-for-acaas">
          <name>Why Not Using L2SM as Reference Data Model for ACaaS?</name>
          <t>The L2SM <xref target="RFC8466"/> covers some AC-related considerations. Nevertheless, the L2SM structure is too layer 2 centric. For example, the L2SM part does not cover Layer 3 provisioning, which is required for the instantiation of typical ACs.</t>
        </section>
        <section anchor="why-not-using-l3sm-as-reference-data-model-for-acaas">
          <name>Why Not Using L3SM as Reference Data Model for ACaaS?</name>
          <t>Similar to the L2NM, the L3SM <xref target="RFC8299"/> covers some AC-related considerations. Nevertheless, the L3SM structure does not adequately cover layer 2 provisioning matters. Moreover, the L3SM is drawn with conventional L3VPN deployments in mind and, as such, has some limitations for instantiating ACs in other deployment contexts (e.g., cloud environments). For example, the L3SM does not allow to provision multiple BGP sessions over the same AC.</t>
        </section>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      <t>This document uses the following terms:</t>
      <dl>
        <dt>Bearer:</dt>
        <dd>
          <t>A physical or logical link that connects a customer node (or site) to a provider network. A bearer can be a wireless or wired link. One or multiple technologies can be used to build a bearer. The bearer type can be specified by a customer.</t>
        </dd>
        <dt/>
        <dd>
          <t>The operator allocates a unique bearer reference to identify a bearer within its network (e.g., customer line identifier). Such a reference can be retrieved by a customer and used in subsequent service placement requests to unambiguously identify where a service is to be bound.</t>
        </dd>
        <dt/>
        <dd>
          <t>The concept of bearer can be generalized to refer to the required underlying connection for the provisioning of an attachment circuit. One or multiple attachment circuits may be hosted over the same bearer (e.g., multiple VLANs on the same bearer that is provided by a physical link).</t>
        </dd>
        <dt>Network controller:</dt>
        <dd>
          <t>Denotes a functional entity responsible for the management of the service provider network.</t>
        </dd>
        <dt>Service orchestrator:</dt>
        <dd>
          <t>Refers to a functional entity that interacts with the customer of a network service. The service orchestrator is typically responsible for the attachment circuits, the Provider Edge (PE) selection, and requesting the activation of the requested service to a network controller.</t>
        </dd>
        <dt>Service provider network:</dt>
        <dd>
          <t>A network that is able to provide network services (e.g., Layer 2 VPN, Layer 3, and Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>A service provider that offers network services (e.g., Layer 2 VPN, Layer 3, and Network Slice Services).</t>
        </dd>
      </dl>
    </section>
    <section anchor="sample-uses-of-the-data-models">
      <name>Sample Uses of the Data Models</name>
      <section anchor="acs-terminated-by-one-or-multiple-customer-devices">
        <name>ACs Terminated by One or Multiple Customer Devices</name>
        <t><xref target="uc"/> depicts two target topology flavors that involve ACs. These topologies are characterized as follows:</t>
        <ul spacing="normal">
          <li>A Customer Terminating Point (CTP) may be a physical node or a logical entity. A CTP is seen by the network as a peer SAP.</li>
          <li>The same AC request may include one or multiple ACs that may belong to one or both of these flavors. For the sake of simplifying the illustration, only a subset of these ACs is shown in <xref target="uc"/>.</li>
          <li>CTPs may be dedicated to one single service or host multiple services (e.g., service functions <xref target="RFC7665"/>).</li>
          <li>A single AC (as seen by a network provider) may be bound to one or multiple peer SAPs (e.g., CTP#1 and CTP#2). For example, and as discussed in <xref target="RFC4364"/>, multiple CTPs (CEs) can be attached to a PE over the same attachment circuit. This is typically implemented if the layer 2 infrastructure between the CTP and the network provides a multipoint service.</li>
          <li>The same CTP may terminate multiple ACs. These ACes may be over the same or distinct bearers.</li>
          <li>The customer may request protection schemes where the ACs bound to a customer endpoints are terminated by the same PE (e.g., CTP#3), distinct PEs (e.g., CTP#34), etc.</li>
        </ul>
        <figure anchor="uc">
          <name>Examples of ACs</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="544" viewBox="0 0 544 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 304,176 L 304,192" fill="none" stroke="black"/>
                <path d="M 512,160 L 512,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="40" y="36">┌───────┐</text>
                  <text x="292" y="36">┌────────────────────┐</text>
                  <text x="504" y="36">┌───────┐</text>
                  <text x="8" y="52">│</text>
                  <text x="100" y="52">├──────┐</text>
                  <text x="208" y="52">│</text>
                  <text x="424" y="52">├────AC─────┤</text>
                  <text x="536" y="52">│</text>
                  <text x="8" y="68">│</text>
                  <text x="40" y="68">CTP#1</text>
                  <text x="72" y="68">│</text>
                  <text x="128" y="68">│</text>
                  <text x="208" y="68">│</text>
                  <text x="424" y="68">├────AC─────┤</text>
                  <text x="504" y="68">CTP#3</text>
                  <text x="536" y="68">|</text>
                  <text x="40" y="84">└───────┘</text>
                  <text x="128" y="84">│</text>
                  <text x="208" y="84">│</text>
                  <text x="376" y="84">│</text>
                  <text x="504" y="84">└───────┘</text>
                  <text x="168" y="100">├───AC────┤</text>
                  <text x="280" y="100">Network</text>
                  <text x="376" y="100">│</text>
                  <text x="40" y="116">┌───────┐</text>
                  <text x="128" y="116">│</text>
                  <text x="208" y="116">│</text>
                  <text x="376" y="116">│</text>
                  <text x="8" y="132">│</text>
                  <text x="72" y="132">│</text>
                  <text x="128" y="132">│</text>
                  <text x="208" y="132">│</text>
                  <text x="376" y="132">│</text>
                  <text x="504" y="132">┌───────┐</text>
                  <text x="8" y="148">│</text>
                  <text x="40" y="148">CTP#2</text>
                  <text x="100" y="148">├──────┘</text>
                  <text x="208" y="148">│</text>
                  <text x="424" y="148">│─────AC────┤</text>
                  <text x="504" y="148">CTP#4</text>
                  <text x="536" y="148">│</text>
                  <text x="40" y="164">└───────┘</text>
                  <text x="208" y="164">│</text>
                  <text x="376" y="164">│</text>
                  <text x="488" y="164">└────</text>
                  <text x="528" y="164">──┘</text>
                  <text x="252" y="180">└───────────</text>
                  <text x="344" y="180">────────┘</text>
                  <text x="408" y="212">└────────────AC───────────┘</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
┌───────┐                ┌────────────────────┐           ┌───────┐
│       ├──────┐         │                    ├────AC─────┤       │
│ CTP#1 │      │         │                    ├────AC─────┤ CTP#3 |
└───────┘      │         │                    │           └───────┘
               ├───AC────┤     Network        │
┌───────┐      │         │                    │
│       │      │         │                    │           ┌───────┐
│ CTP#2 ├──────┘         │                    │─────AC────┤ CTP#4 │
└───────┘                │                    │           └────+──┘
                         └───────────+────────┘                |
                                     |                         |
                                     └────────────AC───────────┘
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="separate-ac-provisioning-vs-actual-service-provisioning">
        <name>Separate AC Provisioning vs. Actual Service Provisioning</name>
        <t>The procedure to provision a service in a service provider network may depend on the practices adopted by a service provider, including the flow put in place for the provisioning of advanced network services and how they are bound to an attachment circuit. For example, the same attachment circuit may be used to host multiple services. In order to avoid service interference and redundant information in various locations, a service provider may expose an interface to manage ACs network-wide. Customers can the request a base attachment circuit to be put in place, and then refer to that base AC when requesting services that are bound to that AC.</t>
        <t><xref target="_u-ex"/> shows the positioning of the AC service model is the overall service delivery process.</t>
        <figure anchor="_u-ex">
          <name>An Example of AC Model Usage</name>
          <artwork align="center"><![CDATA[
                          +---------------+
                          |   Customer    |
                          +-------+-------+
          Customer Service Model  |
          e.g., slice-svc, ac-svc,|bearer-svc
                          +-------+-------+
                          |    Service    |
                          | Orchestration |
                          +-------+-------+
           Network Model          |
     e.g., l3vpn-ntw, sap, ac-ntw |
                          +-------+-------+
                          |   Network     |
                          | Orchestration |
                          +-------+-------+
    Network Configuration Model   |
                      +-----------+-----------+
                      |                       |
             +--------+------+       +--------+------+
             |    Domain     |       |     Domain    |
             | Orchestration |       | Orchestration |
             +---+-----------+       +--------+------+
  Device         |        |                   |
  Configuration  |        |                   |
  Model          |        |                   |
            +----+----+   |                   |
            | Config  |   |                   |
            | Manager |   |                   |
            +----+----+   |                   |
                 |        |                   |
                 | NETCONF/CLI..................
                 |        |                   |
               +--------------------------------+
 +----+ Bearer |                                | Bearer +----+
 |CTP +--------+            Network             +--------+ CTP|
 +----+        |                                |        +----+
               +--------------------------------+
  Site A                                                  Site B
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="description-of-the-data-models">
      <name>Description of the Data Models</name>
      <section anchor="the-bearer-service-ietf-bearer-svc-yang-module">
        <name>The Bearer Service ("ietf-bearer-svc") YANG Module</name>
        <t><xref target="bearer-st"/> shows the tree for managing the bearers (that is, the properties of the attachment that are below Layer 3). A bearer can be a wireless or wired link. A reference to a bearer is generated by the operator.
Such a reference can be used, e.g., in a subsequent service request to create an AC. The 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>Bearers Tree Structure</name>
          <artwork align="center"><![CDATA[
module: ietf-bearer-svc
  +--rw bearers
     +--rw bearer* [id]
        +--rw id                  string
        +--rw description?        string
        +--rw op-comment?         string
        +--rw customer-point
        |  +--rw identified-by?   identityref
        |  +--rw device
        |  |  +--rw device-id?   string
        |  |  +--rw location
        |  |     +--rw address?        string
        |  |     +--rw postal-code?    string
        |  |     +--rw state?          string
        |  |     +--rw city?           string
        |  |     +--rw country-code?   string
        |  +--rw site
        |  |  +--rw site-id?    string
        |  |  +--rw location
        |  |     +--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>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>'customer-point':</dt>
          <dd>
            <t>Specifies the customer terminating point for the bearer. A bearer request can indicate a site, a device, 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. 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. 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
           ...
]]></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>
          <t>Each AC is identified with a unique identifier within a domain. The mapping between this AC and a local PE that terminates the AC is hidden to the application that makes use of the AC service model. This information is internal to the Network controller. As such, the details about the (node-specific) attachment interfaces are not exposed in this service model.</t>
          <t>The AC service model uses groupings and types defined in the AC common model <xref target="I-D.boro-opsawg-teas-common-ac"/>. Therefore, the description of these nodes are not reiterated in the following subsections.</t>
        </section>
        <section anchor="service-profiles">
          <name>Service Profiles</name>
          <section anchor="description">
            <name>Description</name>
            <t>The 'specific-provisioning-profiles' container (<xref target="gp-svc-tree"/>) can be used by a service provider to maintain a set of specific profiles that are similar to those defined in <xref target="RFC9181"/>. The exact definition of the profiles is local to each service provider. The model only includes an identifier for these profiles in order to facilitate identifying and binding local policies when building an AC.</t>
            <figure anchor="gp-svc-tree">
              <name>Service Profiles</name>
              <artwork align="center"><![CDATA[
module: ietf-ac-svc
  +--rw specific-provisioning-profiles
  |  +--rw valid-provider-identifiers
  |     +--rw external-connectivity-identifier* [id]
  |     |       {external-connectivity}?
  |     |  +--rw id    string
  |     +--rw encryption-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw qos-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw bfd-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw forwarding-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw routing-profile-identifier* [id]
  |        +--rw id    string
  +--rw service-provisioning-profiles
  |  +--rw service-profile-identifier* [id]
  |     +--rw id    string
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
            <t>As shown in <xref target="gp-svc-tree"/>, two profile types can be defined: 'specific-provisioning-profiles' and 'service-provisioning-profiles'. Whether only specific profiles, service profiles, or a combination thereof are used is local to each service provider.</t>
            <t>The following specific provisioning profiles can be defined:</t>
            <dl>
              <dt>'external-connectivity-identifier':</dt>
              <dd>
                <t>Refers to a profile that defines the external connectivity provided to a site that is connected via an AC. External connectivity may be access to the Internet or restricted connectivity, such as access to a public/private cloud.</t>
              </dd>
              <dt>'encryption-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies related to the encryption setup that can be applied when provisioning an AC.</t>
              </dd>
              <dt>'qos-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies, such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
              </dd>
              <dt>'bfd-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of Bidirectional Forwarding Detection (BFD) policies <xref target="RFC5880"/> that can be invoked when building an AC.</t>
              </dd>
              <dt>'forwarding-profile-identifier':</dt>
              <dd>
                <t>Refers to the policies that apply to the forwarding of packets conveyed within an AC. Such policies may consist, for example, of applying Access Control Lists (ACLs).</t>
              </dd>
              <dt>'routing-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of routing policies that will be invoked (e.g., BGP policies) when building an AC.</t>
              </dd>
            </dl>
          </section>
          <section anchor="referencing-servicespecific-profiles">
            <name>Referencing Service/Specific Profiles</name>
            <t>All 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 Constraints</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>Overall Attachment Circuits Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  +--rw 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>Overall Attachment Circuits Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw group* [group-id]
        |  +--rw group-id      string
        |  +--rw precedence?   identityref
        +--rw name                 string
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
          </figure>
          <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="I-D.ietf-opsawg-sap"/>.</t>
            </dd>
            <dt>'ac-group-profile':</dt>
            <dd>
              <t>Indicates references to one or more profils 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>'l3-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>
          </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. 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-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        |  +--rw encapsulation
        |  |  +--rw type?              identityref
        |  |  +--rw dot1q
        |  |  |  +--rw tag-type?   identityref
        |  |  |  +--rw cvlan-id?   uint16
        |  |  +--rw priority-tagged
        |  |  |  +--rw tag-type?   identityref
        |  |  +--rw qinq
        |  |     +--rw tag-type?   identityref
        |  |     +--rw svlan-id    uint16
        |  |     +--rw cvlan-id    uint16
        |  +--rw (l2-service)?
        |  |  +--:(l2-tunnel-service)
        |  |  |  +--rw l2-tunnel-service
        |  |  |     +--rw type?         identityref
        |  |  |     +--rw pseudowire
        |  |  |     |  +--rw vcid?      uint32
        |  |  |     |  +--rw far-end?   union
        |  |  |     +--rw vpls
        |  |  |     |  +--rw vcid?      uint32
        |  |  |     |  +--rw far-end*   union
        |  |  |     +--rw vxlan
        |  |  |        +--rw vni-id             uint32
        |  |  |        +--rw peer-mode?         identityref
        |  |  |        +--rw peer-ip-address*   inet:ip-address
        |  |  +--:(l2vpn)
        |  |     +--rw l2vpn-id?            vpn-common:vpn-id
        |  +--rw bearer-reference?          string
        |          {vpn-common:bearer-reference}?
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="sec-l3">
            <name>Layer 3 Connection Structure</name>
            <t>The 'l3-connection' container is used to configure the relevant Layer 3 properties of an AC. 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 specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  +--rw ipv4 {vpn-common:ipv4}?
        |  |  +--rw local-address?
        |  |  |       inet:ipv4-address
        |  |  +--rw virtual-address?
        |  |  |       inet:ipv4-address
        |  |  +--rw prefix-length?                           uint8
        |  |  +--rw address-allocation-type?
        |  |  |       identityref
        |  |  +--rw (allocation-type)?
        |  |     +--:(dynamic)
        |  |     |  +--rw (address-assign)?
        |  |     |  |  +--:(number)
        |  |     |  |  |  +--rw number-of-dynamic-address?   uint16
        |  |     |  |  +--:(explicit)
        |  |     |  |     +--rw customer-addresses
        |  |     |  |        +--rw address-pool* [pool-id]
        |  |     |  |           +--rw pool-id          string
        |  |     |  |           +--rw start-address
        |  |     |  |           |       inet:ipv4-address
        |  |     |  |           +--rw end-address?
        |  |     |  |                   inet:ipv4-address
        |  |     |  +--rw (provider-dhcp)?
        |  |     |  |  +--:(dhcp-service-type)
        |  |     |  |     +--rw dhcp-service-type?
        |  |     |  |             enumeration
        |  |     |  +--rw (dhcp-relay)?
        |  |     |     +--:(customer-dhcp-servers)
        |  |     |        +--rw customer-dhcp-servers
        |  |     |           +--rw server-ip-address*
        |  |     |                   inet:ipv4-address
        |  |     +--:(static-addresses)
        |  |        +--rw address* [address-id]
        |  |           +--rw address-id          string
        |  |           +--rw customer-address?   inet:ipv4-address
        |  +--rw ipv6 {vpn-common:ipv6}?
        |     ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
            <t><xref target="ipv6-svc-tree"/> shows the structure of the IPv6 connection.</t>
            <figure anchor="ipv6-svc-tree">
              <name>Layer 3 Connection Tree Structure (IPv6)</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  +--rw ipv4 {vpn-common:ipv4}?
        |  |  ...
        |  +--rw ipv6 {vpn-common:ipv6}?
        |     +--rw local-address?
        |     |       inet:ipv6-address
        |     +--rw virtual-address?
        |     |       inet:ipv6-address
        |     +--rw prefix-length?                           uint8
        |     +--rw address-allocation-type?
        |     |       identityref
        |     +--rw (allocation-type)?
        |        +--:(dynamic)
        |        |  +--rw (address-assign)?
        |        |  |  +--:(number)
        |        |  |  |  +--rw number-of-dynamic-address?   uint16
        |        |  |  +--:(explicit)
        |        |  |     +--rw customer-addresses
        |        |  |        +--rw address-pool* [pool-id]
        |        |  |           +--rw pool-id          string
        |        |  |           +--rw start-address
        |        |  |           |       inet:ipv6-address
        |        |  |           +--rw end-address?
        |        |  |                   inet:ipv6-address
        |        |  +--rw (provider-dhcp)?
        |        |  |  +--:(dhcp-service-type)
        |        |  |     +--rw dhcp-service-type?
        |        |  |             enumeration
        |        |  +--rw (dhcp-relay)?
        |        |     +--:(customer-dhcp-servers)
        |        |        +--rw customer-dhcp-servers
        |        |           +--rw server-ip-address*
        |        |                   inet:ipv6-address
        |        +--:(static-addresses)
        |           +--rw address* [address-id]
        |              +--rw address-id          string
        |              +--rw customer-address?   inet:ipv6-address
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="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 required routing features for an AC. One or more routing protocols can be associated with an AC.  Such routing protocols are then enabled between a PE and the CE. Each routing instance is uniquely identified to accommodate scenarios where multiple instances of the same routing protocol have to be configured on the same link.</t>
            <t>In addition to static routing, the module supports BGP, OSPF, IS-IS, and RIP.</t>
            <t>The model also supports the Virtual Router Redundancy Protocol (VRRP) <xref target="RFC5798"/> on an AC.</t>
            <figure anchor="rtg-svc-tree">
              <name>Routing Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw attachment-circuits
     +--rw ac-group-profile* [name]
     |  ...
     +--rw placement-constraints
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  +--rw cascaded-lan-prefixes
        |     |     +--rw ipv4-lan-prefixes* [lan next-hop]
        |     |     |       {vpn-common:ipv4}?
        |     |     |  +--rw lan         inet:ipv4-prefix
        |     |     |  +--rw lan-tag?    string
        |     |     |  +--rw next-hop    union
        |     |     |  +--rw metric?     uint32
        |     |     |  +--rw status
        |     |     |     +--rw admin-status
        |     |     |     |  +--rw status?        identityref
        |     |     |     |  +--rw last-change?   yang:date-and-time
        |     |     |     +--ro oper-status
        |     |     |        +--ro status?        identityref
        |     |     |        +--ro last-change?   yang:date-and-time
        |     |     +--rw ipv6-lan-prefixes* [lan next-hop]
        |     |             {vpn-common:ipv6}?
        |     |        +--rw lan         inet:ipv6-prefix
        |     |        +--rw lan-tag?    string
        |     |        +--rw next-hop    union
        |     |        +--rw metric?     uint32
        |     |        +--rw status
        |     |           +--rw admin-status
        |     |           |  +--rw status?        identityref
        |     |           |  +--rw last-change?   yang:date-and-time
        |     |           +--ro oper-status
        |     |              +--ro status?        identityref
        |     |              +--ro last-change?   yang:date-and-time
        |     +--rw bgp
        |     |  +--rw peer-groups
        |     |  |  +--rw peer-group* [name]
        |     |  |     +--rw name              string
        |     |  |     +--ro local-address?    inet:ip-address
        |     |  |     +--ro local-as?         inet:as-number
        |     |  |     +--rw peer-as?          inet:as-number
        |     |  |     +--rw address-family?   identityref
        |     |  |     +--rw authentication
        |     |  |        +--rw enable?            boolean
        |     |  |        +--rw keying-material
        |     |  |           +--rw (option)?
        |     |  |              +--:(ao)
        |     |  |              |  +--rw enable-ao?          boolean
        |     |  |              |  +--rw ao-keychain?
        |     |  |              |          key-chain:key-chain-ref
        |     |  |              +--:(md5)
        |     |  |              |  +--rw md5-keychain?
        |     |  |              |          key-chain:key-chain-ref
        |     |  |              +--:(explicit)
        |     |  |                 +--rw key-id?             uint32
        |     |  |                 +--rw key?                string
        |     |  |                 +--rw crypto-algorithm?
        |     |  |                         identityref
        |     |  +--rw neighbor* [id]
        |     |     +--rw id                string
        |     |     +--rw remote-address?   inet:ip-address
        |     |     +--ro local-address?    inet:ip-address
        |     |     +--rw peer-group?
        |     |     |       -> ../../peer-groups/peer-group/name
        |     |     +--ro local-as?         inet:as-number
        |     |     +--rw peer-as?          inet:as-number
        |     |     +--rw address-family?   identityref
        |     |     +--rw authentication
        |     |     |  +--rw enable?            boolean
        |     |     |  +--rw keying-material
        |     |     |     +--rw (option)?
        |     |     |        +--:(ao)
        |     |     |        |  +--rw enable-ao?          boolean
        |     |     |        |  +--rw ao-keychain?
        |     |     |        |          key-chain:key-chain-ref
        |     |     |        +--:(md5)
        |     |     |        |  +--rw md5-keychain?
        |     |     |        |          key-chain:key-chain-ref
        |     |     |        +--:(explicit)
        |     |     |           +--rw key-id?             uint32
        |     |     |           +--rw key?                string
        |     |     |           +--rw crypto-algorithm?   identityref
        |     |     +--rw status
        |     |        +--rw admin-status
        |     |        |  +--rw status?        identityref
        |     |        |  +--rw last-change?   yang:date-and-time
        |     |        +--ro oper-status
        |     |           +--ro status?        identityref
        |     |           +--ro last-change?   yang:date-and-time
        |     +--rw ospf
        |     |  +--rw address-family?   identityref
        |     |  +--rw area-id           yang:dotted-quad
        |     |  +--rw metric?           uint16
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key-id?             uint32
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw isis
        |     |  +--rw address-family?   identityref
        |     |  +--rw area-address      area-address
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key-id?             uint32
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw rip
        |     |  +--rw address-family?   identityref
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw vrrp
        |        +--rw address-family?   identityref
        |        +--rw status
        |           +--rw admin-status
        |           |  +--rw status?        identityref
        |           |  +--rw last-change?   yang:date-and-time
        |           +--ro oper-status
        |              +--ro status?        identityref
        |              +--ro last-change?   yang:date-and-time
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
            <t>For all supported routing protocols, 'address-family' indicates whether IPv4, IPv6, or both address families are to be activated. For example, this parameter is used to determine whether RIPv2 <xref target="RFC2453"/>, RIP Next Generation (RIPng), or both are to be enabled <xref target="RFC2080"/>.</t>
            <t>Similar to <xref target="RFC9182"/>, this version of the ACaaS assumes that parameters specific to the TCP-AO are preconfigured as part of the key chain that is referenced in the ACaaS. No assumption is made about how such a key chain is preconfigured. However, the structure of the key chain should cover data nodes beyond those in <xref target="RFC8177"/>, mainly SendID and RecvID (Section 3.1 of <xref target="RFC5925"/>).</t>
          </section>
          <section anchor="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
           ...
]]></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?
                 |          ac-svc:encryption-profile-reference
                 +--:(customer-profile)
                    +--rw customer-key-chain?
                            key-chain:key-chain-ref
]]></artwork>
            </figure>
          </section>
        </section>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="the-bearer-service-ietf-bearer-svc-yang-module-1">
        <name>The Bearer Service ("ietf-bearer-svc") YANG Module</name>
        <t>This module uses types defined in <xref target="RFC6991"/> and <xref target="RFC9181"/>.</t>
        <sourcecode markers="true"><![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 YANG Service Data Model for Attachment Circuits";
  }

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

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

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

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

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

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

  // Identities 

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

  grouping location-information {
    description
      "Basic location information";
    container location {
      description
        "Location of the node.";
      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.";
      }
    }
  }

  container bearers {
    description
      "Main container for the bearers.";
    list bearer {
      key "id";
      description
        "Maintains a list of bearers.";
      leaf id {
        type string;
        description
          "An identifier of the bearer.";
      }
      leaf description {
        type string;
        description
          "A description of this bearer.";
      }
      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.";
      }
      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-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types, Section 4";
  }
  import ietf-key-chain {
    prefix key-chain;
    reference
      "RFC 8177: YANG Data Model for Key Chains";
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /******************** Reusable groupings ********************/

  // Basic Layer 2 connection

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

  // Full Layer 2 connection

  grouping l2-connection {
    description
      "Defines Layer 2 protocols and parameters that are used to enable
       AC connectivity.";
    container encapsulation {
      description
        "Container for Layer 2 encapsulation.";
      leaf type {
        type identityref {
          base vpn-common:encapsulation-type;
        }
        description
          "Encapsulation type.";
      }
      container dot1q {
        when "derived-from-or-self(../type, 'vpn-common:dot1q')" {
          description
            "Only applies when the type of the tagged interface
             is 'dot1q'.";
        }
        description
          "Tagged interface.";
        uses ac-common:dot1q;
      }
      container priority-tagged {
        when "derived-from-or-self(../type, "
           + "'vpn-common:priority-tagged')" {
          description
            "Only applies when the type of the tagged interface is
             'priority-tagged'.";
        }
        description
          "Priority-tagged interface.";
        uses ac-common:priority-tagged;
      }
      container qinq {
        when "derived-from-or-self(../type, 'vpn-common:qinq')" {
          description
            "Only applies when the type of the tagged interface
             is 'qinq'.";
        }
        description
          "Includes QinQ parameters.";
        uses ac-common:qinq;
      }
    }
    choice l2-service {
      description
        "The Layer 2 connectivity service can be provided by indicating
         a pointer to an L2VPN or by specifying a Layer 2 tunnel 
         service.";
      container l2-tunnel-service {
        description
          "Defines a Layer 2 tunnel termination.";
        uses ac-common:l2-tunnel-service;
      }
      case l2vpn {
        leaf l2vpn-id {
          type vpn-common:vpn-id;
          description
            "Indicates the L2VPN service associated with an Integrated
             Routing and Bridging (IRB) interface.";
        }
      }
    }
    leaf bearer-reference {
      if-feature "vpn-common:bearer-reference";
      type string;
      description
        "This is an internal reference for the service provider
         to identify the bearer associated with this AC.";
    }
  }

  // Basic IP connection

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

  // Full IP connection

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

  // Routing protocol list

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

  // Basic routing parameters

  grouping routing-basic {
    description
      "Defines basic parameters for routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      uses routing-protocol-list;
      container bgp {
        when "derived-from-or-self(../type, 'vpn-common:bgp-routing')" {
          description
            "Only applies when the protocol is BGP.";
        }
        description
          "Configuration specific to BGP.";
        container peer-groups {
          description
            "Configuration for BGP peer-groups";
          list peer-group {
            key "name";
            description
              "List of BGP peer-groups configured on the local system -
               uniquely identified by peer-group name";
            uses ac-common:bgp-peer-group-with-name;
          }
        }
      }
      container ospf {
        when "derived-from-or-self(../type, "
           + "'vpn-common:ospf-routing')" {
          description
            "Only applies when the protocol is OSPF.";
        }
        description
          "Configuration specific to OSPF.";
        uses ac-common:ospf-basic;
      }
      container isis {
        when "derived-from-or-self(../type, "
           + "'vpn-common:isis-routing')" {
          description
            "Only applies when the protocol is IS-IS.";
        }
        description
          "Configuration specific to IS-IS.";
        uses ac-common:isis-basic;
      }
      container rip {
        when "derived-from-or-self(../type, "
           + "'vpn-common:rip-routing')" {
          description
            "Only applies when the protocol is RIP.
             For IPv4, the model assumes that RIP
             version 2 is used.";
        }
        description
          "Configuration specific to RIP routing.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both
             address families are to be activated.";
        }
      }
      container vrrp {
        when "derived-from-or-self(../type, "
           + "'vpn-common:vrrp-routing')" {
          description
            "Only applies when the protocol is the
             Virtual Router Redundancy Protocol (VRRP).";
        }
        description
          "Configuration specific to VRRP.";
        reference
          "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
                     Version 3 for IPv4 and IPv6";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both address families 
             are to be enabled.";
        }
      }
    }
  }

  // Full routing parameters

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

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

  // Encryption choice

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

  // Basic security parameters

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

  // Basic AC parameter

  grouping ac-basic {
    description
      "Grouping for basic parameters for an attachment circuit.";
    leaf id {
      type string;
      description
        "An identifier of the AC.";
    }
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that are required to
         enable AC connectivity.";
      uses l2-connection-basic;
    }
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses ip-connection-basic;
    }
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing-basic;
    }
    container oam {
      description
        "Defines the Operations, Administration, and Maintenance (OAM)
         mechanisms used.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        uses ac-common:bfd;
      }
    }
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security-basic;
    }
  }

  // Full AC parameters

  grouping ac {
    description
      "Grouping for an attachment circuit.";
    leaf name {
      type string;
      description
        "A name of the AC. Data models that need to reference an attachment
         circuits should use attachment-circuit-reference.";
    }
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that are required to
         enable AC connectivity.";
      uses l2-connection;
    }
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses ip-connection;
    }
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing;
    }
    container oam {
      description
        "Defines the OAM mechanisms used.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        uses ac-common:bfd;
        uses vpn-common:service-status;
      }
    }
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security-basic;
    }
  }

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

  container specific-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    uses vpn-common:vpn-profile-cfg;
  }
  container service-provisioning-profiles {
    description
      "Contains a set of valid profiles to reference for an AC.";
    list service-profile-identifier {
      key "id";
      description
        "List of generic service profile identifiers.";
      leaf id {
        type string;
        description
          "Identification of the service profile to be used. 
           The profile only has significance within the service
           provider's administrative domain.";
      }
    }
  }
  
  container attachment-circuits {
    description
      "Main container for the attachment circuits.";
    /*list ac-global-profile {
      key "id";
      description
        "Maintains a list of AC profiles.";
      uses ac-basic;
    }*/
    list ac-group-profile {
      key "name";
      description
        "Maintains a list of per-node AC profiles.";
      uses ac;
    }
    container placement-constraints {
      description
        "Diversity constraint type.";
      uses vpn-common:placement-constraints;
    }
    list ac {
      key "name";
      description
        "Global provisioning of attachment circuits.";
      leaf customer-name {
        type string;
        description
          "Indicates the name of the customer that requested this AC.";
      }
      leaf description {
        type string;
        description
          "Associates a description with an AC.";
      }
      uses ac-common:op-instructions;
      leaf-list peer-sap-id {
        type string;
        description
          "One or more peer SAPs can be indicated.";
      }
      /*leaf-list ac-global-profile {
        type ac-global-profile-reference;
        description
          "A reference to an AC profile.";
      }*/
      leaf-list ac-group-profile {
        type ac-group-reference;
        description
          "A reference to a per-node AC profile.";
      }
      list group {
        key "group-id";
        description
          "List of group-ids.";
        leaf group-id {
          type string;
          description
            "Indicates the group-id to which the network access 
             belongs.";
        }
        leaf precedence {
          type identityref {
            base ac-common:precedence-type;
          }
          description
            "Defines redundancy of an AC.";
        }
      }
      uses ac;
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG modules specified in this document define schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in these YANG modules that are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   and delete operations to these data nodes without proper protection
   or authentication can have a negative effect on network operations.
   These are the subtrees and data nodes and their sensitivity/
   vulnerability in the "ietf-ac-svc" module:</t>
      <ul spacing="normal">
        <li>TBC</li>
        <li>TBC</li>
      </ul>
      <t>Some of the readable data nodes in these YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  These are the subtrees and data
   nodes and their sensitivity/vulnerability in the "ietf-ac-svc" module:</t>
      <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">
              <organization/>
            </author>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter">
              <organization/>
            </author>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers.  This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other.  Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder">
              <organization/>
            </author>
            <author fullname="P. Shafer" initials="P." surname="Shafer">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <author fullname="R. Wilton" initials="R." surname="Wilton">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model.  This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9181">
          <front>
            <title>A Common YANG Data Model for Layer 2 and Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil">
              <organization/>
            </author>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios">
              <organization/>
            </author>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair">
              <organization/>
            </author>
            <author fullname="Q. Wu" initials="Q." surname="Wu">
              <organization/>
            </author>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a common YANG module that is meant to be reused by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN network models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9181"/>
          <seriesInfo name="DOI" value="10.17487/RFC9181"/>
        </reference>
        <reference anchor="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="6" month="March" year="2023"/>
            <abstract>
              <t>   The document specifies a common Attachment Circuits (ACs) YANG
   module, which is designed with the intent to be reusable by other
   models.  For example, this common model can be reused by service
   models to expose ACs as a service, service models that require
   binding a service to a set of ACs, network and device models to
   provision ACs, etc.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-boro-opsawg-teas-common-ac-01"/>
        </reference>
        <reference anchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz">
              <organization/>
            </author>
            <author fullname="D. Ward" initials="D." surname="Ward">
              <organization/>
            </author>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency.  It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem">
              <organization/>
            </author>
            <author fullname="Y. Qu" initials="Y." surname="Qu">
              <organization/>
            </author>
            <author fullname="D. Yeung" initials="D." surname="Yeung">
              <organization/>
            </author>
            <author fullname="I. Chen" initials="I." surname="Chen">
              <organization/>
            </author>
            <author fullname="J. Zhang" initials="J." surname="Zhang">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model.  Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys.  A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm.  By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated.  By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder">
              <organization/>
            </author>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language.  This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder">
              <organization/>
            </author>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman">
              <organization/>
            </author>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman">
              <organization/>
            </author>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem.  This document obsoletes RFC 4742.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability.  There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.  This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling">
              <organization/>
            </author>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund">
              <organization/>
            </author>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="AC-SVC-Tree" target="https://raw.githubusercontent.com/boucadair/attachment-circuit-model/main/yang/full-trees/ac-svc-without-groupings.txt">
          <front>
            <title>Full Service Attachment Circuit Tree Structure</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="AC-SVC-GRP" target="https://raw.githubusercontent.com/boucadair/attachment-circuit-model/main/yang/full-trees/ac-svc-groupings.txt">
          <front>
            <title>Reusable Groupings in Service Attachment Circuits</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-opsawg-sap">
          <front>
            <title>A YANG Network Model for Service Attachment Points (SAPs)</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <date day="18" month="January" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for representing an abstract
   view of the provider network topology that contains the points from
   which its services can be attached (e.g., basic connectivity, VPN,
   network slices).  Also, the model can be used to retrieve the points
   where the services are actually being delivered to customers
   (including peer networks).

   This document augments the 'ietf-network' data model by adding the
   concept of Service Attachment Points (SAPs).  The SAPs are the
   network reference points to which network services, such as Layer 3
   Virtual Private Network (L3VPN) or Layer 2 Virtual Private Network
   (L2VPN), can be attached.  One or multiple services can be bound to
   the same SAP.  Both User-Network Interface (UNI) and Network-to-
   Network Interface (NNI) are supported in the SAP data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-sap-15"/>
        </reference>
        <reference anchor="RFC5737">
          <front>
            <title>IPv4 Address Blocks Reserved for Documentation</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko">
              <organization/>
            </author>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="L. Vegoda" initials="L." surname="Vegoda">
              <organization/>
            </author>
            <date month="January" year="2010"/>
            <abstract>
              <t>Three IPv4 unicast address blocks are reserved for use in examples in specifications and other documents.  This document describes the use of these blocks.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5737"/>
          <seriesInfo name="DOI" value="10.17487/RFC5737"/>
        </reference>
        <reference anchor="RFC3849">
          <front>
            <title>IPv6 Address Prefix Reserved for Documentation</title>
            <author fullname="G. Huston" initials="G." surname="Huston">
              <organization/>
            </author>
            <author fullname="A. Lord" initials="A." surname="Lord">
              <organization/>
            </author>
            <author fullname="P. Smith" initials="P." surname="Smith">
              <organization/>
            </author>
            <date month="July" year="2004"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, an IPv6 unicast address prefix is reserved for use in examples in RFCs, books, documentation, and the like.  Since site-local and link-local unicast addresses have special meaning in IPv6, these addresses cannot be used in many example situations.  The document describes the use of the IPv6 address prefix 2001:DB8::/32 as a reserved prefix for use in documentation.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3849"/>
          <seriesInfo name="DOI" value="10.17487/RFC3849"/>
        </reference>
        <reference anchor="RFC5398">
          <front>
            <title>Autonomous System (AS) Number Reservation for Documentation Use</title>
            <author fullname="G. Huston" initials="G." surname="Huston">
              <organization/>
            </author>
            <date month="December" year="2008"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, two blocks of Autonomous System numbers (ASNs) are reserved for use in examples in RFCs, books, documentation, and the like.  This document describes the reservation of two blocks of ASNs as reserved numbers for use in documentation.  This memo provides information for the Internet  community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5398"/>
          <seriesInfo name="DOI" value="10.17487/RFC5398"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu">
              <organization/>
            </author>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair">
              <organization/>
            </author>
            <author fullname="D. Lopez" initials="D." surname="Lopez">
              <organization/>
            </author>
            <author fullname="C. Xie" initials="C." surname="Xie">
              <organization/>
            </author>
            <author fullname="L. Geng" initials="L." surname="Geng">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked.  Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance).  Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="I-D.boro-opsawg-ntw-attachment-circuit">
          <front>
            <title>A Network YANG Data Model for Attachment Circuits</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="1" month="March" year="2023"/>
            <abstract>
              <t>   This document specifies a network model for attachment circuits.  The
   model can be used for the provisioning of attachment circuits prior
   or during service provisioning (e.g., Network Slice Service).  A
   companion service model is specified in
   [I-D.boro-opsawg-teas-attachment-circuit].

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-boro-opsawg-ntw-attachment-circuit-01"/>
        </reference>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka">
              <organization/>
            </author>
            <author fullname="A. Lindem" initials="A." surname="Lindem">
              <organization/>
            </author>
            <author fullname="Y. Qu" initials="Y." surname="Qu">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem.  It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions.  The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA).  This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-model">
          <front>
            <title>YANG Model for Border Gateway Protocol (BGP-4)</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Kloud Services</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Susan Hares" initials="S." surname="Hares">
              <organization>Huawei</organization>
            </author>
            <author fullname="Jeffrey Haas" initials="J." surname="Haas">
              <organization>Juniper Networks</organization>
            </author>
            <date day="1" month="March" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for configuring and managing
   BGP, including protocol, policy, and operational aspects, such as
   RIB, based on data center, carrier, and content provider operational
   requirements.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slice-nbi-yang-03"/>
        </reference>
        <reference anchor="RFC6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <author fullname="L. Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm.  It also updates the security considerations for HMAC-MD5.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6952">
          <front>
            <title>Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani">
              <organization/>
            </author>
            <author fullname="K. Patel" initials="K." surname="Patel">
              <organization/>
            </author>
            <author fullname="L. Zheng" initials="L." surname="Zheng">
              <organization/>
            </author>
            <date month="May" year="2013"/>
            <abstract>
              <t>This document analyzes TCP-based routing protocols, the Border Gateway Protocol (BGP), the Label Distribution Protocol (LDP), the Path Computation Element Communication Protocol (PCEP), and the Multicast Source Distribution Protocol (MSDP), according to guidelines set forth in Section 4.2 of "Keying and Authentication for            Routing Protocols Design Guidelines", RFC 6518.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6952"/>
          <seriesInfo name="DOI" value="10.17487/RFC6952"/>
        </reference>
      </references>
    </references>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section includes a non-exhaustive list of examples to illustrate the use of the service models defined in this document.</t>
      <section anchor="ex-create-bearer">
        <name>Request A New Bearer</name>
        <t>An example of a request message body to create a bearer is shown in <xref target="create-bearer"/>.</t>
        <figure anchor="create-bearer">
          <name>Example of a Message Body to Create A New Bearer</name>
          <artwork><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-device": {
          "device-id": "CE_X_SITE_Y",
          "requested-type": "ietf-bearer-svc:ethernet";
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
        <t>A bearer-reference is then generated by the controller for this bearer. <xref target="get-bearer"/> shows the example of a response message body that is sent by the controller to reply to a GET request:</t>
        <figure anchor="get-bearer">
          <name>Example of a Response Message Body with the Bearer Reference</name>
          <artwork><![CDATA[
{
  "ietf-bearer-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-device": {
          "device-id": "CE_X_SITE_Y",
          "requested-type": "ietf-bearer-svc:ethernet"
        },
        "bearer-reference": "line-156"
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="ac-bearer-exist">
        <name>Request An AC over An Existing Bearer</name>
        <t>An example of  a request message body to create a simple AC over an existing bearer is shown in <xref target="ac-b"/>. The bearer reference is assumed to be known to both the customer and the network provider. Such a reference can be retrieved, e.g., following the example described in <xref target="ex-create-bearer"/> or using other means (including, exchanged out-of-band or via proprietary APIs).</t>
        <figure anchor="ac-b">
          <name>Example of a Message Body to Request an AC over an Existing Bearer</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "requested-ac-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="ac-no-bearer-peer-sap">
        <name>Request An AC for a 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 (CTP) that is directly connected to the access routers of the mobile backhaul (see <xref target="enodeb"/>). In this example, two ACs are needed to service the eNodeB.</t>
        <figure anchor="enodeb">
          <name>Example of a CE-PE ACs</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="432" viewBox="0 0 432 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,32 L 8,160" fill="none" stroke="black"/>
                <path d="M 120,32 L 120,160" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,224" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,224" fill="none" stroke="black"/>
                <path d="M 8,32 L 120,32" fill="none" stroke="black"/>
                <path d="M 272,32 L 424,32" fill="none" stroke="black"/>
                <path d="M 128,78 L 264,78" fill="none" stroke="black"/>
                <path d="M 128,82 L 264,82" fill="none" stroke="black"/>
                <path d="M 128,110 L 264,110" fill="none" stroke="black"/>
                <path d="M 128,114 L 264,114" fill="none" stroke="black"/>
                <path d="M 8,160 L 120,160" fill="none" stroke="black"/>
                <path d="M 272,224 L 424,224" fill="none" stroke="black"/>
                <g class="text">
                  <text x="292" y="52">PE</text>
                  <text x="328" y="68">192.0.2.1</text>
                  <text x="60" y="84">eNodeB</text>
                  <text x="336" y="84">2001:db8::1</text>
                  <text x="220" y="100">vlan</text>
                  <text x="248" y="100">1</text>
                  <text x="220" y="132">vlan</text>
                  <text x="248" y="132">2</text>
                  <text x="156" y="148">Direct</text>
                  <text x="160" y="164">Routing</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------+                  +------------------+
|             |                  | PE               |
|             |                  |  192.0.2.1       |
|   eNodeB    |==================|  2001:db8::1     |
|             |          vlan 1  |                  |
|             |==================|                  |
|             |          vlan 2  |                  |
|             | Direct           |                  |
+-------------+ Routing          |                  |
                                 |                  |
                                 |                  |
                                 |                  |
                                 +------------------+
]]></artwork>
          </artset>
        </figure>
        <t>An example of a request to create the ACs to service the eNodeB is shown in <xref target="two-acs-same-ce"/>. This example assumes that static addressing is used for both ACs.</t>
        <figure anchor="two-acs-same-ce">
          <name>Example of a Message Body to Request Two ACes on The Same Link</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 2
            }
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-ex-prec">
        <name>Control Precedence over Multiple ACs</name>
        <t>When multiple ACs are requested by the same customer (for the same site), the request can tag one of these ACes as "primary" and the other ones as "secondary". An example of such a request is shown in <xref target="ac-precedence"/>. In this example, both ACes are bound to the same "group-id", and the "precedence" data node is set as a function of the intended role of each AC (primary or secondary).</t>
        <figure anchor="ac-precedence">
          <name>Example of a Message Body to Associate a Precedence Level with ACes</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Example to illustrate AC precedence usage",
        "group": [
          {
            "group-id": "1",
            "precedence": "ietf-ac-common:primary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerX@site1"
        }
      },
      {
        "name": "ac2",
        "description": "Example to illustrate AC precedence usage",
        "group": [
          {
            "group-id": "1",
            "precedence": "ietf-ac-common:secondary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerY@site1"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="illustrate-the-use-of-global-profiles">
        <name>Illustrate the Use of Global Profiles</name>
        <t>An example of a request to create two ACs to service the same CE on the same link is shown in <xref target="two-acs-same-ce-profile"/>. Unlike <xref target="two-acs-same-ce"/>, this example factorizes some of the redundant data.</t>
        <figure anchor="two-acs-same-ce-profile">
          <name>Example of a Message Body to Request Two ACes on The Same Link (Global Profile)</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "ac-group-profile": ["simple-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 1
            }
          }
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-group-profile": ["simple-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 2
            }
          }
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="illustrate-the-use-of-per-node-profiles">
        <name>Illustrate the Use of Per-Node Profiles</name>
        <t>An example of a request to create two ACs to service the same CE on the same link is shown in <xref target="two-acs-same-ce-node-profile"/>. Unlike <xref target="two-acs-same-ce"/>, this example factorizes all redundant data.</t>
        <figure anchor="two-acs-same-ce-node-profile">
          <name>Example of a Message Body to Request Two ACes on The Same Link (Node Profile)</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-node-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          }
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "ac-group-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-group-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 2
            }
          }
        }
     }
    ]
  }
}
]]></artwork>
        </figure>
        <t>A customer may request adding a new AC by simply referring to an existing per-node AC profile as shown in <xref target="add-ac-same-ce-node-profile"/>. This AC 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="multiple-ces">
        <name>Multiple CEs</name>
        <t><xref target="network-example"/> shows an example of CEs that are interconnected by a service provider network.</t>
        <figure anchor="network-example">
          <name>Network Topology Example</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="504" viewBox="0 0 504 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,48 L 8,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
                <path d="M 48,48 L 48,80" fill="none" stroke="black"/>
                <path d="M 48,112 L 48,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,160" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,160" fill="none" stroke="black"/>
                <path d="M 456,48 L 456,80" fill="none" stroke="black"/>
                <path d="M 456,112 L 456,144" fill="none" stroke="black"/>
                <path d="M 496,48 L 496,80" fill="none" stroke="black"/>
                <path d="M 496,112 L 496,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 8,48 L 48,48" fill="none" stroke="black"/>
                <path d="M 456,48 L 496,48" fill="none" stroke="black"/>
                <path d="M 48,64 L 112,64" fill="none" stroke="black"/>
                <path d="M 392,64 L 456,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 48,80" fill="none" stroke="black"/>
                <path d="M 456,80 L 496,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 48,112" fill="none" stroke="black"/>
                <path d="M 456,112 L 496,112" fill="none" stroke="black"/>
                <path d="M 48,128 L 112,128" fill="none" stroke="black"/>
                <path d="M 392,128 L 456,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 48,144" fill="none" stroke="black"/>
                <path d="M 456,144 L 496,144" fill="none" stroke="black"/>
                <path d="M 112,160 L 392,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="32" y="68">CE1</text>
                  <text x="480" y="68">CE3</text>
                  <text x="256" y="100">Network</text>
                  <text x="24" y="132">CE2</text>
                  <text x="480" y="132">CE4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                   +----------------------------------+
      +----+       |                                  |       +----+
      | CE1+-------+                                  +-------+ CE3|
      +----+       |                                  |       +----+
                   |              Network             |
      +----+       |                                  |       +----+
      |CE2 +-------+                                  +-------+ CE4|
      +----+       |                                  |       +----+
                   +----------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t><xref target="multiple-sites"/> depicts an example of the message body of a request to instantiate the various ACs that are shown in <xref target="network-example"/>.</t>
        <figure anchor="multiple-sites">
          <name>Example of a Message Body of a Request to Create Multiple ACs bound to Multiple CEs</name>
          <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac-group-profile": [
      {
        "id": "simple-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "First site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce1-network"
        }
      },
      {
        "name": "ac2",
        "description": "Second Site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce1-network"
        }
      },
      {
        "name": "ac3",
        "description": "Third site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce3-network"
        }
      },
      {
        "name": "ac4",
        "description": "Another site",
        "ac-group-profile": [
          "simple-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce4-network"
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-ex-slice">
        <name>Binding Attachment Circuits to an IETF Network Slice</name>
        <t>This example shows how the AC service model complements <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/> to connect a site to a slice service.</t>
        <t>First, <xref target="slice-vlan-1"/> describes the end-to-end network topology as well the orchestration scopes:</t>
        <ul spacing="normal">
          <li>The topology is made up of two sites (site1 and site2), interconnected via a Transport Network (e.g. IP/MPLS Network). A Network Function is deployed within each site in a dedicated IP Subnet.</li>
          <li>A 5G SMO is responsible for the deployment Network Functions and the indirect management of a local Gateway (i.e., CE device).</li>
          <li>An IETF Network Slice Controller is responsible for the deployment of IETF Network Slices 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│   │      │   │.5      .6│   │    │
 ──┴─────┤GW1│----------│PE1│      │PE2│----------│GW2├────┴──
         │   │ vlan-id  │   │      │   │ vlan-id  │   │
         └───┘   100    └──┬┘      └┬──┘   200    └───┘
198.51.100.0/24            │        │             203.0.113.0/24
                           └────────┘
                         sdp1      sdp2
             ◄─────────► ◄────────────► ◄─────────►
             Attachment   Ietf Network   Attachment
              Circuit         Slice       Circuit
                ac1         EMBB_UP        ac2



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

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

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

{
  "ietf-network-slice-service:network-slice-services": {
    "slo-sle-templates": {
      "slo-sle-template": [
        {
          "id": "low-latency-template",
          "template-description": "Lowest possible latencey \
                                                 forwarding behavior"
        }
      ]
    },
    "slice-service": [
      {
        "service-id": "Slice EMBB_UP",
        "service-description": "Dedicate TN Slice for EMBB-UP",
        "slo-sle-template": "low-latency-template",
        "status": {},
        "sdps": {
          "sdp": [
            {
              "sdp-id": "sdp1",
              "ietf-ac-glue:ac-ref": [
                "ac1"
              ]
            },
            {
              "sdp-id": "sdp2",
              "ietf-ac-glue:ac-ref": [
                "ac2"
              ]
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-ex-cloud">
        <name>Connecting a Virtualized Environment Running in a Cloud Provider</name>
        <t>This example (<xref target="cloud-provider-1"/>) shows how the AC service model can be used to connect a Cloud Infrastructure to a service provider network. This example makes the following assumptions:</t>
        <ol spacing="normal" type="1"><li>A customer (e.g., Mobile Network Team or partner) has a virtualized infrastructure running in a Cloud Provider. A simplistic deployment is represented here with a set of Virtual Machines running in a Virtual Private Environment. The deployment and management of this infrastructure is achieved via private APIs that are supported by the Cloud Provider: this realization is out of the scope of this document.</li>
          <li>The connectivity to the Data Center is achieved thanks to a service based on direct attachment (physical connection), which is delivered upon ordering via an API exposed by the Cloud Provider. When ordering that connection, a unique "Connection Identifier" is generated and returned via the API.</li>
          <li>The customer provisions the networking logic within the Cloud Provider based on that unique connection Identifier (i.e., logical interfaces, IP addressing, and routing).</li>
        </ol>
        <figure anchor="cloud-provider-1">
          <name>An Example of Realization for Connecting a Cloud Site</name>
          <artwork><![CDATA[
    .--------------------------------------------------------.
    |                                      Cloud Provider DC |
    |                                                        |
    |                                                        |
    |  ┌───┐ ┌───┐ ┌───┐                                     |
    |  │VM1│ │VM2│ │VM3│  Virtual Private Cloud              |
    |  └─┬─┘ └─┬─┘ └─┬─┘                                     |
    |    │.2   │.5   │.12      198.51.100.0/24               |
    |   ─┴─────┴─────┴───┬───────────────────────            |
    |                    │.1                                 |
    |                ┌───┴────┐                              |
    |                │ CLOUD  │ BGP_ASN: 65536               |
    |                │PROVIDER│ BGP md5:                     |
    |                │   GW   │   "nyxNER_c5sdn608fFQl3331d" |
    |                └───┬────┘                              |
    |                    │ ▲ .2                              |
    '--------------------│-│---------------------------------'
                         │ │
 Direct Interconnection  │ │
 connection_id:          │BGP       vlan-id:50
   1234-56789            │ │        192.0.2.0/24
                         │ │
                         │ │ .1
    .--------------------│-▼---------------------------------.
    |             If-A┌──┴──┐       Service Provider Network |
    |                 │     │                                |
    |                 │ PE1 │ BGP_ASN: 65550                 |
    |                 │     │                                |
    |                 └─────┘                                |
    |                                                        |
    |                                                        |
    |                                                        |
    |                                                        |
    '--------------------------------------------------------'
]]></artwork>
        </figure>
        <t><xref target="cloud-provider-2"/> illustrates the pre-provisioning logic for the physical connection to the Cloud Provider. After this connection is delivered to the service provider, the network inventory is updated with "bearer-reference" set to the value of the "Connection Identifier".</t>
        <figure anchor="cloud-provider-2">
          <name>Illustration of Pre-provisioning</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="584" viewBox="0 0 584 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <g class="text">
                  <text x="52" y="36">Customer</text>
                  <text x="544" y="36">Cloud</text>
                  <text x="56" y="52">Orchestration</text>
                  <text x="148" y="52">DIRECT</text>
                  <text x="240" y="52">INTERCONNECTION</text>
                  <text x="340" y="52">ORDERING</text>
                  <text x="400" y="52">(API)</text>
                  <text x="548" y="52">Provider</text>
                  <text x="312" y="68">──────────────────────────────────────────────►</text>
                  <text x="164" y="100">Connection</text>
                  <text x="240" y="100">Created</text>
                  <text x="292" y="100">with</text>
                  <text x="360" y="100">"Connection</text>
                  <text x="464" y="100">ID:1234-56789</text>
                  <text x="316" y="116">◄───────────────────────────────────────────────</text>
                  <text x="328" y="132">x</text>
                  <text x="328" y="148">x</text>
                  <text x="328" y="164">x</text>
                  <text x="328" y="180">x</text>
                  <text x="92" y="212">Physical</text>
                  <text x="172" y="212">Connection</text>
                  <text x="260" y="212">1234-56789</text>
                  <text x="316" y="212">is</text>
                  <text x="368" y="212">delivered</text>
                  <text x="424" y="212">and</text>
                  <text x="240" y="228">connected</text>
                  <text x="292" y="228">to</text>
                  <text x="320" y="228">PE1</text>
                  <text x="88" y="260">Network</text>
                  <text x="168" y="260">Inventory</text>
                  <text x="236" y="260">Upated</text>
                  <text x="288" y="260">with:</text>
                  <text x="144" y="276">bearer-reference:</text>
                  <text x="260" y="276">1234-56789</text>
                  <text x="320" y="276">for</text>
                  <text x="392" y="276">PE1/Interface</text>
                  <text x="468" y="276">If-A</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  Customer                                                       Cloud
Orchestration  DIRECT INTERCONNECTION ORDERING (API)            Provider
               ──────────────────────────────────────────────►

               Connection Created with "Connection ID:1234-56789
               ◄───────────────────────────────────────────────
                                        x
                                        x
                                        x
                                        x

       Physical Connection 1234-56789 is delivered and
                         connected to PE1

       Network  Inventory Upated with:
         bearer-reference: 1234-56789 for PE1/Interface If-A
]]></artwork>
          </artset>
        </figure>
        <t>Next, API workflows can be initiated:</t>
        <ul spacing="normal">
          <li>Cloud Provider for the configuration as per (3) above.</li>
          <li>Service provider network via the Attachment Circuit model. This request can be used in conjunction with additional requests based on L3SM (VPN provisioning) or Network Slice Service model (5G hybrid Cloud deployment).</li>
        </ul>
        <t><xref target="cloud-provider-ac"/> shows the message body of the request to create the required ACs to connect the Cloud Provider Virtualized (VM) using the Attachment Circuit module. Note that this Cloud Provider mandates the use of MD5 authentication for establishing BGP connections.</t>
        <ul empty="true">
          <li>
            <t>The module supports MD5 to basically accommodate the installed BGP base (including by some Cloud Providers). Note that MD5 suffers from the security weaknesses discussed in Section 2 of <xref target="RFC6151"/> and Section 2.1 of <xref target="RFC6952"/>.</t>
          </li>
        </ul>
        <figure anchor="cloud-provider-ac">
          <name>Message Body of a Request to Create the ACs for Connecting to the Cloud Provider</name>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
    "ietf-ac-svc:attachment-circuits": {
      "ac": [
        {
          "name": "ac--BXT-DC-customer-VPC-foo",
          "description": "Connection to Cloud Provider BXT on \
                                              connection 1234-56789",
          "requested-ac-start": "2023-12-12T05:00:00.00Z",
          "l2-connection": {
            "encapsulation": {
              "type": "ietf-vpn-common:dot1q",
              "dot1q": {
                "tag-type": "ietf-vpn-common:c-vlan",
                "cvlan-id": 50
              }
            },
            "bearer-reference": "1243-56789"
          },
          "ip-connection": {
            "ipv4": {
              "local-address": "192.0.2.1",
              "prefix-length": 24,
              "address": [
                {
                  "address-id": "1",
                  "customer-address": "192.0.2.2"
                }
              ]
            }
          },
          "routing-protocols": {
            "routing-protocol": [
              {
                "id": "1",
                "type": "ietf-vpn-common:bgp-routing",
                "bgp": {
                  "neighbor": [
                    {
                      "id": "1",
                      "local-as": "65550",
                      "peer-as": "65536",
                      "authentication": {
                         "keying-material": "\
                                            nyxNER_c5sdn608fFQl3331d"
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TBC.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact initials="I." surname="Bykov" fullname="Ivan Bykov">
        <organization>Ribbon Communications</organization>
        <address>
          <email>Ivan.Bykov@rbbn.com</email>
        </address>
      </contact>
      <contact initials="Q." surname="Wu" fullname="Qin Wu">
        <organization>Huawei</organization>
        <address>
          <email>bill.wu@huawei.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
kHdwcCCwm1bb5lGYpi4mmU9HwtAR3kAx113oY11K4bd1Ug7daZGfulKmPgvd
dvmU1ShLilJqVEBCm1t7coS8rVYhb0sLeVsNQt68It3WTyLSsYsyh+3HRLsU
ft+cdDjO7xQwI5lcPLJEVusWbM0XmFo1SLkXH+/Fx3vx0WefC9ir1GtYVTbn
xgfXAfGl4NujqdqM/CJqI5B7Fizrxl0L91dOOns3jXGCj04aZ6fVmScTOx/c
wp8Gm5DNd2Q8ZXRuIbmqCa4ZMuqq105NHhRy+x5fwZwno8AGbrWlYKMLd6Gm
LHmAs5OE27Mh5HKd/KQjQehYd3+bZGGrn/gduoonVWNPosakZAexP4nCQa03
IZM8T4H74R/fZFyvqmvL4uZx0/XhYG3iRw0UV68zL6029QZCa9MyqFdRn/k6
kwSknYTHZ6PJDPrBIkrpYNKdOcG1KvMMIwYClBeZ2kCnttFn7KoBbiHh1lSm
oQGBIwy7jfxgtZZauiIXteX19lrqM8fE0XjwHpdZlHFoKMJbK7BM1KoJrpRA
lbnWSBBfFrdoHZLeZZ74u8wTd5cRn4To78ijrvC/1Sz8i1UUTtdadACSdJ/M
L+k+uZd0w3R3L+neS7riI0q6drMLsq9ZQrIwDFWxzCchlqmbahOSF27s5kKy
8DeNNiHZhissJOvm2oVkoUqGhWT9ZQ4hWX9pEZLtMjcVkmv9BIVku5So8beg
kOxVqU1Ii5Bcr6przyEkt9RuFJKDdeal1abemoTkYBX1ma+z2UKy3ckcQrIH
0zxCcsMwGoRkH/QmIdn+MqeQ7H2ZU0j2vuiK7UJyvZb6zDFxs4VkD5aZQrJo
qjLXGgniKyAk14f000m6T24o6T5pk3T5uoS8hMFmbXSTcO+f6TCHnIpFGZih
oHsrDU3hNczY5nD7apVO42RZnPFKWMapcuwS6pLISUy5tqUPPpvI9y2nHH2Z
RPWtneu98DayLl+BqdeK2EifSWDGJi8pXs9XuTMGO9LzXzXA+QM52VXo2ogX
RaeEWcDA2yqdhY6UpNoxidpQ/PLB5BzSHCzbzXytq1BQyKWl3QzXBl/JrjhU
VjJS7elkrxgCQVr7S7xpsy72jw5erovdo87uEd+wOtw9kL7qfC2A4jjqOtjO
tywDEUXBfB8aT6QDBfbqt4eHB2s6+y8m3RUqF+i97nSvO93rTrfQnRa0yYSL
eHFNbblojuimdvGA18tMPcO7Q1gGofngA+TfPKzPhldxht+JBoe5ZVMro6gc
RWNYIehvwjpbTRdw8IcGK7ssjA5+iix+V3XO8klgnMKILe3qcB06bFmjXZv9
uOuZNdEHqCFOaL28gh8f1vw56sXPMQLYiCmj7qhRL+8FfqzjRkmAgTiV9cJe
s61BI1tqzx/FMgxvOKhlaN5l8RuBq2vfDFxjUVmcbNVnpinGU2BCZPukjWzF
gmQrFiNbsSDZijnI1i42k2z1kxuRrVf7ZnRg4J1Ntl7xG4Erbkq2PMjh6aSJ
ZZPMwP739SKBUjUxzS6sO6zv8k30ZzMA1/pI2Gn2IWusbnDL1aOyw6awdpBp
iHblhWorbfskOk/StmjigapTVK6qpB7c2i6ri7MS5ogRwzxP42h21bcxRi3o
nEeY8jNKW8rrKqs5CdQ104xXWEibRpT7Vox6wQ/uSDpRbg1m9lC8RqK8A8OC
FZFks2G0fkKlDtXa1t86LVPlDvN8/HiBcULpnwDGJvNtvbiw6MN3t2xk7C1t
1Ozz7Wu/3gZFVck7UXqK7tdn57ORZn1a153a55LTs2HuZywIbPQ1+b5lG1Va
Il7EChjPmnmYuAX/E3UO3SgF06fzG9CKNuCfxfit7xvIuWeDuACPFTdnsOKG
3FXMy1pFjRvNx1ftejOZqgdTC0cVZppa2Kld6ma8NNhCOyP1qqjP3ByqNrQw
Cw1CNoN/3jloLZzT7eIGbLOpgbl5ZrCBGsMU866Qdrl1foH8g9vgIuKtrnpj
UXwROfwWQvhtJPC8nDRuRwtyN1mpiCP3kgdDkldoofzzNBo31bTVNv4ED4M/
zMtEb8RB52efc/JOj3ECzB297ttEIBuQzkwR7VbCmQvZnPLZ7SSz28lkN2Qu
MznL/OapmxqmbsNQ5uYmN2Ult+EjSZkE4LktH5E1uYD95J4n3POEe57wifOE
Imm07t2MJdwv7k9hcd8vz1/G8rwoCn99ipusT9E6TW6rjdOkvy84TV69RTFh
Y7F5mryCCwInFp8mqZvd2h3Ndv1S3mjKi2zum9YY2IhSKOnQmjVXrHWx4lLM
ik4ERm5TFDwWb3Os0zUMij8+xEvNSsCjWomM5VvJrLMVxcgeh+KIamc0++r2
OOZsLLHu8hB660kfpt6jx1vo/gbPxF78rhKvONUuhYiGh9npmgWXBkP5lslG
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
RW/JB9kDKbniH2mhHcgTMOYNWa7YgzpnaxFTgjxh3brNpJqGNU6rer3OGOh5
Z1Iif9iV4pT2iHYbMV4RFM67lGdjrk+qzu0oTqYZ0R/zndUqn+RpfgpKfbqm
s3+zfBdVtUotbMlmQGZD7bq+3DQOyYPGMcf15jvtKgVhhA79sJWdk2dZkY/i
8ZSvAuH5JybcloitQUYu4Wk+HePIcJM35cf14hKIU1SyEIJwJHVkUvICGtuW
5Ah/2XzKOku2wWU4TzpWOPZOMrFW8R//0zG7RTmYWtY3YGTsLKD5kmRgeGg/
2FkXx5c5plECbgU6HsgwnRx4LEh9lGMJCABVwNdx9bd/+r9KbXWricxAT3ug
yT0Xq4PjgzVzopgUMIvplVoi0q57pg4XyRwZmzSv5/kQz9hRHwW9MhWrmEwU
pAe00A3RdhTgaBJ8tI2jIyx3oVYhwUmQyXUnoqi8OF36vGN/Phe1j1uASy19
cIp8qNf6IA52/Efz1BKbz3rdh91ed9OpJXGKv39d+0CB3sOHm9vj4dPt7c1Z
fSFdis1w936tYF8za3l99ebrS7wgEgk3ZGr586UiWrfXqj/zi3zytYJ0qPkC
L4wgSxjsdIAWYWUszyVvsP23DK8dT8iAJYd8oYN2aeAUrIiYNene9ZfRzuQt
XYq9L8PRnKh77pjE7SPuipttW2IkTpKCXdUkmyRrO8lIiNxPUAq39pjNuxen
7fE6B3y18VIag/ownZBB2IvmbbUxcpi6Thpnp9UZFN166JcwzfzBx0MNMaa4
tFjUOmT0KaNHAMTesl/h2n3wxxYMU+qEOfBhce2ZGHny6CfCiAFyQZw0kFLt
7kONnPwS9RHWl0LjqJoXG203KrjEcsv6sYZlJDTdUZjV9NpZTYmONOOfKa/p
3fOaUPF7XnNrjNzzmiCvadQGPflrIY2QtT0QzvKMrDhHyIFeJ9lbqRUqR8MD
42BLdrA3VsZdoyqiayDU+w7tU3ZOXn2Rj0+J5WEJcTttel7VubzwcZlU8dq6
fSJNdhZQwgFSdWpYxgx7VCL1UvzDZW3CZjNynsn3zGuxRFe44m+pLNvcTc2A
ZtyCgyY0KbLKQDPDfJpppZZGYvyxjY/osmlz2fic8GFSheBGxrwkVWG64Dsm
jx0GOwYxGLX5VTlytITrQX5U83erAK2ozj3tJU92TUFTJEWnEcKRv+p8bqYR
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
QxSff718EqUlKdXHzwfdpf8fsBkbK+PQAQA=

-->

</rfc>
