rfc9834v1.txt | rfc9834.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) M. Boucadair, Ed. | Internet Engineering Task Force (IETF) M. Boucadair, Ed. | |||
Request for Comments: 9834 Orange | Request for Comments: 9834 Orange | |||
Category: Standards Track R. Roberts, Ed. | Category: Standards Track R. Roberts, Ed. | |||
ISSN: 2070-1721 Juniper | ISSN: 2070-1721 Juniper | |||
O. Gonzalez de Dios | O. Gonzalez de Dios | |||
Telefonica | Telefonica | |||
S. Barguil Giraldo | S. Barguil | |||
Nokia | Nokia | |||
B. Wu | B. Wu | |||
Huawei Technologies | Huawei Technologies | |||
August 2025 | September 2025 | |||
YANG Data Models for Bearers and 'Attachment Circuits'-as-a-Service | YANG Data Models for Bearers and Attachment Circuits as a Service | |||
(ACaaS) | (ACaaS) | |||
Abstract | Abstract | |||
Delivery of network services assumes that appropriate setup is | Delivery of network services assumes that appropriate setup is | |||
provisioned over the links that connect customer termination points | provisioned over the links that connect customer termination points | |||
and a provider network. The required setup to allow successful data | and a provider network. The required setup to allow successful data | |||
exchange over these links is referred to as an attachment circuit | exchange over these links is referred to as an attachment circuit | |||
(AC), while the underlying link is referred to as a "bearer". | (AC), while the underlying link is referred to as a "bearer". | |||
This document specifies a YANG service data model for ACs. This | This document specifies a YANG service data model for ACs. This | |||
model can be used for the provisioning of ACs before or during | model can be used for the provisioning of ACs before or during | |||
service provisioning (e.g., Network Slice Service). | service provisioning (e.g., RFC 9543 Network Slice Service). | |||
The document also specifies a YANG service data model for managing | The document also specifies a YANG service data model for managing | |||
bearers over which ACs are established. | bearers over which ACs are established. | |||
Status of This Memo | Status of This Memo | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
skipping to change at line 73 ¶ | skipping to change at line 73 ¶ | |||
1. Introduction | 1. Introduction | |||
1.1. Scope and Intended Use | 1.1. Scope and Intended Use | |||
1.2. Positioning ACaaS vs. Other Data Models | 1.2. Positioning ACaaS vs. Other Data Models | |||
1.2.1. Why Not Use the L2SM as a Reference Data Model for | 1.2.1. Why Not Use the L2SM as a Reference Data Model for | |||
ACaaS? | ACaaS? | |||
1.2.2. Why Not Use the L3SM as a Reference Data Model for | 1.2.2. Why Not Use the L3SM as a Reference Data Model for | |||
ACaaS? | ACaaS? | |||
2. Conventions and Definitions | 2. Conventions and Definitions | |||
3. Relationship to Other AC Data Models | 3. Relationship to Other AC Data Models | |||
4. Sample Uses of the Data Models | 4. Sample Uses of the Data Models | |||
4.1. ACs Terminated by One or Multiple Customer Edges (CEs) | 4.1. ACs Terminated by One or Multiple CEs | |||
4.2. Separate AC Provisioning vs. Actual Service Provisioning | 4.2. Separate AC Provisioning vs. Actual Service Provisioning | |||
4.3. Sample Deployment Models | 4.3. Sample Deployment Models | |||
5. Description of the Data Models | 5. Description of the Data Models | |||
5.1. The Bearer Service ("ietf-bearer-svc") YANG Module | 5.1. The Bearer Service ("ietf-bearer-svc") YANG Module | |||
5.2. The Attachment Circuit Service ("ietf-ac-svc") YANG Module | 5.2. The Attachment Circuit Service ("ietf-ac-svc") YANG Module | |||
5.2.1. Overall Structure | 5.2.1. Overall Structure | |||
5.2.2. Service Profiles | 5.2.2. Service Profiles | |||
5.2.3. Attachment Circuits Profiles | 5.2.3. Attachment Circuits Profiles | |||
5.2.4. AC Placement Constraints | 5.2.4. AC Placement Constraints | |||
5.2.5. Attachment Circuits | 5.2.5. Attachment Circuits | |||
skipping to change at line 135 ¶ | skipping to change at line 135 ¶ | |||
Routers (ASBRs), data centers gateways, or Internet Exchange Points | Routers (ASBRs), data centers gateways, or Internet Exchange Points | |||
(IXPs). A connectivity service is basically about ensuring data | (IXPs). A connectivity service is basically about ensuring data | |||
transfer received from or destined to a given termination point to or | transfer received from or destined to a given termination point to or | |||
from other termination points. The objectives for the connectivity | from other termination points. The objectives for the connectivity | |||
service can be negotiated and agreed upon between the customer and | service can be negotiated and agreed upon between the customer and | |||
the network provider. To facilitate data transfer within the | the network provider. To facilitate data transfer within the | |||
provider network, it is assumed that the appropriate setup is | provider network, it is assumed that the appropriate setup is | |||
provisioned over the links that connect customer termination points | provisioned over the links that connect customer termination points | |||
and a provider network (usually via a Provider Edge (PE)), allowing | and a provider network (usually via a Provider Edge (PE)), allowing | |||
data to be successfully exchanged over these links. The required | data to be successfully exchanged over these links. The required | |||
setup is referred to in this document as an attachment circuit (AC), | setup is referred to in this document as an AC, while the underlying | |||
while the underlying link is referred to as a "bearer". | link is referred to as a "bearer". | |||
When a customer requests a new service, the service can be bound to | When a customer requests a new service, the service can be bound to | |||
existing attachment circuits or trigger the instantiation of new | existing ACs or trigger the instantiation of new ACs. The | |||
attachment circuits. The provisioning of a service should, thus, | provisioning of a service should, thus, accommodate both deployments. | |||
accommodate both deployments. | ||||
Also, because the instantiation of an attachment circuit requires | Also, because the instantiation of an AC requires coordinating the | |||
coordinating the provisioning of endpoints that might not belong to | provisioning of endpoints that might not belong to the same | |||
the same administrative entity (customer vs. provider or distinct | administrative entity (customer vs. provider or distinct operational | |||
operational teams within the same provider, etc.), providing | teams within the same provider, etc.), providing programmatic means | |||
programmatic means to expose 'Attachment Circuits'-as-a-Service | to expose Attachment Circuits as a Service (ACaaS) greatly simplifies | |||
(ACaaS) greatly simplifies the provisioning of services delivered | the provisioning of services delivered over an AC. For example, | |||
over an attachment circuit. For example, management systems of | management systems of adjacent domains that need to connect via an AC | |||
adjacent domains that need to connect via an AC will use such means | will use such means to agree upon the resources that are required for | |||
to agree upon the resources that are required for the activation of | the activation of both sides of an AC (e.g., Layer 2 tags, IP address | |||
both sides of an AC (e.g., Layer 2 tags, IP address family, or IP | family, or IP subnets). | |||
subnets). | ||||
This document specifies a YANG service data model ("ietf-ac-svc") for | This document specifies a YANG service data model ("ietf-ac-svc") for | |||
managing attachment circuits that are exposed by a network to its | managing ACs that are exposed by a network to its customers, such as | |||
customers, such as an enterprise site, an SF, a hosting | an enterprise site, an SF, a hosting infrastructure, or a peer | |||
infrastructure, or a peer network provider. The model can be used | network provider. The model can be used for the provisioning of ACs | |||
for the provisioning of ACs prior to or during advanced service | prior to or during advanced service provisioning (e.g., RFC 9543 | |||
provisioning (e.g., IETF Network Slice Service defined in "A | Network Slice Service defined in "A Framework for Network Slices in | |||
Framework for Network Slices in Networks Built from IETF | Networks Built from IETF Technologies" [RFC9543]). | |||
Technologies" [RFC9543]). | ||||
The "ietf-ac-svc" module (Section 6.2) includes a set of reusable | The "ietf-ac-svc" module (Section 6.2) includes a set of reusable | |||
groupings. Whether a service model that wants to describe the | groupings. Whether a service model that wants to describe the ACs | |||
attachment circuits associated with the service reuses structures | associated with the service reuses structures defined in the "ietf- | |||
defined in the "ietf-ac-svc" or simply includes an AC reference (that | ac-svc" or simply includes an AC reference (that was communicated | |||
was communicated during AC service instantiation) is a design choice | during AC service instantiation) is a design choice of these service | |||
of these service models. Relying upon the AC service model to manage | models. Relying upon the AC service model to manage ACs over which | |||
ACs over which services are delivered has the merit of decorrelating | services are delivered has the merit of decorrelating the management | |||
the management of the (core) service from the ACs. This allows | of the (core) service from the ACs. This allows upgrades (to reflect | |||
upgrades (to reflect recent AC technologies or new features such as | recent AC technologies or new features such as new encryption schemes | |||
new encryption schemes or additional routing protocols) to be done in | or additional routing protocols) to be done in just one place rather | |||
just one place rather than in each (core) service model. This | than in each (core) service model. This document favors the approach | |||
document favors the approach of completely relying upon the AC | of completely relying upon the AC service model instead of | |||
service model instead of duplicating data nodes into specific modules | duplicating data nodes into specific modules of advanced services | |||
of advanced services that are delivered over an attachment circuit. | that are delivered over an AC. | |||
Since the provisioning of an AC requires a bearer to be in place, | Since the provisioning of an AC requires a bearer to be in place, | |||
this document introduces a new module called "ietf-bearer-svc", which | this document introduces a new module called "ietf-bearer-svc", which | |||
enables customers to manage their bearers (Section 6.1). The | enables customers to manage their bearers (Section 6.1). The | |||
customers can then retrieve a provider-assigned bearer reference that | customers can then retrieve a provider-assigned bearer reference that | |||
they will include in their AC service requests. Likewise, a customer | they will include in their AC service requests. Likewise, a customer | |||
may retrieve whether their bearers support a synchronization | may learn whether their bearers support a synchronization mechanism | |||
mechanism such as Sync Ethernet (SyncE) [ITU-T-G.781]. An example of | such as Sync Ethernet (SyncE) [ITU-T-G.781]. An example of | |||
retrieving a bearer reference is provided in Appendix A.1. | retrieving a bearer reference is provided in Appendix A.1. | |||
An AC service request can provide a reference to a bearer or a set of | An AC service request can provide a reference to a bearer or a set of | |||
peer Service Attachment Points (SAPs) specified in "A YANG Network | peer Service Attachment Points (SAPs) specified in "A YANG Network | |||
Data Model for Service Attachment Points (SAPs)" [RFC9408]. Both | Data Model for Service Attachment Points (SAPs)" [RFC9408]. Both | |||
schemes are supported in the AC service model. When several bearers | schemes are supported in the AC service model. When several bearers | |||
are available, the AC service request may filter them based on the | are available, the AC service request may filter them based on the | |||
bearer type, synchronization support, etc. | bearer type, synchronization support, etc. | |||
Each AC is identified with a unique identifier within a provider | Each AC is identified with a unique identifier within a provider | |||
skipping to change at line 212 ¶ | skipping to change at line 209 ¶ | |||
details about the (node-specific) attachment interfaces are not | details about the (node-specific) attachment interfaces are not | |||
exposed in the AC service model. However, these details are exposed | exposed in the AC service model. However, these details are exposed | |||
at the network model per "A Network YANG Data Model for Attachment | at the network model per "A Network YANG Data Model for Attachment | |||
Circuits" [RFC9835]. "A YANG Data Model for Augmenting VPN Service | Circuits" [RFC9835]. "A YANG Data Model for Augmenting VPN Service | |||
and Network Models with Attachment Circuits" [RFC9836] specifies | and Network Models with Attachment Circuits" [RFC9836] specifies | |||
augmentations to the L2VPN Service Model (L2SM) [RFC8466] and the | augmentations to the L2VPN Service Model (L2SM) [RFC8466] and the | |||
L3VPN Service Model (L3SM) [RFC8299] to bind LxVPN services to ACs. | L3VPN Service Model (L3SM) [RFC8299] to bind LxVPN services to ACs. | |||
The AC service model does not make any assumptions about the internal | The AC service model does not make any assumptions about the internal | |||
structure or even the nature of the services that will be delivered | structure or even the nature of the services that will be delivered | |||
over an attachment circuit or a set of attachment circuits. | over an AC or a set of ACs. Customers do not have access to that | |||
Customers do not have access to that network view other than the ACs | network view other than the ACs that they ordered. For example, the | |||
that they ordered. For example, the AC service model can be used to | AC service model can be used to provision a set of ACs to connect | |||
provision a set of ACs to connect multiple sites (Site1, Site2, ..., | multiple sites (Site1, Site2, ..., SiteX) for a customer who also | |||
SiteX) for a customer who also requested VPN services. If the | requested VPN services. If the provisioning of these services | |||
provisioning of these services requires specific configuration on | requires specific configuration on ASBR nodes, such configuration is | |||
ASBR nodes, such configuration is handled at the network level and is | handled at the network level and is not exposed to the customer at | |||
not exposed to the customer at the service level. However, the | the service level. However, the network controller will have access | |||
network controller will have access to such a view, as the service | to such a view, as the service points in these ASBRs will be exposed | |||
points in these ASBRs will be exposed as SAPs with 'role' set to | as SAPs with 'role' set to 'ietf-sap-ntw:nni' [RFC9408]. | |||
'ietf-sap-ntw:nni' [RFC9408]. | ||||
The AC service model can be used in a variety of contexts, such as | The AC service model can be used in a variety of contexts, such as | |||
(but not limited to) those provided in Appendix A: | (but not limited to) those provided in Appendix A: | |||
* Create an AC over an existing bearer (Appendix A.2). | * Create an AC over an existing bearer (Appendix A.2). | |||
* Request an attachment circuit for a known peer SAP (Appendix A.3). | * Request an AC for a known peer SAP (Appendix A.3). | |||
* Instantiate multiple attachment circuits over the same bearer | * Instantiate multiple ACs over the same bearer (Appendix A.4). | |||
(Appendix A.4). | ||||
* Control the precedence over multiple attachment circuits | * Control the precedence over multiple ACs (Appendix A.5). | |||
(Appendix A.5). | ||||
* Create multiple ACs bound to multiple CEs (Appendix A.6). | * Create multiple ACs bound to multiple CEs (Appendix A.6). | |||
* Bind a Slice Service to a set of pre-provisioned attachment | * Bind an RFC 9543 Network Slice Service to a set of pre-provisioned | |||
circuits (Appendix A.7). | ACs (Appendix A.7). | |||
* Connect an enterprise network to a provider network using BGP | * Connect an enterprise network to a provider network using BGP | |||
(Appendix A.9). | (Appendix A.9). | |||
* Connect a Cloud Infrastructure to a service provider network | * Connect a Cloud Infrastructure to a service provider network | |||
(Appendix A.8). | (Appendix A.8). | |||
* Interconnect provider networks (e.g., [RFC8921] or [PEERING-API]). | * Interconnect provider networks (e.g., [RFC8921] or [PEERING-API]). | |||
Such ACs are identified with a 'role' set to 'ac-common:nni' or | Such ACs are identified with a 'role' set to 'ac-common:nni' or | |||
'ac-common:public-nni'. See Appendix A.10 to illustrate the use | 'ac-common:public-nni'. See Appendix A.10 to illustrate the use | |||
skipping to change at line 321 ¶ | skipping to change at line 315 ¶ | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
The meanings of the symbols in the YANG tree diagrams are defined in | The meanings of the symbols in the YANG tree diagrams are defined in | |||
"YANG Tree Diagrams" [RFC8340]. | "YANG Tree Diagrams" [RFC8340]. | |||
LxSM refers to both the L2SM and the L3SM. | LxSM refers to both the L2SM and the L3SM. | |||
LxVPN refers to both Layer 2 VPN (L2VPN) and Layer 3 VPN (L3VPN). | ||||
LxNM refers to both the L2VPN Network Model (L2NM) and the L3VPN | LxNM refers to both the L2VPN Network Model (L2NM) and the L3VPN | |||
Network Model (L3NM). | Network Model (L3NM). | |||
LxVPN refers to both Layer 2 VPN (L2VPN) and Layer 3 VPN (L3VPN). | ||||
This document uses the following terms: | This document uses the following terms: | |||
Bearer: A physical or logical link that connects a customer node (or | Bearer: A physical or logical link that connects a customer node (or | |||
site) to a provider network. | site) to a provider network. | |||
A bearer can be a wireless or wired link. One or multiple | A bearer can be a wireless or wired link. One or multiple | |||
technologies can be used to build a bearer (e.g., Link Aggregation | technologies can be used to build a bearer (e.g., Link Aggregation | |||
Group (LAG) [IEEE802.1AX]). The bearer type can be specified by a | Group (LAG) [IEEE802.1AX]). The bearer type can be specified by a | |||
customer. | customer. | |||
The operator allocates a unique bearer reference to identify a | The operator allocates a unique bearer reference to identify a | |||
bearer within its network (e.g., customer line identifier). Such | bearer within its network (e.g., customer line identifier). Such | |||
a reference can be retrieved by a customer and used in subsequent | a reference can be retrieved by a customer and used in subsequent | |||
service placement requests to unambiguously identify where a | service placement requests to unambiguously identify where a | |||
service is to be bound. | service is to be bound. | |||
The concept of a bearer can be generalized to refer to the | The concept of a bearer can be generalized to refer to the | |||
required underlying connection for the provisioning of an | required underlying connection for the provisioning of an AC. | |||
attachment circuit. | ||||
One or multiple attachment circuits may be hosted over the same | One or multiple ACs may be hosted over the same bearer (e.g., | |||
bearer (e.g., multiple VLANs on the same bearer that is provided | multiple VLANs on the same bearer that is provided by a physical | |||
by a physical link). | link). | |||
Customer Edge (CE): Equipment that is dedicated to a customer and is | Customer Edge (CE): Equipment that is dedicated to a customer and is | |||
connected to one or more PEs via ACs. | connected to one or more PEs via ACs. | |||
A CE can be a router, a bridge, a switch, etc. | A CE can be a router, a bridge, a switch, etc. | |||
Provider Edge (PE): Equipment owned and managed by the service | Provider Edge (PE): Equipment owned and managed by the service | |||
provider that can support multiple services for different | provider that can support multiple services for different | |||
customers. | customers. | |||
Per "Provider Provisioned Virtual Private Network (VPN) | Per "Provider Provisioned Virtual Private Network (VPN) | |||
Terminology" (Section 5.2 of [RFC4026]), a PE is a device located | Terminology" (Section 5.2 of [RFC4026]), a PE is a device located | |||
at the edge of the service network with the functionality that is | at the edge of the service network with the functionality that is | |||
needed to interface with the customer. | needed to interface with the customer. | |||
A PE is connected to one or more CEs via ACs. | A PE is connected to one or more CEs via ACs. | |||
Network controller: Denotes a functional entity responsible for the | Network controller: Denotes a functional entity responsible for the | |||
management of the service provider network. | management of the service provider network. One or multiple | |||
network controllers can be deployed in a service provider network. | ||||
Network Function (NF): Used to refer to the same concept as Service | Network Function (NF): Used to refer to the same concept as SF | |||
Function (SF) (Section 1.4 of [RFC7665]). | (Section 1.4 of [RFC7665]). | |||
NF is also used in this document, as this term is widely used | NF is also used in this document, as this term is widely used | |||
outside the IETF. | outside the IETF. | |||
NF and SF are used interchangeably. | NF and SF are used interchangeably. | |||
Parent Bearer: Refers to a bearer (e.g., LAG) that is used to build | Parent Bearer: Refers to a bearer (e.g., LAG) that is used to build | |||
other bearers. These bearers (called child bearers) inherit the | other bearers. These bearers (called child bearers) inherit the | |||
parent bearer properties. | parent bearer properties. | |||
Parent AC: Refers to an AC that is used to build other ACs. These | Parent AC: Refers to an AC that is used to build other ACs. These | |||
ACs (called child ACs) inherit the parent AC properties. | ACs (called Child ACs) inherit the Parent AC properties. | |||
Service orchestrator: Refers to a functional entity that interacts | Service orchestrator: Refers to a functional entity that interacts | |||
with the customer of a network service. | with the customer of a network service. | |||
A service orchestrator is typically responsible for the attachment | A service orchestrator is typically responsible for the ACs, the | |||
circuits, the PE selection, and requesting the activation of the | PE selection, and requesting the activation of the requested | |||
requested service to a network controller. | service to a network controller. | |||
A service orchestrator may interact with one or more network | ||||
controllers. | ||||
Service provider network: A network that is able to provide network | Service provider network: A network that is able to provide network | |||
services (e.g., Layer 2 VPN (L2VPN), Layer 3 VPN (L3VPN), or | services (e.g., LxVPN or RFC 9543 Network Slice Services). | |||
Network Slice Services). | ||||
Service provider: An entity that offers network services (e.g., | Service provider: An entity that offers network services (e.g., | |||
Layer 2 VPN, Layer 3 VPN, or Network Slice Services). | LxVPN or RFC 9543 Network Slice Services). | |||
The names of data nodes are prefixed using the prefix associated with | The names of data nodes are prefixed using the prefix associated with | |||
the corresponding imported YANG module as shown in Table 1: | the corresponding imported YANG module as shown in Table 1: | |||
+============+==================+========================+ | +============+==================+========================+ | |||
| Prefix | Module | Reference | | | Prefix | Module | Reference | | |||
+============+==================+========================+ | +============+==================+========================+ | |||
| inet | ietf-inet-types | Section 4 of [RFC6991] | | | inet | ietf-inet-types | Section 4 of [RFC6991] | | |||
+------------+------------------+------------------------+ | +------------+------------------+------------------------+ | |||
| key-chain | ietf-key-chain | [RFC8177] | | | key-chain | ietf-key-chain | [RFC8177] | | |||
skipping to change at line 456 ¶ | skipping to change at line 452 ¶ | |||
Figure 1: AC Data Models | Figure 1: AC Data Models | |||
The "ietf-ac-common" module is imported by the "ietf-bearer-svc", | The "ietf-ac-common" module is imported by the "ietf-bearer-svc", | |||
"ietf-ac-svc", and "ietf-ac-ntw" modules. Bearers managed using the | "ietf-ac-svc", and "ietf-ac-ntw" modules. Bearers managed using the | |||
"ietf-bearer-svc" module may be referenced by service ACs managed | "ietf-bearer-svc" module may be referenced by service ACs managed | |||
using the "ietf-ac-svc" module. Similarly, a bearer managed using | using the "ietf-ac-svc" module. Similarly, a bearer managed using | |||
the "ietf-bearer-svc" module may list the set of ACs that use that | the "ietf-bearer-svc" module may list the set of ACs that use that | |||
bearer. To facilitate correlation between an AC service request and | bearer. To facilitate correlation between an AC service request and | |||
the actual AC provisioned in the network, "ietf-ac-ntw" leverages the | the actual AC provisioned in the network, "ietf-ac-ntw" leverages the | |||
AC references exposed by the "ietf-ac-svc" module. Furthermore, to | AC references exposed by the "ietf-ac-svc" module. Furthermore, to | |||
bind Layer 2 VPN or Layer 3 VPN services with ACs, the "ietf-ac-glue" | bind L2VPN or L3VPN services with ACs, the "ietf-ac-glue" module | |||
module augments the LxSM and LxNM with AC service references exposed | augments the LxSM and LxNM with AC service references exposed by the | |||
by the "ietf-ac-svc" module and AC network references exposed by the | "ietf-ac-svc" module and AC network references exposed by the "ietf- | |||
"ietf-ac-ntw" module. | ac-ntw" module. | |||
4. Sample Uses of the Data Models | 4. Sample Uses of the Data Models | |||
4.1. ACs Terminated by One or Multiple Customer Edges (CEs) | 4.1. ACs Terminated by One or Multiple CEs | |||
Figure 2 depicts two target topology flavors that involve ACs. These | Figure 2 depicts two target topology flavors that involve ACs. These | |||
topologies have the following characteristics: | topologies have the following characteristics: | |||
* A CE can be either a physical device or a logical entity. Such | * A CE can be either a physical device or a logical entity. Such | |||
logical entity is typically a software component (e.g., a virtual | logical entity is typically a software component (e.g., a virtual | |||
Service Function that is hosted within the provider's network or a | SF that is hosted within the provider's network or a third-party | |||
third-party infrastructure). A CE is seen by the network as a | infrastructure). A CE is seen by the network as a peer SAP. | |||
peer SAP. | ||||
* An AC service request may include one or multiple ACs, which may | * An AC service request may include one or multiple ACs, which may | |||
be associated to a single CE or multiple CEs. | be associated to a single CE or multiple CEs. | |||
* CEs may be either dedicated to one single connectivity service or | * CEs may be either dedicated to one single connectivity service or | |||
host multiple connectivity services (e.g., CEs with roles of SFs | host multiple connectivity services (e.g., CEs with roles of SFs | |||
[RFC7665]). | [RFC7665]). | |||
* A network provider may bind a single AC to one or multiple peer | * A network provider may bind a single AC to one or multiple peer | |||
SAPs (e.g., CE1 and CE2 are tagged as peer SAPs for the same AC). | SAPs (e.g., CE1 and CE2 are tagged as peer SAPs for the same AC). | |||
For example, and as discussed in [RFC4364], multiple CEs can be | For example, and as discussed in [RFC4364], multiple CEs can be | |||
attached to a PE over the same attachment circuit. This scenario | attached to a PE over the same AC. This scenario is typically | |||
is typically implemented when the Layer 2 infrastructure between | implemented when the Layer 2 infrastructure between the CE and the | |||
the CE and the network is a multipoint service. | network is a multipoint service. | |||
* A single CE may terminate multiple ACs, which can be associated | * A single CE may terminate multiple ACs, which can be associated | |||
with the same bearer or distinct bearers. | with the same bearer or distinct bearers. | |||
* Customers may request protection schemes in which the ACs | * Customers may request protection schemes in which the ACs | |||
associated with their endpoints are terminated by the same PE | associated with their endpoints are terminated by the same PE | |||
(e.g., CE3), distinct PEs (e.g., CE4), etc. The network provider | (e.g., CE3), distinct PEs (e.g., CE4), etc. The network provider | |||
uses this request to decide where to terminate the AC in the | uses this request to decide where to terminate the AC in the | |||
provider network (i.e., select which PE(s) to use) and also | provider network (i.e., select which PE(s) to use) and also | |||
whether to enable specific capabilities (e.g., Virtual Router | whether to enable specific capabilities (e.g., Virtual Router | |||
skipping to change at line 526 ¶ | skipping to change at line 521 ¶ | |||
'-----------AC----------' | '-----------AC----------' | |||
(bx) = bearer Id x | (bx) = bearer Id x | |||
Figure 2: Examples of ACs | Figure 2: Examples of ACs | |||
4.2. Separate AC Provisioning vs. Actual Service Provisioning | 4.2. Separate AC Provisioning vs. Actual Service Provisioning | |||
The procedure to provision a service in a service provider network | The procedure to provision a service in a service provider network | |||
may depend on the practices adopted by a service provider. This | may depend on the practices adopted by a service provider. This | |||
includes the workflow put in place for the provisioning of network | includes the workflow put in place for the provisioning of network | |||
services and how they are bound to an attachment circuit. For | services and how they are bound to an AC. For example, a single AC | |||
example, a single attachment circuit may be used to host multiple | may be used to host multiple connectivity services. In order to | |||
connectivity services. In order to avoid service interference and | avoid service interference and redundant information in various | |||
redundant information in various locations, a service provider may | locations, a service provider may expose an interface to manage ACs | |||
expose an interface to manage ACs network-wide. Customers can then | network-wide. Customers can then request a bearer or an AC to be put | |||
request a bearer or an attachment circuit to be put in place and then | in place and then refer to that bearer or AC when requesting services | |||
refer to that bearer or AC when requesting services that are bound to | that are bound to the bearer or AC. [RFC9836] specifies | |||
the bearer or AC. [RFC9836] specifies augmentations to the L2SM and | augmentations to the L2SM and the L3SM to bind LxVPN services to ACs. | |||
the L3SM to bind LxVPN services to ACs. | ||||
4.3. Sample Deployment Models | 4.3. Sample Deployment Models | |||
Figure 3 illustrates an example of how the bearer/AC service models | Figure 3 illustrates an example of how the bearer/AC service models | |||
can be used between a customer and a provider. Internals to the | can be used between a customer and a provider. Internals to the | |||
provider orchestration domain (or customer orchestration domain) are | provider orchestration domain (or customer orchestration domain) are | |||
hidden to the customer (or provider). | hidden to the customer (or provider). | |||
Resources that are needed to activate an AC (e.g., Layer 2 or Layer 3 | Resources that are needed to activate an AC (e.g., Layer 2 or Layer 3 | |||
identifiers) are typically imposed by the provider. However, the | identifiers) are typically imposed by the provider. However, the | |||
skipping to change at line 626 ¶ | skipping to change at line 620 ¶ | |||
Models | | | | Models | | | | |||
.---+---. | | | .---+---. | | | |||
| Config | | | | | Config | | | | |||
| Manager | | | | | Manager | | | | |||
'---+---' | | | '---+---' | | | |||
| | | | | | | | |||
NETCONF/CLI....................... | NETCONF/CLI....................... | |||
| | | | | | | | |||
.--------------------------------. | .--------------------------------. | |||
.---. Bearer | | Bearer .---. | .---. Bearer | | Bearer .---. | |||
|CE#1+--------+ Network +--------+CE#2| | |CE1 +--------+ Network +--------+ CE2| | |||
'---' | | '---' | '---' | | '---' | |||
'--------------------------------' | '--------------------------------' | |||
Site A Site B | Site A Site B | |||
Figure 5: An Example of AC Model Usage (Focus on the Provider's | Figure 5: An Example of AC Model Usage (Focus on the Provider's | |||
Internals) | Internals) | |||
In order to ease the mapping between the service model and underlying | In order to ease the mapping between the service model and underlying | |||
network models (e.g., the L3VPN Network Model (L3NM) and SAP), the | network models (e.g., the L3VPN Network Model (L3NM) and SAP), the | |||
name conventions used in existing network data models are reused as | name conventions used in existing network data models are reused as | |||
skipping to change at line 777 ¶ | skipping to change at line 771 ¶ | |||
protocols (e.g., Link Layer Discovery Protocol (LLDP) | protocols (e.g., Link Layer Discovery Protocol (LLDP) | |||
[IEEE802.1AB]) to automatically discover and connect to available | [IEEE802.1AB]) to automatically discover and connect to available | |||
network resources. A network controller can use such reported | network resources. A network controller can use such reported | |||
information to expose discovered bearers from the network using | information to expose discovered bearers from the network using | |||
the same bearer data model structure. | the same bearer data model structure. | |||
A request to create a bearer may include a set of constraints | A request to create a bearer may include a set of constraints | |||
('placement-constraints') that are used by a controller to decide the | ('placement-constraints') that are used by a controller to decide the | |||
network terminating side of a bearer (e.g., PE selection, PE | network terminating side of a bearer (e.g., PE selection, PE | |||
redundancy, or PoP selection). Future placement criteria | redundancy, or PoP selection). Future placement criteria | |||
('constraint-type') may be defined in the future to accommodate | ('constraint-type') may be defined to accommodate specific deployment | |||
specific deployment contexts. A request may also include some timing | contexts. A request may also include some timing constraints | |||
constraints ('requested-start', 'requested-stop') that are applicable | ('requested-start', 'requested-stop') that are applicable for a set | |||
for a set of bearers. The timing constraints can be adjusted at the | of bearers. The timing constraints can be adjusted at the 'bearer' | |||
'bearer' level. These adjusted values take precedence over the | level. These adjusted values take precedence over the global values. | |||
global values. | ||||
The descriptions of the bearer data nodes are as follows: | The descriptions of the bearer data nodes are as follows: | |||
'name': Used to uniquely identify a bearer. This name is typically | 'name': Used to uniquely identify a bearer. This name is typically | |||
selected by the client when requesting a bearer. | selected by the client when requesting a bearer. | |||
'customer-name': Indicates the name of the customer who ordered the | 'customer-name': Indicates the name of the customer who ordered the | |||
bearer. | bearer. | |||
'description': Includes a textual description of the bearer. | 'description': Includes a textual description of the bearer. | |||
skipping to change at line 823 ¶ | skipping to change at line 816 ¶ | |||
set to 'true'. | set to 'true'. | |||
'sync-phy-type': Specifies the Sync PHY mechanism (e.g., SyncE | 'sync-phy-type': Specifies the Sync PHY mechanism (e.g., SyncE | |||
[ITU-T-G.781]) enabled for the bearer. | [ITU-T-G.781]) enabled for the bearer. | |||
'provider-location-reference': Indicates a location identified by a | 'provider-location-reference': Indicates a location identified by a | |||
provider-assigned reference. | provider-assigned reference. | |||
'customer-point': Specifies the customer termination point for the | 'customer-point': Specifies the customer termination point for the | |||
bearer. A bearer request can indicate a device, a site, a | bearer. A bearer request can indicate a device, a site, a | |||
combination thereof, or custom information when requesting a | combination thereof, or custom information. All these schemes are | |||
bearer. All these schemes are supported in the model. | supported in the model. | |||
'type': Specifies the bearer type (Ethernet, wireless, LAG, etc.). | 'type': Specifies the bearer type (Ethernet, wireless, LAG, etc.). | |||
'test-only': Indicates that a request is only for test validation | 'test-only': Indicates that a request is only for test validation | |||
and not for enforcement, even if there are no errors. This is | and not for enforcement, even if there are no errors. This is | |||
used for feasibility checks. This data node is applicable only | used for feasibility checks. This data node is applicable only | |||
when the data model is used with protocols that do not natively | when the data model is used with protocols that do not have built- | |||
support such option. For example, this data node is redundant | in support of such option. For example, this data node is | |||
with the "test-only" value of the <test-option> parameter in the | redundant with the "test-only" value of the <test-option> | |||
NETCONF <edit-config> operation (Section 7.2 of [RFC6241]). | parameter in the NETCONF <edit-config> operation (Section 7.2 of | |||
[RFC6241]). | ||||
'bearer-reference': Returns an internal reference for the service | 'bearer-reference': Returns an internal reference for the service | |||
provider to uniquely identify the bearer. This reference can be | provider to uniquely identify the bearer. This reference can be | |||
used when requesting services. Appendix A.1 provides an example | used when requesting services. Appendix A.1 provides an example | |||
about how this reference can be retrieved by a customer. | about how this reference can be retrieved by a customer. | |||
Whether the 'bearer-reference' mirrors the content of the 'name' | Whether the 'bearer-reference' mirrors the content of the 'name' | |||
is deployment-specific. The module does not assume nor preclude | is deployment-specific. The module does not assume nor preclude | |||
such schemes. | such schemes. | |||
'ac-svc-ref': Specifies the set of attachment circuits that are | 'ac-svc-ref': Specifies the set of ACs that are bound to the bearer. | |||
bound to the bearer. | ||||
'requested-start': Specifies the requested date and time when the | 'requested-start': Specifies the requested date and time when the | |||
bearer is expected to be active. | bearer is expected to be active. | |||
'requested-stop': Specifies the requested date and time when the | 'requested-stop': Specifies the requested date and time when the | |||
bearer is expected to be disabled. | bearer is expected to be disabled. | |||
'actual-start': Reports the actual date and time when the bearer | 'actual-start': Reports the actual date and time when the bearer was | |||
actually was enabled. | enabled. | |||
'actual-stop': Reports the actual date and time when the bearer | 'actual-stop': Reports the actual date and time when the bearer was | |||
actually was disabled. | disabled. | |||
'status': Used to track the overall status of a given bearer. Both | 'status': Used to track the overall status of a given bearer. Both | |||
the operational and administrative status are maintained together | the operational and administrative status are maintained together | |||
with a timestamp. | with a timestamp. | |||
The 'admin-status' attribute is typically configured by a network | The 'admin-status' attribute is typically configured by a network | |||
operator to indicate whether the service is enabled, disabled, or | operator to indicate whether the service is enabled, disabled, or | |||
subjected to additional testing or pre-deployment checks. These | subjected to additional testing or pre-deployment checks. These | |||
additional options, such as 'admin-testing' and 'admin-pre- | additional options, such as 'admin-testing' and 'admin-pre- | |||
deployment', provide the operators the flexibility to conduct | deployment', provide the operators the flexibility to conduct | |||
skipping to change at line 1048 ¶ | skipping to change at line 1041 ¶ | |||
'forwarding-profile-identifier': Refers to the policies that apply | 'forwarding-profile-identifier': Refers to the policies that apply | |||
to the forwarding of packets conveyed within an AC. Such policies | to the forwarding of packets conveyed within an AC. Such policies | |||
may consist, for example, of applying Access Control Lists (ACLs). | may consist, for example, of applying Access Control Lists (ACLs). | |||
'routing-profile-identifier': Refers to a set of routing policies | 'routing-profile-identifier': Refers to a set of routing policies | |||
that will be invoked (e.g., BGP policies) when building an AC. | that will be invoked (e.g., BGP policies) when building an AC. | |||
5.2.2.2. Referencing Service/Specific Profiles | 5.2.2.2. Referencing Service/Specific Profiles | |||
All the above mentioned profiles are uniquely identified by the | All the above mentioned profiles are uniquely identified by the | |||
provider server by an identifier. To ease referencing these profiles | provider server. To ease referencing these profiles by other data | |||
by other data models, specific typedefs are defined for each of these | models, specific typedefs are defined for each of these profiles. | |||
profiles. Likewise, an attachment circuit reference typedef is | Likewise, an AC reference typedef is defined when referencing a | |||
defined when referencing a (global) attachment circuit by its name is | (global) AC by its name is required. These typedefs SHOULD be used | |||
required. These typedefs SHOULD be used when other modules need a | when other modules need a reference to one of these profiles or ACs. | |||
reference to one of these profiles or attachment circuits. | ||||
5.2.3. Attachment Circuits Profiles | 5.2.3. Attachment Circuits Profiles | |||
The 'ac-group-profile' defines reusable parameters for a set of ACs. | The 'ac-group-profile' defines reusable parameters for a set of ACs. | |||
Each profile is identified by 'name'. Some of the data nodes can be | Each profile is identified by 'name'. Some of the data nodes can be | |||
adjusted at the 'ac' level. These adjusted values take precedence | adjusted at the 'ac' level. These adjusted values take precedence | |||
over the global values. The structure of 'ac-group-profile' is | over the global values. The structure of 'ac-group-profile' is | |||
similar to the one used to model each 'ac' (Figure 10). | similar to the one used to model each 'ac' (Figure 10). | |||
5.2.4. AC Placement Constraints | 5.2.4. AC Placement Constraints | |||
skipping to change at line 1171 ¶ | skipping to change at line 1163 ¶ | |||
AC or a set of ACs. | AC or a set of ACs. | |||
'description': Includes a textual description of the AC. | 'description': Includes a textual description of the AC. | |||
'test-only': Indicates that a request is only for a validation test | 'test-only': Indicates that a request is only for a validation test | |||
and not for enforcement, even if there are no errors. This is | and not for enforcement, even if there are no errors. This is | |||
used for feasibility checks. This data node is applicable only | used for feasibility checks. This data node is applicable only | |||
when the data model is used with protocols that do not have built- | when the data model is used with protocols that do not have built- | |||
in support of such option. | in support of such option. | |||
'requested-start': Specifies the requested date and time when the | 'requested-start': Specifies the requested date and time when the AC | |||
attachment circuit is expected to be active. | is expected to be active. | |||
'requested-stop': Specifies the requested date and time when the | 'requested-stop': Specifies the requested date and time when the AC | |||
attachment circuit is expected to be disabled. | is expected to be disabled. | |||
'actual-start': Reports the actual date and time when the attachment | 'actual-start': Reports the actual date and time when the AC was | |||
circuit actually was enabled. | enabled. | |||
'actual-stop': Reports the actual date and time when the attachment | 'actual-stop': Reports the actual date and time when the AC was | |||
circuit actually was disabled. | disabled. | |||
'role': Specifies whether an AC is used, e.g., as User-to-Network | 'role': Specifies whether an AC is used, e.g., as User-to-Network | |||
Interface (UNI) or Network-to-Network Interface (NNI). | Interface (UNI) or Network-to-Network Interface (NNI). | |||
'peer-sap-id': Includes references to the remote endpoints of an | 'peer-sap-id': Includes references to the remote endpoints of an AC | |||
attachment circuit [RFC9408]. 'peer' is drawn here from the | [RFC9408]. 'peer' is drawn here from the perspective of the | |||
perspective of the provider network. That is, a 'peer-sap' will | provider network. That is, a 'peer-sap' will refer to a customer | |||
refer to a customer node. | node. | |||
'group-profile-ref': Indicates references to one or more profiles | 'group-profile-ref': Indicates references to one or more profiles | |||
that are defined in Section 5.2.3. | that are defined in Section 5.2.3. | |||
'parent-ref': Specifies an AC that is inherited by an attachment | 'parent-ref': Specifies an AC that is inherited by an AC. | |||
circuit. | ||||
In contexts where dynamic termination points are managed for a | In contexts where dynamic termination points are managed for a | |||
given AC, a parent AC can be defined with a set of stable and | given AC, a Parent AC can be defined with a set of stable and | |||
common information, while "child" ACs are defined to track dynamic | common information, while "Child" ACs are defined to track dynamic | |||
information. These "child" ACs are bound to the parent AC, which | information. These "Child" ACs are bound to the Parent AC, which | |||
is exposed to services (as a stable reference). | is exposed to services (as a stable reference). | |||
Whenever a parent AC is deleted, all its "child" ACs MUST be | Whenever a Parent AC is deleted, all its "Child" ACs MUST be | |||
deleted. | deleted. | |||
A "child" AC MAY rely upon more than one parent AC (e.g., parent | A "Child" AC MAY rely upon more than one Parent AC (e.g., parent | |||
Layer 2 AC and parent Layer 3 AC). In such cases, these ACs MUST | Layer 2 AC and parent Layer 3 AC). In such cases, these ACs MUST | |||
NOT be overlapping. An example to illustrate the use of multiple | NOT be overlapping. An example to illustrate the use of multiple | |||
parent ACs is provided in Appendix A.12. | Parent ACs is provided in Appendix A.12. | |||
'child-ref': Lists one or more references of child ACs that rely | 'child-ref': Lists one or more references of Child ACs that rely | |||
upon this attachment circuit as a parent AC. | upon this AC as a Parent AC. | |||
'group': Lists the groups to which an AC belongs [RFC9181]. For | 'group': Lists the groups to which an AC belongs [RFC9181]. For | |||
example, the 'group-id' is used to associate redundancy or | example, the 'group-id' is used to associate redundancy or | |||
protection constraints of ACs. An example is provided in | protection constraints of ACs. An example is provided in | |||
Appendix A.5. | Appendix A.5. | |||
'service-ref': Reports the set of services that are bound to the | 'service-ref': Reports the set of services that are bound to the AC. | |||
attachment circuit. The services are indexed by their type. | The services are indexed by their type. | |||
'server-reference': Reports the internal reference that is assigned | 'server-reference': Reports the internal reference that is assigned | |||
by the provider for this AC. This reference is used to | by the provider for this AC. This reference is used to | |||
accommodate deployment contexts (e.g., Section 9.1.2 of [RFC8921]) | accommodate deployment contexts (e.g., Section 9.1.2 of [RFC8921]) | |||
where an identifier is generated by the provider to identify a | where an identifier is generated by the provider to identify a | |||
service order locally. | service order locally. | |||
'name': Associates a name that uniquely identifies an AC within a | 'name': Associates a name that uniquely identifies an AC within a | |||
service provider network. | service provider network. | |||
skipping to change at line 1577 ¶ | skipping to change at line 1568 ¶ | |||
'failure-detection-profile': Indicates a failure detection profile | 'failure-detection-profile': Indicates a failure detection profile | |||
(e.g., BFD) that applies for this entry. | (e.g., BFD) that applies for this entry. | |||
'status': Used to convey the status of a static route entry. This | 'status': Used to convey the status of a static route entry. This | |||
data node can also be used to control the (de)activation of | data node can also be used to control the (de)activation of | |||
individual static route entries. | individual static route entries. | |||
5.2.5.3.2. BGP | 5.2.5.3.2. BGP | |||
An AC service activation with BGP routing SHOULD include at least the | An AC service activation with BGP routing [RFC4271] SHOULD include at | |||
customer's AS Number (ASN) and the provider's ASN. Additional | least the customer's AS Number (ASN) and the provider's ASN. | |||
information can be supplied by a customer in a request or exposed by | Additional information can be supplied by a customer in a request or | |||
a provider in a response to a query request in order to ease the | exposed by a provider in a response to a query request in order to | |||
process of automating the provisioning of BGP sessions (the customer | ease the process of automating the provisioning of BGP sessions (the | |||
does not use the primary IP address to establish the underlying BGP | customer does not use the primary IP address to establish the | |||
session, communicate the provider's IP address used to establish the | underlying BGP session, communicate the provider's IP address used to | |||
BGP session, share authentication parameters, bind the session to a | establish the BGP session, share authentication parameters, bind the | |||
forwarding protection profile, etc.). | session to a forwarding protection profile, etc.). | |||
The BGP tree structure is shown in Figure 16. | The BGP tree structure is shown in Figure 16. | |||
| ... | | ... | |||
+--rw routing-protocols | +--rw routing-protocols | |||
| +--rw routing-protocol* [id] | | +--rw routing-protocol* [id] | |||
| +--rw id string | | +--rw id string | |||
| +--rw type? identityref | | +--rw type? identityref | |||
| +--rw routing-profiles* [id] | | +--rw routing-profiles* [id] | |||
| | +--rw id routing-profile-reference | | | +--rw id routing-profile-reference | |||
skipping to change at line 1750 ¶ | skipping to change at line 1741 ¶ | |||
establish this BGP session. If not present, this means that the | establish this BGP session. If not present, this means that the | |||
primary customer IP address is used as the remote IP address. | primary customer IP address is used as the remote IP address. | |||
'requested-start': Specifies the requested date and time when the | 'requested-start': Specifies the requested date and time when the | |||
BGP session is expected to be active. | BGP session is expected to be active. | |||
'requested-stop': Specifies the requested date and time when the BGP | 'requested-stop': Specifies the requested date and time when the BGP | |||
session is expected to be disabled. | session is expected to be disabled. | |||
'actual-start': Reports the actual date and time when the BGP | 'actual-start': Reports the actual date and time when the BGP | |||
session actually was enabled. | session was enabled. | |||
'actual-stop': Reports the actual date and time when the BGP session | 'actual-stop': Reports the actual date and time when the BGP session | |||
actually was disabled. | was disabled. | |||
'status': Indicates the status of the BGP routing instance. | 'status': Indicates the status of the BGP routing instance. | |||
'peer-group': Specifies a name of a peer group. | 'peer-group': Specifies a name of a peer group. | |||
Parameters that are provided at the 'neighbor' level take | Parameters that are provided at the 'neighbor' level take | |||
precedence over the ones provided in the peer group. | precedence over the ones provided in the peer group. | |||
This is an optional parameter. | This is an optional parameter. | |||
skipping to change at line 2237 ¶ | skipping to change at line 2228 ¶ | |||
VPNs"; | VPNs"; | |||
} | } | |||
import ietf-ac-common { | import ietf-ac-common { | |||
prefix ac-common; | prefix ac-common; | |||
reference | reference | |||
"RFC 9833: A Common YANG Data Model for Attachment Circuits"; | "RFC 9833: A Common YANG Data Model for Attachment Circuits"; | |||
} | } | |||
import ietf-ac-svc { | import ietf-ac-svc { | |||
prefix ac-svc; | prefix ac-svc; | |||
reference | reference | |||
"RFC 9834: YANG Data Models for Bearers and 'Attachment | "RFC 9834: YANG Data Models for Bearers and Attachment | |||
Circuits'-as-a-Service (ACaaS)"; | Circuits as a Service (ACaaS)"; | |||
} | } | |||
organization | organization | |||
"IETF OPSAWG (Operations and Management Area Working Group)"; | "IETF OPSAWG (Operations and Management Area Working Group)"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> | "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | |||
WG List: <mailto:opsawg@ietf.org> | WG List: <mailto:opsawg@ietf.org> | |||
Editor: Mohamed Boucadair | Editor: Mohamed Boucadair | |||
<mailto:mohamed.boucadair@orange.com> | <mailto:mohamed.boucadair@orange.com> | |||
Author: Richard Roberts | Editor: Richard Roberts | |||
<mailto:rroberts@juniper.net> | <mailto:rroberts@juniper.net> | |||
Author: Oscar Gonzalez de Dios | Author: Oscar Gonzalez de Dios | |||
<mailto:oscar.gonzalezdedios@telefonica.com> | <mailto:oscar.gonzalezdedios@telefonica.com> | |||
Author: Samier Barguil | Author: Samier Barguil | |||
<mailto:ssamier.barguil_giraldo@nokia.com> | <mailto:ssamier.barguil_giraldo@nokia.com> | |||
Author: Bo Wu | Author: Bo Wu | |||
<mailto:lana.wubo@huawei.com>"; | <mailto:lana.wubo@huawei.com>"; | |||
description | description | |||
"This YANG module defines a generic YANG module for exposing | "This YANG module defines a generic YANG module for exposing | |||
network bearers as a service. | network bearers as a service. | |||
skipping to change at line 2278 ¶ | skipping to change at line 2269 ¶ | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC xxx; see the | This version of this YANG module is part of RFC xxx; see the | |||
RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
revision 2025-08-11 { | revision 2025-08-11 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC 9834: YANG Data Models for Bearers and 'Attachment | "RFC 9834: YANG Data Models for Bearers and Attachment | |||
Circuits'-as-a-Service (ACaaS)"; | Circuits as a Service (ACaaS)"; | |||
} | } | |||
// Identities | // Identities | |||
identity identification-type { | identity identification-type { | |||
description | description | |||
"Base identity for identification of bearers."; | "Base identity for identification of bearers."; | |||
} | } | |||
identity device-id { | identity device-id { | |||
skipping to change at line 2733 ¶ | skipping to change at line 2724 ¶ | |||
} | } | |||
organization | organization | |||
"IETF OPSAWG (Operations and Management Area Working Group)"; | "IETF OPSAWG (Operations and Management Area Working Group)"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> | "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | |||
WG List: <mailto:opsawg@ietf.org> | WG List: <mailto:opsawg@ietf.org> | |||
Editor: Mohamed Boucadair | Editor: Mohamed Boucadair | |||
<mailto:mohamed.boucadair@orange.com> | <mailto:mohamed.boucadair@orange.com> | |||
Author: Richard Roberts | Editor: Richard Roberts | |||
<mailto:rroberts@juniper.net> | <mailto:rroberts@juniper.net> | |||
Author: Oscar Gonzalez de Dios | Author: Oscar Gonzalez de Dios | |||
<mailto:oscar.gonzalezdedios@telefonica.com> | <mailto:oscar.gonzalezdedios@telefonica.com> | |||
Author: Samier Barguil | Author: Samier Barguil | |||
<mailto:ssamier.barguil_giraldo@nokia.com> | <mailto:ssamier.barguil_giraldo@nokia.com> | |||
Author: Bo Wu | Author: Bo Wu | |||
<mailto:lana.wubo@huawei.com>"; | <mailto:lana.wubo@huawei.com>"; | |||
description | description | |||
"This YANG module defines a YANG module for exposing | "This YANG module defines a YANG module for exposing | |||
'Attachment Circuits'-as-a-Service (ACaaS). | Attachment Circuits as a Service (ACaaS). | |||
Copyright (c) 2025 IETF Trust and the persons identified as | Copyright (c) 2025 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC 9834; see the | This version of this YANG module is part of RFC 9834; see the | |||
RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
revision 2025-08-11 { | revision 2025-08-11 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC 9834: YANG Data Models for Bearers and 'Attachment | "RFC 9834: YANG Data Models for Bearers and Attachment | |||
Circuits'-as-a-Service (ACaaS)"; | Circuits as a Service (ACaaS)"; | |||
} | } | |||
/* A set of typedefs to ease referencing cross-modules */ | /* A set of typedefs to ease referencing cross-modules */ | |||
typedef attachment-circuit-reference { | typedef attachment-circuit-reference { | |||
type leafref { | type leafref { | |||
path "/ac-svc:attachment-circuits/ac-svc:ac/ac-svc:name"; | path "/ac-svc:attachment-circuits/ac-svc:ac/ac-svc:name"; | |||
} | } | |||
description | description | |||
"Defines a reference to an attachment circuit that can be used | "Defines a reference to an AC that can be used by other | |||
by other modules."; | modules."; | |||
} | } | |||
typedef ac-group-reference { | typedef ac-group-reference { | |||
type leafref { | type leafref { | |||
path "/ac-svc:attachment-circuits/ac-svc:ac-group-profile" | path "/ac-svc:attachment-circuits/ac-svc:ac-group-profile" | |||
+ "/ac-svc:name"; | + "/ac-svc:name"; | |||
} | } | |||
description | description | |||
"Defines a reference to an attachment circuit profile."; | "Defines a reference to an AC profile."; | |||
} | } | |||
typedef encryption-profile-reference { | typedef encryption-profile-reference { | |||
type leafref { | type leafref { | |||
path "/ac-svc:specific-provisioning-profiles" | path "/ac-svc:specific-provisioning-profiles" | |||
+ "/ac-svc:valid-provider-identifiers" | + "/ac-svc:valid-provider-identifiers" | |||
+ "/ac-svc:encryption-profile-identifier/ac-svc:id"; | + "/ac-svc:encryption-profile-identifier/ac-svc:id"; | |||
} | } | |||
description | description | |||
"Defines a reference to an encryption profile."; | "Defines a reference to an encryption profile."; | |||
skipping to change at line 3606 ¶ | skipping to change at line 3597 ¶ | |||
bandwidth of the AC or upload bandwidth from | bandwidth of the AC or upload bandwidth from | |||
the CE to the PE."; | the CE to the PE."; | |||
uses ac-common:bandwidth-per-type; | uses ac-common:bandwidth-per-type; | |||
} | } | |||
} | } | |||
// Basic AC parameters | // Basic AC parameters | |||
grouping ac-basic { | grouping ac-basic { | |||
description | description | |||
"Grouping for basic parameters for an attachment circuit."; | "Grouping for basic parameters for an AC."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description | description | |||
"A name that uniquely identifies the AC."; | "A name that uniquely identifies the AC."; | |||
} | } | |||
container l2-connection { | container l2-connection { | |||
if-feature "ac-common:layer2-ac"; | if-feature "ac-common:layer2-ac"; | |||
description | description | |||
"Defines Layer 2 protocols and parameters that are required | "Defines Layer 2 protocols and parameters that are required | |||
to enable AC connectivity."; | to enable AC connectivity."; | |||
skipping to change at line 3663 ¶ | skipping to change at line 3654 ¶ | |||
"Layer 2 MTU."; | "Layer 2 MTU."; | |||
} | } | |||
uses bandwidth; | uses bandwidth; | |||
} | } | |||
} | } | |||
// Full AC parameters | // Full AC parameters | |||
grouping ac { | grouping ac { | |||
description | description | |||
"Grouping for an attachment circuit."; | "Grouping for an AC."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description | description | |||
"A name of the AC. Data models that need to reference | "A name of the AC. Data models that need to reference | |||
an AC should use 'attachment-circuit-reference'."; | an AC should use 'attachment-circuit-reference'."; | |||
} | } | |||
leaf-list service-profile { | leaf-list service-profile { | |||
type service-profile-reference; | type service-profile-reference; | |||
description | description | |||
"A reference to a service profile."; | "A reference to a service profile."; | |||
skipping to change at line 3795 ¶ | skipping to change at line 3786 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
// Parent and Child ACs | // Parent and Child ACs | |||
grouping ac-hierarchy { | grouping ac-hierarchy { | |||
description | description | |||
"Container for parent and child AC references."; | "Container for parent and Child AC references."; | |||
leaf-list parent-ref { | leaf-list parent-ref { | |||
type ac-svc:attachment-circuit-reference; | type ac-svc:attachment-circuit-reference; | |||
description | description | |||
"Specifies a parent AC that is inherited by an AC. | "Specifies a Parent AC that is inherited by an AC. | |||
In contexts where dynamic termination points are | In contexts where dynamic termination points are | |||
bound to the same AC, a parent AC with stable | bound to the same AC, a Parent AC with stable | |||
information is created with a set of child ACs | information is created with a set of Child ACs | |||
to track dynamic AC information."; | to track dynamic AC information."; | |||
} | } | |||
leaf-list child-ref { | leaf-list child-ref { | |||
type ac-svc:attachment-circuit-reference; | type ac-svc:attachment-circuit-reference; | |||
config false; | config false; | |||
description | description | |||
"Specifies a child AC that relies upon a parent AC."; | "Specifies a Child AC that relies upon a Parent AC."; | |||
} | } | |||
} | } | |||
/******************** Main AC containers ********************/ | /******************** Main AC containers ********************/ | |||
container specific-provisioning-profiles { | container specific-provisioning-profiles { | |||
description | description | |||
"Contains a set of valid profiles to reference for an AC."; | "Contains a set of valid profiles to reference for an AC."; | |||
uses ac-common:ac-profile-cfg; | uses ac-common:ac-profile-cfg; | |||
} | } | |||
skipping to change at line 3839 ¶ | skipping to change at line 3830 ¶ | |||
description | description | |||
"Identification of the service profile to be used. | "Identification of the service profile to be used. | |||
The profile only has significance within the service | The profile only has significance within the service | |||
provider's administrative domain."; | provider's administrative domain."; | |||
} | } | |||
} | } | |||
nacm:default-deny-write; | nacm:default-deny-write; | |||
} | } | |||
container attachment-circuits { | container attachment-circuits { | |||
description | description | |||
"Main container for the attachment circuits. | "Main container for the ACs. | |||
The timing constraints indicated at the 'ac' level take | The timing constraints indicated at the 'ac' level take | |||
precedence over the values indicated at the | precedence over the values indicated at the | |||
'attachment-circuits' level."; | 'attachment-circuits' level."; | |||
list ac-group-profile { | list ac-group-profile { | |||
key "name"; | key "name"; | |||
description | description | |||
"Maintains a list of profiles that are shared among | "Maintains a list of profiles that are shared among | |||
a set of ACs."; | a set of ACs."; | |||
uses ac; | uses ac; | |||
} | } | |||
skipping to change at line 3865 ¶ | skipping to change at line 3856 ¶ | |||
leaf customer-name { | leaf customer-name { | |||
type string; | type string; | |||
description | description | |||
"Indicates the name of the customer that requested these | "Indicates the name of the customer that requested these | |||
ACs."; | ACs."; | |||
} | } | |||
uses ac-common:op-instructions; | uses ac-common:op-instructions; | |||
list ac { | list ac { | |||
key "name"; | key "name"; | |||
description | description | |||
"Provisioning of an attachment circuit."; | "Provisioning of an AC."; | |||
leaf customer-name { | leaf customer-name { | |||
type string; | type string; | |||
description | description | |||
"Indicates the name of the customer that requested this | "Indicates the name of the customer that requested this | |||
AC."; | AC."; | |||
} | } | |||
leaf description { | leaf description { | |||
type string; | type string; | |||
description | description | |||
"Associates a description with an AC."; | "Associates a description with an AC."; | |||
skipping to change at line 3914 ¶ | skipping to change at line 3905 ¶ | |||
list service-ref { | list service-ref { | |||
key "service-type service-id"; | key "service-type service-id"; | |||
config false; | config false; | |||
description | description | |||
"Reports the set of services that are bound to the AC."; | "Reports the set of services that are bound to the AC."; | |||
leaf service-type { | leaf service-type { | |||
type identityref { | type identityref { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
} | } | |||
description | description | |||
"Indicates the service type (e.g., L3VPN or Network Slice | "Indicates the service type (e.g., L3VPN or RFC 9543 | |||
Service)."; | Network Slice Service)."; | |||
reference | reference | |||
"RFC 9408: A YANG Network Data Model for Service | "RFC 9408: A YANG Network Data Model for Service | |||
Attachment Points (SAPs), Section 5"; | Attachment Points (SAPs), Section 5"; | |||
} | } | |||
leaf service-id { | leaf service-id { | |||
type string; | type string; | |||
description | description | |||
"Indicates an identifier of a service instance | "Indicates an identifier of a service instance | |||
of a given type that uses the AC."; | of a given type that uses the AC."; | |||
} | } | |||
skipping to change at line 3943 ¶ | skipping to change at line 3934 ¶ | |||
to identify the AC."; | to identify the AC."; | |||
} | } | |||
uses ac; | uses ac; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
7. Security Considerations | 7. Security Considerations | |||
This section is modeled after the template described in Section 3.7 | This section is modeled after the template described in Section 3.7.1 | |||
of [YANG-GUIDELINES]. | of [YANG-GUIDELINES]. | |||
The "ietf-bearer-svc" and "ietf-ac-svc" YANG modules define data | The "ietf-bearer-svc" and "ietf-ac-svc" YANG modules define data | |||
models that are designed to be accessed via YANG-based management | models that are designed to be accessed via YANG-based management | |||
protocols, such as NETCONF [RFC6241] and RESTCONF [RFC8040]. These | protocols, such as NETCONF [RFC6241] and RESTCONF [RFC8040]. These | |||
protocols have to use a secure transport layer (e.g., SSH [RFC4252], | protocols have to use a secure transport layer (e.g., SSH [RFC4252], | |||
TLS [RFC8446], and QUIC [RFC9000]) and have to use mutual | TLS [RFC8446], and QUIC [RFC9000]) and have to use mutual | |||
authentication. | authentication. | |||
Servers MUST verify that requesting clients are entitled to access | Servers MUST verify that requesting clients are entitled to access | |||
skipping to change at line 4032 ¶ | skipping to change at line 4023 ¶ | |||
'customer-name', 'l2-connection', and 'ip-connection': An attacker | 'customer-name', 'l2-connection', and 'ip-connection': An attacker | |||
can retrieve privacy-related information, which can be used to | can retrieve privacy-related information, which can be used to | |||
track a customer. Disclosing such information may be considered a | track a customer. Disclosing such information may be considered a | |||
violation of the customer-provider trust relationship. | violation of the customer-provider trust relationship. | |||
'keying-material': An attacker can retrieve the cryptographic keys | 'keying-material': An attacker can retrieve the cryptographic keys | |||
protecting the underlying connectivity services (routing, in | protecting the underlying connectivity services (routing, in | |||
particular). These keys could be used to inject spoofed routing | particular). These keys could be used to inject spoofed routing | |||
advertisements. | advertisements. | |||
There are no particularly sensitive RPC or action operations. | ||||
Several data nodes ('bgp', 'ospf', 'isis', 'rip', and 'customer-key- | Several data nodes ('bgp', 'ospf', 'isis', 'rip', and 'customer-key- | |||
chain') rely upon [RFC8177] for authentication purposes. As such, | chain') rely upon the key chains described in [RFC8177] for | |||
the AC service module inherits the security considerations discussed | authentication purposes. As such, the AC service module inherits the | |||
in Section 5 of [RFC8177]. Also, these data nodes support supplying | security considerations discussed in Section 5 of [RFC8177]. Also, | |||
explicit keys as strings in ASCII format. The use of keys in | these data nodes support supplying explicit keys as strings in ASCII | |||
hexadecimal string format would afford greater key entropy with the | format. The use of keys in hexadecimal string format would afford | |||
same number of key-string octets. However, such a format is not | greater key entropy with the same number of key-string octets. | |||
included in this version of the AC service model because it is not | However, such a format is not included in this version of the AC | |||
supported by the underlying device modules (e.g., [RFC8695]). | service model because it is not supported by the underlying device | |||
modules (e.g., [RFC8695]). | ||||
Section 5.2.5.5 specifies a set of encryption-related parameters that | Section 5.2.5.5 specifies a set of encryption-related parameters that | |||
can be applied to traffic for a given AC. | can be applied to traffic for a given AC. | |||
8. IANA Considerations | 8. IANA Considerations | |||
IANA has registered the following URIs in the "ns" subregistry within | IANA has registered the following URIs in the "ns" subregistry within | |||
the "IETF XML Registry" [RFC3688]: | the "IETF XML Registry" [RFC3688]: | |||
URI: urn:ietf:params:xml:ns:yang:ietf-bearer-svc | URI: urn:ietf:params:xml:ns:yang:ietf-bearer-svc | |||
skipping to change at line 4087 ¶ | skipping to change at line 4081 ¶ | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
January 2006, <https://www.rfc-editor.org/info/rfc4252>. | DOI 10.17487/RFC4271, January 2006, | |||
<https://www.rfc-editor.org/info/rfc4271>. | ||||
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
2006, <https://www.rfc-editor.org/info/rfc4364>. | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
[RFC4577] Rosen, E., Psenak, P., and P. Pillay-Esnault, "OSPF as the | [RFC4577] Rosen, E., Psenak, P., and P. Pillay-Esnault, "OSPF as the | |||
Provider/Customer Edge Protocol for BGP/MPLS IP Virtual | Provider/Customer Edge Protocol for BGP/MPLS IP Virtual | |||
Private Networks (VPNs)", RFC 4577, DOI 10.17487/RFC4577, | Private Networks (VPNs)", RFC 4577, DOI 10.17487/RFC4577, | |||
June 2006, <https://www.rfc-editor.org/info/rfc4577>. | June 2006, <https://www.rfc-editor.org/info/rfc4577>. | |||
skipping to change at line 4114 ¶ | skipping to change at line 4109 ¶ | |||
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
and A. Bierman, Ed., "Network Configuration Protocol | ||||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6241>. | ||||
[RFC6565] Pillay-Esnault, P., Moyer, P., Doyle, J., Ertekin, E., and | [RFC6565] Pillay-Esnault, P., Moyer, P., Doyle, J., Ertekin, E., and | |||
M. Lundberg, "OSPFv3 as a Provider Edge to Customer Edge | M. Lundberg, "OSPFv3 as a Provider Edge to Customer Edge | |||
(PE-CE) Routing Protocol", RFC 6565, DOI 10.17487/RFC6565, | (PE-CE) Routing Protocol", RFC 6565, DOI 10.17487/RFC6565, | |||
June 2012, <https://www.rfc-editor.org/info/rfc6565>. | June 2012, <https://www.rfc-editor.org/info/rfc6565>. | |||
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
<https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
[RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting | [RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting | |||
Authentication Trailer for OSPFv3", RFC 7166, | Authentication Trailer for OSPFv3", RFC 7166, | |||
DOI 10.17487/RFC7166, March 2014, | DOI 10.17487/RFC7166, March 2014, | |||
<https://www.rfc-editor.org/info/rfc7166>. | <https://www.rfc-editor.org/info/rfc7166>. | |||
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | |||
"Security Extension for OSPFv2 When Using Manual Key | "Security Extension for OSPFv2 When Using Manual Key | |||
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | |||
<https://www.rfc-editor.org/info/rfc7474>. | <https://www.rfc-editor.org/info/rfc7474>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | |||
Zhang, "YANG Data Model for Key Chains", RFC 8177, | Zhang, "YANG Data Model for Key Chains", RFC 8177, | |||
DOI 10.17487/RFC8177, June 2017, | DOI 10.17487/RFC8177, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8177>. | <https://www.rfc-editor.org/info/rfc8177>. | |||
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
[RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, | [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, | |||
"Handling Long Lines in Content of Internet-Drafts and | "Handling Long Lines in Content of Internet-Drafts and | |||
RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, | RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, | |||
<https://www.rfc-editor.org/info/rfc8792>. | <https://www.rfc-editor.org/info/rfc8792>. | |||
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
Multiplexed and Secure Transport", RFC 9000, | ||||
DOI 10.17487/RFC9000, May 2021, | ||||
<https://www.rfc-editor.org/info/rfc9000>. | ||||
[RFC9181] Barguil, S., Gonzalez de Dios, O., Ed., Boucadair, M., | [RFC9181] Barguil, S., Gonzalez de Dios, O., Ed., Boucadair, M., | |||
Ed., and Q. Wu, "A Common YANG Data Model for Layer 2 and | Ed., and Q. Wu, "A Common YANG Data Model for Layer 2 and | |||
Layer 3 VPNs", RFC 9181, DOI 10.17487/RFC9181, February | Layer 3 VPNs", RFC 9181, DOI 10.17487/RFC9181, February | |||
2022, <https://www.rfc-editor.org/info/rfc9181>. | 2022, <https://www.rfc-editor.org/info/rfc9181>. | |||
[RFC9182] Barguil, S., Gonzalez de Dios, O., Ed., Boucadair, M., | [RFC9182] Barguil, S., Gonzalez de Dios, O., Ed., Boucadair, M., | |||
Ed., Munoz, L., and A. Aguado, "A YANG Network Data Model | Ed., Munoz, L., and A. Aguado, "A YANG Network Data Model | |||
for Layer 3 VPNs", RFC 9182, DOI 10.17487/RFC9182, | for Layer 3 VPNs", RFC 9182, DOI 10.17487/RFC9182, | |||
February 2022, <https://www.rfc-editor.org/info/rfc9182>. | February 2022, <https://www.rfc-editor.org/info/rfc9182>. | |||
skipping to change at line 4201 ¶ | skipping to change at line 4178 ¶ | |||
Q., and V. Lopez, "A YANG Network Data Model for Service | Q., and V. Lopez, "A YANG Network Data Model for Service | |||
Attachment Points (SAPs)", RFC 9408, DOI 10.17487/RFC9408, | Attachment Points (SAPs)", RFC 9408, DOI 10.17487/RFC9408, | |||
June 2023, <https://www.rfc-editor.org/info/rfc9408>. | June 2023, <https://www.rfc-editor.org/info/rfc9408>. | |||
[RFC9568] Lindem, A. and A. Dogra, "Virtual Router Redundancy | [RFC9568] Lindem, A. and A. Dogra, "Virtual Router Redundancy | |||
Protocol (VRRP) Version 3 for IPv4 and IPv6", RFC 9568, | Protocol (VRRP) Version 3 for IPv4 and IPv6", RFC 9568, | |||
DOI 10.17487/RFC9568, April 2024, | DOI 10.17487/RFC9568, April 2024, | |||
<https://www.rfc-editor.org/info/rfc9568>. | <https://www.rfc-editor.org/info/rfc9568>. | |||
[RFC9833] Boucadair, M., Ed., Roberts, R., Ed., Gonzalez de Dios, | [RFC9833] Boucadair, M., Ed., Roberts, R., Ed., Gonzalez de Dios, | |||
O., Barguil Giraldo, S., and B. Wu, "A Common YANG Data | O., Barguil, S., and B. Wu, "A Common YANG Data Model for | |||
Model for Attachment Circuits", RFC 9833, | Attachment Circuits", RFC 9833, DOI 10.17487/RFC9833, | |||
DOI 10.17487/RFC9833, August 2025, | September 2025, <https://www.rfc-editor.org/info/rfc9833>. | |||
<https://www.rfc-editor.org/info/rfc9833>. | ||||
9.2. Informative References | 9.2. Informative References | |||
[BGP4-YANG] | [BGP4-YANG] | |||
Jethanandani, M., Patel, K., Hares, S., and J. Haas, "YANG | Jethanandani, M., Patel, K., Hares, S., and J. Haas, "YANG | |||
Model for Border Gateway Protocol (BGP-4)", Work in | Model for Border Gateway Protocol (BGP-4)", Work in | |||
Progress, Internet-Draft, draft-ietf-idr-bgp-model-18, 21 | Progress, Internet-Draft, draft-ietf-idr-bgp-model-18, 21 | |||
October 2024, <https://datatracker.ietf.org/doc/html/ | October 2024, <https://datatracker.ietf.org/doc/html/ | |||
draft-ietf-idr-bgp-model-18>. | draft-ietf-idr-bgp-model-18>. | |||
skipping to change at line 4277 ¶ | skipping to change at line 4253 ¶ | |||
[RFC3644] Snir, Y., Ramberg, Y., Strassner, J., Cohen, R., and B. | [RFC3644] Snir, Y., Ramberg, Y., Strassner, J., Cohen, R., and B. | |||
Moore, "Policy Quality of Service (QoS) Information | Moore, "Policy Quality of Service (QoS) Information | |||
Model", RFC 3644, DOI 10.17487/RFC3644, November 2003, | Model", RFC 3644, DOI 10.17487/RFC3644, November 2003, | |||
<https://www.rfc-editor.org/info/rfc3644>. | <https://www.rfc-editor.org/info/rfc3644>. | |||
[RFC4026] Andersson, L. and T. Madsen, "Provider Provisioned Virtual | [RFC4026] Andersson, L. and T. Madsen, "Provider Provisioned Virtual | |||
Private Network (VPN) Terminology", RFC 4026, | Private Network (VPN) Terminology", RFC 4026, | |||
DOI 10.17487/RFC4026, March 2005, | DOI 10.17487/RFC4026, March 2005, | |||
<https://www.rfc-editor.org/info/rfc4026>. | <https://www.rfc-editor.org/info/rfc4026>. | |||
[RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | ||||
Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | ||||
January 2006, <https://www.rfc-editor.org/info/rfc4252>. | ||||
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | |||
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | |||
DOI 10.17487/RFC4861, September 2007, | DOI 10.17487/RFC4861, September 2007, | |||
<https://www.rfc-editor.org/info/rfc4861>. | <https://www.rfc-editor.org/info/rfc4861>. | |||
[RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP | [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP | |||
Authentication Option", RFC 5925, DOI 10.17487/RFC5925, | Authentication Option", RFC 5925, DOI 10.17487/RFC5925, | |||
June 2010, <https://www.rfc-editor.org/info/rfc5925>. | June 2010, <https://www.rfc-editor.org/info/rfc5925>. | |||
[RFC6151] Turner, S. and L. Chen, "Updated Security Considerations | [RFC6151] Turner, S. and L. Chen, "Updated Security Considerations | |||
for the MD5 Message-Digest and the HMAC-MD5 Algorithms", | for the MD5 Message-Digest and the HMAC-MD5 Algorithms", | |||
RFC 6151, DOI 10.17487/RFC6151, March 2011, | RFC 6151, DOI 10.17487/RFC6151, March 2011, | |||
<https://www.rfc-editor.org/info/rfc6151>. | <https://www.rfc-editor.org/info/rfc6151>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
and A. Bierman, Ed., "Network Configuration Protocol | ||||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6241>. | ||||
[RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | |||
BGP, LDP, PCEP, and MSDP Issues According to the Keying | BGP, LDP, PCEP, and MSDP Issues According to the Keying | |||
and Authentication for Routing Protocols (KARP) Design | and Authentication for Routing Protocols (KARP) Design | |||
Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | |||
<https://www.rfc-editor.org/info/rfc6952>. | <https://www.rfc-editor.org/info/rfc6952>. | |||
[RFC7607] Kumari, W., Bush, R., Schiller, H., and K. Patel, | [RFC7607] Kumari, W., Bush, R., Schiller, H., and K. Patel, | |||
"Codification of AS 0 Processing", RFC 7607, | "Codification of AS 0 Processing", RFC 7607, | |||
DOI 10.17487/RFC7607, August 2015, | DOI 10.17487/RFC7607, August 2015, | |||
<https://www.rfc-editor.org/info/rfc7607>. | <https://www.rfc-editor.org/info/rfc7607>. | |||
[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function | [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function | |||
Chaining (SFC) Architecture", RFC 7665, | Chaining (SFC) Architecture", RFC 7665, | |||
DOI 10.17487/RFC7665, October 2015, | DOI 10.17487/RFC7665, October 2015, | |||
<https://www.rfc-editor.org/info/rfc7665>. | <https://www.rfc-editor.org/info/rfc7665>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8299] Wu, Q., Ed., Litkowski, S., Tomotaki, L., and K. Ogaki, | [RFC8299] Wu, Q., Ed., Litkowski, S., Tomotaki, L., and K. Ogaki, | |||
"YANG Data Model for L3VPN Service Delivery", RFC 8299, | "YANG Data Model for L3VPN Service Delivery", RFC 8299, | |||
DOI 10.17487/RFC8299, January 2018, | DOI 10.17487/RFC8299, January 2018, | |||
<https://www.rfc-editor.org/info/rfc8299>. | <https://www.rfc-editor.org/info/rfc8299>. | |||
[RFC8309] Wu, Q., Liu, W., and A. Farrel, "Service Models | [RFC8309] Wu, Q., Liu, W., and A. Farrel, "Service Models | |||
Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, | Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, | |||
<https://www.rfc-editor.org/info/rfc8309>. | <https://www.rfc-editor.org/info/rfc8309>. | |||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
[RFC8466] Wen, B., Fioccola, G., Ed., Xie, C., and L. Jalil, "A YANG | [RFC8466] Wen, B., Fioccola, G., Ed., Xie, C., and L. Jalil, "A YANG | |||
Data Model for Layer 2 Virtual Private Network (L2VPN) | Data Model for Layer 2 Virtual Private Network (L2VPN) | |||
Service Delivery", RFC 8466, DOI 10.17487/RFC8466, October | Service Delivery", RFC 8466, DOI 10.17487/RFC8466, October | |||
2018, <https://www.rfc-editor.org/info/rfc8466>. | 2018, <https://www.rfc-editor.org/info/rfc8466>. | |||
[RFC8695] Liu, X., Sarda, P., and V. Choudhary, "A YANG Data Model | [RFC8695] Liu, X., Sarda, P., and V. Choudhary, "A YANG Data Model | |||
for the Routing Information Protocol (RIP)", RFC 8695, | for the Routing Information Protocol (RIP)", RFC 8695, | |||
DOI 10.17487/RFC8695, February 2020, | DOI 10.17487/RFC8695, February 2020, | |||
<https://www.rfc-editor.org/info/rfc8695>. | <https://www.rfc-editor.org/info/rfc8695>. | |||
skipping to change at line 4346 ¶ | skipping to change at line 4339 ¶ | |||
Georgatsos, "Dynamic Service Negotiation: The Connectivity | Georgatsos, "Dynamic Service Negotiation: The Connectivity | |||
Provisioning Negotiation Protocol (CPNP)", RFC 8921, | Provisioning Negotiation Protocol (CPNP)", RFC 8921, | |||
DOI 10.17487/RFC8921, October 2020, | DOI 10.17487/RFC8921, October 2020, | |||
<https://www.rfc-editor.org/info/rfc8921>. | <https://www.rfc-editor.org/info/rfc8921>. | |||
[RFC8969] Wu, Q., Ed., Boucadair, M., Ed., Lopez, D., Xie, C., and | [RFC8969] Wu, Q., Ed., Boucadair, M., Ed., Lopez, D., Xie, C., and | |||
L. Geng, "A Framework for Automating Service and Network | L. Geng, "A Framework for Automating Service and Network | |||
Management with YANG", RFC 8969, DOI 10.17487/RFC8969, | Management with YANG", RFC 8969, DOI 10.17487/RFC8969, | |||
January 2021, <https://www.rfc-editor.org/info/rfc8969>. | January 2021, <https://www.rfc-editor.org/info/rfc8969>. | |||
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
Multiplexed and Secure Transport", RFC 9000, | ||||
DOI 10.17487/RFC9000, May 2021, | ||||
<https://www.rfc-editor.org/info/rfc9000>. | ||||
[RFC9234] Azimov, A., Bogomazov, E., Bush, R., Patel, K., and K. | [RFC9234] Azimov, A., Bogomazov, E., Bush, R., Patel, K., and K. | |||
Sriram, "Route Leak Prevention and Detection Using Roles | Sriram, "Route Leak Prevention and Detection Using Roles | |||
in UPDATE and OPEN Messages", RFC 9234, | in UPDATE and OPEN Messages", RFC 9234, | |||
DOI 10.17487/RFC9234, May 2022, | DOI 10.17487/RFC9234, May 2022, | |||
<https://www.rfc-editor.org/info/rfc9234>. | <https://www.rfc-editor.org/info/rfc9234>. | |||
[RFC9543] Farrel, A., Ed., Drake, J., Ed., Rokui, R., Homma, S., | [RFC9543] Farrel, A., Ed., Drake, J., Ed., Rokui, R., Homma, S., | |||
Makhijani, K., Contreras, L., and J. Tantsura, "A | Makhijani, K., Contreras, L., and J. Tantsura, "A | |||
Framework for Network Slices in Networks Built from IETF | Framework for Network Slices in Networks Built from IETF | |||
Technologies", RFC 9543, DOI 10.17487/RFC9543, March 2024, | Technologies", RFC 9543, DOI 10.17487/RFC9543, March 2024, | |||
<https://www.rfc-editor.org/info/rfc9543>. | <https://www.rfc-editor.org/info/rfc9543>. | |||
[RFC9835] Boucadair, M., Ed., Roberts, R., Gonzalez de Dios, O., | [RFC9835] Boucadair, M., Ed., Roberts, R., Gonzalez de Dios, O., | |||
Barguil Giraldo, S., and B. Wu, "A Network YANG Data Model | Barguil, S., and B. Wu, "A Network YANG Data Model for | |||
for Attachment Circuits", RFC 9835, DOI 10.17487/RFC9835, | Attachment Circuits", RFC 9835, DOI 10.17487/RFC9835, | |||
August 2025, <https://www.rfc-editor.org/info/rfc9835>. | September 2025, <https://www.rfc-editor.org/info/rfc9835>. | |||
[RFC9836] Boucadair, M., Ed., Roberts, R., Barguil Giraldo, S., and | [RFC9836] Boucadair, M., Ed., Roberts, R., Barguil, S., and O. | |||
O. Gonzalez de Dios, "A YANG Data Model for Augmenting VPN | Gonzalez de Dios, "A YANG Data Model for Augmenting VPN | |||
Service and Network Models with Attachment Circuits", | Service and Network Models with Attachment Circuits", | |||
RFC 9836, DOI 10.17487/RFC9836, August 2025, | RFC 9836, DOI 10.17487/RFC9836, September 2025, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- | <https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- | |||
ac-lxsm-lxnm-glue-14>. | ac-lxsm-lxnm-glue-14>. | |||
[YANG-GUIDELINES] | [YANG-GUIDELINES] | |||
Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines | Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines | |||
for Authors and Reviewers of Documents Containing YANG | for Authors and Reviewers of Documents Containing YANG | |||
Data Models", Work in Progress, Internet-Draft, draft- | Data Models", Work in Progress, Internet-Draft, draft- | |||
ietf-netmod-rfc8407bis-28, 5 June 2025, | ietf-netmod-rfc8407bis-28, 5 June 2025, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | <https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | |||
rfc8407bis-28>. | rfc8407bis-28>. | |||
skipping to change at line 4498 ¶ | skipping to change at line 4496 ¶ | |||
} | } | |||
}, | }, | |||
"bearer-reference": "line-156" | "bearer-reference": "line-156" | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 27: Example of a Message Body of a Response to Assign a | Figure 27: Example of a Message Body of a Response to Assign a | |||
Customer VLAN (CVLAN) ID | Customer VLAN (C-VLAN) ID | |||
A.3. Create an AC for a Known Peer SAP | A.3. Create an AC for a Known Peer SAP | |||
An example of a request to create a simple AC, when the peer SAP is | An example of a request to create a simple AC, when the peer SAP is | |||
known, is shown in Figure 28. In this example, the peer SAP | known, is shown in Figure 28. In this example, the peer SAP | |||
identifier points to an identifier of an SF. The (topological) | identifier points to an identifier of an SF. The (topological) | |||
location of that SF is assumed to be known to the network controller. | location of that SF is assumed to be known to the network controller. | |||
For example, this can be determined as part of an on-demand procedure | For example, this can be determined as part of an on-demand procedure | |||
to instantiate an SF in a cloud. That instantiated SF can be granted | to instantiate an SF in a cloud. That instantiated SF can be granted | |||
a connectivity service via the provider network. | a connectivity service via the provider network. | |||
skipping to change at line 5013 ¶ | skipping to change at line 5011 ¶ | |||
} | } | |||
} | } | |||
Figure 38: Example of a Message Body of a Request to Create | Figure 38: Example of a Message Body of a Request to Create | |||
Multiple ACs Bound to Multiple CEs | Multiple ACs Bound to Multiple CEs | |||
A.7. Binding Attachment Circuits to an IETF Network Slice | A.7. Binding Attachment Circuits to an IETF Network Slice | |||
This example shows how the AC service model complements the model | This example shows how the AC service model complements the model | |||
defined in "A YANG Data Model for the RFC 9543 Network Slice Service" | defined in "A YANG Data Model for the RFC 9543 Network Slice Service" | |||
[NSSM] to connect a site to a Slice Service. | [NSSM] to connect a site to an RFC 9543 Network Slice Service. | |||
First, Figure 39 describes the end-to-end network topology as well as | First, Figure 39 describes the end-to-end network topology as well as | |||
the orchestration scopes: | the orchestration scopes: | |||
* The topology is made up of two sites ("site1" and "site2"), | * The topology is made up of two sites ("site1" and "site2"), | |||
interconnected via a Transport Network (e.g., IP/MPLS network). | interconnected via a Transport Network (e.g., IP/MPLS network). | |||
An SF is deployed within each site in a dedicated IP subnet. | An SF is deployed within each site in a dedicated IP subnet. | |||
* A 5G Service Management and Orchestration (SMO) is responsible for | * A 5G Service Management and Orchestration (SMO) is responsible for | |||
the deployment of SFs and the indirect management of a local | the deployment of SFs and the indirect management of a local | |||
skipping to change at line 5284 ¶ | skipping to change at line 5282 ¶ | |||
] | ] | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 42: Example of a Message Body of a Response Indicating the | Figure 42: Example of a Message Body of a Response Indicating the | |||
Creation of the ACs | Creation of the ACs | |||
Figure 43 shows the message body of the request to create a Slice | Figure 43 shows the message body of the request to create an RFC 9543 | |||
Service bound to the ACs created using Figure 41. Only references to | Netowrk Slice Service bound to the ACs created using Figure 41. Only | |||
these ACs are included in the Slice Service request. | references to these ACs are included in the RFC 9543 Network Slice | |||
Service request. | ||||
{ | { | |||
"ietf-network-slice-service:network-slice-services": { | "ietf-network-slice-service:network-slice-services": { | |||
"slo-sle-templates": { | "slo-sle-templates": { | |||
"slo-sle-template": [ | "slo-sle-template": [ | |||
{ | { | |||
"id": "low-latency-template", | "id": "low-latency-template", | |||
"description": "Lowest latency forwarding behavior" | "description": "Lowest latency forwarding behavior" | |||
} | } | |||
] | ] | |||
skipping to change at line 5325 ¶ | skipping to change at line 5324 ¶ | |||
"ac2" | "ac2" | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 43: Message Body of a Request to Create a Slice Service | Figure 43: Message Body of a Request to Create an RFC 9543 | |||
Referring to the ACs | Network Slice Service Referring to the ACs | |||
A.8. Connecting a Virtualized Environment Running in a Cloud Provider | A.8. Connecting a Virtualized Environment Running in a Cloud Provider | |||
This example (Figure 44) shows how the AC service model can be used | This example (Figure 44) shows how the AC service model can be used | |||
to connect a Cloud Infrastructure to a service provider network. | to connect a Cloud Infrastructure to a service provider network. | |||
This example makes the following assumptions: | This example makes the following assumptions: | |||
1. A customer (e.g., Mobile Network Team or partner) has a | 1. A customer (e.g., Mobile Network Team or partner) has a | |||
virtualized infrastructure running in a Cloud Provider. A | virtualized infrastructure running in a Cloud Provider. A | |||
simplistic deployment is represented here with a set of Virtual | simplistic deployment is represented here with a set of Virtual | |||
skipping to change at line 5413 ¶ | skipping to change at line 5412 ¶ | |||
Physical Connection 1234-56789 is delivered and | Physical Connection 1234-56789 is delivered and | |||
connected to PE1 | connected to PE1 | |||
Network Inventory Updated with: | Network Inventory Updated with: | |||
bearer-reference: 1234-56789 for PE1/Interface "If-A" | bearer-reference: 1234-56789 for PE1/Interface "If-A" | |||
Figure 45: Illustration of Pre-Provisioning | Figure 45: Illustration of Pre-Provisioning | |||
Next, API workflows can be initiated by: | Next, API workflows can be initiated by: | |||
* The Cloud Provider for the configuration per Step (3) above. | * The Cloud Provider for the configuration per item 3 above. | |||
* The service provider network via the ACaaS model. This request | * The service provider network via the ACaaS model. This request | |||
can be used in conjunction with additional requests based on the | can be used in conjunction with additional requests based on the | |||
L3SM (VPN provisioning) or Network Slice Service model (5G hybrid | L3SM (VPN provisioning) or RFC 9543 Network Slice Service model | |||
cloud deployment). | (5G hybrid cloud deployment). | |||
Figure 46 shows the message body of the request to create the | Figure 46 shows the message body of the request to create the | |||
required ACs to connect the virtualized Cloud Provider (VM) using the | required ACs to connect the virtualized Cloud Provider (VM) using the | |||
ACaaS module. | ACaaS module. | |||
=============== NOTE: '\' line wrapping per RFC 8792 ================ | =============== NOTE: '\' line wrapping per RFC 8792 ================ | |||
{ | { | |||
"ietf-ac-svc:attachment-circuits": { | "ietf-ac-svc:attachment-circuits": { | |||
"ac": [ | "ac": [ | |||
skipping to change at line 5475 ¶ | skipping to change at line 5474 ¶ | |||
} | } | |||
Figure 46: Message Body of a Request to Create the ACs for | Figure 46: Message Body of a Request to Create the ACs for | |||
Connecting to the Cloud Provider | Connecting to the Cloud Provider | |||
Figure 47 shows the message body of the response received from the | Figure 47 shows the message body of the response received from the | |||
provider as a response to a query message. Note that this Cloud | provider as a response to a query message. Note that this Cloud | |||
Provider mandates the use of MD5 authentication for establishing BGP | Provider mandates the use of MD5 authentication for establishing BGP | |||
connections. | connections. | |||
The module supports MD5 to basically accommodate the installed BGP | | The module supports MD5 to basically accommodate the installed | |||
base (including by some Cloud Providers). Note that MD5 suffers | | BGP base (including by some Cloud Providers). Note that MD5 | |||
from the security weaknesses discussed in Section 2 of [RFC6151] | | suffers from the security weaknesses discussed in Section 2 of | |||
and Section 2.1 of [RFC6952]. | | [RFC6151] and Section 2.1 of [RFC6952]. | |||
=============== NOTE: '\' line wrapping per RFC 8792 ================ | =============== NOTE: '\' line wrapping per RFC 8792 ================ | |||
{ | { | |||
"ietf-ac-svc:attachment-circuits": { | "ietf-ac-svc:attachment-circuits": { | |||
"ac": [ | "ac": [ | |||
{ | { | |||
"name": "ac--BXT-DC-customer-VPC-foo", | "name": "ac--BXT-DC-customer-VPC-foo", | |||
"description": "Connection to Cloud Provider BXT on \ | "description": "Connection to Cloud Provider BXT on \ | |||
connection 1234-56789", | connection 1234-56789", | |||
skipping to change at line 5577 ¶ | skipping to change at line 5576 ¶ | |||
| . | | | . | | |||
| . | | | . | | |||
| . | | | . | | |||
| .------------. | | | .------------. | | |||
| | PEm(VRFmn) | | | | | PEm(VRFmn) | | | |||
| '------------' | | | '------------' | | |||
'------------------------' | '------------------------' | |||
Figure 48: Illustration of Provider Network Scenario | Figure 48: Illustration of Provider Network Scenario | |||
The attachment circuit in this case uses a SAP identifier to refer to | The AC in this case uses a SAP identifier to refer to the physical | |||
the physical interface used for the connection between the PE and the | interface used for the connection between the PE and the CE. The AC | |||
CE. The attachment circuit includes all the additional logical | includes all the additional logical attributes to describe the | |||
attributes to describe the connection between the two ends, including | connection between the two ends, including VLAN information and IP | |||
VLAN information and IP addressing. Also, the configuration details | addressing. Also, the configuration details of the BGP session make | |||
of the BGP session make use of peer group details instead of defining | use of peer group details instead of defining the entire | |||
the entire configuration inside the 'neighbor' data node. | configuration inside the 'neighbor' data node. | |||
{ | { | |||
"ietf-ac-svc:attachment-circuits": { | "ietf-ac-svc:attachment-circuits": { | |||
"ac": [ | "ac": [ | |||
{ | { | |||
"name": "CE-PE-AC", | "name": "CE-PE-AC", | |||
"customer-name": "Customer-4875", | "customer-name": "Customer-4875", | |||
"description": "An AC between a CP and a PE", | "description": "An AC between a CP and a PE", | |||
"peer-sap-id": [ | "peer-sap-id": [ | |||
"sap#113" | "sap#113" | |||
skipping to change at line 5711 ¶ | skipping to change at line 5710 ¶ | |||
between two networks without involving an IXP. | between two networks without involving an IXP. | |||
A.10.1. Retrieve Interconnection Locations | A.10.1. Retrieve Interconnection Locations | |||
Figure 51 shows an example message body of a request to retrieve a | Figure 51 shows an example message body of a request to retrieve a | |||
list of interconnection locations. The request includes a customer | list of interconnection locations. The request includes a customer | |||
name and an ASN to filter out the locations. | name and an ASN to filter out the locations. | |||
{ | { | |||
"ietf-bearer-svc:locations": { | "ietf-bearer-svc:locations": { | |||
"filtered-by": "ietf-bearer-svc:customer-name", | ||||
"customer": [ | "customer": [ | |||
{ | { | |||
"name": "a future peer", | "name": "a future peer", | |||
"peer-as": 65536 | "peer-as": 65536 | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 51: Message Body of a Request to Retrieve Interconnection | Figure 51: Message Body of a Request to Retrieve Interconnection | |||
Locations | Locations | |||
Figure 52 provides an example of a response to a query received from | Figure 52 provides an example of a response to a query received from | |||
the server with a list of available interconnection locations. | the server with a list of available interconnection locations. | |||
{ | { | |||
"ietf-bearer-svc:locations": { | "ietf-bearer-svc:locations": { | |||
"filtered-by": "ietf-bearer-svc:customer-name", | ||||
"customer": [ | "customer": [ | |||
{ | { | |||
"name": "a future peer", | "name": "a future peer", | |||
"peer-as": 65536, | "peer-as": 65536, | |||
"location": [ | "location": [ | |||
{ | { | |||
"name": "Location-X", | "name": "Location-X", | |||
"_comment": "other location attributes" | "_comment": "other location attributes" | |||
}, | }, | |||
{ | { | |||
skipping to change at line 6101 ¶ | skipping to change at line 6098 ¶ | |||
Figure 60: Message Body of a Response to Report All Active BGP | Figure 60: Message Body of a Response to Report All Active BGP | |||
Sessions over an AC | Sessions over an AC | |||
A.11. Connectivity of Cloud Network Functions | A.11. Connectivity of Cloud Network Functions | |||
A.11.1. Scope | A.11.1. Scope | |||
This section demonstrates how the AC service model permits managing | This section demonstrates how the AC service model permits managing | |||
connectivity requirements for complex Network Functions (NFs) -- | connectivity requirements for complex Network Functions (NFs) -- | |||
containerized or virtualized -- that are typically deployed in telco | containerized or virtualized -- that are typically deployed in telco | |||
networks. This integration leverages the concept of "parent AC" to | networks. This integration leverages the concept of "Parent AC" to | |||
decouple physical and logical connectivity so that several ACs can | decouple physical and logical connectivity so that several ACs can | |||
share Layer 2 and Layer 3 resources. This approach provides | share Layer 2 and Layer 3 resources. This approach provides | |||
flexibility, scalability, and API stability. | flexibility, scalability, and API stability. | |||
The NFs have the following characteristics: | The NFs have the following characteristics: | |||
* The NF is distributed on a set of compute nodes with scaled-out | * The NF is distributed on a set of compute nodes with scaled-out | |||
and redundant instances. | and redundant instances. | |||
* The NF has two distinct type of instances: user plane ("nf-up") | * The NF has two distinct type of instances: user plane ("nf-up") | |||
skipping to change at line 6134 ¶ | skipping to change at line 6131 ¶ | |||
separate ACs. From a realization standpoint, the NF interface | separate ACs. From a realization standpoint, the NF interface | |||
connectivity is generally provided thanks to MacVLAN or Single | connectivity is generally provided thanks to MacVLAN or Single | |||
Root I/O Virtualization (SR-IOV). For the sake of simplicity, | Root I/O Virtualization (SR-IOV). For the sake of simplicity, | |||
only two VLANs are presented in this example; additional VLANs are | only two VLANs are presented in this example; additional VLANs are | |||
configured following a similar logic. | configured following a similar logic. | |||
A.11.2. Physical Infrastructure | A.11.2. Physical Infrastructure | |||
Figure 61 describes the physical infrastructure. The compute nodes | Figure 61 describes the physical infrastructure. The compute nodes | |||
(customer) are attached to the provider infrastructure thanks to a | (customer) are attached to the provider infrastructure thanks to a | |||
set of physical links on which attachment circuits are provisioned | set of physical links on which ACs are provisioned (i.e., "compute- | |||
(i.e., "compute-XX-nicY"). The provider infrastructure can be | XX-nicY"). The provider infrastructure can be realized in multiple | |||
realized in multiple ways, such as IP Fabric and Layer 2/3 Edge | ways, such as IP Fabric and Layer 2/3 Edge Routers. This document | |||
Routers. This document does not intend to detail these aspects. | does not intend to detail these aspects. | |||
.---------------------------. | .---------------------------. | |||
.------------. bearer = | .--------. | | .------------. bearer = | .--------. | | |||
| | compute-01-nic1 | | | | | | | compute-01-nic1 | | | | | |||
| compute-01 |------------------------| '--------' | | | compute-01 |------------------------| '--------' | | |||
| | | | | | | | | | |||
'------------' | .--------. .--------. | | '------------' | .--------. .--------. | | |||
| | | | | | | | | | | | | | |||
| '--------' '--------' | | | '--------' '--------' | | |||
.------------. bearer = | | | .------------. bearer = | | | |||
skipping to change at line 6168 ¶ | skipping to change at line 6165 ¶ | |||
| | | Infrastructure | | | | | Infrastructure | | |||
'------------' |(IP Fabric, Gateways, etc.)| | '------------' |(IP Fabric, Gateways, etc.)| | |||
'---------------------------' | '---------------------------' | |||
Figure 61: Example Physical Topology for Cloud Deployment | Figure 61: Example Physical Topology for Cloud Deployment | |||
A.11.3. NFs Deployment | A.11.3. NFs Deployment | |||
The NFs are deployed on this infrastructure in the following way: | The NFs are deployed on this infrastructure in the following way: | |||
* Configuration of a parent AC as a centralized attachment for "vlan | * Configuration of a Parent AC as a centralized attachment for "vlan | |||
100". The parent AC captures Layer 2 and Layer 3 properties for | 100". The Parent AC captures Layer 2 and Layer 3 properties for | |||
this VLAN: vlan-id, IP default gateway and subnet, IP address pool | this VLAN: vlan-id, IP default gateway and subnet, IP address pool | |||
for NFs endpoints, static routes with BFD to user plane, and BGP | for NFs endpoints, static routes with BFD to user plane, and BGP | |||
configuration to control plane NFs. In addition, the IP addresses | configuration to control plane NFs. In addition, the IP addresses | |||
of the user plane ("nf-up") instances are protected using BFD. | of the user plane ("nf-up") instances are protected using BFD. | |||
* Configuration of a parent AC as a centralized attachment for "vlan | * Configuration of a Parent AC as a centralized attachment for "vlan | |||
200". This VLAN is for Layer 2 connectivity between NFs (no IP | 200". This VLAN is for Layer 2 connectivity between NFs (no IP | |||
configuration in the provider network). | configuration in the provider network). | |||
* "Child ACs" binding bearers to parent ACs for "vlan 100" and "vlan | * "Child ACs" binding bearers to Parent ACs for "vlan 100" and "vlan | |||
200". | 200". | |||
* The deployment of the network service to all compute nodes | * The deployment of the network service to all compute nodes | |||
("compute-01" to "compute-10"), even though the NF is not | ("compute-01" to "compute-10"), even though the NF is not | |||
instantiated on "compute-07"/"compute-08". This approach permits | instantiated on "compute-07"/"compute-08". This approach permits | |||
handling compute failures and scale-out scenarios in a reactive | handling compute failures and scale-out scenarios in a reactive | |||
and flexible fashion thanks to a pre-provisioned networking logic. | and flexible fashion thanks to a pre-provisioned networking logic. | |||
.-------------------------------------. | .-------------------------------------. | |||
|VLAN 100: | | |VLAN 100: | | |||
skipping to change at line 6594 ¶ | skipping to change at line 6591 ¶ | |||
| .----. |.7 < - BFD - > | compute-08 | | | .----. |.7 < - BFD - > | compute-08 | | |||
| |nf-up7| |---------vlan-100-------------| created for | | | |nf-up7| |---------vlan-100-------------| created for | | |||
| | | |---------vlan-200-------------| scale-out | | | | | |---------vlan-200-------------| scale-out | | |||
| '----' | | | | | '----' | | | | |||
compute-08 '-----------------------' | compute-08 '-----------------------' | |||
Figure 64: Example of Compute Failure and Scale-Out | Figure 64: Example of Compute Failure and Scale-Out | |||
Finally, the addition or deletion of compute nodes in the deployment | Finally, the addition or deletion of compute nodes in the deployment | |||
("compute-11", "compute-12", etc.) involves merely changes on Child | ("compute-11", "compute-12", etc.) involves merely changes on Child | |||
ACs and possible routing on the parent AC. In any case, the parent | ACs and possible routing on the Parent AC. In any case, the Parent | |||
AC is a stable identifier, which can be consumed as a reference by | AC is a stable identifier, which can be consumed as a reference by | |||
end-to-end service models for VPN configuration such as AC Glue | end-to-end service models for VPN configuration such as AC Glue | |||
[RFC9836], Slice Service [NSSM], etc. This decoupling to a stable | [RFC9836], RFC 9543 Network Slice Service [NSSM], etc. This | |||
identifier provides great benefits in terms of scalability and | decoupling to a stable identifier provides great benefits in terms of | |||
flexibility since once the reference with the parent AC is | scalability and flexibility since once the reference with the Parent | |||
implemented, no API call involving the VPN model is needed for any | AC is implemented, no API call involving the VPN model is needed for | |||
modification in the cloud. | any modification in the cloud. | |||
A.12. BFD and Static Addressing | A.12. BFD and Static Addressing | |||
Figure 65 shows a topology example of a set of CEs connected to a | Figure 65 shows a topology example of a set of CEs connected to a | |||
provider network via dedicated bearers. Each of these CEs maintains | provider network via dedicated bearers. Each of these CEs maintains | |||
two BFD sessions with the provider network. | two BFD sessions with the provider network. | |||
+----------------------------+ | +----------------------------+ | |||
.-------. .1 | | | .-------. .1 | | | |||
| CE1 |------------|------+ | | | CE1 |------------|------+ | | |||
skipping to change at line 6636 ¶ | skipping to change at line 6633 ¶ | |||
Each CE has a BFD session to each gateway for redundancy: | Each CE has a BFD session to each gateway for redundancy: | |||
.-------. | .-------. | |||
| CEx | .x <---BFD---> .252 | | CEx | .x <---BFD---> .252 | |||
'-------' <---BFD---> .253 | '-------' <---BFD---> .253 | |||
Figure 65: Example of Static Addressing with BFD | Figure 65: Example of Static Addressing with BFD | |||
Figure 66 shows the message body of the ACaaS configuration to enable | Figure 66 shows the message body of the ACaaS configuration to enable | |||
the target architecture shown in Figure 65. This example uses an AC | the target architecture shown in Figure 65. This example uses an AC | |||
group profile to factorize common data between all involved ACs. It | group profile to factorize common data between all involved ACs. It | |||
also uses child ACs that inherit the properties of two parent ACs, | also uses Child ACs that inherit the properties of two Parent ACs, | |||
each terminating in a separate gateway in the provider network. | each terminating in a separate gateway in the provider network. | |||
=============== NOTE: '\' line wrapping per RFC 8792 ================ | =============== NOTE: '\' line wrapping per RFC 8792 ================ | |||
{ | { | |||
"ietf-ac-svc:specific-provisioning-profiles": { | "ietf-ac-svc:specific-provisioning-profiles": { | |||
"valid-provider-identifiers": { | "valid-provider-identifiers": { | |||
"failure-detection-profile-identifier": [ | "failure-detection-profile-identifier": [ | |||
{ | { | |||
"id": "single-hop-bfd" | "id": "single-hop-bfd" | |||
skipping to change at line 7641 ¶ | skipping to change at line 7638 ¶ | |||
Email: mohamed.boucadair@orange.com | Email: mohamed.boucadair@orange.com | |||
Richard Roberts (editor) | Richard Roberts (editor) | |||
Juniper | Juniper | |||
Email: rroberts@juniper.net | Email: rroberts@juniper.net | |||
Oscar Gonzalez de Dios | Oscar Gonzalez de Dios | |||
Telefonica | Telefonica | |||
Email: oscar.gonzalezdedios@telefonica.com | Email: oscar.gonzalezdedios@telefonica.com | |||
Samier Barguil Giraldo | Samier Barguil | |||
Nokia | Nokia | |||
Email: samier.barguil_giraldo@nokia.com | Email: samier.barguil_giraldo@nokia.com | |||
Bo Wu | Bo Wu | |||
Huawei Technologies | Huawei Technologies | |||
Email: lana.wubo@huawei.com | Email: lana.wubo@huawei.com | |||
End of changes. 107 change blocks. | ||||
261 lines changed or deleted | 258 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |