<?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.23 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boro-opsawg-teas-attachment-circuit-02" 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-02"/>
    <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="February" day="22"/>
    <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). The 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>The AC service model is designed with the intent to be reusable. Whether a service model reuses structures defined in the AC service model or simply include an AC reference is a design choice of these service models. Relying upon the AC 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>
      <t>Each AC is identified with a unique identifier within a domain. The mapping between this AC and a network node (typically, a Provider Edge (PE)) that terminates an AC is hidden to the application/customer that makes use of the AC service model. Such an information is internal to the network controller. Thus, the details about the (network node-specific) attachment interfaces are not exposed in this service model.</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 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 model is designed with the intent to be reusable. Whether a service model reuses structures defined in the AC service model or simply includes an AC reference (that was communicated during AC service instantiation) is a design choice of these service models. Relying upon the AC service model to manage ACs over which services are delivered has the merit 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). This document favors the approach of completely relying upon the AC service model instead of duplicating into specific modules of advanced services that are delivered over an Attachment Circuit.</t>
        <t>An AC service request can provide a reference to a bearer or peer SAPs. Both schemes are supported in the AC service model.</t>
        <t>Each AC is identified with a unique identifier within a (provider) domain. From a network provider standpoint, an AC can be bound to a single or multiple Service Attachment Points (SAPs) <xref target="I-D.ietf-opsawg-sap"/>. Likewise, a SAP can be bound to one or multiple ACs. However, the mapping between an AC and a PE in the provider network that terminates that AC is hidden to the application that makes use of the AC service model. Such mapping information is internal to the network controllers. As such, the details about the (node-specific) attachment interfaces are not exposed in the AC service model.</t>
        <t>The AC service model <strong>does not make any assumption about the internal structure or even the nature or the services that will be delivered over an attachment circuit</strong>. Customers do not have access to that network view other than the ACes that the ordered. For example, the AC service model can be used to provision a set of ACes to connect multiple sites (Site1, Site2, ..., SiteX) for customer that also requested VPN services. If these provisioning of these services require specific configured on ASBR nodes, such configuration is handled at the network level and is not exposed at the service level to the customer. However, the network controller will have access to such a view as the service points in these ASBRs will be exposed as SAPs with "role" set to "ietf-sap-ntw:nni" <xref target="I-D.ietf-opsawg-sap"/>.</t>
        <t><xref target="examples"/> provides a set of examples to illustrate the use of the AC service model. These examples use the IPv4 address blocks reserved for documentation <xref target="RFC5737"/>, the IPv6 prefix reserved for documentation <xref target="RFC3849"/>, and the Autonomous System (AS) numbers reserved for documentation <xref target="RFC5398"/>.</t>
        <t>The YANG data models in this document conform to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      </section>
      <section anchor="position-acaas-vs-other-data-models">
        <name>Position ACaaS vs. Other Data Models</name>
        <t>The model specified in this document <strong>is not a network model</strong> <xref target="RFC8969"/>. As such, the model does not expose details related to specific nodes in the provider's network that terminate a requested AC. The mapping between an AC as seen by a customer and the network implementation of an AC is maintained by the network controllers and not exposed to the customer. Such a mapping can be maintained using a variety of network models, e.g., Service Attachment Points (SAPs) <xref target="I-D.ietf-opsawg-sap"/>, AC Network Model <xref target="I-D.boro-opsawg-ntw-attachment-circuit"/>, etc.</t>
        <t>The AC service model <strong>is not a device model</strong>. A network provider may use a variety of device models (e.g., Routing management <xref target="RFC8349"/> or BGP <xref target="I-D.ietf-idr-bgp-model"/>) to provision an AC service.</t>
        <t>The document specifies also a module (<xref target="glue"/>) that updates other service and network modules with the required information to bind services to specific ACs that are created using the AC service model. It is anticipated that future revisions of the L3SM/L2SM can make use of the AC service model, by (preferably) offloading all the AC-related management matters from the core L3SM/L2SM to focus on L2/L3 VPN service matters.</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., Network Slice Services).</t>
        </dd>
        <dt>Service provider:</dt>
        <dd>
          <t>A service provider that offers network services (e.g., Network Slice Services).</t>
        </dd>
      </dl>
    </section>
    <section anchor="sample-uses-of-the-attachment-circuit-data-models">
      <name>Sample Uses of the Attachment Circuit Data Models</name>
      <t><xref target="uc"/> depicts two target topology flavors that involve ACs. These topologies are characterized as follows:</t>
      <ul spacing="normal">
        <li>A Customer Terminating Point (CTP) may be a physical node or a logical entity. A CTP is seen by the network as a peer SAP.</li>
        <li>The same AC request may include one or multiple ACs that may belong to one or both of these flavors. For the sake of simplfying the illustration, only a subset of these ACs is shown in <xref target="uc"/>.</li>
        <li>CTPs may be dedicated to one single service or host multiple services (e.g., service functions <xref target="RFC7665"/>).</li>
        <li>A single AC (as seen by a network provider) may be bound to one or multiple peer SAPs (i.e., CTPs in this example). 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>
      </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="336" width="448" viewBox="0 0 448 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <g class="text">
                <text x="40" y="36">┌───────┐</text>
                <text x="348" y="36">┌──────────────────────┐</text>
                <text x="8" y="52">│</text>
                <text x="108" y="52">├────────┐</text>
                <text x="256" y="52">│</text>
                <text x="440" 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="144" y="68">│</text>
                <text x="256" y="68">│</text>
                <text x="440" y="68">│</text>
                <text x="40" y="84">└───────┘</text>
                <text x="144" y="84">│</text>
                <text x="256" y="84">│</text>
                <text x="440" y="84">│</text>
                <text x="200" y="100">├─────────────┤</text>
                <text x="336" y="100">Network</text>
                <text x="440" y="100">│</text>
                <text x="40" y="116">┌───────┐</text>
                <text x="144" y="116">│</text>
                <text x="256" y="116">│</text>
                <text x="440" y="116">│</text>
                <text x="8" y="132">│</text>
                <text x="72" y="132">│</text>
                <text x="144" y="132">│</text>
                <text x="256" y="132">│</text>
                <text x="440" y="132">│</text>
                <text x="8" y="148">│</text>
                <text x="40" y="148">CTP#2</text>
                <text x="108" y="148">├────────┘</text>
                <text x="256" y="148">│</text>
                <text x="440" y="148">│</text>
                <text x="40" y="164">└───────┘</text>
                <text x="348" y="164">└──────────────────────┘</text>
                <text x="40" y="196">┌───────┐</text>
                <text x="348" y="196">┌──────────────────────┐</text>
                <text x="8" y="212">│</text>
                <text x="72" y="212">│</text>
                <text x="256" y="212">│</text>
                <text x="440" y="212">│</text>
                <text x="8" y="228">│</text>
                <text x="40" y="228">CTP#1</text>
                <text x="164" y="228">├──────────────────────┤</text>
                <text x="440" y="228">│</text>
                <text x="40" y="244">└───────┘</text>
                <text x="256" y="244">│</text>
                <text x="440" y="244">│</text>
                <text x="256" y="260">│</text>
                <text x="336" y="260">Network</text>
                <text x="440" y="260">│</text>
                <text x="40" y="276">┌───────┐</text>
                <text x="256" y="276">│</text>
                <text x="440" y="276">│</text>
                <text x="8" y="292">│</text>
                <text x="164" y="292">├──────────────────────┤</text>
                <text x="440" y="292">│</text>
                <text x="8" y="308">│</text>
                <text x="40" y="308">CTP#2</text>
                <text x="72" y="308">│</text>
                <text x="256" y="308">│</text>
                <text x="440" y="308">│</text>
                <text x="40" y="324">└───────┘</text>
                <text x="348" y="324">└──────────────────────┘</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
┌───────┐                      ┌──────────────────────┐
│       ├────────┐             │                      │
│ CTP#1 │        │             │                      │
└───────┘        │             │                      │
                 ├─────────────┤      Network         │
┌───────┐        │             │                      │
│       │        │             │                      │
│ CTP#2 ├────────┘             │                      │
└───────┘                      └──────────────────────┘

┌───────┐                      ┌──────────────────────┐
│       │                      │                      │
│ CTP#1 ├──────────────────────┤                      │
└───────┘                      │                      │
                               │      Network         │
┌───────┐                      │                      │
│       ├──────────────────────┤                      │
│ CTP#2 │                      │                      │
└───────┘                      └──────────────────────┘
]]></artwork>
        </artset>
      </figure>
      <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   |
                          +-------+-------+
                          |    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 anchor="examples">
        <name>Examples</name>
        <t>This section includes a non-exhaustive list of examples to illustrate the use of the AC service model.</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-ac-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-device": {
          "device-id": "CE_X_SITE_Y",
          "requested-type": "ietf-ac-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-ac-svc:bearers": {
    "bearer": [
      {
        "id": "an-identifier",
        "description": "A bearer example",
        "customer-device": {
          "device-id": "CE_X_SITE_Y",
          "requested-type": "ietf-ac-svc:ethernet"
        },
        "bearer-reference": "line-156"
      }
    ]
  }
}
]]></artwork>
          </figure>
        </section>
        <section anchor="ac-bearer-exist">
          <name>Request An AC over An Existing Bearer</name>
          <t>An example of  a request message body to create a simple AC over an existing bearer is shown in <xref target="ac-b"/>. The bearer reference is assumed to be known to both the customer and the network provider. Such a reference can be retrieved, e.g., following the example described in <xref target="ex-create-bearer"/> or using other means (including, exchanged out-of-band or via proprietary APIs).</t>
          <figure anchor="ac-b">
            <name>Example of a Message Body to Request an AC over an Existing Bearer</name>
            <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "requested-ac-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          },
          "bearer-reference": "line-156"
        }
      }
    ]
  }
}
]]></artwork>
          </figure>
        </section>
        <section anchor="ac-no-bearer-peer-sap">
          <name>Request An AC for a Knwon Peer SAP</name>
          <t>An example of a request to create a simple AC, when the peer SAP is known, is shown in <xref target="ac-known-ps"/>. In this example, the peer SAP identifier points to an identifier of a service function. The (topological) location of that service function is assumed to be known to the network controller. For example, this can be determined as part of an on-demand procedure to instantiate a service function in a cloud. That instantiated service function can be granted a connectivity service via the provider network.</t>
          <figure anchor="ac-known-ps">
            <name>Example of a Message Body to Request an AC with a Peer SAP</name>
            <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac4585",
        "description": "An AC on an existing bearer",
        "requested-ac-start": "2023-12-12T05:00:00.00Z",
        "peer-sap-id": [
          "nf-termination-ip"
        ],
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 550
            }
          }
        }
      }
    ]
  }
}
]]></artwork>
          </figure>
        </section>
        <section anchor="one-ce-two-acs">
          <name>One CE, Two ACs</name>
          <t>Lets consider the example of an eNodeB (CTP) that is directly connected to the access routers of the mobile backhaul (see <xref target="enodeb"/>). In this example, two ACs are needed to service the eNodeB.</t>
          <figure anchor="enodeb">
            <name>Example of a CE-PE ACs</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="432" viewBox="0 0 432 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                  <path d="M 8,32 L 8,160" fill="none" stroke="black"/>
                  <path d="M 120,32 L 120,160" fill="none" stroke="black"/>
                  <path d="M 272,32 L 272,224" fill="none" stroke="black"/>
                  <path d="M 424,32 L 424,224" fill="none" stroke="black"/>
                  <path d="M 8,32 L 120,32" fill="none" stroke="black"/>
                  <path d="M 272,32 L 424,32" fill="none" stroke="black"/>
                  <path d="M 128,78 L 264,78" fill="none" stroke="black"/>
                  <path d="M 128,82 L 264,82" fill="none" stroke="black"/>
                  <path d="M 128,110 L 264,110" fill="none" stroke="black"/>
                  <path d="M 128,114 L 264,114" fill="none" stroke="black"/>
                  <path d="M 8,160 L 120,160" fill="none" stroke="black"/>
                  <path d="M 272,224 L 424,224" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="292" y="52">PE</text>
                    <text x="328" y="68">192.0.2.1</text>
                    <text x="60" y="84">eNodeB</text>
                    <text x="336" y="84">2001:db8::1</text>
                    <text x="220" y="100">vlan</text>
                    <text x="248" y="100">1</text>
                    <text x="220" y="132">vlan</text>
                    <text x="248" y="132">2</text>
                    <text x="156" y="148">Direct</text>
                    <text x="160" y="164">Routing</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
+-------------+                  +------------------+
|             |                  | PE               |
|             |                  |  192.0.2.1       |
|   eNodeB    |==================|  2001:db8::1     |
|             |          vlan 1  |                  |
|             |==================|                  |
|             |          vlan 2  |                  |
|             | Direct           |                  |
+-------------+ Routing          |                  |
                                 |                  |
                                 |                  |
                                 |                  |
                                 +------------------+
]]></artwork>
            </artset>
          </figure>
          <t>An example of a request to create the ACs to service the eNodeB is shown in <xref target="two-acs-same-ce"/>. This example assumes that static addressing is used for both ACs.</t>
          <figure anchor="two-acs-same-ce">
            <name>Example of a Message Body to Request Two ACes on The Same Link</name>
            <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 2
            }
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
          </figure>
        </section>
        <section anchor="control-precedence-over-multiple-acs">
          <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": "primary"
          }
        ],
        "l2-connection": {
          "bearer-reference": "bearerX@site1"
        }
      },
      {
        "name": "ac2",
        "description": "Example to illustrate AC precedence usage",
        "group": [
          {
            "group-id": "1",
            "precedence": "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-global-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-global-profile": ["simple-profile"],
        "l2-connection": {
          "encapsulation": {
            "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"
              }
            ]
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-global-profile": ["simple-profile"],
        "l2-connection": {
          "encapsulation": {
            "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"
              }
            ]
          }
        }
      }
    ]
  }
}
]]></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-node-group": [
      {
        "id": "simple-node-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q"
          },
          "bearer-reference": "line-156"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.1",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.2"
              }
            ]
          },
          "ipv6": {
            "local-address": "2001:db8::1",
            "prefix-length": 64,
            "address": [
              {
                "address-id": "1",
                "customer-address": "2001:db8::2"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:direct-routing"
            }
          ]
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "a first ac with a same peer node",
        "ac-node-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      },
      {
        "name": "ac2",
        "description": "a second ac with a same peer node",
        "ac-node-profile": ["simple-node-profile"],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 2
            }
          }
        }
     }
    ]
  }
}
]]></artwork>
          </figure>
          <t>A customer may request adding a new AC by simply referring to an existing per-node AC profile as shown in <xref target="add-ac-same-ce-node-profile"/>. This AC inherites all the data that was enclosed in the indicated per-node AC profile (IP addressing, routing, etc.).</t>
          <figure anchor="add-ac-same-ce-node-profile">
            <name>Example of a Message Body to Add a new AC over an existing link (Node Profile)</name>
            <artwork><![CDATA[
{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac3",
        "description": "a third AC with a same peer node",
        "ac-node-profile": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "encapsulation": {
            "dot1q": {
              "cvlan-id": 3
            }
          }
        }
      }
    ]
  }
}
]]></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-global-profile": [
      {
        "id": "simple-profile",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "cvlan-id": 1
            }
          }
        }
      }
    ],
    "ac": [
      {
        "name": "ac1",
        "description": "Connect a first site",
        "ac-global-profile": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce1-network"
        }
      },
      {
        "name": "ac2",
        "description": "Connect a second Site",
        "ac-global-profile": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce2-network"
        }
      },
      {
        "name": "ac3",
        "description": "Connect a third site",
        "ac-global-profile": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce3-network"
        }
      },
      {
        "name": "ac4",
        "description": "Connect a forth site",
        "ac-global-profile": [
          "simple-node-profile"
        ],
        "l2-connection": {
          "bearer-reference": "ce4-network"
        }
      }
    ]
  }
}
]]></artwork>
          </figure>
        </section>
        <section anchor="binding-attachment-circuits-to-an-ietf-network-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>Firstly, <xref target="slice-vlan-1"/> describes the end-to-end network topology as well the orchestration scopes:</t>
          <ul spacing="normal">
            <li>The topology is made up of two sites (site1 and site2), interconnected via a Transport Network (e.g. IP/MPLS Network). A Network Function is deployed within each site in a dedicated IP Subnet.</li>
            <li>A 5G SMO is responsible for the deployment Network Functions and the indirect management of a local Gateway (i.e., CE device).</li>
            <li>An IETF Network Slice Controller is responsible for the deployment of IETF Network Slices accross the TN.</li>
          </ul>
          <t>Network Functions are deployed within each site.</t>
          <figure anchor="slice-vlan-1">
            <name>An Example of a Network Topology Used to Deploy Slices</name>
            <artwork><![CDATA[
      5G SMO                 IETF NSC                 5G SMO
         │               (TN ORCHESTRATOR)               │
         │                        │                      │
   ◄─────┴─────►        ◄─────────┴────────►        ◄────┴─────►
       Site1             TRANSPORT NETWORK              Site2
   ┌───┐                  ┌──────────────┐                 ┌───┐
   │NF1│                  │              │                 │NF2│
   └─┬─┘   ┌───┐        ┌─┴─┐          ┌─┴─┐        ┌───┐  └─┬─┘
     │     │   │        │   │          │   │        │   │    │
   ──┴─────┤GW1├────────┤PE1│          │PE2├────────┤GW2├────┴──
       ▲   │   │    ▲   │   │          │   │   ▲    │   │  ▲
       │   └───┘    │   └─┬─┘          └─┬─┘   │    └───┘  │
       │            │     │              │     │           │
       │            │     └──────────────┘     │           │
     LAN1           │                          │          LAN2
198.51.100.0/24     │                          │  203.0.113.0/24
                    │                          │
                    │                          │
            Physical Link ID:           Physical Link ID:
              bearerX@site1               bearerX@site2

]]></artwork>
          </figure>
          <t><xref target="slice-vlan-2"/> describes the logical connectivity enforced thanks to both IETF Network Slice and Attachment Circuit models.</t>
          <figure anchor="slice-vlan-2">
            <name>Logical Overview</name>
            <artwork><![CDATA[
                             AS 65536  ◄────BGP───► AS 65550

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



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

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

{
  "ietf-ac-svc:attachment-circuits": {
    "ac": [
      {
        "name": "ac1",
        "description": "Connection to site1 on vlan 100 for slice \
                                                            EMBB_UP",
        "requested-ac-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 100
            }
          },
          "bearer-reference": "bearerX@site1"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.2",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.1"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:static-routing",
              "static": {
                "cascaded-lan-prefixes": {
                  "ipv4-lan-prefixes": [
                    {
                      "lan": "198.51.100.0/24",
                      "next-hop": "192.0.2.1",
                      "lan-tag": "primary_UP_slice"
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      {
        "name": "ac2",
        "description": "Connection to site2 on vlan 200 for slice \
                                                            EMBB_UP",
        "requested-ac-start": "2023-12-12T05:00:00.00Z",
        "l2-connection": {
          "encapsulation": {
            "type": "ietf-vpn-common:dot1q",
            "dot1q": {
              "tag-type": "ietf-vpn-common:c-vlan",
              "cvlan-id": 200
            }
          },
          "bearer-reference": "bearerY@site2"
        },
        "ip-connection": {
          "ipv4": {
            "local-address": "192.0.2.6",
            "prefix-length": 30,
            "address": [
              {
                "address-id": "1",
                "customer-address": "192.0.2.5"
              }
            ]
          }
        },
        "routing-protocols": {
          "routing-protocol": [
            {
              "id": "1",
              "type": "ietf-vpn-common:bgp-routing",
              "bgp": {
                "neighbor": [
                  {
                    "id": "1",
                    "local-as": "65536",
                    "peer-as": "65550"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
]]></artwork>
          </figure>
          <t><xref target="slice-prov"/> shows the message body of the request to create the a slice service bound to the ACs created using <xref target="slice-acs"/>. Only references to these ACs are included in the Slice Service request. This example assumes that the module defined <xref target="glue"/> 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="connecting-a-virtualized-environment-running-in-a-cloud-provider">
          <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>
    <section anchor="description-of-the-service-models">
      <name>Description of the Service Models</name>
      <section anchor="the-attachment-circuit-service-yang-module">
        <name>The Attachment Circuit Service YANG Module</name>
        <section anchor="overall-structure-of-the-module">
          <name>Overall Structure of the Module</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 bearers
  |  ...
  +--rw placement-constraints
  |  +--rw constraint* [constraint-type]
  |     +--rw constraint-type    identityref
  |     +--rw target
  |        +--rw (target-flavor)?
  |           +--:(id)
  |           |  +--rw group* [group-id]
  |           |     +--rw group-id    string
  |           +--:(all-accesses)
  |           |  +--rw all-other-accesses?   empty
  |           +--:(all-groups)
  |              +--rw all-other-groups?     empty
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
          </figure>
          <t>The full tree structure is provided in <xref target="full-tree"/>.</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>
        </section>
        <section anchor="service-profiles">
          <name>Service Profiles</name>
          <section anchor="description">
            <name>Description</name>
            <t>The 'specific-provisioning-profiles' container (<xref target="gp-svc-tree"/>) can be used by a service provider to maintain a set of specific profiles that are similar to those defined in <xref target="RFC9181"/>. The exact definition of the profiles is local to each service provider. The model only includes an identifier for these profiles in order to facilitate identifying and binding local policies when building an AC.</t>
            <figure anchor="gp-svc-tree">
              <name>Service Proviles</name>
              <artwork align="center"><![CDATA[
module: ietf-ac-svc
  +--rw specific-provisioning-profiles
  |  +--rw valid-provider-identifiers
  |     +--rw external-connectivity-identifier* [id]
  |     |       {external-connectivity}?
  |     |  +--rw id    string
  |     +--rw encryption-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw qos-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw bfd-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw forwarding-profile-identifier* [id]
  |     |  +--rw id    string
  |     +--rw routing-profile-identifier* [id]
  |        +--rw id    string
  +--rw service-provisioning-profiles
  |  +--rw service-profile-identifier* [id]
  |     +--rw id    string
  +--rw bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
            <t>As shown in <xref target="gp-svc-tree"/>, two profile types can be defined: 'specific-provisioning-profiles' and 'service-provisioning-profiles'. Whether only specific profiles, service profiles, or a combination thereff are used is local to each service provider.</t>
            <t>The following specific rovisioning profiles can be defined:</t>
            <dl>
              <dt>'external-connectivity-identifier':</dt>
              <dd>
                <t>Refers to a profile that defines the external connectivity provided to a site that is connected via an AC. External connectivity may be access to the Internet or restricted connectivity, such as access to a public/private cloud.</t>
              </dd>
              <dt>'encryption-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies related to the encryption setup that can be applied when provisioning an AC.</t>
              </dd>
              <dt>'qos-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of policies, such as classification, marking, and actions (e.g., <xref target="RFC3644"/>).</t>
              </dd>
              <dt>'bfd-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of Bidirectional Forwarding Detection (BFD) policies <xref target="RFC5880"/> that can be invoked when building an AC.</t>
              </dd>
              <dt>'forwarding-profile-identifier':</dt>
              <dd>
                <t>Refers to the policies that apply to the forwarding of packets conveyed within an AC. Such policies may consist, for example, of applying Access Control Lists (ACLs).</t>
              </dd>
              <dt>'routing-profile-identifier':</dt>
              <dd>
                <t>Refers to a set of routing policies that will be invoked (e.g., BGP policies) when building an AC.</t>
              </dd>
            </dl>
          </section>
          <section anchor="referencing-servicespecific-profiles">
            <name>Referencing Service/Specific Profiles</name>
            <t>All these profiles are uniquely identified by the NETCONF/RESTCONF server by an identifier. To ease referencing these profiles by other data models, specific typedefs are defined for each of these profiles. Likewise, an attachment circuit referenc typedef is defiened when referencing a (global) attachment circuit by its name is required. These typedefs <bcp14>SHOULD</bcp14> be used when other modules need a reference to one of these profiles or attahment circuits.</t>
          </section>
        </section>
        <section anchor="attachment-circuits-profiles">
          <name>Attachment Circuits Profiles</name>
        </section>
        <section anchor="node-specific-profiles">
          <name>Node-Specific Profiles</name>
        </section>
        <section anchor="bearers">
          <name>Bearers</name>
          <t><xref target="bearer-st"/> shows the sub-tree for managing the bearers (that is, the properties of the attachment that are below Layer 3). A bearer can be a wireless or wired link. A reference to a bearer is generated by the operator.
Such a reference can be used, e.g., in a subsequent service request to create an AC. The anchroing of the AC can also be achieved by indicating (with or without a bearer reference), a peer SAP identifier (e.g., An identifier of a Service Function).</t>
          <figure anchor="bearer-st">
            <name>Bearers Tree Structure</name>
            <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw bearers
  |  +--rw bearer* [id]
  |     +--rw id                  string
  |     +--rw description?        string
  |     +--rw customer-device
  |     |  +--rw device-id?   string
  |     |  +--rw location
  |     |     +--rw address?        string
  |     |     +--rw postal-code?    string
  |     |     +--rw state?          string
  |     |     +--rw city?           string
  |     |     +--rw country-code?   string
  |     +--rw requested-type?     identityref
  |     +--ro bearer-reference?   string
  |     |       {vpn-common:bearer-reference}?
  |     +--rw requested-start?    yang:date-and-time
  |     +--rw requested-stop?     yang:date-and-time
  |     +--ro actual-start?       yang:date-and-time
  |     +--ro actual-stop?        yang:date-and-time
  +--rw attachment-circuits
     ...
]]></artwork>
          </figure>
          <t>The same customer site (CE, NF, etc.) can terminate one or multiple bearers; each of them uniquely identified by a refrence that is assigned by the network provider. These bearers can terminate on the same or distinct network nodes. CEs that terminate multiple bearers are called multi-homed CEs.</t>
        </section>
        <section anchor="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 bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw group* [group-id]
        |  +--rw group-id      string
        |  +--rw precedence?   identityref
        +--rw name                 string
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
          </figure>
          <section anchor="layer-2-connection-structure">
            <name>Layer 2 Connection Structure</name>
            <t>As shown in the tree depicted in <xref target="l2-svc-tree"/>, the 'l2-connection' container defines service parameters to enable such connectivity at Layer 2.</t>
            <figure anchor="l2-svc-tree">
              <name>Layer 2 Connection Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        |  +--rw encapsulation
        |  |  +--rw type?              identityref
        |  |  +--rw dot1q
        |  |  |  +--rw tag-type?   identityref
        |  |  |  +--rw cvlan-id?   uint16
        |  |  +--rw priority-tagged
        |  |  |  +--rw tag-type?   identityref
        |  |  +--rw qinq
        |  |     +--rw tag-type?   identityref
        |  |     +--rw svlan-id    uint16
        |  |     +--rw cvlan-id    uint16
        |  +--rw (l2-service)?
        |  |  +--:(l2-tunnel-service)
        |  |  |  +--rw l2-tunnel-service
        |  |  |     +--rw type?         identityref
        |  |  |     +--rw pseudowire
        |  |  |     |  +--rw vcid?      uint32
        |  |  |     |  +--rw far-end?   union
        |  |  |     +--rw vpls
        |  |  |     |  +--rw vcid?      uint32
        |  |  |     |  +--rw far-end*   union
        |  |  |     +--rw vxlan
        |  |  |        +--rw vni-id             uint32
        |  |  |        +--rw peer-mode?         identityref
        |  |  |        +--rw peer-ip-address*   inet:ip-address
        |  |  +--:(l2vpn)
        |  |     +--rw l2vpn-id?            vpn-common:vpn-id
        |  +--rw bearer-reference?          string
        |          {vpn-common:bearer-reference}?
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="layer-3-connection-structure">
            <name>Layer 3 Connection Structure</name>
            <t>The 'l3-connection' container defines a set of service parameters to enable Layer 3 connectivity for an AC. Both IPv4 and IPv6 parameters are supported.</t>
            <t><xref target="ipv4-svc-tree"/> shows the structure of the IPv4 connection.</t>
            <figure anchor="ipv4-svc-tree">
              <name>Layer 3 Connection Tree Structure (IPv4)</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--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 bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  +--rw ipv4 {vpn-common:ipv4}?
        |  |  ...
        |  +--rw ipv6 {vpn-common:ipv6}?
        |     +--rw local-address?
        |     |       inet:ipv6-address
        |     +--rw virtual-address?
        |     |       inet:ipv6-address
        |     +--rw prefix-length?                           uint8
        |     +--rw address-allocation-type?
        |     |       identityref
        |     +--rw (allocation-type)?
        |        +--:(dynamic)
        |        |  +--rw (address-assign)?
        |        |  |  +--:(number)
        |        |  |  |  +--rw number-of-dynamic-address?   uint16
        |        |  |  +--:(explicit)
        |        |  |     +--rw customer-addresses
        |        |  |        +--rw address-pool* [pool-id]
        |        |  |           +--rw pool-id          string
        |        |  |           +--rw start-address
        |        |  |           |       inet:ipv6-address
        |        |  |           +--rw end-address?
        |        |  |                   inet:ipv6-address
        |        |  +--rw (provider-dhcp)?
        |        |  |  +--:(dhcp-service-type)
        |        |  |     +--rw dhcp-service-type?
        |        |  |             enumeration
        |        |  +--rw (dhcp-relay)?
        |        |     +--:(customer-dhcp-servers)
        |        |        +--rw customer-dhcp-servers
        |        |           +--rw server-ip-address*
        |        |                   inet:ipv6-address
        |        +--:(static-addresses)
        |           +--rw address* [address-id]
        |              +--rw address-id          string
        |              +--rw customer-address?   inet:ipv6-address
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="routing">
            <name>Routing</name>
            <t>As shown in the tree depicted in <xref target="rtg-svc-tree"/>, the 'routing-protocols' container defines th erequired parameters to enable the required routing features for an AC. One or more routing protocols can be associated with an AC.  Such routing protocols are then enabled between a PE and the CE. Each routing instance is uniquely identified to accommodate scenarios where multiple instances of the same routing protocol have to be configured on the same link.</t>
            <t>In addition to static routing, the module supports the following routing protocols:</t>
            <ul spacing="normal">
              <li>BGP <xref target="RFC4271"/></li>
              <li>OSPF <xref target="RFC4577"/> or <xref target="RFC6565"/></li>
              <li>IS-IS <xref target="ISO10589"/><xref target="RFC1195"/><xref target="RFC5308"/></li>
              <li>RIP <xref target="RFC2453"/></li>
            </ul>
            <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 bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        +--rw customer-name?       string
        +--rw description?         string
        +--rw requested-start?     yang:date-and-time
        +--rw requested-stop?      yang:date-and-time
        +--ro actual-start?        yang:date-and-time
        +--ro actual-stop?         yang:date-and-time
        +--rw peer-sap-id*         string
        +--rw ac-global-profile*   ac-global-profile-reference
        +--rw ac-node-profile*     ac-node-group-reference
        +--rw name                 string
        +--rw l2-connection
        | ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  +--rw routing-protocol* [id]
        |     +--rw id                  string
        |     +--rw type?               identityref
        |     +--rw routing-profiles* [id]
        |     |  +--rw id      routing-profile-reference
        |     |  +--rw type?   identityref
        |     +--rw static
        |     |  +--rw cascaded-lan-prefixes
        |     |     +--rw ipv4-lan-prefixes* [lan next-hop]
        |     |     |       {vpn-common:ipv4}?
        |     |     |  +--rw lan         inet:ipv4-prefix
        |     |     |  +--rw lan-tag?    string
        |     |     |  +--rw next-hop    union
        |     |     |  +--rw metric?     uint32
        |     |     |  +--rw status
        |     |     |     +--rw admin-status
        |     |     |     |  +--rw status?        identityref
        |     |     |     |  +--rw last-change?   yang:date-and-time
        |     |     |     +--ro oper-status
        |     |     |        +--ro status?        identityref
        |     |     |        +--ro last-change?   yang:date-and-time
        |     |     +--rw ipv6-lan-prefixes* [lan next-hop]
        |     |             {vpn-common:ipv6}?
        |     |        +--rw lan         inet:ipv6-prefix
        |     |        +--rw lan-tag?    string
        |     |        +--rw next-hop    union
        |     |        +--rw metric?     uint32
        |     |        +--rw status
        |     |           +--rw admin-status
        |     |           |  +--rw status?        identityref
        |     |           |  +--rw last-change?   yang:date-and-time
        |     |           +--ro oper-status
        |     |              +--ro status?        identityref
        |     |              +--ro last-change?   yang:date-and-time
        |     +--rw bgp
        |     |  +--rw peer-groups
        |     |  |  +--rw peer-group* [name]
        |     |  |     +--rw name              string
        |     |  |     +--ro local-address?    inet:ip-address
        |     |  |     +--ro local-as?         inet:as-number
        |     |  |     +--rw peer-as?          inet:as-number
        |     |  |     +--rw address-family?   identityref
        |     |  |     +--rw authentication
        |     |  |        +--rw enable?            boolean
        |     |  |        +--rw keying-material
        |     |  |           +--rw (option)?
        |     |  |              +--:(ao)
        |     |  |              |  +--rw enable-ao?          boolean
        |     |  |              |  +--rw ao-keychain?
        |     |  |              |          key-chain:key-chain-ref
        |     |  |              +--:(md5)
        |     |  |              |  +--rw md5-keychain?
        |     |  |              |          key-chain:key-chain-ref
        |     |  |              +--:(explicit)
        |     |  |                 +--rw key-id?             uint32
        |     |  |                 +--rw key?                string
        |     |  |                 +--rw crypto-algorithm?
        |     |  |                         identityref
        |     |  +--rw neighbor* [id]
        |     |     +--rw id                string
        |     |     +--rw remote-address?   inet:ip-address
        |     |     +--ro local-address?    inet:ip-address
        |     |     +--rw peer-group?
        |     |     |       -> ../../peer-groups/peer-group/name
        |     |     +--ro local-as?         inet:as-number
        |     |     +--rw peer-as?          inet:as-number
        |     |     +--rw address-family?   identityref
        |     |     +--rw authentication
        |     |     |  +--rw enable?            boolean
        |     |     |  +--rw keying-material
        |     |     |     +--rw (option)?
        |     |     |        +--:(ao)
        |     |     |        |  +--rw enable-ao?          boolean
        |     |     |        |  +--rw ao-keychain?
        |     |     |        |          key-chain:key-chain-ref
        |     |     |        +--:(md5)
        |     |     |        |  +--rw md5-keychain?
        |     |     |        |          key-chain:key-chain-ref
        |     |     |        +--:(explicit)
        |     |     |           +--rw key-id?             uint32
        |     |     |           +--rw key?                string
        |     |     |           +--rw crypto-algorithm?   identityref
        |     |     +--rw status
        |     |        +--rw admin-status
        |     |        |  +--rw status?        identityref
        |     |        |  +--rw last-change?   yang:date-and-time
        |     |        +--ro oper-status
        |     |           +--ro status?        identityref
        |     |           +--ro last-change?   yang:date-and-time
        |     +--rw ospf
        |     |  +--rw address-family?   identityref
        |     |  +--rw area-id           yang:dotted-quad
        |     |  +--rw metric?           uint16
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key-id?             uint32
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw isis
        |     |  +--rw address-family?   identityref
        |     |  +--rw area-address      area-address
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key-id?             uint32
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw rip
        |     |  +--rw address-family?   identityref
        |     |  +--rw authentication
        |     |  |  +--rw enable?            boolean
        |     |  |  +--rw keying-material
        |     |  |     +--rw (option)?
        |     |  |        +--:(auth-key-chain)
        |     |  |        |  +--rw key-chain?
        |     |  |        |          key-chain:key-chain-ref
        |     |  |        +--:(auth-key-explicit)
        |     |  |           +--rw key?                string
        |     |  |           +--rw crypto-algorithm?   identityref
        |     |  +--rw status
        |     |     +--rw admin-status
        |     |     |  +--rw status?        identityref
        |     |     |  +--rw last-change?   yang:date-and-time
        |     |     +--ro oper-status
        |     |        +--ro status?        identityref
        |     |        +--ro last-change?   yang:date-and-time
        |     +--rw vrrp
        |        +--rw address-family?   identityref
        |        +--rw status
        |           +--rw admin-status
        |           |  +--rw status?        identityref
        |           |  +--rw last-change?   yang:date-and-time
        |           +--ro oper-status
        |              +--ro status?        identityref
        |              +--ro last-change?   yang:date-and-time
        +--rw oam
        |  ...
        +--rw security
           ...
]]></artwork>
            </figure>
            <t>For all supported routing protocols, 'address-family' indicates whether IPv4, IPv6, or both address families are to be activated. For example, this parameter is used to determine whether RIPv2 <xref target="RFC2453"/>, RIP Next Generation (RIPng), or both are to be enabled <xref target="RFC2080"/>.</t>
            <t>Similar to <xref target="RFC9182"/>, this version of the ACaaS assumes that parameters specific to the TCP-AO are preconfigured as part of the key chain that is referenced in the ACaaS. No assumption is made about how such a key chain is preconfigured. However, the structure of the key chain should cover data nodes beyond those in <xref target="RFC8177"/>, mainly SendID and RecvID (Section 3.1 of <xref target="RFC5925"/>).</t>
          </section>
          <section anchor="oam">
            <name>OAM</name>
            <t>As shown in the tree depicted in <xref target="oam-svc-tree"/>, the 'oam' container defines OAM-related parameters of an AC.</t>
            <figure anchor="oam-svc-tree">
              <name>OAM Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  +--rw bfd {vpn-common:bfd}?
        |     +--rw holdtime?   uint32
        |     +--rw status
        |        +--rw admin-status
        |        |  +--rw status?        identityref
        |        |  +--rw last-change?   yang:date-and-time
        |        +--ro oper-status
        |           +--ro status?        identityref
        |           +--ro last-change?   yang:date-and-time
        +--rw security
           ...
]]></artwork>
            </figure>
          </section>
          <section anchor="security">
            <name>Security</name>
            <t>As shown in the tree depicted in <xref target="sec-svc-tree"/>, the 'security' container defines a set of AC security parameters.</t>
            <figure anchor="sec-svc-tree">
              <name>Security Tree Structure</name>
              <artwork align="center"><![CDATA[
  +--rw specific-provisioning-profiles
  |  ...
  +--rw service-provisioning-profiles
  |  ...
  +--rw bearers
  |  ...
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  ...
     +--rw ac-node-group* [id]
     |  ...
     +--rw ac* [name]
        ...
        +--rw l2-connection
        |  ...
        +--rw ip-connection
        |  ...
        +--rw routing-protocols
        |  ...
        +--rw oam
        |  ...
        +--rw security
           +--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 anchor="yang-module">
        <name>YANG Module</name>
        <t>This module uses types defined in <xref target="RFC6991"/>, <xref target="RFC9181"/>, and <xref target="RFC8177"/>.</t>
        <sourcecode markers="true" name="ietf-ac-svc@2022-11-30.yang"><![CDATA[
module ietf-ac-svc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-svc";
  prefix ac-svc;

  import ietf-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-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types, Section 3";
  }
  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 generic YANG model for exposing
     attachment circuits as a service.

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

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

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

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

  // Identities 

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

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

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

  identity address-allocation-type {
    description
      "Base identity for address allocation type in the AC.";
  }

  identity provider-dhcp {
    base address-allocation-type;
    description
      "The provider's network provides a DHCP service to the
       customer.";
  }

  identity provider-dhcp-relay {
    base address-allocation-type;
    description
      "The provider's network provides a DHCP relay service to the
       customer.";
  }

  identity provider-dhcp-slaac {
    if-feature "vpn-common:ipv6";
    base address-allocation-type;
    description
      "The provider's network provides a DHCP service to the
       customer as well as IPv6 Stateless Address
       Autoconfiguration (SLAAC).";
    reference
      "RFC 4862: IPv6 Stateless Address Autoconfiguration";
  }

  identity static-address {
    base address-allocation-type;
    description
      "The provider's network provides static IP addressing to the
       customer.";
  }

  identity slaac {
    if-feature "vpn-common:ipv6";
    base address-allocation-type;
    description
      "The provider's network uses IPv6 SLAAC to provide
       addressing to the customer.";
    reference
      "RFC 4862: IPv6 Stateless Address Autoconfiguration";
  }

  identity dynamic-infra {
    base address-allocation-type;
    description
      "The IP address is dynamically allocated by the hosting
       infrastrcture.";
  }

  identity local-defined-next-hop {
    description
      "Base identity of local defined next hops.";
  }

  identity discard {
    base local-defined-next-hop;
    description
      "Indicates an action to discard traffic for the
       corresponding destination.
       For example, this can be used to black-hole traffic.";
  }

  identity local-link {
    base local-defined-next-hop;
    description
      "Treat traffic towards addresses within the specified
       next-hop prefix as though they are connected to a local
       link.";
  }

  identity l2-tunnel-type {
    description
      "Base identity for Layer 2 tunnel selection under the VPN
       network access.";
  }

  identity pseudowire {
    base l2-tunnel-type;
    description
      "Pseudowire tunnel termination in the VPN network access.";
  }

  identity vpls {
    base l2-tunnel-type;
    description
      "Virtual Private LAN Service (VPLS) tunnel termination in
       the VPN network access.";
  }

  identity vxlan {
    base l2-tunnel-type;
    description
      "Virtual eXtensible Local Area Network (VXLAN) tunnel
       termination in the VPN network access.";
  }

  identity precedence-type {
    description
      "Redundancy type. The service can be created
       with primary and secondary tagging.";
  }

  identity primary {
    base precedence-type;
    description
      "Identifies the main attachment circuit.";
  }

  identity secondary {
    base precedence-type;
    description
      "Identifies the secondary attachment circuit.";
  }

  /* Typedefs */

  typedef predefined-next-hop {
    type identityref {
      base local-defined-next-hop;
    }
    description
      "Predefined next-hop designation for locally generated
       routes.";
  }

  typedef area-address {
    type string {
      pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}';
    }
    description
      "This type defines the area address format.";
  }

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

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

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

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

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

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

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

  /*
    typedef bearer-reference {
      type leafref {
        path "/ac-svc:bearers/ac-svc:bearer/ac-svc:id";
      }
      description
        "Defines a type to a bearer for referencing purposes.";
    }*/
  // L2 connection

  grouping l2-connection-profile {
    description
      "Defines Layer 2 protocols and parameters that can be
       factorized when provisioning Layer 2 connectivity.";
    container encapsulation {
      description
        "Container for Layer 2 encapsulation.";
      leaf type {
        type identityref {
          base vpn-common:encapsulation-type;
        }
        //default "vpn-common:priority-tagged";
        description
          "Encapsulation type.  By default, the type
           of the tagged interface is 'priority-tagged'.";
      }
      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.";
        leaf tag-type {
          type identityref {
            base vpn-common:tag-type;
          }
          default "vpn-common:c-vlan";
          description
            "Tag type.  By default, the tag type is 'c-vlan'.";
        }
        leaf cvlan-id {
          type uint16 {
            range "1..4094";
          }
          description
            "VLAN identifier.";
        }
      }
      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.";
        leaf tag-type {
          type identityref {
            base vpn-common:tag-type;
          }
          default "vpn-common:s-c-vlan";
          description
            "Tag type.";
        }
        leaf svlan-id {
          type uint16;
          mandatory true;
          description
            "Service VLAN (S-VLAN) identifier.";
        }
        leaf cvlan-id {
          type uint16;
          mandatory true;
          description
            "Customer VLAN (C-VLAN) identifier.";
        }
      }
    }
  }

  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;
        }
        //default "vpn-common:priority-tagged";
        description
          "Encapsulation type.  By default, the type of the tagged
           interface is 'priority-tagged'.";
      }
      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.";
        leaf tag-type {
          type identityref {
            base vpn-common:tag-type;
          }
          default "vpn-common:c-vlan";
          description
            "Tag type.  By default, the tag type is 'c-vlan'.";
        }
        leaf cvlan-id {
          type uint16 {
            range "1..4094";
          }
          description
            "VLAN identifier.";
        }
      }
      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.";
        leaf tag-type {
          type identityref {
            base vpn-common:tag-type;
          }
          default "vpn-common:c-vlan";
          description
            "Tag type.  By default, the tag type is 'c-vlan'.";
        }
      }
      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.";
        leaf tag-type {
          type identityref {
            base vpn-common:tag-type;
          }
          default "vpn-common:s-c-vlan";
          description
            "Tag type.";
        }
        leaf svlan-id {
          type uint16;
          mandatory true;
          description
            "Service VLAN (S-VLAN) identifier.";
        }
        leaf cvlan-id {
          type uint16;
          mandatory true;
          description
            "Customer VLAN (C-VLAN) identifier.";
        }
      }
    }
    choice l2-service {
      description
        "The Layer 2 connectivity service can be provided by indicating
         a pointer to an L2VPN or by specifying a Layer 2 tunnel
         service.";
      container l2-tunnel-service {
        description
          "Defines a Layer 2 tunnel termination.
           It is only applicable when a tunnel is required.
           The supported values are 'pseudowire', 'vpls', and 'vxlan'.
           Other values may be defined, if needed.";
        leaf type {
          type identityref {
            base l2-tunnel-type;
          }
          description
            "Selects the tunnel termination option for each AC
             Endpoint.";
        }
        container pseudowire {
          when "derived-from-or-self(../type, 'pseudowire')" {
            description
              "Only applies when the Layer 2 service type is
               'pseudowire'.";
          }
          description
            "Includes pseudowire termination parameters.";
          leaf vcid {
            type uint32;
            description
              "Indicates a pseudowire (PW) or virtual circuit (VC)
               identifier.";
          }
          leaf far-end {
            type union {
              type uint32;
              type inet:ip-address;
            }
            description
              "Neighbor reference.";
            reference
              "RFC 8077: Pseudowire Setup and Maintenance
                         Using the Label Distribution Protocol
                         (LDP), Section 6.1";
          }
        }
        container vpls {
          when "derived-from-or-self(../type, 'vpls')" {
            description
              "Only applies when the Layer 2 service type is 'vpls'.";
          }
          description
            "VPLS termination parameters.";
          leaf vcid {
            type uint32;
            description
              "VC identifier.";
          }
          leaf-list far-end {
            type union {
              type uint32;
              type inet:ip-address;
            }
            description
              "Neighbor reference.";
          }
        }
        container vxlan {
          when "derived-from-or-self(../type, 'vxlan')" {
            description
              "Only applies when the Layer 2 service type is 'vxlan'.";
          }
          description
            "VXLAN termination parameters.";
          leaf vni-id {
            type uint32;
            mandatory true;
            description
              "VXLAN Network Identifier (VNI).";
          }
          leaf peer-mode {
            type identityref {
              base vpn-common:vxlan-peer-mode;
            }
            default "vpn-common:static-mode";
            description
              "Specifies the VXLAN access mode.  By default,
               the peer mode is set to 'static-mode'.";
          }
          leaf-list peer-ip-address {
            type inet:ip-address;
            description
              "List of a peer's IP addresses.";
          }
        }
      }
      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.";
    }
  }

  grouping ip-connection-global-profile {
    description
      "Defines IP connection parameters.";
    container ipv4 {
      if-feature "vpn-common:ipv4";
      description
        "IPv4-specific parameters.";
      leaf prefix-length {
        type uint8 {
          range "0..32";
        }
        description
          "Subnet prefix length expressed in bits.
           It is applied to both local and customer addresses.";
      }
      leaf address-allocation-type {
        type identityref {
          base address-allocation-type;
        }
        must "not(derived-from-or-self(current(), 'slaac') or "
           + "derived-from-or-self(current(), "
           + "'provider-dhcp-slaac'))" {
          error-message "SLAAC is only applicable to IPv6.";
        }
        default "static-address";
        description
          "Defines how addresses are allocated to the peer site.

           If there is no value for the address allocation type,
           then IPv4 addressing is not enabled.";
      }
      choice allocation-type {
        description
          "Choice of the IPv4 address allocation.";
        case dynamic {
          description
            "When the addresses are allocated by DHCP or other
             dynamic means local to the infrastructure.";
          choice provider-dhcp {
            description
              "Parameters related to DHCP-allocated addresses. IP
               addresses are allocated by DHCP, which is provided by
               the operator.";
            leaf dhcp-service-type {
              type enumeration {
                enum server {
                  description
                    "Local DHCP server.";
                }
                enum relay {
                  description
                    "Local DHCP relay.  DHCP requests are relayed to
                     a provider's server.";
                }
              }
              description
                "Indicates the type of DHCP service to be enabled on
                 this AC.";
            }
          }
          choice dhcp-relay {
            description
              "The DHCP relay is provided by the operator.";
            container customer-dhcp-servers {
              description
                "Container for a list of the customer's DHCP servers.";
              leaf-list server-ip-address {
                type inet:ipv4-address;
                description
                  "IPv4 addresses of the customer's DHCP server.";
              }
            }
          }
        }
      }
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific parameters.";
      leaf prefix-length {
        type uint8 {
          range "0..128";
        }
        description
          "Subnet prefix length expressed in bits.
           It is applied to both local and customer addresses.";
      }
      leaf address-allocation-type {
        type identityref {
          base address-allocation-type;
        }
        default "static-address";
        description
          "Defines how addresses are allocated.
           If there is no value for the address allocation type,
           then IPv6 addressing is disabled.";
      }
      choice allocation-type {
        description
          "Choice of the IPv6 address allocation.";
        case dynamic {
          description
            "When the addresses are allocated by DHCP or other
             dynamic means local to the infrastructure.";
          choice provider-dhcp {
            description
              "Parameters related to DHCP-allocated addresses.
               IP addresses are allocated by DHCP, which is provided
               by the operator.";
            leaf dhcp-service-type {
              type enumeration {
                enum server {
                  description
                    "Local DHCP server.";
                }
                enum relay {
                  description
                    "Local DHCP relay.  DHCP requests are relayed
                     to a provider's server.";
                }
              }
              description
                "Indicates the type of DHCP service to
                 be enabled on this access.";
            }
          }
          choice dhcp-relay {
            description
              "The DHCP relay is provided by the operator.";
            container customer-dhcp-servers {
              description
                "Container for a list of the customer's DHCP servers.";
              leaf-list server-ip-address {
                type inet:ipv6-address;
                description
                  "IPv6 addresses of the customer's DHCP server.";
              }
            }
          }
        }
      }
    }
  }

  grouping ip-connection {
    description
      "Defines IP connection parameters.";
    container ipv4 {
      if-feature "vpn-common:ipv4";
      description
        "IPv4-specific parameters.";
      leaf local-address {
        type inet:ipv4-address;
        description
          "The IP address used at the provider's interface.";
      }
      leaf virtual-address {
        type inet:ipv4-address;
        description
          "This addresss may be used for redundancy purposes.";
      }
      leaf prefix-length {
        type uint8 {
          range "0..32";
        }
        description
          "Subnet prefix length expressed in bits.
           It is applied to both local and customer addresses.";
      }
      leaf address-allocation-type {
        type identityref {
          base address-allocation-type;
        }
        must "not(derived-from-or-self(current(), 'slaac') or "
           + "derived-from-or-self(current(), "
           + "'provider-dhcp-slaac'))" {
          error-message "SLAAC is only applicable to IPv6.";
        }
        default "static-address";
        description
          "Defines how addresses are allocated to the peer site.

           If there is no value for the address allocation type,
           then IPv4 addressing is not enabled.";
      }
      choice allocation-type {
        description
          "Choice of the IPv4 address allocation.";
        case dynamic {
          description
            "When the addresses are allocated by DHCP or other
             dynamic means local to the infrastructure.";
          choice address-assign {
            default "number";
            description
              "A choice for how IPv4 addresses are assigned.";
            case number {
              leaf number-of-dynamic-address {
                type uint16;
                default "1";
                description
                  "Specifies the number of IP addresses to be
                   assigned to the customer on this access.";
              }
            }
            case explicit {
              container customer-addresses {
                description
                  "Container for customer addresses to be allocated
                   using DHCP.";
                list address-pool {
                  key "pool-id";
                  description
                    "Describes IP addresses to be dyncamically allocated.

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

                     When both 'start-address' and 'end-address' are
                     specified, it implies a range inclusive of both
                     addresses.";
                  leaf pool-id {
                    type string;
                    description
                      "A pool identifier for the address range from
                       'start-address' to 'end-address'.";
                  }
                  leaf start-address {
                    type inet:ipv4-address;
                    mandatory true;
                    description
                      "Indicates the first address in the pool.";
                  }
                  leaf end-address {
                    type inet:ipv4-address;
                    description
                      "Indicates the last address in the pool.";
                  }
                }
              }
            }
          }
          choice provider-dhcp {
            description
              "Parameters related to DHCP-allocated addresses. IP
               addresses are allocated by DHCP, which is provided by
               the operator.";
            leaf dhcp-service-type {
              type enumeration {
                enum server {
                  description
                    "Local DHCP server.";
                }
                enum relay {
                  description
                    "Local DHCP relay.  DHCP requests are relayed to
                     a provider's server.";
                }
              }
              description
                "Indicates the type of DHCP service to be enabled on
                 this AC.";
            }
          }
          choice dhcp-relay {
            description
              "The DHCP relay is provided by the operator.";
            container customer-dhcp-servers {
              description
                "Container for a list of the customer's DHCP servers.";
              leaf-list server-ip-address {
                type inet:ipv4-address;
                description
                  "IPv4 addresses of the customer's DHCP server.";
              }
            }
          }
        }
        case static-addresses {
          description
            "Lists the IPv4 addresses that are used.";
          /*leaf primary-address {
            type leafref {
              path "../address/address-id";
            }
            description
              "Primary IP address of the connection.";
          }*/
          list address {
            key "address-id";
            ordered-by user;
            description
              "Lists the IPv4 addresses that are used. The first address of
               the list is the primary address of the connection.";
            leaf address-id {
              type string;
              description
                "An identifier of the static IPv4 address.";
            }
            leaf customer-address {
              type inet:ipv4-address;
              description
                "An IPv4 address of the customer side.";
            }
          }
        }
      }
    }
    container ipv6 {
      if-feature "vpn-common:ipv6";
      description
        "IPv6-specific parameters.";
      leaf local-address {
        type inet:ipv6-address;
        description
          "IPv6 address of the provider side.";
      }
      leaf virtual-address {
        type inet:ipv6-address;
        description
          "This addresss may be used for redundancy purposes.";
      }
      leaf prefix-length {
        type uint8 {
          range "0..128";
        }
        description
          "Subnet prefix length expressed in bits.
           It is applied to both local and customer addresses.";
      }
      leaf address-allocation-type {
        type identityref {
          base address-allocation-type;
        }
        default "static-address";
        description
          "Defines how addresses are allocated.
           If there is no value for the address allocation type,
           then IPv6 addressing is disabled.";
      }
      choice allocation-type {
        description
          "Choice of the IPv6 address allocation.";
        case dynamic {
          description
            "When the addresses are allocated by DHCP or other
             dynamic means local to the infrastructure.";
          choice address-assign {
            default "number";
            description
              "A choice for how IPv6 addresses are assigned.";
            case number {
              leaf number-of-dynamic-address {
                type uint16;
                default "1";
                description
                  "Specifies the number of IP addresses to be assigned to
                   the customer on this access.";
              }
            }
            case explicit {
              container customer-addresses {
                description
                  "Container for customer addresses to be allocated
                   using DHCP.";
                list address-pool {
                  key "pool-id";
                  description
                    "Describes IP addresses to be dyncamically allocated.

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

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

  /* Routing */

  grouping routing-profile {
    description
      "Defines routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      leaf type {
        type identityref {
          base vpn-common:routing-protocol-type;
        }
        description
          "Type of routing protocol.";
      }
      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.";
        }
      }
      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";
            leaf name {
              type string;
              description
                "Name of the BGP peer-group";
            }
            leaf local-as {
              type inet:as-number;
              config false;
              description
                "Indicates a local AS Number (ASN). This ASN is exposed
                 to a customer so that it knows which ASN to use
                 to set up a BGP session.";
            }
            leaf peer-as {
              type inet:as-number;
              description
                "Indicates the customer's ASN when the customer
                 requests BGP routing.";
            }
            leaf address-family {
              type identityref {
                base vpn-common:address-family;
              }
              description
                "This node contains the address families to be
                 activated. 'dual-stack' means that both IPv4 and IPv6e
                 will b activated.";
            }
          }
        }
      }
      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.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both are to be
             activated.";
        }
        leaf area-id {
          type yang:dotted-quad;
          mandatory true;
          description
            "Area ID.";
          reference
            "RFC 4577: OSPF as the Provider/Customer Edge Protocol
                       for BGP/MPLS IP Virtual Private Networks
                       (VPNs), Section 4.2.3
             RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
                       (PE-CE) Routing Protocol, Section 4.2";
        }
        leaf metric {
          type uint16;
          default "1";
          description
            "Metric of the AC.  It is used in the routing state
             calculation and path selection.";
        }
      }
      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.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both are to
             be activated.";
        }
        leaf area-address {
          type area-address;
          mandatory true;
          description
            "Area address.";
        }
      }
      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.";
        }
      }
    }
  }

  grouping encryption-choice {
    description
      "Container for the encryption profile.";
    choice profile {
      description
        "Choice for the encryption profile.";
      case provider-profile {
        leaf provider-profile {
          type ac-svc: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.";
        }
      }
    }
  }

  grouping bgp-authentication {
    description
      "Grouping for BGP authentication parameters.";
    container authentication {
      description
        "Container for BGP authentication  parameters.";
      leaf enable {
        type boolean;
        default "false";
        description
          "Enables or disables authentication.";
      }
      container keying-material {
        when "../enable = 'true'";
        description
          "Container for describing how a BGP
           routing session is to be secured
           between a PE and a CE.";
        choice option {
          description
            "Choice of authentication options.";
          case ao {
            description
              "Uses the TCP Authentication Option (TCP-AO).";
            reference
              "RFC 5925: The TCP Authentication Option";
            leaf enable-ao {
              type boolean;
              description
                "Enables the TCP-AO.";
            }
            leaf ao-keychain {
              type key-chain:key-chain-ref;
              description
                "Reference to the TCP-AO key chain.";
              reference
                "RFC 8177: YANG Data Model for Key Chains";
            }
          }
          case md5 {
            description
              "Uses MD5 to secure the session.";
            reference
              "RFC 4364: BGP/MPLS IP Virtual Private Networks
                         (VPNs), Section 13.2";
            leaf md5-keychain {
              type key-chain:key-chain-ref;
              description
                "Reference to the MD5 key chain.";
              reference
                "RFC 8177: YANG Data Model for Key Chains";
            }
          }
          case explicit {
            leaf key-id {
              type uint32;
              description
                "Key identifier.";
            }
            leaf key {
              type string;
              description
                "BGP authentication key.

                 This model only supports the subset of keys that
                 are representable as ASCII strings.";
            }
            leaf crypto-algorithm {
              type identityref {
                base key-chain:crypto-algorithm;
              }
              description
                "Indicates the cryptographic algorithm associated
                 with the key.";
            }
          }
        }
      }
    }
  }

  grouping ospf-authentication {
    description
      "Authentication configuration.";
    container authentication {
      description
        "Container for OSPF authentication  parameters.";
      leaf enable {
        type boolean;
        default "false";
        description
          "Enables or disables authentication.";
      }
      container keying-material {
        when "../enable = 'true'";
        description
          "Container for describing how an OSPF session is to be secured
           for this AC.";
        choice option {
          description
            "Options for OSPF authentication.";
          case auth-key-chain {
            leaf key-chain {
              type key-chain:key-chain-ref;
              description
                "Name of the key chain.";
            }
          }
          case auth-key-explicit {
            leaf key-id {
              type uint32;
              description
                "Key identifier.";
            }
            leaf key {
              type string;
              description
                "OSPF authentication key.

                 This model only supports the subset of keys that
                 are representable as ASCII strings.";
            }
            leaf crypto-algorithm {
              type identityref {
                base key-chain:crypto-algorithm;
              }
              description
                "Indicates the cryptographic algorithm associated with
                 the key.";
            }
          }
        }
      }
    }
  }

  grouping isis-authentication {
    description
      "IS-IS authentication configuration.";
    container authentication {
      description
        "Container for IS-IS authentication  parameters.";
      leaf enable {
        type boolean;
        default "false";
        description
          "Enables or disables authentication.";
      }
      container keying-material {
        when "../enable = 'true'";
        description
          "Container for describing how an IS-IS session for an AC.";
        choice option {
          description
            "Options for IS-IS authentication.";
          case auth-key-chain {
            leaf key-chain {
              type key-chain:key-chain-ref;
              description
                "Name of the key chain.";
            }
          }
          case auth-key-explicit {
            leaf key-id {
              type uint32;
              description
                "Key identifier.";
            }
            leaf key {
              type string;
              description
                "IS-IS authentication key.

                 This model only supports the subset of keys that
                 are representable as ASCII strings.";
            }
            leaf crypto-algorithm {
              type identityref {
                base key-chain:crypto-algorithm;
              }
              description
                "Indicates the cryptographic algorithm associated with
                 the key.";
            }
          }
        }
      }
    }
  }

  grouping rip-authentication {
    description
      "RIP authentication configuration.";
    container authentication {
      description
        "Container for RIP authentication  parameters.";
      leaf enable {
        type boolean;
        default "false";
        description
          "Enables or disables authentication.";
      }
      container keying-material {
        when "../enable = 'true'";
        description
          "Container for describing how a RIP
           session is to be secured between a CE
           and a PE.";
        choice option {
          description
            "Specifies the authentication
             scheme.";
          case auth-key-chain {
            leaf key-chain {
              type key-chain:key-chain-ref;
              description
                "Name of the key chain.";
            }
          }
          case auth-key-explicit {
            leaf key {
              type string;
              description
                "RIP authentication key.

                 This model only supports the subset of keys that
                 are representable as ASCII strings.";
            }
            leaf crypto-algorithm {
              type identityref {
                base key-chain:crypto-algorithm;
              }
              description
                "Indicates the cryptographic algorithm associated with
                 the key.";
            }
          }
        }
      }
    }
  }

  grouping ac-security {
    description
      "AC-specific security parameters.";
    container encryption {
      if-feature "vpn-common:encryption";
      description
        "Container for AC security encryption.";
      leaf enabled {
        type boolean;
        default "false";
        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;
    }
  }

  grouping routing {
    description
      "Defines routing protocols.";
    list routing-protocol {
      key "id";
      description
        "List of routing protocols used on the AC.";
      leaf id {
        type string;
        description
          "Unique identifier for the routing protocol.";
      }
      leaf type {
        type identityref {
          base vpn-common:routing-protocol-type;
        }
        description
          "Type of routing protocol.";
      }
      list routing-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.";
        }
      }
      container static {
        when "derived-from-or-self(../type, "
           + "'vpn-common:static-routing')" {
          description
            "Only applies when the protocol is a
             static routing protocol.";
        }
        description
          "Configuration specific to static
           routing.";
        container cascaded-lan-prefixes {
          description
            "LAN prefixes from the customer.";
          list ipv4-lan-prefixes {
            if-feature "vpn-common:ipv4";
            key "lan next-hop";
            description
              "List of LAN prefixes for the site.";
            leaf lan {
              type inet:ipv4-prefix;
              description
                "LAN prefixes.";
            }
            leaf lan-tag {
              type string;
              description
                "Internal tag to be used in VPN policies.";
            }
            leaf next-hop {
              type union {
                type inet:ip-address;
                type predefined-next-hop;
              }
              description
                "The next hop that is to be used for the static route.
                 This may be specified as an IP address or a
                 predefined next-hop type (e.g., 'discard' or
                 'local-link').";
            }
            leaf metric {
              type uint32;
              description
                "Indicates the metric associated with the static route.";
            }
            uses vpn-common:service-status;
          }
          list ipv6-lan-prefixes {
            if-feature "vpn-common:ipv6";
            key "lan next-hop";
            description
              "List of LAN prefixes for the site.";
            leaf lan {
              type inet:ipv6-prefix;
              description
                "LAN prefixes.";
            }
            leaf lan-tag {
              type string;
              description
                "Internal tag to be used in VPN policies.";
            }
            leaf next-hop {
              type union {
                type inet:ip-address;
                type predefined-next-hop;
              }
              description
                "The next hop that is to be used for the static route.
                 This may be specified as an IP address or a predefined
                 next-hop type (e.g., 'discard' or 'local-link').";
            }
            leaf metric {
              type uint32;
              description
                "Indicates the metric associated with the static route.";
            }
            uses vpn-common:service-status;
          }
        }
      }
      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";
            leaf name {
              type string;
              description
                "Name of the BGP peer-group.";
            }
            leaf local-address {
              type inet:ip-address;
              config false;
              description
                "The local IP address that will be used to establish
                 the BGP session.";
            }
            leaf local-as {
              type inet:as-number;
              config false;
              description
                "Indicates a local AS Number (ASN), if
                 an ASN distinct from the ASN configured
                 at the peer group level is needed.";
            }
            leaf peer-as {
              type inet:as-number;
              description
                "Indicates the customer's ASN when the customer
                 requests BGP routing.";
            }
            leaf address-family {
              type identityref {
                base vpn-common:address-family;
              }
              description
                "This node contains the address families
                 to be activated.  'dual-stack' means
                 that both IPv4 and IPv6 will be activated.";
            }
            uses 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.";
          }
          leaf local-as {
            type inet:as-number;
            config false;
            description
              "Indicates a local ASN.";
          }
          leaf peer-as {
            type inet:as-number;
            description
              "Indicates the customer's ASN when
               the customer requests BGP routing.";
          }
          leaf address-family {
            type identityref {
              base vpn-common:address-family;
            }
            description
              "This node contains the address families
               to be activated.  'dual-stack' means
               that both IPv4 and IPv6 will be activated.";
          }
          uses 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.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or
             both are to be activated.";
        }
        leaf area-id {
          type yang:dotted-quad;
          mandatory true;
          description
            "Area ID.";
          reference
            "RFC 4577: OSPF as the Provider/Customer Edge Protocol
                       for BGP/MPLS IP Virtual Private Networks
                       (VPNs), Section 4.2.3
             RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
                       (PE-CE) Routing Protocol, Section 4.2";
        }
        leaf metric {
          type uint16;
          default "1";
          description
            "Metric of the ACE.  It is used in the routing state
             calculation and path selection.";
        }
        uses 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.";
        leaf address-family {
          type identityref {
            base vpn-common:address-family;
          }
          description
            "Indicates whether IPv4, IPv6, or both
             are to be activated.";
        }
        leaf area-address {
          type area-address;
          mandatory true;
          description
            "Area address.";
        }
        uses 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 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;
      }
    }
  }

  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.";
    }
    // Layer 2
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that
         are required to enable AC connectivity.";
      uses l2-connection;
    }
    // Layer 3
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses ip-connection;
    }
    // Routing
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing;
    }
    // OAM
    container oam {
      description
        "Defines the Operations, Administration, and Maintenance
         (OAM) mechanisms used.

         BFD is set as a fault detection mechanism,
         but other mechanisms can be defined in the future.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        leaf holdtime {
          type uint32;
          units "milliseconds";
          description
            "Expected BFD holdtime.

             The customer may impose some fixed values
             for the holdtime period if the provider allows
             the customer to use this function.

             If the provider doesn't allow the customer to
             use this function, fixed values will not be set.";
          reference
            "RFC 5880: Bidirectional Forwarding
                       Detection (BFD), Section 6.8.18";
        }
        uses vpn-common:service-status;
      }
    }
    // Security 
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security;
    }
  }

  grouping ac-profile {
    description
      "Grouping for an attachment circuit.";
    leaf id {
      type string;
      description
        "An identifier of the AC.";
    }
    // Layer 2
    container l2-connection {
      description
        "Defines Layer 2 protocols and parameters that
         are required to enable AC connectivity.";
      uses l2-connection-profile;
    }
    // Layer 3
    container ip-connection {
      description
        "Defines IP connection parameters.";
      uses ip-connection-global-profile;
    }
    // Routing
    container routing-protocols {
      description
        "Defines routing protocols.";
      uses routing-profile;
    }
    // OAM
    container oam {
      description
        "Defines the OAM mechanisms used.

         BFD is set as a fault detection mechanism, but
         other mechanisms can be defined in the future.";
      container bfd {
        if-feature "vpn-common:bfd";
        description
          "Container for BFD.";
        leaf holdtime {
          type uint32;
          units "milliseconds";
          description
            "Expected BFD holdtime.

             The customer may impose some fixed values
             for the holdtime period if the provider allows
             the customer to use this function.

             If the provider doesn't allow the customer to use
             this function, fixed values will not be set.";
          reference
            "RFC 5880: Bidirectional Forwarding
                       Detection (BFD), Section 6.8.18";
        }
      }
    }
    // Security 
    container security {
      description
        "AC-specific security parameters.";
      uses ac-security;
    }
  }

  grouping op-instructions {
    description
      "Scheduling instructions.";
    leaf requested-start {
      type yang:date-and-time;
      description
        "Indicates the requested date and time when the AC is
         expected to be active.";
    }
    leaf requested-stop {
      type yang:date-and-time;
      description
        "Indicates the requested date and time when the AC is
         expected to be disabled.";
    }
    leaf actual-start {
      type yang:date-and-time;
      config false;
      description
        "Indciates the actual date and time when the AC
         actually was enabled.";
    }
    leaf actual-stop {
      type yang:date-and-time;
      config false;
      description
        "Indciates the actual date and time when the AC
         actually was disabled.";
    }
  }

  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 bearers {
    description
      "Main container for the bearers.";
    list bearer {
      key "id";
      description
        "Maintains a list of bearers.";
      leaf id {
        type string;
        description
          "An identifier of the bearer.";
      }
      leaf description {
        type string;
        description
          "A description of this bearer.";
      }
      container customer-device {
        description
          "Identification of the customer device that terminates the
           bearer.";
        leaf device-id {
          type string;
          description
            "Identifier for the device.";
        }
        container location {
          description
            "Location of the node.";
          leaf address {
            type string;
            description
              "Address (number and street) of the site.";
          }
          leaf postal-code {
            type string;
            description
              "Postal code of the site.";
          }
          leaf state {
            type string;
            description
              "State of the site.  This leaf can also be
               used to describe a region for a country that
               does not have states.";
          }
          leaf city {
            type string;
            description
              "City of the site.";
          }
          leaf country-code {
            type string {
              pattern '[A-Z]{2}';
            }
            description
              "Country of the site.
               Expressed as ISO ALPHA-2 code.";
          }
        }
      }
      leaf requested-type {
        type identityref {
          base bearer-type;
        }
        description
          "Type of the requested bearer (e.g., Ethernet, or wireless)";
      }
      leaf bearer-reference {
        if-feature "vpn-common:bearer-reference";
        type string;
        config false;
        description
          "This is an internal reference for the service provider
           to identify the bearer associated with this AC.";
      }
      uses op-instructions;
    }
  }
  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-profile;
    }
    list ac-node-group {
      key "id";
      description
        "Maintains a list of per-node AC profiles.";
      leaf id {
        type string;
        description
          "An identifier of the AC group.";
      }
      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 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-node-profile {
        type ac-node-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 to.";
        }
        leaf precedence {
          type identityref {
            base precedence-type;
          }
          description
            "Defines service redundancy in transport
             network.";
        }
      }
      uses ac;
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="glue">
        <name>Augmentations to Existing Service-Specific Models to Bind a Service to an AC</name>
        <section anchor="tree-structure">
          <name>Tree Structure</name>
          <t>ACs created using the "ietf-ac-svc" module can be referenced in other modules (e.g., L2SM, L3SM, L2NM, L3NM, and Slicing). Some augmentations are required to that aim as shown in <xref target="ac-glue-tree"/>.</t>
          <figure anchor="ac-glue-tree">
            <name>Augmenting Other Service-Specific Modules</name>
            <artwork align="center"><![CDATA[
module: ietf-ac-glue
  augment /l3vpn-svc:l3vpn-svc/l3vpn-svc:sites/l3vpn-svc:site
            /l3vpn-svc:site-network-accesses
            /l3vpn-svc:site-network-access:
    +--rw ac-ref*   ac-svc:attachment-circuit-reference
  augment /l2vpn-svc:l2vpn-svc/l2vpn-svc:sites/l2vpn-svc:site
            /l2vpn-svc:site-network-accesses
            /l2vpn-svc:site-network-access:
    +--rw ac-ref*   ac-svc:attachment-circuit-reference
  augment /l3nm:l3vpn-ntw/l3nm:vpn-services/l3nm:vpn-service
            /l3nm:vpn-nodes/l3nm:vpn-node/l3nm:vpn-network-accesses
            /l3nm:vpn-network-access:
    +--rw ac-ref*   ac-svc:attachment-circuit-reference
  augment /l2nm:l2vpn-ntw/l2nm:vpn-services/l2nm:vpn-service
            /l2nm:vpn-nodes/l2nm:vpn-node/l2nm:vpn-network-accesses
            /l2nm:vpn-network-access:
    +--rw ac-ref*   ac-svc:attachment-circuit-reference
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:sdps/ietf-nss:sdp:
    +--rw ac-ref*   ac-svc:attachment-circuit-reference
]]></artwork>
          </figure>
        </section>
        <section anchor="module">
          <name>Module</name>
          <sourcecode markers="true" name="ietf-ac-glue@2022-11-30.yang"><![CDATA[
module ietf-ac-glue {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ac-glue";
  prefix ac-glue;

  import ietf-l3vpn-svc {
    prefix l3vpn-svc;
    reference
      "RFC 8299: xxxx";
  }
  import ietf-l2vpn-svc {
    prefix l2vpn-svc;
    reference
      "RFC 8466: xxxx";
  }
  import ietf-l3vpn-ntw {
    prefix l3nm;
    reference
      "RFC 9182: xxxx";
  }
  import ietf-l2vpn-ntw {
    prefix l2nm;
    reference
      "RFC 9291: xxxx";
  }
  import ietf-network-slice-service {
    prefix ietf-nss;
    reference
      "RFC XXXX: xxxx";
  }
  import ietf-ac-svc {
    prefix ac-svc;
    reference
      "RFC xxx: XXXX";
  }

  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>";
  description
    "This YANG module defines a generic YANG model for
     the configuration of attachment circuits.

     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 Network Data Model for Attachment Circuits";
  }

grouping ac-glue {
    description
      "A set of AC-related data.";
    leaf-list ac-ref {
      type ac-svc:attachment-circuit-reference;
      description
        "A reference to the AC as exposed at the service that 
         was provisionned using the AC module.";
    }
}


  augment "/l3vpn-svc:l3vpn-svc"
        + "/l3vpn-svc:sites/l3vpn-svc:site"
        + "/l3vpn-svc:site-network-accesses/l3vpn-svc:site-network-access" {
    description
      "Augments VPN network access with AC provisioning details.";

    uses ac-glue;
  }

  augment "/l2vpn-svc:l2vpn-svc"
        + "/l2vpn-svc:sites/l2vpn-svc:site"
        + "/l2vpn-svc:site-network-accesses/l2vpn-svc:site-network-access" {
    description
      "Augments VPN network access with AC provisioning details.";

    uses ac-glue;
  }

  augment "/l3nm:l3vpn-ntw/l3nm:vpn-services/l3nm:vpn-service"
        + "/l3nm:vpn-nodes/l3nm:vpn-node"
        + "/l3nm:vpn-network-accesses/l3nm:vpn-network-access" {
    description
      "Augments VPN network access with AC provisioning details.";

    uses ac-glue;
  }

  augment "/l2nm:l2vpn-ntw/l2nm:vpn-services/l2nm:vpn-service"
        + "/l2nm:vpn-nodes/l2nm:vpn-node"
        + "/l2nm:vpn-network-accesses/l2nm:vpn-network-access" {
    description
      "Augments VPN network access with AC provisioning details.";

    uses ac-glue;
  }

  augment "/ietf-nss:network-slice-services/ietf-nss:slice-service"
        + "/ietf-nss:sdps/ietf-nss:sdp" {
    description
      "Augments VPN network access with AC provisioning details.";

    uses ac-glue;
  }
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG modules specified in this document define schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in these YANG modules that are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   and delete operations to these data nodes without proper protection
   or authentication can have a negative effect on network operations.
   These are the subtrees and data nodes and their sensitivity/
   vulnerability in the "ietf-ac-svc" module:</t>
      <ul spacing="normal">
        <li>TBC</li>
        <li>TBC</li>
      </ul>
      <t>Some of the readable data nodes in these YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  These are the subtrees and data
   nodes and their sensitivity/vulnerability in the "ietf-ac-svc" module:</t>
      <ul spacing="normal">
        <li>TBC</li>
        <li>TBC</li>
      </ul>
      <t>Several data nodes ('bgp', 'ospf', 'isis', and 'rip') rely
   upon <xref target="RFC8177"/> for authentication purposes.  As such, the AC service module
   inherits the security considerations discussed in Section 5 of
   <xref target="RFC8177"/>.  Also, these data nodes support supplying explicit keys as
   strings in ASCII format.  The use of keys in hexadecimal string
   format would afford greater key entropy with the same number of key-
   string octets.  However, such a format is not included in this
   version of the AC service model, because it is not supported by the underlying
   device modules (e.g., <xref target="RFC8695"/>).</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URIs in the "ns" subregistry within
   the "IETF XML Registry" <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-ac-svc
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.

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

   Name:  ietf-ac-svc
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-ac-glue
   Prefix:  ac-glue
   Reference:  RFC xxxx
]]></artwork>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ISO10589" target="https://www.iso.org/standard/30932.html">
          <front>
            <title>Information technology - Telecommunications and information exchange between systems - Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO8473)</title>
            <author>
              <organization>ISO</organization>
            </author>
            <date year="2002"/>
          </front>
        </reference>
        <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="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="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="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="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter">
              <organization/>
            </author>
            <author fullname="T. Li" initials="T." role="editor" surname="Li">
              <organization/>
            </author>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares">
              <organization/>
            </author>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems.  This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR).  These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP.  BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4577">
          <front>
            <title>OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen">
              <organization/>
            </author>
            <author fullname="P. Psenak" initials="P." surname="Psenak">
              <organization/>
            </author>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault">
              <organization/>
            </author>
            <date month="June" year="2006"/>
            <abstract>
              <t>Many Service Providers offer Virtual Private Network (VPN) services to their customers, using a technique in which customer edge routers (CE routers) are routing peers of provider edge routers (PE routers).  The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone.  This is known as a "BGP/MPLS IP VPN".  The base specification for BGP/MPLS IP VPNs presumes that the routing protocol on the interface between a PE router and a CE router is BGP.  This document extends that specification by allowing the routing protocol on the PE/CE interface to be the Open Shortest Path First (OSPF) protocol.</t>
              <t>This document updates RFC 4364.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4577"/>
          <seriesInfo name="DOI" value="10.17487/RFC4577"/>
        </reference>
        <reference anchor="RFC6565">
          <front>
            <title>OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol</title>
            <author fullname="P. Pillay-Esnault" initials="P." surname="Pillay-Esnault">
              <organization/>
            </author>
            <author fullname="P. Moyer" initials="P." surname="Moyer">
              <organization/>
            </author>
            <author fullname="J. Doyle" initials="J." surname="Doyle">
              <organization/>
            </author>
            <author fullname="E. Ertekin" initials="E." surname="Ertekin">
              <organization/>
            </author>
            <author fullname="M. Lundberg" initials="M." surname="Lundberg">
              <organization/>
            </author>
            <date month="June" year="2012"/>
            <abstract>
              <t>Many Service Providers (SPs) offer Virtual Private Network (VPN) services to their customers using a technique in which Customer Edge (CE) routers are routing peers of Provider Edge (PE) routers.  The Border Gateway Protocol (BGP) is used to distribute the customer's routes across the provider's IP backbone network, and Multiprotocol Label Switching (MPLS) is used to tunnel customer packets across the provider's backbone.  Support currently exists for both IPv4 and IPv6 VPNs; however, only Open Shortest Path First version 2 (OSPFv2) as PE-CE protocol is specified.  This document extends those specifications to support OSPF version 3 (OSPFv3) as a PE-CE routing protocol.  The OSPFv3 PE-CE functionality is identical to that of OSPFv2 except for the differences described in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6565"/>
          <seriesInfo name="DOI" value="10.17487/RFC6565"/>
        </reference>
        <reference anchor="RFC1195">
          <front>
            <title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title>
            <author fullname="R. Callon" initials="R." surname="Callon">
              <organization/>
            </author>
            <date month="December" year="1990"/>
            <abstract>
              <t>This memo specifies an integrated routing protocol, based on the OSI Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway protocol (IGP) to support TCP/IP as well as OSI.  This allows a single routing protocol to be used to support pure IP environments, pure OSI environments, and dual environments.  This specification was developed by the IS-IS working group of the Internet Engineering Task Force.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1195"/>
          <seriesInfo name="DOI" value="10.17487/RFC1195"/>
        </reference>
        <reference anchor="RFC5308">
          <front>
            <title>Routing IPv6 with IS-IS</title>
            <author fullname="C. Hopps" initials="C." surname="Hopps">
              <organization/>
            </author>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document specifies a method for exchanging IPv6 routing information using the IS-IS routing protocol.  The described method utilizes two new TLVs: a reachability TLV and an interface address TLV to distribute the necessary IPv6 information throughout a routing domain.  Using this method, one can route IPv6 along with IPv4 and OSI using a single intra-domain routing protocol.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5308"/>
          <seriesInfo name="DOI" value="10.17487/RFC5308"/>
        </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="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="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="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="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="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="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="27" month="January" 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).  The
   companion service model is specified in
   [I-D.boro-opsawg-teas-attachment-circuit].

   The module augments the 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-00"/>
        </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>BGP YANG Model for Service Provider Networks</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="13" month="October" year="2022"/>
            <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-15"/>
        </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="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>
        <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="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>
      </references>
    </references>
    <section anchor="full-tree">
      <name>Full Tree of the Service AC Module</name>
      <t>The full tree of the ACaaS module is shown in <xref target="d-svc-tree"/>.</t>
      <figure anchor="d-svc-tree">
        <name>AC Service Tree Structure</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 bearers
  |  +--rw bearer* [id]
  |     +--rw id                  string
  |     +--rw description?        string
  |     +--rw customer-device
  |     |  +--rw device-id?   string
  |     |  +--rw location
  |     |     +--rw address?        string
  |     |     +--rw postal-code?    string
  |     |     +--rw state?          string
  |     |     +--rw city?           string
  |     |     +--rw country-code?   string
  |     +--rw requested-type?     identityref
  |     +--ro bearer-reference?   string
  |     |       {vpn-common:bearer-reference}?
  |     +--rw requested-start?    yang:date-and-time
  |     +--rw requested-stop?     yang:date-and-time
  |     +--ro actual-start?       yang:date-and-time
  |     +--ro actual-stop?        yang:date-and-time
  +--rw attachment-circuits
     +--rw ac-global-profile* [id]
     |  +--rw id                   string
     |  +--rw l2-connection
     |  |  +--rw encapsulation
     |  |     +--rw type?    identityref
     |  |     +--rw dot1q
     |  |     |  +--rw tag-type?   identityref
     |  |     |  +--rw cvlan-id?   uint16
     |  |     +--rw qinq
     |  |        +--rw tag-type?   identityref
     |  |        +--rw svlan-id    uint16
     |  |        +--rw cvlan-id    uint16
     |  +--rw ip-connection
     |  |  +--rw ipv4 {vpn-common:ipv4}?
     |  |  |  +--rw prefix-length?                       uint8
     |  |  |  +--rw address-allocation-type?             identityref
     |  |  |  +--rw (allocation-type)?
     |  |  |     +--:(dynamic)
     |  |  |        +--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
     |  |  +--rw ipv6 {vpn-common:ipv6}?
     |  |     +--rw prefix-length?                       uint8
     |  |     +--rw address-allocation-type?             identityref
     |  |     +--rw (allocation-type)?
     |  |        +--:(dynamic)
     |  |           +--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
     |  +--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 bgp
     |  |     |  +--rw peer-groups
     |  |     |     +--rw peer-group* [name]
     |  |     |        +--rw name              string
     |  |     |        +--ro local-as?         inet:as-number
     |  |     |        +--rw peer-as?          inet:as-number
     |  |     |        +--rw address-family?   identityref
     |  |     +--rw ospf
     |  |     |  +--rw address-family?   identityref
     |  |     |  +--rw area-id           yang:dotted-quad
     |  |     |  +--rw metric?           uint16
     |  |     +--rw isis
     |  |     |  +--rw address-family?   identityref
     |  |     |  +--rw area-address      area-address
     |  |     +--rw rip
     |  |     |  +--rw address-family?   identityref
     |  |     +--rw vrrp
     |  |        +--rw address-family?   identityref
     |  +--rw oam
     |  |  +--rw bfd {vpn-common:bfd}?
     |  |     +--rw holdtime?   uint32
     |  +--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
     +--rw ac-node-group* [id]
     |  +--rw id                   string
     |  +--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 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 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 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 bfd {vpn-common:bfd}?
     |  |     +--rw holdtime?   uint32
     |  |     +--rw status
     |  |        +--rw admin-status
     |  |        |  +--rw status?        identityref
     |  |        |  +--rw last-change?   yang:date-and-time
     |  |        +--ro oper-status
     |  |           +--ro status?        identityref
     |  |           +--ro last-change?   yang:date-and-time
     |  +--rw security
     |     +--rw 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
     +--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]
        +--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 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 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 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 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 bfd {vpn-common:bfd}?
        |     +--rw holdtime?   uint32
        |     +--rw status
        |        +--rw admin-status
        |        |  +--rw status?        identityref
        |        |  +--rw last-change?   yang:date-and-time
        |        +--ro oper-status
        |           +--ro status?        identityref
        |           +--ro last-change?   yang:date-and-time
        +--rw security
           +--rw 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 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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
cqHQARxKkFmpi7pL2Q4CpVarMTwqfo+Kn7fWo+LnML457Fv5GdaaznPxxZ1H
8RCecHWkxC4iWbiQNrDYa+UNSkZ+Nu5hGjOOr1jarPGg8H3ubUKeVgHTWrj7
uQZYB9cM7XLVasfR5JgQvMMbmPN44BG9WlsSNnKt+prSJHk6Hfej3N+eDiEv
F2QXgQAh0LYy6rRYrZ/oPUauxmVtT8xhUqKDyJ5EZqDWmpBJliXA/fAf28Xk
VlW1RfHqtatvNNQmflRDcW6dtrRa1xvetFezDNwq8mnXmSAgFYE5vBxMZtAP
FpHmAifdmRPsVGkzjAgIMMp9hqkBOrWNsTc3NXAzAXe11yehwXOndVWYQ5x6
tYZaqiIvqmvazbXk02LiaDwicblaM56hMGutwDKpDt15VoqnSqs14sWXxi0a
h6SkzI4tZXZMKcM+CaXd0FJNtX2rXm1nq6iyrjVeTI0jbq//7jzqv3rRR/3X
V+tR//259F+92TmZ2izVmVVsVjLSHR8jVU01qc5zN7a46sxsUdKkOutw+VVn
1Vyz6sxkSb/qrH60UJ3VjwbVWS+zqOrs9ONVnfVSzOFvXtXZquJMSIPq7FZV
tVuozg21a1Vnb522tFrXW53q7K0in3adzVad9U5aqM4WTG1U55ph1KjONuh1
qrP+o6XqbP1oqTpbP1TFZtXZrSWfFhM3W3W2YJmpOrO6Kq3WiBdfHtXZHdLH
0393FtR/d5r0Xx6MzkfTKrYgL0ducIGDDp97u7xkkcrS5HVtG3mcZNz9RRTi
UArdx30iguMyTGMu4/Nl3yo2uSiyQVylhRN1+akCtxZ6xjEvhgBmqI4Sh3hw
WN4av3/YYXReWTZAeZcw0A5TBXqi8TD2WUvVVADqwzzO6JRnroXHyXZUODbF
2tlgssvwiuKp+1XiMJkAW1Sh8OulpaNU5fOim5j4FYyivXX99g6VY8rMQ+9g
iJKY4QEHfozkWfeLzbs7eHXSO30l321/8QWYUDA1/O+d7Z1tKnPUC4568PKo
d7L5dPv5i7s7XmBz88W2/L299fQ5FT47kn10n21v3YkASn4QV79WhEMsM0Mj
EWOKqGg4TYeAyRuMoOdIW/3+7Ox0TR5/+eLFc4QxNU/WPhpxj0bcoxH3YEbc
nC4jfxGdcJmpoDUeSnCLe8JpZho81lGxwgvNTzZA9gEzdzasijMCWhQ4nIPX
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

-->

</rfc>
