rfc9833.original | rfc9833.txt | |||
---|---|---|---|---|
Operations and Management Area Working Group M. Boucadair, Ed. | Internet Engineering Task Force (IETF) M. Boucadair, Ed. | |||
Internet-Draft Orange | Request for Comments: 9833 Orange | |||
Intended status: Standards Track R. Roberts, Ed. | Category: Standards Track R. Roberts, Ed. | |||
Expires: 27 July 2025 Juniper | ISSN: 2070-1721 Juniper | |||
O. G. D. Dios | O. Gonzalez de Dios | |||
Telefonica | Telefonica | |||
S. B. Giraldo | S. Barguil Giraldo | |||
Nokia | Nokia | |||
B. Wu | B. Wu | |||
Huawei Technologies | Huawei Technologies | |||
23 January 2025 | August 2025 | |||
A Common YANG Data Model for Attachment Circuits | A Common YANG Data Model for Attachment Circuits | |||
draft-ietf-opsawg-teas-common-ac-15 | ||||
Abstract | Abstract | |||
The document specifies a common attachment circuits (ACs) YANG model, | The document specifies a common attachment circuits (ACs) YANG data | |||
which is designed to be reusable by other models. This design is | model, which is designed to be reusable by other models. This design | |||
meant to ensure consistent AC structures among models that manipulate | is meant to ensure consistent AC structures among models that | |||
ACs. For example, this common model can be reused by service models | manipulate ACs. For example, this common model can be reused by | |||
to expose ACs as a service, service models that require binding a | service models to expose ACs as a service, service models that | |||
service to a set of ACs, network and device models to provision ACs, | require binding a service to a set of ACs, network and device models | |||
etc. | to provision ACs, etc. | |||
Discussion Venues | ||||
This note is to be removed before publishing as an RFC. | ||||
Discussion of this document takes place on the Operations and | ||||
Management Area Working Group Working Group mailing list | ||||
(opsawg@ietf.org), which is archived at | ||||
https://mailarchive.ietf.org/arch/browse/opsawg/. | ||||
Source for this draft and an issue tracker can be found at | ||||
https://github.com/boucadair/attachment-circuit-model. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 27 July 2025. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9833. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Editorial Note (To be removed by RFC Editor) . . . . . . 4 | 2. Conventions and Definitions | |||
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 5 | 3. Relationship to Other AC Data Models | |||
3. Relationship to Other AC Data Models . . . . . . . . . . . . 6 | 4. Description of the AC Common YANG Module | |||
4. Description of the AC Common YANG Module . . . . . . . . . . 7 | 4.1. Features | |||
4.1. Features . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Identities | |||
4.2. Identities . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.3. Reusable Groupings | |||
4.3. Reusable Groupings . . . . . . . . . . . . . . . . . . . 9 | 5. Common Attachment Circuit YANG Module | |||
5. Common Attachment Circuit YANG Module . . . . . . . . . . . . 18 | 6. Security Considerations | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 53 | 7. IANA Considerations | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 | 8. References | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 54 | 8.1. Normative References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 54 | 8.2. Informative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 56 | Appendix A. Full Tree | |||
Appendix A. Full Tree . . . . . . . . . . . . . . . . . . . . . 60 | Acknowledgments | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 66 | Contributors | |||
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 66 | Authors' Addresses | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 67 | ||||
1. Introduction | 1. Introduction | |||
Connectivity services are provided by networks to customers via | Connectivity services are provided by networks to customers via | |||
dedicated terminating points (e.g., Service Functions (SFs), Customer | dedicated terminating points (e.g., Service Functions (SFs), Customer | |||
Premises Equipment (CPEs), Autonomous System Border Routers (ASBRs), | Premises Equipment (CPE), Autonomous System Border Routers (ASBRs), | |||
data centers gateways, or Internet Exchange Points). A connectivity | data center gateways, or Internet Exchange Points (IXPs)). A | |||
service ensures data transfer from (or destined to) a given | connectivity service ensures data transfer from (or destined to) a | |||
terminating point to (or originate from) other terminating points. | given terminating point to (or originating from) other terminating | |||
Objectives for such a connectivity service may be negotiated and | points. Objectives for such a connectivity service may be negotiated | |||
agreed upon between a customer and a network provider. | and agreed upon between a customer and a network provider. | |||
For that data transfer to take place within the provider network, it | For that data transfer to take place within the provider network, it | |||
is assumed that adequate setup is provisioned over the links | is assumed that adequate setup is provisioned over the links | |||
connecting the customer's terminating points to the provider network | connecting the customer's terminating points to the provider network | |||
(typically, a Provider Edge (PE)), thereby enabling successful data | (typically, a Provider Edge (PE)), thereby enabling successful data | |||
exchange. This necessary provisioning is referred to in this | exchange. This necessary provisioning is referred to in this | |||
document as "attachment circuit" (AC), while the underlying link is | document as an "attachment circuit" (AC), while the underlying link | |||
referred to as the "bearer". | is referred to as the "bearer". | |||
When a customer requests a new service, that service can be | When a customer requests a new service, that service can be | |||
associated with existing attachment circuits or may require the | associated with existing attachment circuits or may require the | |||
instantiation of new attachment circuits. Whether these attachment | instantiation of new attachment circuits. Whether these attachment | |||
circuits are dedicated to a particular service or shared among | circuits are dedicated to a particular service or shared among | |||
multiple services depends on the specific deployment. | multiple services depends on the specific deployment. | |||
Examples of attachment circuits are depicted in Figure 1. A Customer | Examples of attachment circuits are depicted in Figure 1. A Customer | |||
Edge (CE) may be realized as a physical node or a logical entity. | Edge (CE) may be realized as a physical node or a logical entity. | |||
From the network's perspective, a CE is treated as a peer Service | From the network's perspective, a CE is treated as a peer Service | |||
skipping to change at page 4, line 30 ¶ | skipping to change at line 140 ¶ | |||
'-----------AC----------' | '-----------AC----------' | |||
(bx) = bearer Id x | (bx) = bearer Id x | |||
Figure 1: Examples of ACs | Figure 1: Examples of ACs | |||
This document specifies a common module ("ietf-ac-common") for | This document specifies a common module ("ietf-ac-common") for | |||
attachment circuits (Section 5). The module is designed to be | attachment circuits (Section 5). The module is designed to be | |||
reusable by other models, thereby ensuring consistent AC structures | reusable by other models, thereby ensuring consistent AC structures | |||
among modules that manipulate ACs. For example, the common module | among modules that manipulate ACs. For example, the common module | |||
can be reused by service models to expose AC-as-a-Service (ACaaS) | can be reused by service models to expose AC-as-a-Service (ACaaS) | |||
(e.g., [I-D.ietf-opsawg-teas-attachment-circuit]) or by service | (e.g., [RFC9834]) or by service models that require binding a service | |||
models that require binding a service to a set of ACs (e.g., Network | to a set of ACs (e.g., Network Slice Service [YANG-NSS])). It can | |||
Slice Service [I-D.ietf-teas-ietf-network-slice-nbi-yang])). It can | also be used by network models to provision ACs (e.g., [RFC9835]) and | |||
also be used by network models to provision ACs (e.g., | device models, among others. | |||
[I-D.ietf-opsawg-ntw-attachment-circuit]) and device models, among | ||||
others. | ||||
The common AC module eases data inheritance between modules (e.g., | The common AC module eases data inheritance between modules (e.g., | |||
from service to network models as per [RFC8969]). | from service to network models as per [RFC8969]). | |||
The YANG data model in this document conforms to the Network | The YANG data model in this document conforms to the Network | |||
Management Datastore Architecture (NMDA) defined in [RFC8342]. | Management Datastore Architecture (NMDA) defined in [RFC8342]. | |||
1.1. Editorial Note (To be removed by RFC Editor) | ||||
Note to the RFC Editor: This section is to be removed prior to | ||||
publication. | ||||
This document contains placeholder values that need to be replaced | ||||
with finalized values at the time of publication. This note | ||||
summarizes all of the substitutions that are needed. | ||||
Please apply the following replacements: | ||||
* XXXX --> the assigned RFC number for this I-D | ||||
* 2025-01-07 --> the actual date of the publication of this document | ||||
2. Conventions and Definitions | 2. Conventions and Definitions | |||
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 | |||
[RFC8340]. | [RFC8340]. | |||
LxSM refers to both the Layer 2 Service Model (L2SM) [RFC8466] and | LxSM refers to both the Layer 2 Service Model (L2SM) [RFC8466] and | |||
the Layer 3 Service Model (L3SM) [RFC8299]. | the Layer 3 Service Model (L3SM) [RFC8299]. | |||
LxNM refers to both the Layer 2 Network Model (L2NM) [RFC9291] and | LxNM refers to both the Layer 2 Network Model (L2NM) [RFC9291] and | |||
the Layer 3 Network Model (L3NM) [RFC9182]. | the Layer 3 Network Model (L3NM) [RFC9182]. | |||
skipping to change at page 6, line 27 ¶ | skipping to change at line 210 ¶ | |||
+------------+------------------+------------------------+ | +------------+------------------+------------------------+ | |||
Table 1: Modules and Their Associated Prefixes | Table 1: Modules and Their Associated Prefixes | |||
3. Relationship to Other AC Data Models | 3. Relationship to Other AC Data Models | |||
Figure 2 depicts the relationship between the various AC data models: | Figure 2 depicts the relationship between the various AC data models: | |||
* "ietf-ac-common" (Section 5) | * "ietf-ac-common" (Section 5) | |||
* "ietf-bearer-svc" (Section 5.1 of | * "ietf-bearer-svc" (Section 6.1 of [RFC9834]) | |||
[I-D.ietf-opsawg-teas-attachment-circuit]) | ||||
* "ietf-ac-svc" (Section 5.2 of | * "ietf-ac-svc" (Section 6.2 of [RFC9834]) | |||
[I-D.ietf-opsawg-teas-attachment-circuit]) | ||||
* "ietf-ac-ntw" ([I-D.ietf-opsawg-ntw-attachment-circuit]) | * "ietf-ac-ntw" [RFC9835] | |||
* "ietf-ac-glue" ([I-D.ietf-opsawg-ac-lxsm-lxnm-glue]) | * "ietf-ac-glue" [RFC9836] | |||
ietf-ac-common | ietf-ac-common | |||
^ ^ ^ | ^ ^ ^ | |||
| | | | | | | | |||
.----------' | '----------. | .----------' | '----------. | |||
| | | | | | | | |||
| | | | | | | | |||
ietf-ac-svc <--- ietf-bearer-svc | | ietf-ac-svc <--- ietf-bearer-svc | | |||
^ ^ | | ^ ^ | | |||
| | | | | | | | |||
skipping to change at page 7, line 40 ¶ | skipping to change at line 271 ¶ | |||
properties. | properties. | |||
'layer3-ac': Used to indicate support of ACs with Layer 3 | 'layer3-ac': Used to indicate support of ACs with Layer 3 | |||
properties. | properties. | |||
'server-assigned-reference': Used to indicate support of server- | 'server-assigned-reference': Used to indicate support of server- | |||
generated references to access relevant resources. For example, a | generated references to access relevant resources. For example, a | |||
server can be a network controller or a router in a provider | server can be a network controller or a router in a provider | |||
network. | network. | |||
For example, a bearer request is first created using a name which | For example, a bearer request is first created using a name that | |||
is assigned by the client, but if this feature is supported, the | is assigned by the client, but if this feature is supported, the | |||
request will also include a server-generated reference. That | request will also include a server-generated reference. That | |||
reference can be used when requesting the creating of an AC over | reference can be used when requesting the creation of an AC over | |||
the existing bearer. | the existing bearer. | |||
4.2. Identities | 4.2. Identities | |||
The module defines a set of identities, including the following: | The module defines a set of identities, including the following: | |||
'address-allocation-type': Used to specify the IP address allocation | 'address-allocation-type': Used to specify the IP address allocation | |||
type in an AC. For example, this identity is used to indicate | type in an AC. For example, this identity is used to indicate | |||
whether the provider network provides DHCP service, DHCP relay, or | whether the provider network provides DHCP service, DHCP relay, or | |||
static addressing. Note that for the IPv6 case, Stateless Address | static addressing. Note that for the IPv6 case, Stateless Address | |||
Autoconfiguration (SLAAC) [RFC4862] can be used. | Autoconfiguration (SLAAC) [RFC4862] can be used. | |||
'local-defined-next-hop': Used to specify next hop actions. For | 'local-defined-next-hop': Used to specify next-hop actions. For | |||
example, this identity can be used to indicate an action to | example, this identity can be used to indicate an action to | |||
discard traffic for a given destination or treat traffic towards | discard traffic for a given destination or treat traffic towards | |||
addresses within the specified next-hop prefix as though they are | addresses within the specified next-hop prefix as though they are | |||
connected to a local link. | connected to a local link. | |||
'l2-tunnel-type': Used to control the Layer 2 tunnel selection for | 'l2-tunnel-type': Used to control the Layer 2 tunnel selection for | |||
an AC. The current version supports indicating pseudowire, | an AC. The current version supports indicating pseudowire, | |||
Virtual Private LAN Service (VPLS), and Virtual eXtensible Local | Virtual Private LAN Service (VPLS), and Virtual eXtensible Local | |||
Area Network (VXLAN). | Area Network (VXLAN). | |||
skipping to change at page 8, line 41 ¶ | skipping to change at line 319 ¶ | |||
NNI. | NNI. | |||
The reader may refer to [MEF6], [MEF17], [RFC6004], or [RFC6215] | The reader may refer to [MEF6], [MEF17], [RFC6004], or [RFC6215] | |||
for examples of discussions regarding the use of UNI and NNI | for examples of discussions regarding the use of UNI and NNI | |||
reference points. | reference points. | |||
New administrative status types: In addition to the status types | New administrative status types: In addition to the status types | |||
already defined in [RFC9181], this document defines: | already defined in [RFC9181], this document defines: | |||
* 'awaiting-validation' to report that a request is pending an | * 'awaiting-validation' to report that a request is pending an | |||
adiministrator approval. | administrator approval. | |||
* 'awaiting-processing' to report that a request was approved and | * 'awaiting-processing' to report that a request was approved and | |||
validated, but is awaiting more processing before activation. | validated but is awaiting more processing before activation. | |||
* 'admin-prohibited' to report that a request cannot be handled | * 'admin-prohibited' to report that a request cannot be handled | |||
because of administrative policies. | because of administrative policies. | |||
* 'rejected' to report that a request was rejected reasons not | * 'rejected' to report that a request was rejected due to reasons | |||
covered by the other status types. | not covered by the other status types. | |||
'bgp-role': Used to indicate BGP role when establishing a BGP | 'bgp-role': Used to indicate the BGP role when establishing a BGP | |||
session per [RFC9234]. | session per [RFC9234]. | |||
4.3. Reusable Groupings | 4.3. Reusable Groupings | |||
The module also defines a set of reusable groupings, including the | The module also defines a set of reusable groupings, including the | |||
following: | following: | |||
'service-status' (Figure 3): Controls the administrative service | 'service-status' (Figure 3): Controls the administrative service | |||
status and reports the operational service status. | status and reports the operational service status. | |||
skipping to change at page 9, line 42 ¶ | skipping to change at line 367 ¶ | |||
apply to the forwarding of packets conveyed within an AC. Such | apply to the forwarding of packets conveyed within an AC. Such | |||
policies may consist, for example, of applying Access Control | policies may consist, for example, of applying Access Control | |||
Lists (ACLs). | 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. | |||
'op-instructions' (Figure 3): Defines a set of parameters to specify | 'op-instructions' (Figure 3): Defines a set of parameters to specify | |||
basic scheduling instructions and report related events for a | basic scheduling instructions and report related events for a | |||
service request (e.g., AC or bearer) ('service-status'). Advanced | service request (e.g., AC or bearer) ('service-status'). Advanced | |||
scheduling groupings are defined in | scheduling groupings are defined in [YANG-SCHEDULE]. | |||
[I-D.ietf-netmod-schedule-yang]. | ||||
grouping service-status: | grouping service-status: | |||
+-- status | +-- status | |||
+-- admin-status | +-- admin-status | |||
| +-- status? identityref | | +-- status? identityref | |||
| +--ro last-change? yang:date-and-time | | +--ro last-change? yang:date-and-time | |||
+--ro oper-status | +--ro oper-status | |||
+--ro status? identityref | +--ro status? identityref | |||
+--ro last-change? yang:date-and-time | +--ro last-change? yang:date-and-time | |||
grouping ac-profile-cfg: | grouping ac-profile-cfg: | |||
+-- valid-provider-identifiers | +-- valid-provider-identifiers | |||
+-- encryption-profile-identifier* [id] | +-- encryption-profile-identifier* [id] | |||
| +-- id string | | +-- id string | |||
+-- qos-profile-identifier* [id] | +-- qos-profile-identifier* [id] | |||
| +-- id string | | +-- id string | |||
+-- failure-detection-profile-identifier* [id] | +-- failure-detection-profile-identifier* [id] | |||
| +-- id string | | +-- id string | |||
+-- forwarding-profile-identifier* [id] | +-- forwarding-profile-identifier* [id] | |||
| +-- id string | | +-- id string | |||
+-- routing-profile-identifier* [id] | +-- routing-profile-identifier* [id] | |||
+-- id string | +-- id string | |||
grouping op-instructions: | grouping op-instructions: | |||
+-- requested-start? yang:date-and-time | +-- requested-start? yang:date-and-time | |||
+-- requested-stop? yang:date-and-time | +-- requested-stop? yang:date-and-time | |||
+--ro actual-start? yang:date-and-time | +--ro actual-start? yang:date-and-time | |||
+--ro actual-stop? yang:date-and-time | +--ro actual-stop? yang:date-and-time | |||
Figure 3: Service Status, Profiles, and Operational Instructions | Figure 3: Service Status, Profiles, and Operational | |||
Groupings | Instructions Groupings | |||
Layer 2 encapsulations (Figure 4): Groupings for the following | Layer 2 encapsulations (Figure 4): Groupings for the following | |||
encapsulation schemes are supported: dot1Q, QinQ, and priority- | encapsulation schemes are supported: dot1Q, QinQ, and priority- | |||
tagged. | tagged. | |||
Layer 2 tunnel services (Figure 4): These groupings are used to | Layer 2 tunnel services (Figure 4): These groupings are used to | |||
define Layer 2 tunnel services that may be needed for the | define Layer 2 tunnel services that may be needed for the | |||
activation of an AC. Examples of supported Layer 2 services are | activation of an AC. Examples of supported Layer 2 services are | |||
the pseudowire (Section 6.1 of [RFC8077]), VPLS, or VXLAN | the pseudowire (Section 6.1 of [RFC8077]), VPLS, or VXLAN | |||
[RFC7348]. | [RFC7348]. | |||
grouping dot1q: | grouping dot1q: | |||
+-- tag-type? identityref | +-- tag-type? identityref | |||
+-- cvlan-id? uint16 | +-- cvlan-id? uint16 | |||
grouping priority-tagged: | grouping priority-tagged: | |||
+-- tag-type? identityref | +-- tag-type? identityref | |||
grouping qinq: | grouping qinq: | |||
+-- tag-type? identityref | +-- tag-type? identityref | |||
+-- svlan-id? uint16 | +-- svlan-id? uint16 | |||
+-- cvlan-id? uint16 | +-- cvlan-id? uint16 | |||
grouping pseudowire: | grouping pseudowire: | |||
+-- vcid? uint32 | +-- vcid? uint32 | |||
+-- far-end? union | +-- far-end? union | |||
grouping vpls: | grouping vpls: | |||
+-- vcid? uint32 | +-- vcid? uint32 | |||
+-- far-end* union | +-- far-end* union | |||
grouping vxlan: | grouping vxlan: | |||
+-- vni-id? uint32 | ||||
+-- peer-mode? identityref | ||||
+-- peer-ip-address* inet:ip-address | ||||
grouping l2-tunnel-service: | ||||
+-- type? identityref | ||||
+-- pseudowire | ||||
| +-- vcid? uint32 | ||||
| +-- far-end? union | ||||
+-- vpls | ||||
| +-- vcid? uint32 | ||||
| +-- far-end* union | ||||
+-- vxlan | ||||
+-- vni-id? uint32 | +-- vni-id? uint32 | |||
+-- peer-mode? identityref | +-- peer-mode? identityref | |||
+-- peer-ip-address* inet:ip-address | +-- peer-ip-address* inet:ip-address | |||
grouping l2-tunnel-service: | ||||
+-- type? identityref | ||||
+-- pseudowire | ||||
| +-- vcid? uint32 | ||||
| +-- far-end? union | ||||
+-- vpls | ||||
| +-- vcid? uint32 | ||||
| +-- far-end* union | ||||
+-- vxlan | ||||
+-- vni-id? uint32 | ||||
+-- peer-mode? identityref | ||||
+-- peer-ip-address* inet:ip-address | ||||
Figure 4: Layer 2 Connection Groupings | Figure 4: Layer 2 Connection Groupings | |||
Layer 3 address allocation (Figure 5): Defines both IPv4 and IPv6 | Layer 3 address allocation (Figure 5): Defines both IPv4 and IPv6 | |||
groupings to specify IP address allocation over an AC. Both | groupings to specify IP address allocation over an AC. Both | |||
dynamic and static address schemes are supported. | dynamic and static address schemes are supported. | |||
For both IPv4 and IPv6, 'address-allocation-type' is used to | For both IPv4 and IPv6, 'address-allocation-type' is used to | |||
indicate the IP address allocation mode to activate. When | indicate the IP address allocation mode to activate. When | |||
'address-allocation-type' is set to 'provider-dhcp', DHCP | 'address-allocation-type' is set to 'provider-dhcp', DHCP | |||
assignments can be made locally or by an external DHCP server. | assignments can be made locally or by an external DHCP server. | |||
Such behavior is controlled by setting 'dhcp-service-type'. | Such behavior is controlled by setting 'dhcp-service-type'. | |||
Note that if 'address-allocation-type' is set to 'slaac', the | Note that if 'address-allocation-type' is set to 'slaac', the | |||
Prefix Information option of Router Advertisements that will be | Prefix Information option of Router Advertisements that will be | |||
issued for SLAAC purposes will carry the IPv6 prefix that is | issued for SLAAC purposes will carry the IPv6 prefix that is | |||
determined by 'local-address' and 'prefix-length'. | determined by 'local-address' and 'prefix-length'. | |||
IP connections (Figure 5): Defines IPv4 and IPv6 groupings for | IP connections (Figure 5): Defines IPv4 and IPv6 groupings for | |||
managing Layer 3 connectivity over an AC. Both basic and more | managing Layer 3 connectivity over an AC. Both basic and more | |||
elaborated IP connection groupings are supported. | elaborated IP connection groupings are supported. | |||
grouping ipv4-allocation-type: | grouping ipv4-allocation-type: | |||
+-- prefix-length? uint8 | +-- prefix-length? uint8 | |||
+-- address-allocation-type? identityref | +-- address-allocation-type? identityref | |||
grouping ipv6-allocation-type: | grouping ipv6-allocation-type: | |||
+-- prefix-length? uint8 | +-- prefix-length? uint8 | |||
+-- address-allocation-type? identityref | +-- address-allocation-type? identityref | |||
grouping ipv4-connection-basic: | grouping ipv4-connection-basic: | |||
+-- prefix-length? uint8 | +-- prefix-length? uint8 | |||
+-- address-allocation-type? identityref | +-- address-allocation-type? identityref | |||
+-- (allocation-type)? | +-- (allocation-type)? | |||
+--:(dynamic) | +--:(dynamic) | |||
+-- (provider-dhcp)? | +-- (provider-dhcp)? | |||
| +--:(dhcp-service-type) | | +--:(dhcp-service-type) | |||
| +-- dhcp-service-type? enumeration | | +-- dhcp-service-type? enumeration | |||
+-- (dhcp-relay)? | +-- (dhcp-relay)? | |||
+--:(customer-dhcp-servers) | +--:(customer-dhcp-servers) | |||
+-- customer-dhcp-servers | +-- customer-dhcp-servers | |||
+-- server-ip-address* inet:ipv4-address | +-- server-ip-address* inet:ipv4-address | |||
grouping ipv6-connection-basic: | grouping ipv6-connection-basic: | |||
+-- prefix-length? uint8 | +-- prefix-length? uint8 | |||
+-- address-allocation-type? identityref | +-- address-allocation-type? identityref | |||
+-- (allocation-type)? | +-- (allocation-type)? | |||
+--:(dynamic) | +--:(dynamic) | |||
+-- (provider-dhcp)? | +-- (provider-dhcp)? | |||
| +--:(dhcp-service-type) | | +--:(dhcp-service-type) | |||
| +-- dhcp-service-type? enumeration | | +-- dhcp-service-type? enumeration | |||
+-- (dhcp-relay)? | +-- (dhcp-relay)? | |||
+--:(customer-dhcp-servers) | +--:(customer-dhcp-servers) | |||
+-- customer-dhcp-servers | +-- customer-dhcp-servers | |||
+-- server-ip-address* inet:ipv6-address | +-- server-ip-address* inet:ipv6-address | |||
grouping ipv4-connection: | grouping ipv4-connection: | |||
+-- local-address? inet:ipv4-address | +-- local-address? inet:ipv4-address | |||
+-- virtual-address? inet:ipv4-address | +-- virtual-address? inet:ipv4-address | |||
+-- prefix-length? uint8 | +-- prefix-length? uint8 | |||
+-- address-allocation-type? identityref | +-- address-allocation-type? identityref | |||
+-- (allocation-type)? | +-- (allocation-type)? | |||
+--:(dynamic) | +--:(dynamic) | |||
| +-- (address-assign)? | | +-- (address-assign)? | |||
| | +--:(number) | | | +--:(number) | |||
| | | +-- number-of-dynamic-address? uint16 | | | | +-- number-of-dynamic-address? uint16 | |||
| | +--:(explicit) | | | +--:(explicit) | |||
| | +-- customer-addresses | | | +-- customer-addresses | |||
| | +-- address-pool* [pool-id] | | | +-- address-pool* [pool-id] | |||
| | +-- pool-id string | | | +-- pool-id string | |||
| | +-- start-address inet:ipv4-address | | | +-- start-address inet:ipv4-address | |||
| | +-- end-address? inet:ipv4-address | | | +-- end-address? inet:ipv4-address | |||
| +-- (provider-dhcp)? | | +-- (provider-dhcp)? | |||
| | +--:(dhcp-service-type) | | | +--:(dhcp-service-type) | |||
| | +-- dhcp-service-type? enumeration | | | +-- dhcp-service-type? enumeration | |||
| +-- (dhcp-relay)? | | +-- (dhcp-relay)? | |||
| +--:(customer-dhcp-servers) | | +--:(customer-dhcp-servers) | |||
| +-- customer-dhcp-servers | | +-- customer-dhcp-servers | |||
| +-- server-ip-address* inet:ipv4-address | | +-- server-ip-address* inet:ipv4-address | |||
+--:(static-addresses) | +--:(static-addresses) | |||
+-- address* [address-id] | +-- address* [address-id] | |||
+-- address-id string | +-- address-id string | |||
+-- customer-address? inet:ipv4-address | +-- customer-address? inet:ipv4-address | |||
grouping ipv6-connection: | grouping ipv6-connection: | |||
+-- local-address? inet:ipv6-address | +-- local-address? inet:ipv6-address | |||
+-- virtual-address? inet:ipv6-address | +-- virtual-address? inet:ipv6-address | |||
+-- prefix-length? uint8 | +-- prefix-length? uint8 | |||
+-- address-allocation-type? identityref | +-- address-allocation-type? identityref | |||
+-- (allocation-type)? | +-- (allocation-type)? | |||
+--:(dynamic) | +--:(dynamic) | |||
| +-- (address-assign)? | | +-- (address-assign)? | |||
| | +--:(number) | | | +--:(number) | |||
| | | +-- number-of-dynamic-address? uint16 | | | | +-- number-of-dynamic-address? uint16 | |||
| | +--:(explicit) | | | +--:(explicit) | |||
| | +-- customer-addresses | | | +-- customer-addresses | |||
| | +-- address-pool* [pool-id] | | | +-- address-pool* [pool-id] | |||
| | +-- pool-id string | | | +-- pool-id string | |||
| | +-- start-address inet:ipv6-address | | | +-- start-address inet:ipv6-address | |||
| | +-- end-address? inet:ipv6-address | | | +-- end-address? inet:ipv6-address | |||
| +-- (provider-dhcp)? | | +-- (provider-dhcp)? | |||
| | +--:(dhcp-service-type) | | | +--:(dhcp-service-type) | |||
| | +-- dhcp-service-type? enumeration | | | +-- dhcp-service-type? enumeration | |||
| +-- (dhcp-relay)? | | +-- (dhcp-relay)? | |||
| +--:(customer-dhcp-servers) | | +--:(customer-dhcp-servers) | |||
| +-- customer-dhcp-servers | | +-- customer-dhcp-servers | |||
| +-- server-ip-address* inet:ipv6-address | | +-- server-ip-address* inet:ipv6-address | |||
+--:(static-addresses) | +--:(static-addresses) | |||
+-- address* [address-id] | +-- address* [address-id] | |||
+-- address-id string | +-- address-id string | |||
+-- customer-address? inet:ipv6-address | +-- customer-address? inet:ipv6-address | |||
Figure 5: Layer 3 Connection Groupings | Figure 5: Layer 3 Connection Groupings | |||
Routing parameters & OAM (Figure 6): In addition to static routing, | Routing parameters & Operations, Administration, and Maintenance | |||
the module supports the following routing protocols: BGP | (OAM) (Figure 6): In addition to static routing, the module supports | |||
[RFC4271], OSPF [RFC4577] or [RFC6565], IS-IS | the following routing protocols: BGP [RFC4271], OSPF [RFC4577] | |||
[ISO10589][RFC1195][RFC5308], and RIP [RFC2453]. For all | [RFC6565], IS-IS [ISO10589][RFC1195][RFC5308], and RIP [RFC2453]. | |||
supported routing protocols, 'address-family' indicates whether | For all supported routing protocols, 'address-family' indicates | |||
IPv4, IPv6, or both address families are to be activated. For | whether IPv4, IPv6, or both address families are to be activated. | |||
example, this parameter is used to determine whether RIPv2 | For example, this parameter is used to determine whether RIPv2 | |||
[RFC2453], RIP Next Generation (RIPng), or both are to be enabled | [RFC2453], RIP Next Generation (RIPng), or both are to be enabled | |||
[RFC2080]. More details about supported routing groupings are | [RFC2080]. More details about supported routing groupings are | |||
provided hereafter: | provided hereafter: | |||
* Authentication: These groupings include the required | Authentication: These groupings include the required information | |||
information to manage the authentication of OSPF, IS-IS, | to manage the authentication of OSPF, IS-IS, BGP, and RIP. The | |||
BGP, and RIP. The groupings support local specification of | groupings support local specification of authentication keys | |||
authentication keys and the associated authentication | and the associated authentication algorithm to accommodate | |||
algorithm to accomodate legacy implementations that do not | legacy implementations that do not support key chains | |||
support key chains [RFC8177]. | [RFC8177]. | |||
Note that this version of the common AC model covers | Note that this version of the common AC model covers | |||
authentication options that are common to both OSPFv2 | authentication options that are common to both OSPFv2 [RFC4577] | |||
[RFC4577] and OSPFv3 [RFC6565]; as such, the model does not | and OSPFv3 [RFC6565]; as such, the model does not support | |||
support [RFC4552]. | [RFC4552]. | |||
Similar to [RFC9182], this version of the common AC model | Similar to [RFC9182], this version of the common AC model | |||
assumes that parameters specific to the TCP-AO are | assumes that parameters specific to the TCP Authentication | |||
preconfigured as part of the key chain that is referenced in | Option (TCP-AO) are preconfigured as part of the key chain that | |||
the model. No assumption is made about how such a key chain | is referenced in the model. No assumption is made about how | |||
is preconfigured. However, the structure of the key chain | such a key chain is preconfigured. However, the structure of | |||
should cover data nodes beyond those in [RFC8177], mainly | the key chain should cover data nodes beyond those in | |||
SendID and RecvID (Section 3.1 of [RFC5925]). | [RFC8177], mainly SendID and RecvID (Section 3.1 of [RFC5925]). | |||
* BGP peer groups ('bgp-peer-group-without-name' and 'bgp-peer- | BGP peer groups ('bgp-peer-group-without-name' and 'bgp-peer- | |||
group-with-name'): Includes a set of parameters to identify a | group-with-name'): Includes a set of parameters to identify a BGP | |||
BGP peer group. Such a group can be defined by providing a | peer group. Such a group can be defined by providing a local | |||
local AS Number (ASN), a customer's ASN, and the address | Autonomous System Number (ASN), a customer's ASN, and the | |||
families to be activated for this group. BGP peer groups can | address families to be activated for this group. BGP peer | |||
be identified by a name ('bgp-peer-group-with-name'). | groups can be identified by a name ('bgp-peer-group-with- | |||
name'). | ||||
* Basic OSPF and IS-IS parameters ('ospf-basic' and 'isis- | Basic OSPF and IS-IS parameters ('ospf-basic' and 'isis- | |||
basic'): These groupings include the minimal set of routing | basic'): These groupings include the minimal set of routing | |||
configuration that is required for the activation of OSPF and | configuration that is required for the activation of OSPF and | |||
IS-IS. | IS-IS. | |||
* Static routing: Parameters to configure an entry or a list of | Static routing: Parameters to configure an entry or a list of IP | |||
IP static routing entries. | static routing entries. | |||
The 'redundancy-group' grouping lists the groups to which an AC | The 'redundancy-group' grouping lists the groups to which an AC | |||
belongs [RFC9181]. For example, the 'group-id' is used to | belongs [RFC9181]. For example, the 'group-id' is used to | |||
associate redundancy or protection constraints of ACs. | associate redundancy or protection constraints of ACs. | |||
grouping bgp-authentication: | grouping bgp-authentication: | |||
+-- authentication | +-- authentication | |||
+-- enabled? boolean | +-- enabled? boolean | |||
+-- keying-material | +-- keying-material | |||
+-- (option)? | +-- (option)? | |||
+--:(ao) | +--:(ao) | |||
| +-- enable-ao? boolean | | +-- enable-ao? boolean | |||
| +-- ao-keychain? key-chain:key-chain-ref | | +-- ao-keychain? key-chain:key-chain-ref | |||
+--:(md5) | +--:(md5) | |||
| +-- md5-keychain? key-chain:key-chain-ref | | +-- md5-keychain? key-chain:key-chain-ref | |||
+--:(explicit) | +--:(explicit) | |||
+-- key-id? uint32 | +-- key-id? uint32 | |||
+-- key? string | +-- key? string | |||
+-- crypto-algorithm? identityref | +-- crypto-algorithm? identityref | |||
grouping ospf-authentication: | grouping ospf-authentication: | |||
+-- authentication | +-- authentication | |||
+-- enabled? boolean | +-- enabled? boolean | |||
+-- keying-material | +-- keying-material | |||
+-- (option)? | +-- (option)? | |||
+--:(auth-key-chain) | +--:(auth-key-chain) | |||
| +-- key-chain? key-chain:key-chain-ref | | +-- key-chain? key-chain:key-chain-ref | |||
+--:(auth-key-explicit) | +--:(auth-key-explicit) | |||
+-- key-id? uint32 | +-- key-id? uint32 | |||
+-- key? string | +-- key? string | |||
+-- crypto-algorithm? identityref | +-- crypto-algorithm? identityref | |||
grouping isis-authentication: | grouping isis-authentication: | |||
+-- authentication | +-- authentication | |||
+-- enabled? boolean | +-- enabled? boolean | |||
+-- keying-material | +-- keying-material | |||
+-- (option)? | +-- (option)? | |||
+--:(auth-key-chain) | +--:(auth-key-chain) | |||
| +-- key-chain? key-chain:key-chain-ref | | +-- key-chain? key-chain:key-chain-ref | |||
+--:(auth-key-explicit) | +--:(auth-key-explicit) | |||
+-- key-id? uint32 | +-- key-id? uint32 | |||
+-- key? string | +-- key? string | |||
+-- crypto-algorithm? identityref | +-- crypto-algorithm? identityref | |||
grouping rip-authentication: | grouping rip-authentication: | |||
+-- authentication | +-- authentication | |||
+-- enabled? boolean | +-- enabled? boolean | |||
+-- keying-material | +-- keying-material | |||
+-- (option)? | +-- (option)? | |||
+--:(auth-key-chain) | +--:(auth-key-chain) | |||
| +-- key-chain? key-chain:key-chain-ref | | +-- key-chain? key-chain:key-chain-ref | |||
+--:(auth-key-explicit) | +--:(auth-key-explicit) | |||
+-- key? string | +-- key? string | |||
+-- crypto-algorithm? identityref | +-- crypto-algorithm? identityref | |||
grouping bgp-peer-group-without-name: | grouping bgp-peer-group-without-name: | |||
+-- local-as? inet:as-number | +-- local-as? inet:as-number | |||
+-- peer-as? inet:as-number | +-- peer-as? inet:as-number | |||
+-- address-family? identityref | +-- address-family? identityref | |||
+-- role? identityref | +-- role? identityref | |||
grouping bgp-peer-group-with-name: | grouping bgp-peer-group-with-name: | |||
+-- name? string | +-- name? string | |||
+-- local-as? inet:as-number | +-- local-as? inet:as-number | |||
+-- peer-as? inet:as-number | +-- peer-as? inet:as-number | |||
+-- address-family? identityref | +-- address-family? identityref | |||
+-- role? identityref | +-- role? identityref | |||
grouping ospf-basic: | grouping ospf-basic: | |||
+-- address-family? identityref | +-- address-family? identityref | |||
+-- area-id yang:dotted-quad | +-- area-id yang:dotted-quad | |||
+-- metric? uint16 | +-- metric? uint16 | |||
grouping isis-basic: | grouping isis-basic: | |||
+-- address-family? identityref | +-- address-family? identityref | |||
+-- area-address area-address | +-- area-address area-address | |||
grouping ipv4-static-rtg-entry: | grouping ipv4-static-rtg-entry: | |||
+-- lan? inet:ipv4-prefix | +-- lan? inet:ipv4-prefix | |||
+-- lan-tag? string | ||||
+-- next-hop? union | ||||
+-- metric? uint32 | ||||
grouping ipv4-static-rtg: | ||||
+-- ipv4-lan-prefixes* [lan next-hop] {vpn-common:ipv4}? | ||||
+-- lan inet:ipv4-prefix | ||||
+-- lan-tag? string | +-- lan-tag? string | |||
+-- next-hop union | +-- next-hop? union | |||
+-- metric? uint32 | +-- metric? uint32 | |||
+-- status | grouping ipv4-static-rtg: | |||
+-- admin-status | +-- ipv4-lan-prefixes* [lan next-hop] {vpn-common:ipv4}? | |||
| +-- status? identityref | +-- lan inet:ipv4-prefix | |||
| +--ro last-change? yang:date-and-time | +-- lan-tag? string | |||
+--ro oper-status | +-- next-hop union | |||
+--ro status? identityref | +-- metric? uint32 | |||
+--ro last-change? yang:date-and-time | +-- status | |||
grouping ipv6-static-rtg-entry: | +-- admin-status | |||
+-- lan? inet:ipv6-prefix | | +-- status? identityref | |||
+-- lan-tag? string | | +--ro last-change? yang:date-and-time | |||
+-- next-hop? union | +--ro oper-status | |||
+-- metric? uint32 | +--ro status? identityref | |||
grouping ipv6-static-rtg: | +--ro last-change? yang:date-and-time | |||
+-- ipv6-lan-prefixes* [lan next-hop] {vpn-common:ipv6}? | grouping ipv6-static-rtg-entry: | |||
+-- lan inet:ipv6-prefix | +-- lan? inet:ipv6-prefix | |||
+-- lan-tag? string | +-- lan-tag? string | |||
+-- next-hop union | +-- next-hop? union | |||
+-- metric? uint32 | +-- metric? uint32 | |||
+-- status | grouping ipv6-static-rtg: | |||
+-- admin-status | +-- ipv6-lan-prefixes* [lan next-hop] {vpn-common:ipv6}? | |||
| +-- status? identityref | +-- lan inet:ipv6-prefix | |||
| +--ro last-change? yang:date-and-time | +-- lan-tag? string | |||
+--ro oper-status | +-- next-hop union | |||
+--ro status? identityref | +-- metric? uint32 | |||
+--ro last-change? yang:date-and-time | +-- status | |||
grouping bfd: | +-- admin-status | |||
+-- holdtime? uint32 | | +-- status? identityref | |||
grouping redundancy-group: | | +--ro last-change? yang:date-and-time | |||
+-- group* [group-id] | +--ro oper-status | |||
+-- group-id? string | +--ro status? identityref | |||
+-- precedence? identityref | +--ro last-change? yang:date-and-time | |||
grouping bfd: | ||||
+-- holdtime? uint32 | ||||
grouping redundancy-group: | ||||
+-- group* [group-id] | ||||
+-- group-id? string | ||||
+-- precedence? identityref | ||||
Figure 6: Routing & OAM Groupings | Figure 6: Routing & OAM Groupings | |||
Bandwidth parameters (Figure 7): Bandwidth parameters can be | Bandwidth parameters (Figure 7): Bandwidth parameters can be | |||
represented using the Committed Information Rate (CIR), the Excess | represented using the Committed Information Rate (CIR), the Excess | |||
Information Rate (EIR), or the Peak Information Rate (PIR). | Information Rate (EIR), or the Peak Information Rate (PIR). | |||
These parameters can be provided per bandwidth type. Type values | These parameters can be provided per bandwidth type. Type values | |||
are taken from [RFC9181]. For example, the following values can | are taken from [RFC9181]. For example, the following values can | |||
be used: | be used: | |||
* 'bw-per-cos': The bandwidth is per Class of Service (CoS). | 'bw-per-cos': The bandwidth is per Class of Service (CoS). | |||
* 'bw-per-site': The bandwidth is to all ACs that belong to the | 'bw-per-site': The bandwidth is to all ACs that belong to the | |||
same site. | same site. | |||
grouping bandwidth-parameters: | grouping bandwidth-parameters: | |||
+-- cir? uint64 | +-- cir? uint64 | |||
+-- cbs? uint64 | +-- cbs? uint64 | |||
+-- eir? uint64 | +-- eir? uint64 | |||
+-- ebs? uint64 | +-- ebs? uint64 | |||
+-- pir? uint64 | +-- pir? uint64 | |||
+-- pbs? uint64 | +-- pbs? uint64 | |||
grouping bandwidth-per-type: | grouping bandwidth-per-type: | |||
+-- bandwidth* [bw-type] | +-- bandwidth* [bw-type] | |||
+-- bw-type identityref | +-- bw-type identityref | |||
+-- (type)? | +-- (type)? | |||
+--:(per-cos) | +--:(per-cos) | |||
| +-- cos* [cos-id] | | +-- cos* [cos-id] | |||
| +-- cos-id uint8 | | +-- cos-id uint8 | |||
| +-- cir? uint64 | | +-- cir? uint64 | |||
| +-- cbs? uint64 | | +-- cbs? uint64 | |||
| +-- eir? uint64 | | +-- eir? uint64 | |||
| +-- ebs? uint64 | | +-- ebs? uint64 | |||
| +-- pir? uint64 | | +-- pir? uint64 | |||
| +-- pbs? uint64 | | +-- pbs? uint64 | |||
+--:(other) | +--:(other) | |||
+-- cir? uint64 | +-- cir? uint64 | |||
+-- cbs? uint64 | +-- cbs? uint64 | |||
+-- eir? uint64 | +-- eir? uint64 | |||
+-- ebs? uint64 | +-- ebs? uint64 | |||
+-- pir? uint64 | +-- pir? uint64 | |||
+-- pbs? uint64 | +-- pbs? uint64 | |||
Figure 7: Bandwidth Groupings | Figure 7: Bandwidth Groupings | |||
5. Common Attachment Circuit YANG Module | 5. Common Attachment Circuit YANG Module | |||
This module uses types defined in [RFC6991], [RFC8177], and | This module uses types defined in [RFC6991], [RFC8177], and | |||
[RFC9181]. | [RFC9181]. | |||
<CODE BEGINS> file "ietf-ac-common@2025-01-07.yang" | <CODE BEGINS> file "ietf-ac-common@2025-08-11.yang" | |||
module ietf-ac-common { | module ietf-ac-common { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ac-common"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ac-common"; | |||
prefix ac-common; | prefix ac-common; | |||
import ietf-vpn-common { | import ietf-vpn-common { | |||
prefix vpn-common; | prefix vpn-common; | |||
reference | reference | |||
"RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3 | "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3 | |||
VPNs"; | VPNs"; | |||
skipping to change at page 19, line 42 ¶ | skipping to change at line 807 ¶ | |||
Author: Richard Roberts | Author: 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 common attachment circuit (AC) | "This YANG module defines a common attachment circuit (AC) | |||
YANG model with a set of reusable features, types, | YANG module with a set of reusable features, types, | |||
identities, and groupings. | identities, and groupings. | |||
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 XXXX; see the | This version of this YANG module is part of RFC 9833; see the | |||
RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
revision 2025-01-07 { | revision 2025-08-11 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: A Common YANG Data Model for Attachment Circuits"; | "RFC 9833: A Common YANG Data Model for Attachment Circuits"; | |||
} | } | |||
/****************************Features************************/ | /****************************Features************************/ | |||
feature layer2-ac { | feature layer2-ac { | |||
description | description | |||
"Indicates support of Layer 2 ACs."; | "Indicates support of Layer 2 ACs."; | |||
} | } | |||
feature layer3-ac { | feature layer3-ac { | |||
skipping to change at page 22, line 6 ¶ | skipping to change at line 915 ¶ | |||
identity local-defined-next-hop { | identity local-defined-next-hop { | |||
description | description | |||
"Base identity of local defined next hops."; | "Base identity of local defined next hops."; | |||
} | } | |||
identity discard { | identity discard { | |||
base local-defined-next-hop; | base local-defined-next-hop; | |||
description | description | |||
"Indicates an action to discard traffic for the corresponding | "Indicates an action to discard traffic for the corresponding | |||
destination. For example, this can be used to black-hole | destination. For example, this can be used to black-hole | |||
traffic."; | traffic."; | |||
} | } | |||
identity local-link { | identity local-link { | |||
base local-defined-next-hop; | base local-defined-next-hop; | |||
description | description | |||
"Treat traffic towards addresses within the specified next-hop | "Treat traffic towards addresses within the specified next-hop | |||
prefix as though they are connected to a local link."; | prefix as though they are connected to a local link."; | |||
} | } | |||
skipping to change at page 23, line 6 ¶ | skipping to change at line 963 ¶ | |||
// Layer 3 tunnel types | // Layer 3 tunnel types | |||
identity l3-tunnel-type { | identity l3-tunnel-type { | |||
description | description | |||
"Base identity for Layer 3 tunnel selection for an AC."; | "Base identity for Layer 3 tunnel selection for an AC."; | |||
} | } | |||
identity ip-in-ip { | identity ip-in-ip { | |||
base l3-tunnel-type; | base l3-tunnel-type; | |||
description | description | |||
"IP in IP Tunneling."; | "IP-in-IP tunneling."; | |||
reference | reference | |||
"RFC 2003: IP Encapsulation within IP"; | "RFC 2003: IP Encapsulation within IP"; | |||
} | } | |||
identity ipsec { | identity ipsec { | |||
base l3-tunnel-type; | base l3-tunnel-type; | |||
description | description | |||
"IP Security (IPsec)."; | "IP Security (IPsec)."; | |||
reference | reference | |||
"RFC 4301: Security Architecture for the Internet | "RFC 4301: Security Architecture for the Internet | |||
skipping to change at page 23, line 35 ¶ | skipping to change at line 992 ¶ | |||
"RFC 1701: Generic Routing Encapsulation (GRE) | "RFC 1701: Generic Routing Encapsulation (GRE) | |||
RFC 1702: Generic Routing Encapsulation over IPv4 networks | RFC 1702: Generic Routing Encapsulation over IPv4 networks | |||
RFC 7676: IPv6 Support for Generic Routing Encapsulation | RFC 7676: IPv6 Support for Generic Routing Encapsulation | |||
(GRE)"; | (GRE)"; | |||
} | } | |||
// Tagging precedence | // Tagging precedence | |||
identity precedence-type { | identity precedence-type { | |||
description | description | |||
"Redundancy type. Attachment to a network can be created | "Redundancy type. Attachment to a network can be created | |||
with primary and secondary tagging."; | with primary and secondary tagging."; | |||
} | } | |||
identity primary { | identity primary { | |||
base precedence-type; | base precedence-type; | |||
description | description | |||
"Identifies the main attachment circuit."; | "Identifies the main attachment circuit."; | |||
} | } | |||
identity secondary { | identity secondary { | |||
skipping to change at page 24, line 4 ¶ | skipping to change at line 1009 ¶ | |||
"Identifies the main attachment circuit."; | "Identifies the main attachment circuit."; | |||
} | } | |||
identity secondary { | identity secondary { | |||
base precedence-type; | base precedence-type; | |||
description | description | |||
"Identifies a secondary attachment circuit."; | "Identifies a secondary attachment circuit."; | |||
} | } | |||
// AC type | // AC type | |||
identity role { | identity role { | |||
description | description | |||
"Base identity for the network role of an AC."; | "Base identity for the network role of an AC."; | |||
} | } | |||
identity uni { | identity uni { | |||
base role; | base role; | |||
description | description | |||
"User-to-Network Interface (UNI)."; | "User-to-Network Interface (UNI)."; | |||
} | } | |||
identity nni { | identity nni { | |||
base role; | base role; | |||
description | description | |||
"Network-to-Network Interface (NNI)."; | "Network-to-Network Interface (NNI)."; | |||
} | } | |||
identity public-nni { | identity public-nni { | |||
base role; | base role; | |||
description | description | |||
"Public peering. This is typically set using a shared | "Public peering. This is typically set using a shared | |||
network, such as an Internet Exchange Point (IXP)."; | network, such as an Internet Exchange Point (IXP)."; | |||
} | } | |||
// More Admin status types | // More Admin status types | |||
identity awaiting-validation { | identity awaiting-validation { | |||
base vpn-common:administrative-status; | base vpn-common:administrative-status; | |||
description | description | |||
"This administrative status reflects that a request is | "This administrative status reflects that a request is | |||
pending an administrator approval."; | pending an administrator approval."; | |||
} | } | |||
identity awaiting-processing { | identity awaiting-processing { | |||
base vpn-common:administrative-status; | base vpn-common:administrative-status; | |||
description | description | |||
"This administrative status reflects that a request was | "This administrative status reflects that a request was | |||
approved and validated, but is awaiting more processing | approved and validated but is awaiting more processing | |||
before activation."; | before activation."; | |||
} | } | |||
identity admin-prohibited { | identity admin-prohibited { | |||
base vpn-common:administrative-status; | base vpn-common:administrative-status; | |||
description | description | |||
"This administrative status reflects that a request cannot | "This administrative status reflects that a request cannot | |||
be handled because of administrative policies."; | be handled because of administrative policies."; | |||
} | } | |||
identity rejected { | identity rejected { | |||
base vpn-common:administrative-status; | base vpn-common:administrative-status; | |||
description | description | |||
"This administrative status reflects that a request was | "This administrative status reflects that a request was | |||
rejected because, e.g., there are no sufficient resources | rejected because, e.g., there are no sufficient resources | |||
or other reasons not covered by the other status types."; | or other reasons not covered by the other status types."; | |||
} | } | |||
// BGP role | // BGP role | |||
identity bgp-role { | identity bgp-role { | |||
description | description | |||
"Used to indicate BGP role when establishing a BGP session."; | "Used to indicate the BGP role when establishing a BGP | |||
session."; | ||||
reference | reference | |||
"RFC 9234: Route Leak Prevention and Detection Using | "RFC 9234: Route Leak Prevention and Detection Using | |||
Roles in UPDATE and OPEN Messages, Section 4"; | Roles in UPDATE and OPEN Messages, Section 4"; | |||
} | } | |||
identity provider { | identity provider { | |||
base bgp-role; | base bgp-role; | |||
description | description | |||
"The local AS is a transit provider of the remote AS."; | "The local AS is a transit provider of the remote AS."; | |||
} | } | |||
skipping to change at page 25, line 43 ¶ | skipping to change at line 1098 ¶ | |||
identity rs { | identity rs { | |||
base bgp-role; | base bgp-role; | |||
description | description | |||
"The local AS is a Route Server (RS)."; | "The local AS is a Route Server (RS)."; | |||
} | } | |||
identity rs-client { | identity rs-client { | |||
base bgp-role; | base bgp-role; | |||
description | description | |||
"The local AS is a client of an RS and the RS is the | "The local AS is a client of an RS, and the RS is the | |||
remote AS."; | remote AS."; | |||
} | } | |||
identity peer { | identity peer { | |||
base bgp-role; | base bgp-role; | |||
description | description | |||
"The local and remote ASes have a peering relationship."; | "The local and remote ASes have a peering relationship."; | |||
} | } | |||
/****************************Typedefs************************/ | /****************************Typedefs************************/ | |||
typedef predefined-next-hop { | typedef predefined-next-hop { | |||
type identityref { | type identityref { | |||
base local-defined-next-hop; | base local-defined-next-hop; | |||
} | } | |||
description | description | |||
"Predefined next-hop designation for locally generated | "Predefined next-hop designation for locally generated | |||
routes."; | routes."; | |||
} | } | |||
skipping to change at page 31, line 42 ¶ | skipping to change at line 1385 ¶ | |||
leaf vni-id { | leaf vni-id { | |||
type uint32; | type uint32; | |||
description | description | |||
"VXLAN Network Identifier (VNI)."; | "VXLAN Network Identifier (VNI)."; | |||
} | } | |||
leaf peer-mode { | leaf peer-mode { | |||
type identityref { | type identityref { | |||
base vpn-common:vxlan-peer-mode; | base vpn-common:vxlan-peer-mode; | |||
} | } | |||
description | description | |||
"Specifies the VXLAN access mode. By default, the peer mode | "Specifies the VXLAN access mode. By default, the peer mode | |||
is set to 'static-mode'."; | is set to 'static-mode'."; | |||
} | } | |||
leaf-list peer-ip-address { | leaf-list peer-ip-address { | |||
type inet:ip-address; | type inet:ip-address; | |||
description | description | |||
"List of a peer's IP addresses."; | "List of a peer's IP addresses."; | |||
} | } | |||
} | } | |||
// Layer 2 Tunnel service | // Layer 2 Tunnel service | |||
skipping to change at page 33, line 7 ¶ | skipping to change at line 1448 ¶ | |||
// IPv4 allocation type | // IPv4 allocation type | |||
grouping ipv4-allocation-type { | grouping ipv4-allocation-type { | |||
description | description | |||
"IPv4-specific parameters."; | "IPv4-specific parameters."; | |||
leaf prefix-length { | leaf prefix-length { | |||
type uint8 { | type uint8 { | |||
range "0..32"; | range "0..32"; | |||
} | } | |||
description | description | |||
"Subnet prefix length expressed in bits. It is applied to | "Subnet prefix length expressed in bits. It is applied to | |||
both local and customer addresses."; | both local and customer addresses."; | |||
} | } | |||
leaf address-allocation-type { | leaf address-allocation-type { | |||
type identityref { | type identityref { | |||
base address-allocation-type; | base address-allocation-type; | |||
} | } | |||
must "not(derived-from-or-self(current(), 'ac-common:slaac') " | must "not(derived-from-or-self(current(), 'ac-common:slaac') " | |||
+ "or derived-from-or-self(current(), " | + "or derived-from-or-self(current(), " | |||
+ "'ac-common:provider-dhcp-slaac'))" { | + "'ac-common:provider-dhcp-slaac'))" { | |||
error-message "SLAAC is only applicable to IPv6."; | error-message "SLAAC is only applicable to IPv6."; | |||
skipping to change at page 33, line 35 ¶ | skipping to change at line 1476 ¶ | |||
// IPv6 allocation type | // IPv6 allocation type | |||
grouping ipv6-allocation-type { | grouping ipv6-allocation-type { | |||
description | description | |||
"IPv6-specific parameters."; | "IPv6-specific parameters."; | |||
leaf prefix-length { | leaf prefix-length { | |||
type uint8 { | type uint8 { | |||
range "0..128"; | range "0..128"; | |||
} | } | |||
description | description | |||
"Subnet prefix length expressed in bits. It is applied to | "Subnet prefix length expressed in bits. It is applied to | |||
both local and customer addresses."; | both local and customer addresses."; | |||
} | } | |||
leaf address-allocation-type { | leaf address-allocation-type { | |||
type identityref { | type identityref { | |||
base address-allocation-type; | base address-allocation-type; | |||
} | } | |||
description | description | |||
"Defines how IPv6 addresses are allocated to the peer | "Defines how IPv6 addresses are allocated to the peer | |||
termination points."; | termination points."; | |||
} | } | |||
skipping to change at page 34, line 15 ¶ | skipping to change at line 1504 ¶ | |||
uses ipv4-allocation-type; | uses ipv4-allocation-type; | |||
choice allocation-type { | choice allocation-type { | |||
description | description | |||
"Choice of the IPv4 address allocation."; | "Choice of the IPv4 address allocation."; | |||
case dynamic { | case dynamic { | |||
description | description | |||
"When the addresses are allocated by DHCP or other dynamic | "When the addresses are allocated by DHCP or other dynamic | |||
means local to the infrastructure."; | means local to the infrastructure."; | |||
choice provider-dhcp { | choice provider-dhcp { | |||
description | description | |||
"Parameters related to DHCP-allocated addresses. IP | "Parameters related to DHCP-allocated addresses. IP | |||
addresses are allocated by DHCP, that is provided by | addresses are allocated by DHCP, which is provided by | |||
the operator."; | the operator."; | |||
leaf dhcp-service-type { | leaf dhcp-service-type { | |||
type enumeration { | type enumeration { | |||
enum server { | enum server { | |||
description | description | |||
"Local DHCP server."; | "Local DHCP server."; | |||
} | } | |||
enum relay { | enum relay { | |||
description | description | |||
"Local DHCP relay. DHCP requests are relayed to | "Local DHCP relay. DHCP requests are relayed to | |||
a provider's server."; | a provider's server."; | |||
} | } | |||
} | } | |||
description | description | |||
"Indicates the type of DHCP service to be enabled on | "Indicates the type of DHCP service to be enabled on | |||
an AC."; | an AC."; | |||
} | } | |||
} | } | |||
choice dhcp-relay { | choice dhcp-relay { | |||
description | description | |||
skipping to change at page 35, line 4 ¶ | skipping to change at line 1540 ¶ | |||
leaf-list server-ip-address { | leaf-list server-ip-address { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
"IPv4 addresses of the customer's DHCP server."; | "IPv4 addresses of the customer's DHCP server."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
// Basic parameters for an IPv6 connection | // Basic parameters for an IPv6 connection | |||
grouping ipv6-connection-basic { | grouping ipv6-connection-basic { | |||
description | description | |||
"Basic set for IPv6-specific parameters for the connection."; | "Basic set for IPv6-specific parameters for the connection."; | |||
uses ipv6-allocation-type; | uses ipv6-allocation-type; | |||
choice allocation-type { | choice allocation-type { | |||
description | description | |||
"Choice of the IPv6 address allocation."; | "Choice of the IPv6 address allocation."; | |||
case dynamic { | case dynamic { | |||
description | description | |||
"When the addresses are allocated by DHCP or other dynamic | "When the addresses are allocated by DHCP or other dynamic | |||
means local to the infrastructure."; | means local to the infrastructure."; | |||
choice provider-dhcp { | choice provider-dhcp { | |||
description | description | |||
"Parameters related to DHCP-allocated addresses. | "Parameters related to DHCP-allocated addresses. | |||
IP addresses are allocated by DHCP, that is provided | IP addresses are allocated by DHCP, which is provided | |||
by the operator."; | by the operator."; | |||
leaf dhcp-service-type { | leaf dhcp-service-type { | |||
type enumeration { | type enumeration { | |||
enum server { | enum server { | |||
description | description | |||
"Local DHCP server."; | "Local DHCP server."; | |||
} | } | |||
enum relay { | enum relay { | |||
description | description | |||
"Local DHCP relay. DHCP requests are relayed to a | "Local DHCP relay. DHCP requests are relayed to a | |||
provider's server."; | provider's server."; | |||
} | } | |||
} | } | |||
description | description | |||
"Indicates the type of DHCP service to be enabled on | "Indicates the type of DHCP service to be enabled on | |||
the AC."; | the AC."; | |||
} | } | |||
} | } | |||
choice dhcp-relay { | choice dhcp-relay { | |||
description | description | |||
skipping to change at page 37, line 34 ¶ | skipping to change at line 1667 ¶ | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
"Indicates the last address in the pool."; | "Indicates the last address in the pool."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
choice provider-dhcp { | choice provider-dhcp { | |||
description | description | |||
"Parameters related to DHCP-allocated addresses. IP | "Parameters related to DHCP-allocated addresses. IP | |||
addresses are allocated by DHCP, which is provided by | addresses are allocated by DHCP, which is provided by | |||
the operator."; | the operator."; | |||
leaf dhcp-service-type { | leaf dhcp-service-type { | |||
type enumeration { | type enumeration { | |||
enum server { | enum server { | |||
description | description | |||
"Local DHCP server."; | "Local DHCP server."; | |||
} | } | |||
enum relay { | enum relay { | |||
description | description | |||
"Local DHCP relay. DHCP requests are relayed to | "Local DHCP relay. DHCP requests are relayed to | |||
a provider's server."; | a provider's server."; | |||
} | } | |||
} | } | |||
description | description | |||
"Indicates the type of DHCP service to be enabled on | "Indicates the type of DHCP service to be enabled on | |||
this AC."; | this AC."; | |||
} | } | |||
} | } | |||
choice dhcp-relay { | choice dhcp-relay { | |||
description | description | |||
"The DHCP relay is provided by the operator."; | "The DHCP relay is provided by the operator."; | |||
container customer-dhcp-servers { | container customer-dhcp-servers { | |||
description | description | |||
"Container for a list of the customer's DHCP servers."; | "Container for a list of the customer's DHCP servers."; | |||
leaf-list server-ip-address { | leaf-list server-ip-address { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
skipping to change at page 38, line 27 ¶ | skipping to change at line 1708 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
case static-addresses { | case static-addresses { | |||
description | description | |||
"Lists the IPv4 addresses that are used."; | "Lists the IPv4 addresses that are used."; | |||
list address { | list address { | |||
key "address-id"; | key "address-id"; | |||
ordered-by user; | ordered-by user; | |||
description | description | |||
"Lists the IPv4 addresses that are used. The first | "Lists the IPv4 addresses that are used. The first | |||
address of the list is the primary address of the | address of the list is the primary address of the | |||
connection."; | connection."; | |||
leaf address-id { | leaf address-id { | |||
type string; | type string; | |||
description | description | |||
"An identifier of the static IPv4 address."; | "An identifier of the static IPv4 address."; | |||
} | } | |||
leaf customer-address { | leaf customer-address { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
skipping to change at page 40, line 34 ¶ | skipping to change at line 1811 ¶ | |||
IP addresses are allocated by DHCP, which is provided | IP addresses are allocated by DHCP, which is provided | |||
by the operator."; | by the operator."; | |||
leaf dhcp-service-type { | leaf dhcp-service-type { | |||
type enumeration { | type enumeration { | |||
enum server { | enum server { | |||
description | description | |||
"Local DHCP server."; | "Local DHCP server."; | |||
} | } | |||
enum relay { | enum relay { | |||
description | description | |||
"Local DHCP relay. DHCP requests are relayed | "Local DHCP relay. DHCP requests are relayed | |||
to a provider's server."; | to a provider's server."; | |||
} | } | |||
} | } | |||
description | description | |||
"Indicates the type of DHCP service to be enabled | "Indicates the type of DHCP service to be enabled | |||
on this access."; | on this access."; | |||
} | } | |||
} | } | |||
choice dhcp-relay { | choice dhcp-relay { | |||
description | description | |||
skipping to change at page 41, line 4 ¶ | skipping to change at line 1830 ¶ | |||
choice dhcp-relay { | choice dhcp-relay { | |||
description | description | |||
"The DHCP relay is provided by the operator."; | "The DHCP relay is provided by the operator."; | |||
container customer-dhcp-servers { | container customer-dhcp-servers { | |||
description | description | |||
"Container for a list of the customer's DHCP servers."; | "Container for a list of the customer's DHCP servers."; | |||
leaf-list server-ip-address { | leaf-list server-ip-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"IPv6 addresses of the customer's DHCP server."; | "IPv6 addresses of the customer's DHCP server."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
case static-addresses { | case static-addresses { | |||
description | description | |||
"Lists the IPv6 addresses that are used by the customer."; | "Lists the IPv6 addresses that are used by the customer."; | |||
list address { | list address { | |||
key "address-id"; | key "address-id"; | |||
ordered-by user; | ordered-by user; | |||
description | description | |||
"Lists the IPv6 addresses that are used. The first | "Lists the IPv6 addresses that are used. The first | |||
address of the list is the primary IP address of | address of the list is the primary IP address of | |||
the connection."; | the connection."; | |||
leaf address-id { | leaf address-id { | |||
type string; | type string; | |||
description | description | |||
"An identifier of the static IPv6 address."; | "An identifier of the static IPv6 address."; | |||
} | } | |||
leaf customer-address { | leaf customer-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
skipping to change at page 46, line 40 ¶ | skipping to change at line 2106 ¶ | |||
} | } | |||
// Basic routing parameters | // Basic routing parameters | |||
grouping bgp-peer-group-without-name { | grouping bgp-peer-group-without-name { | |||
description | description | |||
"Identifies a BGP peer-group configured on the local system."; | "Identifies a BGP peer-group configured on the local system."; | |||
leaf local-as { | leaf local-as { | |||
type inet:as-number; | type inet:as-number; | |||
description | description | |||
"Indicates a local AS Number (ASN). This ASN is exposed to | "Indicates a local Autonomous System Number (ASN). This ASN | |||
a customer so that it knows which ASN to use to set up | is exposed to a customer so that it knows which ASN to use | |||
a BGP session."; | to set up a BGP session."; | |||
} | } | |||
leaf peer-as { | leaf peer-as { | |||
type inet:as-number; | type inet:as-number; | |||
description | description | |||
"Indicates the customer's ASN when the customer requests | "Indicates the customer's ASN when the customer requests | |||
BGP routing."; | BGP routing."; | |||
} | } | |||
leaf address-family { | leaf address-family { | |||
type identityref { | type identityref { | |||
base vpn-common:address-family; | base vpn-common:address-family; | |||
skipping to change at page 47, line 25 ¶ | skipping to change at line 2139 ¶ | |||
description | description | |||
"Specifies the BGP role (provider, customer, peer, etc.)."; | "Specifies the BGP role (provider, customer, peer, etc.)."; | |||
reference | reference | |||
"RFC 9234: Route Leak Prevention and Detection Using | "RFC 9234: Route Leak Prevention and Detection Using | |||
Roles in UPDATE and OPEN Messages, Section 4"; | Roles in UPDATE and OPEN Messages, Section 4"; | |||
} | } | |||
} | } | |||
grouping bgp-peer-group-with-name { | grouping bgp-peer-group-with-name { | |||
description | description | |||
"Identifies a BGP peer-group configured on the local system - | "Identifies a BGP peer-group configured on the local system, | |||
identified by a peer-group name."; | identified by a peer-group name."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description | description | |||
"Specifies the name of the BGP peer-group."; | "Specifies the name of the BGP peer-group."; | |||
} | } | |||
uses bgp-peer-group-without-name; | uses bgp-peer-group-without-name; | |||
} | } | |||
grouping ospf-basic { | grouping ospf-basic { | |||
skipping to change at page 48, line 12 ¶ | skipping to change at line 2174 ¶ | |||
reference | reference | |||
"RFC 4577: OSPF as the Provider/Customer Edge Protocol | "RFC 4577: OSPF as the Provider/Customer Edge Protocol | |||
for BGP/MPLS IP Virtual Private Networks | for BGP/MPLS IP Virtual Private Networks | |||
(VPNs), Section 4.2.3 | (VPNs), Section 4.2.3 | |||
RFC 6565: OSPFv3 as a Provider Edge to Customer Edge | RFC 6565: OSPFv3 as a Provider Edge to Customer Edge | |||
(PE-CE) Routing Protocol, Section 4.2"; | (PE-CE) Routing Protocol, Section 4.2"; | |||
} | } | |||
leaf metric { | leaf metric { | |||
type uint16; | type uint16; | |||
description | description | |||
"Metric of the AC. It is used in the routing state | "Metric of the AC. It is used in the routing state | |||
calculation and path selection."; | calculation and path selection."; | |||
} | } | |||
} | } | |||
grouping isis-basic { | grouping isis-basic { | |||
description | description | |||
"Basic configuration specific to IS-IS."; | "Basic configuration specific to IS-IS."; | |||
leaf address-family { | leaf address-family { | |||
type identityref { | type identityref { | |||
base vpn-common:address-family; | base vpn-common:address-family; | |||
skipping to change at page 50, line 23 ¶ | skipping to change at line 2281 ¶ | |||
} | } | |||
} | } | |||
grouping ipv6-static-rtg { | grouping ipv6-static-rtg { | |||
description | description | |||
"A set of parameters specific to IPv6 static routing."; | "A set of parameters specific to IPv6 static routing."; | |||
list ipv6-lan-prefixes { | list ipv6-lan-prefixes { | |||
if-feature "vpn-common:ipv6"; | if-feature "vpn-common:ipv6"; | |||
key "lan next-hop"; | key "lan next-hop"; | |||
description | description | |||
"List of LAN prefixes for the customer terminating points."; | "List of LAN prefixes for the customer-terminating points."; | |||
uses ipv6-static-rtg-entry; | uses ipv6-static-rtg-entry; | |||
uses ac-common:service-status; | uses ac-common:service-status; | |||
} | } | |||
} | } | |||
// OAM | // OAM | |||
grouping bfd { | grouping bfd { | |||
description | description | |||
"Groups a set of basic BFD parameters."; | "Groups a set of basic BFD parameters."; | |||
skipping to change at page 51, line 4 ¶ | skipping to change at line 2309 ¶ | |||
holdtime period if the provider allows the customer | holdtime period if the provider allows the customer | |||
to use this function. | to use this function. | |||
If the provider doesn't allow the customer to use | If the provider doesn't allow the customer to use | |||
this function, fixed values will not be set."; | this function, fixed values will not be set."; | |||
reference | reference | |||
"RFC 5880: Bidirectional Forwarding Detection (BFD), | "RFC 5880: Bidirectional Forwarding Detection (BFD), | |||
Section 6.8.18"; | Section 6.8.18"; | |||
} | } | |||
} | } | |||
// redundancy | // redundancy | |||
grouping redundancy-group { | grouping redundancy-group { | |||
description | description | |||
"A grouping for redundancy group."; | "A grouping for redundancy group."; | |||
list group { | list group { | |||
key "group-id"; | key "group-id"; | |||
description | description | |||
"Specifies a list of group identifiers."; | "Specifies a list of group identifiers."; | |||
leaf group-id { | leaf group-id { | |||
type string; | type string; | |||
description | description | |||
"Indicates the group-id to which an AC belongs."; | "Indicates the group-id to which an AC belongs."; | |||
} | } | |||
leaf precedence { | leaf precedence { | |||
type identityref { | type identityref { | |||
base ac-common:precedence-type; | base ac-common:precedence-type; | |||
} | } | |||
description | description | |||
"Defines redundancy of an AC."; | "Defines redundancy of an AC."; | |||
} | } | |||
} | } | |||
} | } | |||
// QoS | // QoS | |||
grouping bandwidth-parameters { | grouping bandwidth-parameters { | |||
description | description | |||
"A grouping for bandwidth parameters."; | "A grouping for bandwidth parameters."; | |||
leaf cir { | leaf cir { | |||
type uint64; | type uint64; | |||
units "bps"; | units "bps"; | |||
description | description | |||
"Committed Information Rate (CIR). The maximum number of bits | "Committed Information Rate (CIR). The maximum number of | |||
that a port can receive or send during one second over | bits that a port can receive or send during one second over | |||
an interface."; | an interface."; | |||
} | } | |||
leaf cbs { | leaf cbs { | |||
type uint64; | type uint64; | |||
units "bytes"; | units "bytes"; | |||
description | description | |||
"Committed Burst Size (CBS). CBS controls the bursty nature | "Committed Burst Size (CBS). CBS controls the bursty nature | |||
of the traffic. Traffic that does not use the configured | of the traffic. Traffic that does not use the configured | |||
CIR accumulates credits until the credits reach the | CIR accumulates credits until the credits reach the | |||
configured CBS."; | configured CBS."; | |||
} | } | |||
leaf eir { | leaf eir { | |||
type uint64; | type uint64; | |||
units "bps"; | units "bps"; | |||
description | description | |||
"Excess Information Rate (EIR), i.e., excess frame delivery | "Excess Information Rate (EIR), i.e., excess frame delivery | |||
allowed not subject to a Service Level Agreement (SLA). | allowed not subject to a Service Level Agreement (SLA). | |||
The traffic rate can be limited by EIR."; | The traffic rate can be limited by EIR."; | |||
} | } | |||
leaf ebs { | leaf ebs { | |||
type uint64; | type uint64; | |||
units "bytes"; | units "bytes"; | |||
description | description | |||
"Excess Burst Size (EBS). The bandwidth available for burst | "Excess Burst Size (EBS). The bandwidth available for burst | |||
traffic from the EBS is subject to the amount of bandwidth | traffic from the EBS is subject to the amount of bandwidth | |||
that is accumulated during periods when traffic allocated | that is accumulated during periods when traffic allocated | |||
by the EIR policy is not used."; | by the EIR policy is not used."; | |||
} | } | |||
leaf pir { | leaf pir { | |||
type uint64; | type uint64; | |||
units "bps"; | units "bps"; | |||
description | description | |||
"Peak Information Rate (PIR), i.e., maximum frame delivery | "Peak Information Rate (PIR), i.e., maximum frame delivery | |||
allowed. It is equal to or less than sum of CIR and EIR."; | allowed. It is equal to or less than the sum of the CIR and | |||
EIR."; | ||||
} | } | |||
leaf pbs { | leaf pbs { | |||
type uint64; | type uint64; | |||
units "bytes"; | units "bytes"; | |||
description | description | |||
"Peak Burst Size (PBS)."; | "Peak Burst Size (PBS)."; | |||
} | } | |||
} | } | |||
grouping bandwidth-per-type { | grouping bandwidth-per-type { | |||
skipping to change at page 53, line 36 ¶ | skipping to change at line 2439 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
6. Security Considerations | 6. 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 | |||
of [I-D.ietf-netmod-rfc8407bis]. | of [YANG-GUIDELINES]. | |||
The "ietf-ac-common" YANG module defines a data model that is | The "ietf-ac-common" YANG module defines a data model that is | |||
designed to be accessed via YANG-based management protocols, such as | designed to be accessed via YANG-based management protocols, such as | |||
NETCONF [RFC6241] and RESTCONF [RFC8040]. These protocols have to | NETCONF [RFC6241] and RESTCONF [RFC8040]. These protocols have to | |||
use a secure transport layer (e.g., SSH [RFC4252], TLS [RFC8446], and | use a secure transport layer (e.g., SSH [RFC4252], TLS [RFC8446], and | |||
QUIC [RFC9000]) and have to use mutual authentication. | QUIC [RFC9000]) and have to use mutual authentication. | |||
The Network Configuration Access Control Model (NACM) [RFC8341] | The Network Configuration Access Control Model (NACM) [RFC8341] | |||
provides the means to restrict access for particular NETCONF or | provides the means to restrict access for particular NETCONF or | |||
RESTCONF users to a preconfigured subset of all available NETCONF or | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
skipping to change at page 54, line 28 ¶ | skipping to change at line 2479 ¶ | |||
groupings will inherit the security considerations discussed in | groupings will inherit the security considerations discussed in | |||
Section 5 of [RFC8177]. Also, these groupings support supplying | Section 5 of [RFC8177]. Also, these groupings support supplying | |||
explicit keys as strings in ASCII format. The use of keys in | explicit keys as strings in ASCII format. The use of keys in | |||
hexadecimal string format would afford greater key entropy with the | hexadecimal string format would afford greater key entropy with the | |||
same number of key-string octets. However, such a format is not | same number of key-string octets. However, such a format is not | |||
included in this version of the common AC model, because it is not | included in this version of the common AC model, because it is not | |||
supported by the underlying device modules (e.g., [RFC8695]). | supported by the underlying device modules (e.g., [RFC8695]). | |||
7. IANA Considerations | 7. IANA Considerations | |||
IANA is requested to register the following URI in the "ns" | IANA has registered the following URI in the "ns" subregistry within | |||
subregistry within the "IETF XML Registry" [RFC3688]: | the "IETF XML Registry" [RFC3688]: | |||
URI: urn:ietf:params:xml:ns:yang:ietf-ac-common | URI: urn:ietf:params:xml:ns:yang:ietf-ac-common | |||
Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
IANA is requested to register the following YANG module in the "YANG | IANA has registered the following YANG module in the "YANG Module | |||
Module Names" subregistry [RFC6020] within the "YANG Parameters" | Names" subregistry [RFC6020] within the "YANG Parameters" registry: | |||
registry: | ||||
Name: ietf-ac-common | Name: ietf-ac-common | |||
Namespace: urn:ietf:params:xml:ns:yang:ietf-ac-common | Maintained by IANA? N | |||
Prefix: ac-common | Namespace: urn:ietf:params:xml:ns:yang:ietf-ac-common | |||
Maintained by IANA? N | Prefix: ac-common | |||
Reference: RFC XXXX | Reference: RFC 9833 | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[ISO10589] ISO, "Information technology - Telecommunications and | [ISO10589] ISO/IEC, "Information technology - Telecommunications and | |||
information exchange between systems - Intermediate System | information exchange between systems - Intermediate System | |||
to Intermediate System intra-domain routeing information | to Intermediate System intra-domain routeing information | |||
exchange protocol for use in conjunction with the protocol | exchange protocol for use in conjunction with the protocol | |||
for providing the connectionless-mode network service | for providing the connectionless-mode network service | |||
(ISO8473)", 2002, | (ISO8473)", ISO/IEC 10589:2002, November 2002, | |||
<https://www.iso.org/standard/30932.html>. | <https://www.iso.org/standard/30932.html>. | |||
[RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
dual environments", RFC 1195, DOI 10.17487/RFC1195, | dual environments", RFC 1195, DOI 10.17487/RFC1195, | |||
December 1990, <https://www.rfc-editor.org/rfc/rfc1195>. | December 1990, <https://www.rfc-editor.org/info/rfc1195>. | |||
[RFC2080] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080, | [RFC2080] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080, | |||
DOI 10.17487/RFC2080, January 1997, | DOI 10.17487/RFC2080, January 1997, | |||
<https://www.rfc-editor.org/rfc/rfc2080>. | <https://www.rfc-editor.org/info/rfc2080>. | |||
[RFC2453] Malkin, G., "RIP Version 2", STD 56, RFC 2453, | [RFC2453] Malkin, G., "RIP Version 2", STD 56, RFC 2453, | |||
DOI 10.17487/RFC2453, November 1998, | DOI 10.17487/RFC2453, November 1998, | |||
<https://www.rfc-editor.org/rfc/rfc2453>. | <https://www.rfc-editor.org/info/rfc2453>. | |||
[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/rfc/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
<https://www.rfc-editor.org/rfc/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
[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/rfc/rfc4577>. | June 2006, <https://www.rfc-editor.org/info/rfc4577>. | |||
[RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | |||
DOI 10.17487/RFC5308, October 2008, | DOI 10.17487/RFC5308, October 2008, | |||
<https://www.rfc-editor.org/rfc/rfc5308>. | <https://www.rfc-editor.org/info/rfc5308>. | |||
[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/rfc/rfc5925>. | June 2010, <https://www.rfc-editor.org/info/rfc5925>. | |||
[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/rfc/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/rfc/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/rfc/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
[RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, | [RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, | |||
L., Sridhar, T., Bursell, M., and C. Wright, "Virtual | L., Sridhar, T., Bursell, M., and C. Wright, "Virtual | |||
eXtensible Local Area Network (VXLAN): A Framework for | eXtensible Local Area Network (VXLAN): A Framework for | |||
Overlaying Virtualized Layer 2 Networks over Layer 3 | Overlaying Virtualized Layer 2 Networks over Layer 3 | |||
Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014, | Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014, | |||
<https://www.rfc-editor.org/rfc/rfc7348>. | <https://www.rfc-editor.org/info/rfc7348>. | |||
[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>. | ||||
[RFC8077] Martini, L., Ed. and G. Heron, Ed., "Pseudowire Setup and | [RFC8077] Martini, L., Ed. and G. Heron, Ed., "Pseudowire Setup and | |||
Maintenance Using the Label Distribution Protocol (LDP)", | Maintenance Using the Label Distribution Protocol (LDP)", | |||
STD 84, RFC 8077, DOI 10.17487/RFC8077, February 2017, | STD 84, RFC 8077, DOI 10.17487/RFC8077, February 2017, | |||
<https://www.rfc-editor.org/rfc/rfc8077>. | <https://www.rfc-editor.org/info/rfc8077>. | |||
[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/rfc/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/rfc/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/rfc/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>. | ||||
[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/rfc/rfc9181>. | 2022, <https://www.rfc-editor.org/info/rfc9181>. | |||
8.2. Informative References | 8.2. Informative References | |||
[I-D.ietf-netmod-rfc8407bis] | [MEF17] The Metro Ethernet Forum, "Service OAM Requirements & | |||
Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for | Framework - Phase 1", MEF Technical Specification, MEF 17, | |||
Authors and Reviewers of Documents Containing YANG Data | April 2007, <https://www.mef.net/wp- | |||
Models", Work in Progress, Internet-Draft, draft-ietf- | content/uploads/2015/04/MEF-17.pdf>. | |||
netmod-rfc8407bis-22, 14 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | ||||
rfc8407bis-22>. | ||||
[I-D.ietf-netmod-schedule-yang] | ||||
Ma, Q., Wu, Q., Boucadair, M., and D. King, "A Common YANG | ||||
Data Model for Scheduling", Work in Progress, Internet- | ||||
Draft, draft-ietf-netmod-schedule-yang-03, 10 October | ||||
2024, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
netmod-schedule-yang-03>. | ||||
[I-D.ietf-opsawg-ac-lxsm-lxnm-glue] | ||||
Boucadair, M., Roberts, R., Barguil, S., and O. G. de | ||||
Dios, "A YANG Data Model for Augmenting VPN Service and | ||||
Network Models with Attachment Circuits", Work in | ||||
Progress, Internet-Draft, draft-ietf-opsawg-ac-lxsm-lxnm- | ||||
glue-13, 9 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- | ||||
ac-lxsm-lxnm-glue-13>. | ||||
[I-D.ietf-opsawg-ntw-attachment-circuit] | ||||
Boucadair, M., Roberts, R., de Dios, O. G., Barguil, S., | ||||
and B. Wu, "A Network YANG Data Model for Attachment | ||||
Circuits", Work in Progress, Internet-Draft, draft-ietf- | ||||
opsawg-ntw-attachment-circuit-15, 9 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- | ||||
ntw-attachment-circuit-15>. | ||||
[I-D.ietf-opsawg-teas-attachment-circuit] | ||||
Boucadair, M., Roberts, R., de Dios, O. G., Barguil, S., | ||||
and B. Wu, "YANG Data Models for Bearers and 'Attachment | ||||
Circuits'-as-a-Service (ACaaS)", Work in Progress, | ||||
Internet-Draft, draft-ietf-opsawg-teas-attachment-circuit- | ||||
19, 9 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- | ||||
teas-attachment-circuit-19>. | ||||
[I-D.ietf-teas-ietf-network-slice-nbi-yang] | ||||
Wu, B., Dhody, D., Rokui, R., Saad, T., and J. Mullooly, | ||||
"A YANG Data Model for the RFC 9543 Network Slice | ||||
Service", Work in Progress, Internet-Draft, draft-ietf- | ||||
teas-ietf-network-slice-nbi-yang-18, 21 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
ietf-network-slice-nbi-yang-18>. | ||||
[MEF17] The Metro Ethernet Forum, "Technical Specification MEF 17, | ||||
Service OAM Requirements & Framework - Phase 1", April | ||||
2007, <https://www.mef.net/wp-content/uploads/2015/04/MEF- | ||||
17.pdf>. | ||||
[MEF6] The Metro Ethernet Forum, "Technical Specification MEF 6, | [MEF6] The Metro Ethernet Forum, "Ethernet Services Definitions - | |||
Ethernet Services Definitions - Phase I", June 2004, | Phase I", MEF Technical Specification, MEF 6, August 2004, | |||
<https://www.mef.net/Assets/Technical_Specifications/PDF/ | <https://www.mef.net/Assets/Technical_Specifications/PDF/ | |||
MEF_6.pdf>. | MEF_6.pdf>. | |||
[RFC1701] Hanks, S., Li, T., Farinacci, D., and P. Traina, "Generic | [RFC1701] Hanks, S., Li, T., Farinacci, D., and P. Traina, "Generic | |||
Routing Encapsulation (GRE)", RFC 1701, | Routing Encapsulation (GRE)", RFC 1701, | |||
DOI 10.17487/RFC1701, October 1994, | DOI 10.17487/RFC1701, October 1994, | |||
<https://www.rfc-editor.org/rfc/rfc1701>. | <https://www.rfc-editor.org/info/rfc1701>. | |||
[RFC1702] Hanks, S., Li, T., Farinacci, D., and P. Traina, "Generic | [RFC1702] Hanks, S., Li, T., Farinacci, D., and P. Traina, "Generic | |||
Routing Encapsulation over IPv4 networks", RFC 1702, | Routing Encapsulation over IPv4 networks", RFC 1702, | |||
DOI 10.17487/RFC1702, October 1994, | DOI 10.17487/RFC1702, October 1994, | |||
<https://www.rfc-editor.org/rfc/rfc1702>. | <https://www.rfc-editor.org/info/rfc1702>. | |||
[RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 2003, | [RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 2003, | |||
DOI 10.17487/RFC2003, October 1996, | DOI 10.17487/RFC2003, October 1996, | |||
<https://www.rfc-editor.org/rfc/rfc2003>. | <https://www.rfc-editor.org/info/rfc2003>. | |||
[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/rfc/rfc3644>. | <https://www.rfc-editor.org/info/rfc3644>. | |||
[RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | |||
Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | |||
January 2006, <https://www.rfc-editor.org/rfc/rfc4252>. | January 2006, <https://www.rfc-editor.org/info/rfc4252>. | |||
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the | [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | |||
Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, | Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, | |||
December 2005, <https://www.rfc-editor.org/rfc/rfc4301>. | December 2005, <https://www.rfc-editor.org/info/rfc4301>. | |||
[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/rfc/rfc4364>. | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
[RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality | [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality | |||
for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, | for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, | |||
<https://www.rfc-editor.org/rfc/rfc4552>. | <https://www.rfc-editor.org/info/rfc4552>. | |||
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | |||
Address Autoconfiguration", RFC 4862, | Address Autoconfiguration", RFC 4862, | |||
DOI 10.17487/RFC4862, September 2007, | DOI 10.17487/RFC4862, September 2007, | |||
<https://www.rfc-editor.org/rfc/rfc4862>. | <https://www.rfc-editor.org/info/rfc4862>. | |||
[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/rfc/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
[RFC6004] Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Support | [RFC6004] Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Support | |||
for Metro Ethernet Forum and G.8011 Ethernet Service | for Metro Ethernet Forum and G.8011 Ethernet Service | |||
Switching", RFC 6004, DOI 10.17487/RFC6004, October 2010, | Switching", RFC 6004, DOI 10.17487/RFC6004, October 2010, | |||
<https://www.rfc-editor.org/rfc/rfc6004>. | <https://www.rfc-editor.org/info/rfc6004>. | |||
[RFC6215] Bocci, M., Levrau, L., and D. Frost, "MPLS Transport | [RFC6215] Bocci, M., Levrau, L., and D. Frost, "MPLS Transport | |||
Profile User-to-Network and Network-to-Network | Profile User-to-Network and Network-to-Network | |||
Interfaces", RFC 6215, DOI 10.17487/RFC6215, April 2011, | Interfaces", RFC 6215, DOI 10.17487/RFC6215, April 2011, | |||
<https://www.rfc-editor.org/rfc/rfc6215>. | <https://www.rfc-editor.org/info/rfc6215>. | |||
[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/rfc/rfc6241>. | ||||
[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/rfc/rfc7665>. | <https://www.rfc-editor.org/info/rfc7665>. | |||
[RFC7676] Pignataro, C., Bonica, R., and S. Krishnan, "IPv6 Support | [RFC7676] Pignataro, C., Bonica, R., and S. Krishnan, "IPv6 Support | |||
for Generic Routing Encapsulation (GRE)", RFC 7676, | for Generic Routing Encapsulation (GRE)", RFC 7676, | |||
DOI 10.17487/RFC7676, October 2015, | DOI 10.17487/RFC7676, October 2015, | |||
<https://www.rfc-editor.org/rfc/rfc7676>. | <https://www.rfc-editor.org/info/rfc7676>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/rfc/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/rfc/rfc8299>. | <https://www.rfc-editor.org/info/rfc8299>. | |||
[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/rfc/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
[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/rfc/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/rfc/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/rfc/rfc8695>. | <https://www.rfc-editor.org/info/rfc8695>. | |||
[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/rfc/rfc8969>. | January 2021, <https://www.rfc-editor.org/info/rfc8969>. | |||
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | |||
Multiplexed and Secure Transport", RFC 9000, | Multiplexed and Secure Transport", RFC 9000, | |||
DOI 10.17487/RFC9000, May 2021, | DOI 10.17487/RFC9000, May 2021, | |||
<https://www.rfc-editor.org/rfc/rfc9000>. | <https://www.rfc-editor.org/info/rfc9000>. | |||
[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/rfc/rfc9182>. | February 2022, <https://www.rfc-editor.org/info/rfc9182>. | |||
[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/rfc/rfc9234>. | <https://www.rfc-editor.org/info/rfc9234>. | |||
[RFC9291] Boucadair, M., Ed., Gonzalez de Dios, O., Ed., Barguil, | [RFC9291] Boucadair, M., Ed., Gonzalez de Dios, O., Ed., Barguil, | |||
S., and L. Munoz, "A YANG Network Data Model for Layer 2 | S., and L. Munoz, "A YANG Network Data Model for Layer 2 | |||
VPNs", RFC 9291, DOI 10.17487/RFC9291, September 2022, | VPNs", RFC 9291, DOI 10.17487/RFC9291, September 2022, | |||
<https://www.rfc-editor.org/rfc/rfc9291>. | <https://www.rfc-editor.org/info/rfc9291>. | |||
[RFC9408] Boucadair, M., Ed., Gonzalez de Dios, O., Barguil, S., Wu, | [RFC9408] Boucadair, M., Ed., Gonzalez de Dios, O., Barguil, S., Wu, | |||
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/rfc/rfc9408>. | June 2023, <https://www.rfc-editor.org/info/rfc9408>. | |||
[RFC9834] Boucadair, M., Ed., Roberts, R., Ed., Gonzalez de Dios, | ||||
O., Barguil Giraldo, S., and B. Wu, "YANG Data Models for | ||||
Bearers and 'Attachment Circuits'-as-a-Service (ACaaS)", | ||||
RFC 9834, August 2025, | ||||
<https://www.rfc-editor.org/info/rfc9834>. | ||||
[RFC9835] Boucadair, M., Roberts, R., Gonzalez de Dios, O., Barguil | ||||
Giraldo, S., and B. Wu, "A Network YANG Data Model for | ||||
Attachment Circuits", RFC 9835, August 2025, | ||||
<https://www.rfc-editor.org/info/rfc9835>. | ||||
[RFC9836] Boucadair, M., Ed., Roberts, R., Barguil Giraldo, S., and | ||||
O. Gonzalez de Dios, "A YANG Data Model for Augmenting VPN | ||||
Service and Network Models with Attachment Circuits", | ||||
RFC 9836, August 2025, | ||||
<https://www.rfc-editor.org/info/rfc9836>. | ||||
[YANG-GUIDELINES] | ||||
Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines | ||||
for Authors and Reviewers of Documents Containing YANG | ||||
Data Models", Work in Progress, Internet-Draft, draft- | ||||
ietf-netmod-rfc8407bis-22, 14 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | ||||
rfc8407bis-22>. | ||||
[YANG-NSS] Wu, B., Dhody, D., Rokui, R., Saad, T., and J. Mullooly, | ||||
"A YANG Data Model for the RFC 9543 Network Slice | ||||
Service", Work in Progress, Internet-Draft, draft-ietf- | ||||
teas-ietf-network-slice-nbi-yang-25, 9 May 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
ietf-network-slice-nbi-yang-25>. | ||||
[YANG-SCHEDULE] | ||||
Ma, Q., Ed., Wu, Q., Boucadair, M., Ed., and D. King, "A | ||||
Common YANG Data Model for Scheduling", Work in Progress, | ||||
Internet-Draft, draft-ietf-netmod-schedule-yang-04, 7 | ||||
February 2025, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-netmod-schedule-yang-04>. | ||||
Appendix A. Full Tree | Appendix A. Full Tree | |||
module: ietf-ac-common | module: ietf-ac-common | |||
grouping service-status: | grouping service-status: | |||
+-- status | +-- status | |||
+-- admin-status | +-- admin-status | |||
| +-- status? identityref | | +-- status? identityref | |||
| +--ro last-change? yang:date-and-time | | +--ro last-change? yang:date-and-time | |||
skipping to change at page 66, line 36 ¶ | skipping to change at line 3049 ¶ | |||
+-- ebs? uint64 | +-- ebs? uint64 | |||
+-- pir? uint64 | +-- pir? uint64 | |||
+-- pbs? uint64 | +-- pbs? uint64 | |||
Acknowledgments | Acknowledgments | |||
The document reuses many of the structures that were defined in | The document reuses many of the structures that were defined in | |||
[RFC9181] and [RFC9182]. | [RFC9181] and [RFC9182]. | |||
Thanks to Ebben Aries for the YANG Doctors review, Andy Smith and | Thanks to Ebben Aries for the YANG Doctors review, Andy Smith and | |||
Gyanh Mishra for the rtg-dir reviews, Watson Ladd for the sec-dir | Gyanh Mishra for the RTGDIR reviews, Watson Ladd for the SECDIR | |||
review, and Behcet Sarikaya for the genart review. | review, and Behcet Sarikaya for the GENART review. | |||
Thanks to Reza Rokui for the Shepherd review. | Thanks to Reza Rokui for the shepherd review. | |||
Thanks to Mahesh Jethanandani for the AD review. | Thanks to Mahesh Jethanandani for the AD review. | |||
Thanks to Éric Vyncke, Gunter Van de Velde, Orie Steele, and Paul | Thanks to Éric Vyncke, Gunter Van de Velde, Orie Steele, and Paul | |||
Wouters for the IESG review. | Wouters for the IESG review. | |||
Contributors | Contributors | |||
Victor Lopez | Victor Lopez | |||
Nokia | Nokia | |||
End of changes. 144 change blocks. | ||||
605 lines changed or deleted | 564 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |