| draft-ietf-teas-nrp-yang-04.txt | draft-ietf-teas-nrp-yang-05.txt | |||
|---|---|---|---|---|
| Network Working Group B. Wu | Network Working Group B. Wu | |||
| Internet-Draft D. Dhody | Internet-Draft D. Dhody | |||
| Intended status: Standards Track Huawei Technologies | Intended status: Standards Track Huawei Technologies | |||
| Expires: 22 January 2026 V.P. Beeram | Expires: 26 July 2026 V.P. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| T. Saad | T. Saad | |||
| Cisco Systems | Cisco Systems | |||
| S. Peng | S. Peng | |||
| ZTE Corporation | ZTE Corporation | |||
| 21 July 2025 | 22 January 2026 | |||
| YANG Data Models for Network Resource Partitions (NRPs) | YANG Data Models for Network Resource Partitions (NRPs) | |||
| draft-ietf-teas-nrp-yang-04 | draft-ietf-teas-nrp-yang-05 | |||
| Abstract | Abstract | |||
| RFC 9543 describes a framework for Network Slices in networks built | RFC 9543 describes a framework for Network Slices in networks built | |||
| from IETF technologies. In this framework, the network resource | from IETF technologies. In this framework, the network resource | |||
| partition (NRP) is introduced as a collection of network resources | partition (NRP) is introduced as a collection of network resources | |||
| allocated from the underlay network to carry a specific set of | allocated from the underlay network to carry a specific set of | |||
| Network Slice Service traffic and meet specific Service Level | Network Slice Service traffic and meet specific Service Level | |||
| Objective (SLO) and Service Level Expectation (SLE) characteristics. | Objective (SLO) and Service Level Expectation (SLE) characteristics. | |||
| This document defines YANG data models for Network Resource | This document defines two YANG data models for Network Resource | |||
| Partitions (NRPs), applicable to devices and network controllers. | Partitions (NRPs): a network-level model for policy configuration by | |||
| The models can be used, in particular, for the realization of the | a Network Slice Controller, and a device-level model for | |||
| RFC9543 Network Slice Services in IP/MPLS and Segment Routing (SR) | configuration of individual network elements. These models enable | |||
| networks. | automated provisioning of NRPs in IP/MPLS and Segment Routing (SR) | |||
| networks, supporting scalable realization of RFC 9543 Network Slice | ||||
| Services. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 22 January 2026. | This Internet-Draft will expire on 26 July 2026. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2026 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 (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
| described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 | |||
| 3. NRP Data Models . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. NRP Data Models . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. Models Usage . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Models Usage . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. NRPs Instantiation . . . . . . . . . . . . . . . . . . . 5 | 3.2. NRPs Instantiation . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2.1. Resource Reservation . . . . . . . . . . . . . . . . 8 | 3.2.1. Resource Reservation . . . . . . . . . . . . . . . . 8 | |||
| 3.2.2. NRP Selector Identifier (NRP Selector ID) . . . . . . 8 | 3.2.2. NRP Selector Identifier (NRP Selector ID) . . . . . . 9 | |||
| 3.2.3. Per-Hop Behavior (PHB) . . . . . . . . . . . . . . . 9 | 3.2.3. Per-Hop Behavior (PHB) . . . . . . . . . . . . . . . 10 | |||
| 3.2.4. NRP Topology . . . . . . . . . . . . . . . . . . . . 9 | 3.2.4. NRP Topology . . . . . . . . . . . . . . . . . . . . 10 | |||
| 3.3. NRPs Monitoring . . . . . . . . . . . . . . . . . . . . . 11 | 3.3. NRPs Monitoring . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 3.4. NRPs Device Model Description . . . . . . . . . . . . . . 12 | 3.4. NRPs Device Model Description . . . . . . . . . . . . . . 14 | |||
| 4. NRPs YANG Module . . . . . . . . . . . . . . . . . . . . . . 13 | 4. NRPs YANG Module . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5. NRPs Device YANG Module . . . . . . . . . . . . . . . . . . . 29 | 5. NRPs Device YANG Module . . . . . . . . . . . . . . . . . . . 32 | |||
| 6. Scalability Considerations . . . . . . . . . . . . . . . . . 32 | 6. Scalability Considerations . . . . . . . . . . . . . . . . . 36 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 10. Contributor . . . . . . . . . . . . . . . . . . . . . . . . . 35 | 10. Contributor . . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 36 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 40 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 39 | 11.2. Informative References . . . . . . . . . . . . . . . . . 42 | |||
| Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 40 | Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 45 | |||
| Appendix B. An Example . . . . . . . . . . . . . . . . . . . . . 41 | Appendix B. An Example . . . . . . . . . . . . . . . . . . . . . 45 | |||
| Appendix C. NRPs YANG Module Tree . . . . . . . . . . . . . . . 44 | Appendix C. NRPs YANG Module Tree . . . . . . . . . . . . . . . 50 | |||
| Appendix D. NRPs Device YANG Module Tree . . . . . . . . . . . . 47 | Appendix D. NRPs Device YANG Module Tree . . . . . . . . . . . . 53 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 1. Introduction | 1. Introduction | |||
| [RFC9543] describes a framework for Network Slices in networks built | [RFC9543] describes a framework for Network Slices in networks built | |||
| from IETF technologies. As specified in Section 7.4 [RFC9543], an | from IETF technologies. As specified in Section 7.4 [RFC9543], an | |||
| NRP is a collection of resources identified in the underlay network | NRP is a collection of resources identified in the underlay network | |||
| to support the RFC 9543 Network Slice Service to meet the slice | to support the RFC 9543 Network Slice Service to meet the slice | |||
| Service Level Objectives (SLOs) and Service Level Expectations (SLEs) | Service Level Objectives (SLOs) and Service Level Expectations (SLEs) | |||
| characteristics and network scalability. This document follows the | characteristics and network scalability. This document follows the | |||
| Network Slice Service defined in [RFC9543], and all references to | Network Slice Service defined in [RFC9543], and all references to | |||
| "Network Slice" refers to that same context. | "Network Slice" refer to that same context. | |||
| Considering the NRPs realizations in IP/MPLS and Segment Routing (SR) | Considering the NRPs realizations in IP/MPLS and Segment Routing (SR) | |||
| networks, [I-D.ietf-teas-ns-ip-mpls] and | networks, [I-D.ietf-teas-ns-ip-mpls] and | |||
| [I-D.ietf-teas-nrp-scalability] describe NRP mechanisms of control | [I-D.ietf-teas-nrp-scalability] describe NRP mechanisms of control | |||
| plane, data plane, and management plane to provide specific | plane, data plane, and management plane to provide specific | |||
| forwarding treatment (scheduling, drop policy, resource usage) to the | forwarding treatment (scheduling, drop policy, resource usage) to the | |||
| Slice Service packets associated with an NRP. Specifically, for | Slice Service packets associated with an NRP. Specifically, for | |||
| instantiation of the device-specific and network wide NRPs, | instantiation of the device-specific and network wide NRPs, | |||
| Section 3.5 of [I-D.ietf-teas-ns-ip-mpls] introduces the construct of | Section 3.5 of [I-D.ietf-teas-ns-ip-mpls] introduces the construct of | |||
| NRP Policy. | NRP Policy. | |||
| Based on these descriptions of NRP, this document defines two YANG | Based on these descriptions of NRP, this document defines two YANG | |||
| models: NRPs network model in Section 4 and NRPs device model in | modules: | |||
| Section 5. The NRP network model can be used by an Network Slice | ||||
| Controller (NSC) (defined in Section 6.3 [RFC9543]) to manage NRP | ||||
| instances for Network Slice Service realizations, which is a network | ||||
| configuration model according to the YANG model classification of | ||||
| [RFC8309]. And the NRPs device model can be used by a network | ||||
| controller to set NRP parameters on an individual device, including | ||||
| device-specific configuration (e.g. interfaces), which is a device | ||||
| configuration model by the classification. | ||||
| The NRPs models conforms to the Network Management Datastore | * ietf-nrp: A network-level model used by a Network Slice Controller | |||
| Architecture (NMDA) [RFC8342]. | (NSC) (defined in Section 6.3 [RFC9543]) to manage NRP instances | |||
| for Network Slice Service realizations. This is a network | ||||
| configuration model according to the YANG model classification of | ||||
| [RFC8309]. | ||||
| 2. Terminology | * ietf-nrp-device: A device-level model used by a network controller | |||
| to set NRP parameters on an individual device, including device- | ||||
| specific interface configurations. This is a device configuration | ||||
| model by the classification. | ||||
| The following terms are defined in [RFC6241] and are used in this | The NRPs models conform to the Network Management Datastore | |||
| specification: | Architecture (NMDA) [RFC8342] and are designed to support both | |||
| configuration and operational state retrieval. | ||||
| 2. Conventions and Definitions | ||||
| The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in | ||||
| BCP14, [RFC2119], [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| The following terms are defined in [RFC6241], [RFC7950], and | ||||
| [RFC8345] and are used in this specification: | ||||
| * configuration data | * configuration data | |||
| * state data | * state data | |||
| The following terms are defined in [RFC7950] and are used in this | ||||
| specification: | ||||
| * augment | * augment | |||
| * data model | * data model | |||
| * data node | * data node | |||
| * network topology | ||||
| The terminology for describing YANG data models is found in | The terminology for describing YANG data models is found in | |||
| [RFC7950]. | [RFC7950]. The tree diagram used in this document follows the | |||
| notation defined in [RFC8340]. | ||||
| The tree diagram used in this document follows the notation defined | Additionally, this document uses the following terms: | |||
| in [RFC8340]. | ||||
| Network Resource Partition (NRP): A collection of network | ||||
| resources allocated from the underlay network to support one or | ||||
| more RFC 9543 Network Slice Services, meeting specific SLO/SLE | ||||
| requirements. Defined in Section 7.1 of [RFC9543]. | ||||
| NRP Policy: A configuration construct that specifies the rules for | ||||
| creating and maintaining an NRP, including resource allocation, | ||||
| selector identification, and topology association. | ||||
| NRP Instance: The operational realization of an NRP Policy on | ||||
| network devices, representing the actual allocated resources and | ||||
| configured forwarding behaviors. | ||||
| NRP Selector ID: A data plane identifier used by network devices | ||||
| to classify packets belonging to a specific NRP and apply the | ||||
| corresponding forwarding treatment. | ||||
| PHB Profile: A named set of Per-Hop Behavior parameters that | ||||
| define the forwarding treatment (e.g., scheduling, drop policy) | ||||
| for packets associated with an NRP. Profiles are locally defined | ||||
| by the network operator. | ||||
| NRP-Enabled Device: A network element that supports NRP data plane | ||||
| identification and resource partitioning mechanisms. | ||||
| Network Slice Controller (NSC): A functional component responsible | ||||
| for translating Network Slice Service requests into network | ||||
| configuration, including NRP management. Defined in Section 6.3 | ||||
| of [RFC9543]. | ||||
| 3. NRP Data Models | 3. NRP Data Models | |||
| 3.1. Models Usage | 3.1. Models Usage | |||
| As defined in Section 7.1 [RFC9543], the Network Slice Controller | As defined in Section 7.1 [RFC9543], the Network Slice Controller | |||
| (NSC) can determine which specific connectivity constructs from one | (NSC) can determine which specific connectivity constructs from one | |||
| or more slices could be grouped together upon Slice Service requests. | or more slices could be grouped together upon Slice Service requests. | |||
| This could be based on a specific set of SLOs and SLEs, or on any | This could be based on a specific set of SLOs and SLEs, or on any | |||
| administrative or operational policy. The NSC can further map these | administrative or operational policy. The NSC can further map these | |||
| skipping to change at page 5, line 30 ¶ | skipping to change at page 6, line 27 ¶ | |||
| * NRPs Deletion: If an NSC determines that no Slice Service is using | * NRPs Deletion: If an NSC determines that no Slice Service is using | |||
| an NRP, the NSC can delete the NRP instance. Another example is | an NRP, the NSC can delete the NRP instance. Another example is | |||
| when it is necessary to merge NRPs. | when it is necessary to merge NRPs. | |||
| * NRPs Monitoring: The NSC can use the NRPs model to track and | * NRPs Monitoring: The NSC can use the NRPs model to track and | |||
| monitor NRPs resource status and usage. | monitor NRPs resource status and usage. | |||
| 3.2. NRPs Instantiation | 3.2. NRPs Instantiation | |||
| Section 3.5 of [I-D.ietf-teas-ns-ip-mpls] introduces the construct of | An NRP Policy is a configuration construct that specifies the rules | |||
| NRP policy, which specifies the rules to trigger how an NRP can be | for creating and maintaining a Network Resource Partition. It | |||
| realized in IP/MPLS/SR networks. These rules are generic and can be | defines how network resources are allocated, how traffic is | |||
| applied to both device and network-level configurations. | identified, which topology is used, and what forwarding treatment is | |||
| applied. These rules apply to both device-level and network-level | ||||
| Section 5.1 of [I-D.ietf-teas-ns-ip-mpls] states the rules may | configurations. | |||
| include the following: | ||||
| 1. Topology customization policies: Determine the topology | An NRP Policy includes the following key components: | |||
| associated with the NRP, including policies of nodes, links, and | ||||
| functions membership that belong to the NRP. | ||||
| 2. Data plane specific policies: Include the NRP data plane | 1. Topology customization rules: Determine the set of nodes, links, | |||
| identifier, QoS profiles, bandwidth reservations, etc., | and network functions that belong to the NRP. | |||
| associated with the NRP. | ||||
| 3. Control plane specific policies: Include bandwidth reservation, | 2. Data plane rules: Specify the NRP selector ID, QoS profiles, and | |||
| resource sharing policy, reservation preferences, etc. | bandwidth reservations for traffic identification and forwarding | |||
| treatment. | ||||
| To further specify if the NRP realization involves the data plane or | 3. Control plane rules: Define resource reservation, resource | |||
| control plane, Section 4 of [I-D.ietf-teas-ns-ip-mpls] also defines | sharing, reservation preferences policy, etc. | |||
| three partition modes for an NRP policy: | ||||
| a. Data plane only: This mode Indicates that the physical network | NRP Policies support three resource partition modes: | |||
| resources (e.g., bandwidth) can be partitioned on network devices | ||||
| for the NRP. The devices need to enable NRP data plane mechanism | ||||
| to support the NRP data plane identification to ensure the proper | ||||
| forwarding treatment by applying a Per Hop forwarding Behavior | ||||
| (PHB) to the packets forwarded on the specific NRP. | ||||
| b. Control plane only: This mode indicates the NRP state reservation | a. Data Plane Partition: Physical network resources (e.g., | |||
| for each NRP can be maintained at the some NRP aware Traffic | bandwidth) are partitioned on network devices. Devices enable | |||
| Engineering (TE) network devices (e.g., RSVP-TE devices) or the | NRP data plane mechanisms to apply Per-Hop Behavior (PHB) to | |||
| network controllers. This mode provides no physical network | packets. | |||
| resources isolation. | ||||
| c. Both control and data planes: This mode indicates the network | b. Control Plane Partition: Resource reservation state for each NRP | |||
| resources can be partitioned in both the control plane (TE or | is maintained in NRP-aware TE devices or network controllers, | |||
| IGP) and data plane. | without physical resource isolation. | |||
| The NRP policy modes (a), (b) and (c), require the topology | c. Hybrid Partition: Combines both data plane and control plane | |||
| associated with the NRP to be specified. | partitioning for full resource isolation and stateful management. | |||
| The NRP policy modes (a) and (c) require the forwarding engine on | All modes require NRP topology specification. Modes (a) and (c) | |||
| each NRP-enabled device to identify the traffic belonging to a | require NRP selector identification for packet classification. Modes | |||
| specific NRP and to apply the corresponding Per-Hop Behavior (PHB) or | (b) and (c) require distributed or centralized resource reservation | |||
| forwarding mechanism that determines the forwarding treatment of the | management. When IGP routing is used with mode (c), NRP-aware IGP | |||
| packets belonging to the NRP. This NRP identification is referred to | extensions may be employed for scalability. | |||
| as the NRP selector identifier. | ||||
| For some Traffic Engineering (TE) scenarios, the NRP policy modes (b) | For further implementation considerations, the concepts align with | |||
| and (c) require the distributed and/or centralized resource | the NRP mechanisms described in [I-D.ietf-teas-ns-ip-mpls] and | |||
| reservation management for NRP stateful TE ( Section 4.2 of | [I-D.ietf-teas-nrp-scalability]. | |||
| [I-D.ietf-teas-ns-ip-mpls])). For better scalability scenarios | ||||
| defined in [I-D.ietf-teas-nrp-scalability], control plane of mode (c) | ||||
| also requires NRP aware IGP routing. | ||||
| The high-level model structure of NRP policy as modeled in this | The high-level model structure of NRP policy as modeled in this | |||
| document is shown in Figure 2: | document is shown in Figure 2: | |||
| module: ietf-nrp | module: ietf-nrp | |||
| augment /nw:networks: | augment /nw:networks: | |||
| +--rw nrp-policies | +--rw nrp-policies | |||
| +--rw policy-profiles | +--rw policy-profiles | |||
| | +--rw phb-profile-identifier* [id] | | +--rw phb-profile-identifier* [id] | |||
| | ... | | ... | |||
| skipping to change at page 7, line 29 ¶ | skipping to change at page 8, line 5 ¶ | |||
| +--rw phb-profile? leafref | +--rw phb-profile? leafref | |||
| +--rw topology | +--rw topology | |||
| ... | ... | |||
| Figure 2: NRP Policy subtree high-level structure | Figure 2: NRP Policy subtree high-level structure | |||
| The "networks" container from the "ietf-network" module [RFC8345] | The "networks" container from the "ietf-network" module [RFC8345] | |||
| provides a placeholder for an inventory of nodes in the network. | provides a placeholder for an inventory of nodes in the network. | |||
| This container is augmented to include a set of NRP policies. | This container is augmented to include a set of NRP policies. | |||
| The "policy-profiles" container provides a list of policy profile | The "policy-profiles" container provides a list of PHB policy profile | |||
| entries. Each of these entries can be referenced by one or more | entries. Each of these entries can be referenced by one or more | |||
| NRPs. A "phb-profile-identifier" entry can have a reference to a | NRPs. A "phb-profile-identifier" entry can have a reference to a | |||
| standard PHB profile available on the device or the network | standard PHB profile available on the device or the network | |||
| controller. | controller. | |||
| The "nrp-policies" container includes a list of NRP policies. Each | The "nrp-policies" container includes a list of NRP policies. Each | |||
| "nrp-policy" entry is identified by a name and holds the set of | "nrp-policy" entry is identified by a name and holds the set of | |||
| attributes needed to instantiate an NRP. | attributes needed to instantiate an NRP. | |||
| The description of the "nrp-policies" data nodes are as follows, and | The description of the "nrp-policies" data nodes are as follows, and | |||
| the other key elements of each nrp-policy entry are discussed in the | the other key elements of each nrp-policy entry are discussed in the | |||
| following sub-sections. | following sub-sections. | |||
| * "nrp-id": Is an identifier that is used to uniquely identify an | * "nrp-id": Is an identifier that is used to uniquely identify an | |||
| NRP instance within an NSC network scope, which is created by the | NRP instance within an NSC network scope, which is created by the | |||
| enforcement of the "nrp-policy". | enforcement of the "nrp-policy". | |||
| * "mode": Refers to control plane resource partition, data plane | * "mode": Refers to control plane partition, data plane partition, | |||
| resource partition, or a combination of both types. | or hybrid partition. | |||
| 3.2.1. Resource Reservation | 3.2.1. Resource Reservation | |||
| The "resource-reservation" container may include bandwidth | The "resource-reservation" container specifies bidirectional | |||
| reservation, resource sharing policy, protection policy, etc. | bandwidth allocation for an NRP, expressed as either an absolute | |||
| value or a percentage of link capacity. While currently limited to | ||||
| bandwidth, the container is designed to accommodate future extensions | ||||
| such as resource sharing or protection mechanisms described in | ||||
| [I-D.ietf-teas-ns-ip-mpls]. | ||||
| Bandwidth reservation specifies the bidirectiona bandwidth resource | The bandwidth reservation specified at the policy level serves as a | |||
| allocated to an NRP. This can be overridden by the configuration of | default for all links in the NRP topology. This can be overridden by | |||
| the link specific "resource-reservation" of "nrp-topology" in | link-specific configuration in the "nrp-topology" container | |||
| Section 3.2.4. | Section 3.2.4. | |||
| +--rw resource-reservation | +--rw resource-reservation | |||
| +--rw (max-bw-type)? | +--rw (max-bw-type)? | |||
| +--:(bw-value) | +--:(bw-value) | |||
| | +--rw maximum-bandwidth? uint64 | | +--rw maximum-bandwidth? uint64 | |||
| +--:(bw-percentage) | +--:(bw-percentage) | |||
| +--rw maximum-bandwidth-percent? rt-types:percentage | +--rw maximum-bandwidth-percent? rt-types:percentage | |||
| Figure 3: NRP Resource Reservation YANG subtree structure | Figure 3: NRP Resource Reservation YANG subtree structure | |||
| 3.2.2. NRP Selector Identifier (NRP Selector ID) | 3.2.2. NRP Selector Identifier (NRP Selector ID) | |||
| NRP selector ID defines the data plane encapsulation types and values | The NRP selector ID defines data plane encapsulation types and values | |||
| that are used to identify NRP-specific network resources. The | used to identify NRP-specific network resources. The configuration | |||
| configuration can be overridden by the link specific "selector-id" of | can be overridden by link-specific "selector-id" configuration in | |||
| "nrp-topology" in Section 3.2.4. | "nrp-topology" (Section 3.2.4). | |||
| [I-D.ietf-teas-nrp-scalability] discusses several candidate NRP | Implementations MUST support at least one selector type in the NRP | |||
| selector ID encapsulation schemes, including IP, MPLS, and SRv6, for | model of data plane partition or hybrid partition. Multiple selector | |||
| example, the IPv6 Hop-by-Hop extension header defined in | types MAY be configured to support heterogeneous network | |||
| [I-D.ietf-6man-enhanced-vpn-vtn-id], or the SRv6 SID defined in | environments. Selector ID values MUST be unique within the network | |||
| [I-D.ietf-spring-sr-for-enhanced-vpn]. Since the MPLS encapsulation | scope where the NRP operates. | |||
| schemes are still under discussion, the model only provides a place | ||||
| holder for future updates. Additionally, the use of NRP-specific IP | The following selector types are supported: | |||
| addresses to identify NRP resources, or the use of specific ACLs, are | ||||
| optional NRP selector ID mechanisms. | IPv4-derived: Uses destination IPv4 prefixes to identify NRP | |||
| traffic. Suitable for networks where NRPs are aligned with IP | ||||
| addressing. | ||||
| IPv6: Provides three sub-options: | ||||
| - Dedicated: Uses a value in the IPv6 Hop-by-Hop extension header | ||||
| as specified in [I-D.ietf-6man-enhanced-vpn-vtn-id] | ||||
| - SRv6-derived: Uses SRv6 SIDs where the SID structure encodes the | ||||
| NRP identifier, per [I-D.ietf-spring-sr-for-enhanced-vpn]. | ||||
| - IPv6-destination-derived: Uses destination IPv6 prefixes, | ||||
| similar to IPv4-derived. | ||||
| MPLS: Supports two encoding mechanisms: | ||||
| - In-Stack MPLS Network Action (MNA): Embeds the selector in the | ||||
| MPLS label stack using the format defined in | ||||
| [I-D.ietf-mpls-mna-nrp-selector]. Supports 13-bit (NRPS13) or | ||||
| 20-bit (NRPS20/ENRPS20) encodings. | ||||
| - Post-Stack (PSD): Uses a dedicated post-stack label per | ||||
| [I-D.ietf-mpls-mna-psd-nrp-selector]. | ||||
| ACL-based: References standard ACLs to match NRP traffic. | ||||
| Provides flexibility for complex classification rules but may have | ||||
| higher processing overhead. | ||||
| +--rw selector-id | +--rw selector-id | |||
| | +--rw ipv4-derived | | +--rw ipv4-derived | |||
| | | +--rw destination-prefix* inet:ipv4-prefix | | | +--rw destination-prefix* inet:ipv4-prefix | |||
| | +--rw ipv6 | | +--rw ipv6 | |||
| | | +--rw (selector-type)? | | | +--rw (selector-type)? | |||
| | | +--:(dedicated) | | | +--:(dedicated) | |||
| | | | +--rw ipv6-hbh-eh? uint32 | | | | +--rw ipv6-hbh-eh? uint32 | |||
| | | +--:(srv6-sid-derived) | | | +--:(srv6-derived) | |||
| | | | +--rw srv6-sid* inet:ipv6-prefix | | | | +--rw srv6-sid* srv6-types:srv6-sid | |||
| | | +--:(ipv6-destination-derived) | | | +--:(ipv6-destination-derived) | |||
| | | +--rw destination-prefix* inet:ipv6-prefix | | | +--rw destination-prefix* inet:ipv6-prefix | |||
| | +--rw mpls | | +--rw mpls | |||
| | +--rw acl-ref* nrp-acl-ref | | | +--rw (mpls-encapsulation)? | |||
| | | +--:(mna-in-stack) | ||||
| | | | +--rw in-stack-identifier? uint32 | ||||
| | | | +--rw identifier-format? enumeration | ||||
| | | +--:(post-stack) | ||||
| | | +--rw post-stack-identifier? uint32 | ||||
| | +--rw acl-ref* acl-ref | ||||
| Figure 4: NRP Selector ID YANG subtree structure | Figure 4: NRP Selector ID YANG subtree structure | |||
| 3.2.3. Per-Hop Behavior (PHB) | 3.2.3. Per-Hop Behavior (PHB) | |||
| PHB and NRP selector are combined mechanisms. PHB is used to specify | Per-Hop Behavior (PHB) defines the forwarding treatment for packets | |||
| the forwarding treatment of packets belonging to a specific NRP | belonging to an NRP, including bandwidth control, congestion control, | |||
| selector ID, such as bandwidth control, congestion control (e.g., | and scheduling priority (e.g., Section 3.4 [RFC3644]). The PHB | |||
| Section 3.4 [RFC3644]). The "phb-profile" can be overridden by the | profile and NRP selector are paired mechanisms: the selector | |||
| link specific "phb-profile" of "nrp-topology" in Section 3.2.4. | classifies packets, and the referenced PHB profile applies the | |||
| corresponding forwarding behavior. Profile contents are | ||||
| implementation-specific and may include standard IETF PHBs (e.g., | ||||
| "Assured Forwarding (AF)", "Expedited Forwarding (EF)") or customized | ||||
| local policies (e.g., "High", "Low", "Standard"). | ||||
| The "phb-profile" leaf refers to a standard profile defined. The | The phb-profile configured at the NRP policy level serves as the | |||
| exact definition of PHB is locally defined by the device or network | default for the entire NRP topology. This may be overridden by link- | |||
| controller managing the NRPs. Some examples of "phb-probile" may be | specific PHB configuration in the topology container Section 3.2.4. | |||
| standard PHBs, such as "Assured Forwarding (AF)", "Expedited | ||||
| Forwarding (EF)", or a customized local policies, such as "High", | ||||
| "Low", "Standard". | ||||
| +--rw phb-profile? leafref | +--rw phb-profile? leafref | |||
| Figure 5: PHB YANG subtree structure | Figure 5: PHB YANG subtree structure | |||
| 3.2.4. NRP Topology | 3.2.4. NRP Topology | |||
| "nrp-topology" defines a customized NRP topology used for an NRP. | "nrp-topology" defines a customized NRP topology used for an NRP. | |||
| When an NRP support IGP routing, the topology of the NRP must be | When an NRP supports IGP routing, the topology of the NRP must be | |||
| congruent with an IGP instance.The topology used for IGP route | congruent with an IGP instance. The topology used for IGP route | |||
| computation and forwarding can be derived using Multi-Topology | computation and forwarding can be derived using Multi-Topology | |||
| Routing (MTR) [RFC4915], [RFC5120], and [I-D.ietf-lsr-isis-sr-vtn-mt] | Routing (MTR) [RFC4915], [RFC5120], and [I-D.ietf-lsr-isis-sr-vtn-mt] | |||
| or Flex-algo [RFC9350]. | or Flex-algo [RFC9350]. | |||
| Figure 6 shows an example of NRP-1 enabling "igp-congruent", which | Figure 6 shows an example of NRP-1 enabling "igp-congruent", which | |||
| indicates that this NRP instance uses the same IGP topology with the | indicates that this NRP instance uses the same IGP topology with the | |||
| specified "multi-topology-id" or "algo-id". NRP-1 has different link | specified "multi-topology-id" or "algo-id". NRP-1 has different link | |||
| resource attributes from those of the IGP, but shares the same nodes | resource attributes from those of the IGP, but shares the same nodes | |||
| and termination points (TPs) of the IGP topology. | and termination points (TPs) of the IGP topology. | |||
| skipping to change at page 11, line 15 ¶ | skipping to change at page 12, line 15 ¶ | |||
| +--rw topology | +--rw topology | |||
| +--rw igp-congruent! | +--rw igp-congruent! | |||
| | +--rw multi-topology-id? uint32 | | +--rw multi-topology-id? uint32 | |||
| | +--rw algo-id? uint32 | | +--rw algo-id? uint32 | |||
| | +--rw sharing? boolean | | +--rw sharing? boolean | |||
| +--rw (topology-type)? | +--rw (topology-type)? | |||
| +--:(selection) | +--:(selection) | |||
| | +--rw select | | +--rw select | |||
| | +--rw topology-group* [group-id] | | +--rw topology-group* [group-id] | |||
| | +--rw group-id string | | +--rw group-id string | |||
| | +--rw base-topology-ref | | +--rw network-ref? | |||
| | | ... | | | -> /nw:networks/network/network-id | |||
| | +--rw links* [link-ref] | | +--rw link* [link-ref] | |||
| | | ... | | | ... | |||
| | +--rw resource-reservation | | +--rw resource-reservation | |||
| | | ... | | | ... | |||
| | +--rw link-partition-type? | | +--rw link-partition-type? identityref | |||
| | | identityref | ||||
| | +--rw phb-profile? leafref | | +--rw phb-profile? leafref | |||
| +--:(filter) | +--:(filter) | |||
| +--rw filters | +--rw filters | |||
| +--rw filter* [filter-ref] | +--rw filter* [filter-ref] | |||
| +--rw filter-ref | +--rw filter-ref | |||
| | nrp-topo-filter-ref | | topo-filter-ref | |||
| +--rw resource-reservation | +--rw resource-reservation | |||
| | ... | | ... | |||
| +--rw selector-id | +--rw selector-id | |||
| | ... | | ... | |||
| +--rw phb-profile? leafref | +--rw phb-profile? leafref | |||
| Figure 7: NRP Topology YANG subtree structure | Figure 7: NRP Topology YANG subtree structure | |||
| 3.3. NRPs Monitoring | 3.3. NRPs Monitoring | |||
| The NRP model can be used to monitor the operational status and | The NRP model can be used to monitor the operational status and | |||
| resource usage of NRPs. | resource usage of NRPs. | |||
| augment /nw:networks/nw:network/nw:network-types: | augment /nw:networks/nw:network/nw:network-types: | |||
| +--rw nrp! | +--rw nrp! | |||
| augment /nw:networks/nw:network/nw:node: | augment /nw:networks/nw:network/nw:node: | |||
| +--ro nrp-node-attributes | +--rw (nrp-attachment-type)? | |||
| +--ro selector-id | +--:(single-nrp) | |||
| +--ro srv6? srv6-types:srv6-sid | | +--ro nrp-node-attributes | |||
| augment /nw:networks/nw:network/nt:link: | | +--ro selector-id | |||
| +--ro nrp-link-attributes | | +--ro srv6? srv6-types:srv6-sid | |||
| +--ro link-partition-type? identityref | | +--ro mpls-nrp-selector? uint32 | |||
| +--ro bandwidth-value? uint64 | +--:(multi-nrp) | |||
| +--ro selector-id | +--ro node-nrp-list | |||
| | +--ro srv6? srv6-types:srv6-sid | +--ro nrp* [nrp-id] | |||
| +--ro statistics | +--ro nrp-id uint32 | |||
| +--ro status | +--ro nrp-node-attributes | |||
| | ... | +--ro selector-id | |||
| +--ro one-way-available-bandwidth? uint64 | +--ro srv6? srv6-types:srv6-sid | |||
| +--ro one-way-utilized-bandwidth? uint64 | +--ro mpls-nrp-selector? uint32 | |||
| +--ro one-way-min-delay? uint32 | ||||
| +--ro one-way-max-delay? uint32 | ||||
| +--ro one-way-delay-variation? uint32 | ||||
| +--ro one-way-packet-loss? decimal64 | ||||
| augment /nw:networks/nw:network/nw:node: | ||||
| +--rw nrps-node-attributes | ||||
| +--ro nrp* [nrp-id] | ||||
| +--ro nrp-id uint32 | ||||
| +--ro nrp-node-attributes | ||||
| ... | ||||
| augment /nw:networks/nw:network/nt:link: | augment /nw:networks/nw:network/nt:link: | |||
| +--ro nrps-link-attributes | +--rw (nrp-attachment-type)? | |||
| +--ro nrp* [nrp-id] | +--:(single-nrp) | |||
| +--ro nrp-id uint32 | | +--ro nrp-link-attributes | |||
| +--ro nrp-link-attributes | | +--ro link-partition-type? identityref | |||
| ... | | +--ro bandwidth-value? uint64 | |||
| | +--ro selector-id | ||||
| | | +--ro srv6? srv6-types:srv6-sid | ||||
| | | +--ro mpls-nrp-selector? uint32 | ||||
| | +--ro statistics | ||||
| | +--ro status | ||||
| | | +--ro admin-status | ||||
| | | | +--ro status? identityref | ||||
| | | | +--ro last-change? yang:date-and-time | ||||
| | | +--ro oper-status | ||||
| | | +--ro status? identityref | ||||
| | | +--ro last-change? yang:date-and-time | ||||
| | +--ro one-way-available-bandwidth? uint64 | ||||
| | +--ro one-way-utilized-bandwidth? uint64 | ||||
| | +--ro one-way-min-delay? uint32 | ||||
| | +--ro one-way-max-delay? uint32 | ||||
| | +--ro one-way-delay-variation? uint32 | ||||
| | +--ro one-way-packet-loss? decimal64 | ||||
| +--:(multi-nrp) | ||||
| +--ro link-nrp-list | ||||
| +--ro nrp* [nrp-id] | ||||
| +--ro nrp-id uint32 | ||||
| +--ro nrp-link-attributes | ||||
| +--ro link-partition-type? identityref | ||||
| +--ro bandwidth-value? uint64 | ||||
| +--ro selector-id | ||||
| | +--ro srv6? srv6-types:srv6-sid | ||||
| | +--ro mpls-nrp-selector? uint32 | ||||
| +--ro statistics | ||||
| +--ro status | ||||
| | +--ro admin-status | ||||
| | | +--ro status? identityref | ||||
| | | +--ro last-change? yang:date-and-time | ||||
| | +--ro oper-status | ||||
| | +--ro status? identityref | ||||
| | +--ro last-change? yang:date-and-time | ||||
| +--ro one-way-available-bandwidth? uint64 | ||||
| +--ro one-way-utilized-bandwidth? uint64 | ||||
| +--ro one-way-min-delay? uint32 | ||||
| +--ro one-way-max-delay? uint32 | ||||
| +--ro one-way-delay-variation? uint32 | ||||
| +--ro one-way-packet-loss? decimal64 | ||||
| Figure 8: NRPs Monitoring YANG subtree structure | Figure 8: NRPs Monitoring YANG subtree structure | |||
| 3.4. NRPs Device Model Description | 3.4. NRPs Device Model Description | |||
| The device-specific NRPs model is defined in module "ietf-nrp-device" | The device-specific NRPs model is defined in module "ietf-nrp-device" | |||
| as shown in Section 5. | as shown in Section 5. | |||
| The NRP device YANG data model is only applicable to device | The NRP device YANG data model is only applicable to device | |||
| configuration and includes attributes such as QoS policies, resource | configuration and includes attributes such as QoS policies, resource | |||
| skipping to change at page 13, line 25 ¶ | skipping to change at page 15, line 22 ¶ | |||
| +--rw nrp-id? uint32 | +--rw nrp-id? uint32 | |||
| +--rw resource-reservation | +--rw resource-reservation | |||
| | +--rw (max-bw-type)? | | +--rw (max-bw-type)? | |||
| | ... | | ... | |||
| +--rw selector-id | +--rw selector-id | |||
| | +--rw ipv4-derived | | +--rw ipv4-derived | |||
| | | ... | | | ... | |||
| | +--rw ipv6 | | +--rw ipv6 | |||
| | | ... | | | ... | |||
| | +--rw mpls | | +--rw mpls | |||
| | +--rw acl-ref* nrp-acl-ref | | | ... | |||
| | +--rw acl-ref* acl-ref | ||||
| +--rw phb-profile? leafref | +--rw phb-profile? leafref | |||
| +--rw igp-congruent! | +--rw igp-congruent! | |||
| | +--rw multi-topology-id? uint32 | | +--rw multi-topology-id? uint32 | |||
| | +--rw algo-id? uint32 | | +--rw algo-id? uint32 | |||
| | +--rw sharing? boolean | | +--rw sharing? boolean | |||
| +--rw interfaces | +--rw interfaces | |||
| +--rw interface* [interface] | +--rw interface* [interface] | |||
| ... | ... | |||
| Figure 9: NRPs Device YANG subtree high-level structure | Figure 9: NRPs Device YANG subtree high-level structure | |||
| 4. NRPs YANG Module | 4. NRPs YANG Module | |||
| The "ietf-nrp" module uses types defined in [RFC8345], | The "ietf-nrp" module uses types defined in [RFC8345], | |||
| [RFC8294],[RFC8776], [RFC6991], [RFC8519], | [RFC8294],[RFC8776], [RFC9911], [RFC8519], | |||
| [I-D.ietf-spring-srv6-yang], and | [I-D.ietf-spring-srv6-yang], and | |||
| [I-D.ietf-teas-yang-topology-filter]. | [I-D.ietf-teas-yang-topology-filter]. | |||
| <CODE BEGINS> file "ietf-nrp@2025-03-02.yang" | <CODE BEGINS> file "ietf-nrp@2026-01-22.yang" | |||
| module ietf-nrp { | module ietf-nrp { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-nrp"; | namespace "urn:ietf:params:xml:ns:yang:ietf-nrp"; | |||
| prefix nrp; | prefix nrp; | |||
| import ietf-network { | import ietf-network { | |||
| prefix nw; | prefix nw; | |||
| reference | reference | |||
| "RFC 8345: A YANG Data Model for Network Topologies, | "RFC 8345: A YANG Data Model for Network Topologies, | |||
| Section 6.1"; | Section 6.1"; | |||
| skipping to change at page 14, line 32 ¶ | skipping to change at page 16, line 31 ¶ | |||
| VPNs"; | VPNs"; | |||
| } | } | |||
| import ietf-te-packet-types { | import ietf-te-packet-types { | |||
| prefix te-packet-types; | prefix te-packet-types; | |||
| reference | reference | |||
| "RFC 8776: Traffic Engineering Common YANG Types"; | "RFC 8776: Traffic Engineering Common YANG Types"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| reference | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 9911: Common YANG Data Types"; | |||
| } | } | |||
| import ietf-access-control-list { | import ietf-access-control-list { | |||
| prefix acl; | prefix acl; | |||
| reference | reference | |||
| "RFC 8519: YANG Data Model for Network Access Control Lists | "RFC 8519: YANG Data Model for Network Access Control Lists | |||
| (ACLs)"; | (ACLs)"; | |||
| } | } | |||
| import ietf-srv6-types { | import ietf-srv6-types { | |||
| prefix srv6-types; | prefix srv6-types; | |||
| reference | reference | |||
| "draft-ietf-spring-srv6-yang: YANG Data Model for SRv6 Base | "draft-ietf-spring-srv6-yang: YANG Data Model for SRv6 Base | |||
| and Static"; | and Static"; | |||
| } | } | |||
| import ietf-topology-filter { | import ietf-topology-filter { | |||
| prefix topo-filt; | prefix topo-filt; | |||
| reference | reference | |||
| "draft-bestbar-teas-yang-topology-filter: YANG Data Model | "draft-ietf-teas-yang-topology-filter: YANG Data Model | |||
| for Topology Filter"; | for Topology Filter"; | |||
| } | } | |||
| organization | organization | |||
| "IETF Traffic Engineering Architecture and Signaling (TEAS) | "IETF Traffic Engineering Architecture and Signaling (TEAS) | |||
| Working Group"; | Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/teas/> | "WG Web: <https://datatracker.ietf.org/wg/teas/> | |||
| WG List: <mailto:teas@ietf.org> | WG List: <mailto:teas@ietf.org> | |||
| Editor: Bo Wu | Editor: Bo Wu | |||
| <mailto:lana.wubo@huawei.com> | <mailto:lana.wubo@huawei.com> | |||
| Editor: Dhruv Dhody | Editor: Dhruv Dhody | |||
| skipping to change at page 15, line 28 ¶ | skipping to change at page 17, line 27 ¶ | |||
| Editor: Tarek Saad | Editor: Tarek Saad | |||
| <mailto:tsaad.net@gmail.com> | <mailto:tsaad.net@gmail.com> | |||
| Editor: Shaofu Peng | Editor: Shaofu Peng | |||
| <mailto:peng.shaofu@zte.com.cn>"; | <mailto:peng.shaofu@zte.com.cn>"; | |||
| description | description | |||
| "This YANG module defines a data model for | "This YANG module defines a data model for | |||
| Network Resource Partitions (NRPs) management. | Network Resource Partitions (NRPs) management. | |||
| Copyright (c) 2025 IETF Trust and the persons identified as | Copyright (c) 2026 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 | This version of this YANG module is part of RFC XXXX | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | |||
| for full legal notices."; | for full legal notices."; | |||
| revision 2025-03-02 { | revision 2026-01-22 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: YANG Data Models for Network Resource | "RFC XXXX: YANG Data Models for Network Resource | |||
| Partitions (NRPs)"; | Partitions (NRPs)"; | |||
| } | } | |||
| /* | /* | |||
| * I D E N T I T I E S | * I D E N T I T I E S | |||
| */ | */ | |||
| skipping to change at page 16, line 34 ¶ | skipping to change at page 18, line 33 ¶ | |||
| base nrp-partition-mode; | base nrp-partition-mode; | |||
| description | description | |||
| "Both control and data planes partitions of NRP."; | "Both control and data planes partitions of NRP."; | |||
| } | } | |||
| identity nrp-link-partition-type { | identity nrp-link-partition-type { | |||
| description | description | |||
| "Base identity for NRP interface partition type."; | "Base identity for NRP interface partition type."; | |||
| } | } | |||
| identity virtual-sub-interface-partition { | identity virtual-interface { | |||
| base nrp-link-partition-type; | base nrp-link-partition-type; | |||
| description | description | |||
| "Identity for NRP virtual interface or sub-interface partition, | "Identity for NRP virtual interface or sub-interface partition, | |||
| e.g., FlexE."; | e.g., FlexE."; | |||
| } | } | |||
| identity queue-partition { | identity queue-partition { | |||
| base nrp-link-partition-type; | base nrp-link-partition-type; | |||
| description | description | |||
| "Identity for NRP queue partition type."; | "Identity for NRP queue partition type."; | |||
| skipping to change at page 17, line 6 ¶ | skipping to change at page 19, line 4 ¶ | |||
| "Identity for NRP queue partition type."; | "Identity for NRP queue partition type."; | |||
| } | } | |||
| /* | /* | |||
| * T Y P E D E F S | * T Y P E D E F S | |||
| */ | */ | |||
| typedef acl-ref { | typedef acl-ref { | |||
| type leafref { | type leafref { | |||
| path "/acl:acls/acl:acl/acl:name"; | path "/acl:acls/acl:acl/acl:name"; | |||
| } | } | |||
| description | description | |||
| "Used to reference an ACL."; | "Used to reference an ACL."; | |||
| } | } | |||
| typedef topo-filter-ref { | typedef topo-filter-ref { | |||
| type leafref { | type leafref { | |||
| path "/nw:networks/topo-filt:topology-filters/" | path "/nw:networks/topo-filt:topology-filters/" | |||
| + "topo-filt:topology-filter/topo-filt:name"; | + "topo-filt:topology-filter/topo-filt:name"; | |||
| } | } | |||
| description | description | |||
| "This type is used to reference a Topology Filter."; | "This type is used to reference a Topology Filter."; | |||
| reference | reference | |||
| "draft-bestbar-teas-yang-topology-filter: YANG Data Model | "draft-ietf-teas-yang-topology-filter: YANG Data Model | |||
| for Topology Filter"; | for Topology Filter"; | |||
| } | } | |||
| /* | /* | |||
| * Grouping - NRP Resource Reservation | * Grouping - NRP Resource Reservation | |||
| */ | */ | |||
| grouping resource-reservation { | grouping resource-reservation { | |||
| description | description | |||
| "Grouping for NRP resource reservation."; | "Grouping for NRP resource reservation."; | |||
| skipping to change at page 18, line 50 ¶ | skipping to change at page 20, line 48 ¶ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The selector ID carried in Hop-by-Hop option of | "The selector ID carried in Hop-by-Hop option of | |||
| IPv6 extension header."; | IPv6 extension header."; | |||
| reference | reference | |||
| "draft-ietf-6man-enhanced-vpn-vtn-id: Carrying | "draft-ietf-6man-enhanced-vpn-vtn-id: Carrying | |||
| Network Resource (NRP) related Information in IPv6 | Network Resource (NRP) related Information in IPv6 | |||
| Extension Header"; | Extension Header"; | |||
| } | } | |||
| } | } | |||
| case srv6-sid-derived { | case srv6-derived { | |||
| leaf-list srv6-sid { | leaf-list srv6-sid { | |||
| type srv6-types:srv6-sid; | type srv6-types:srv6-sid; | |||
| description | description | |||
| "Any SID from the specified set of SRv6 SID can | "Any SID from the specified set of SRv6 SID can | |||
| be the NRP selector ID."; | be the NRP selector ID."; | |||
| reference | reference | |||
| "draft-ietf-spring-sr-for-enhanced-vpn: Segment | "draft-ietf-spring-sr-for-enhanced-vpn: Segment | |||
| Routing based Network Resource Partition (NRP) for | Routing based Network Resource Partition (NRP) for | |||
| Enhanced VPN"; | Enhanced VPN"; | |||
| } | } | |||
| skipping to change at page 19, line 25 ¶ | skipping to change at page 21, line 23 ¶ | |||
| type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
| description | description | |||
| "Any prefix from the specified set of IPv6 | "Any prefix from the specified set of IPv6 | |||
| destination prefixes can be the NRP selector ID."; | destination prefixes can be the NRP selector ID."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container mpls { | container mpls { | |||
| description | description | |||
| "Container for MPLS NRP selector ID. This is a placeholder | "Container for MPLS NRP selector ID. Supports both | |||
| for future updates based on the MPLS solutions."; | In-Stack (MNA) and Post-Stack (PSD) encoding mechanisms."; | |||
| choice mpls-encapsulation { | ||||
| description | ||||
| "Selects the MPLS NRP Selector encoding mechanism."; | ||||
| case mna-in-stack { | ||||
| description | ||||
| "In-Stack NRP Selector action. | ||||
| Refers to draft-ietf-mpls-mna-nrp-selector."; | ||||
| leaf in-stack-identifier { | ||||
| type uint32; | ||||
| must | ||||
| "(../identifier-format='nrps13' and . <= 8191) or | ||||
| (../identifier-format='nrps20' and . <= 1048575) or | ||||
| (../identifier-format='enrps20' and . <= 1048575)" { | ||||
| error-message | ||||
| "NRP Selector value exceeds format range"; | ||||
| } | ||||
| description | ||||
| "The NRP Selector value. The valid range depends on the | ||||
| encoding format (13-bit or 20-bit) selected."; | ||||
| } | ||||
| leaf identifier-format { | ||||
| type enumeration { | ||||
| enum nrps13 { | ||||
| description | ||||
| "13-bit NRP Selector (NRPS13). | ||||
| Value range: 0-8191."; | ||||
| } | ||||
| enum nrps20 { | ||||
| description | ||||
| "20-bit NRP Selector (NRPS20). | ||||
| Value range: 0-1048575."; | ||||
| } | ||||
| enum enrps20 { | ||||
| description | ||||
| "20-bit Extended NRP Selector (ENRPS20) compatible | ||||
| with Entropy Label. Value range: 0-1048575."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Specifies the encoding format for the In-Stack | ||||
| NRP Selector."; | ||||
| } | ||||
| } | ||||
| case post-stack { | ||||
| description | ||||
| "Post-Stack NRP Selector (PS-NRP). | ||||
| Refers to draft-ietf-mpls-mna-psd-nrp-selector."; | ||||
| leaf post-stack-identifier { | ||||
| type uint32 { | ||||
| range "0..4294967295"; // 2^32 - 1 | ||||
| } | ||||
| description | ||||
| "The 32-bit Post-Stack NRP Selector."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | } | |||
| leaf-list acl-ref { | leaf-list acl-ref { | |||
| type acl-ref; | type acl-ref; | |||
| description | description | |||
| "NRP selection is done based on the specified list of | "NRP selection is done based on the specified list of | |||
| ACLs."; | ACLs."; | |||
| reference | reference | |||
| "RFC 8519: YANG Data Model for Network Access Control Lists | "RFC 8519: YANG Data Model for Network Access Control Lists | |||
| (ACLs)"; | (ACLs)"; | |||
| } | } | |||
| skipping to change at page 20, line 26 ¶ | skipping to change at page 23, line 32 ¶ | |||
| /* | /* | |||
| * Grouping - NRP QoS Per-Hop Behavior (PHB) profile | * Grouping - NRP QoS Per-Hop Behavior (PHB) profile | |||
| */ | */ | |||
| grouping qos-phb-profile { | grouping qos-phb-profile { | |||
| description | description | |||
| "Grouping for NRP QoS Per-Hop Behavior (PHB) profile."; | "Grouping for NRP QoS Per-Hop Behavior (PHB) profile."; | |||
| leaf phb-profile { | leaf phb-profile { | |||
| type leafref { | type leafref { | |||
| path "/nw:networks/nrp-policies/" | path "/nw:networks/nrp:nrp-policies/" | |||
| + "qos-profiles/phb-profile-identifier/id"; | + "nrp:qos-profiles/nrp:phb-profile-identifier/nrp:id"; | |||
| } | } | |||
| description | description | |||
| "PHB profile identifier, specifying the forwarding treatment | "PHB profile identifier, specifying the forwarding treatment | |||
| of packets belonging to a specific NRP selector ID, such as | of packets belonging to a specific NRP selector ID, such as | |||
| bandwidth control, congestion control | bandwidth control, congestion control | |||
| (e.g., Section 3.4 of [RFC3644]). | (e.g., Section 3.4 of [RFC3644]). | |||
| The PHB may be standard PHB, such as Assured Forwarding (AF), | The PHB may be standard PHB, such as Assured Forwarding (AF), | |||
| Expedited Forwarding (EF), or a customized local policy, | Expedited Forwarding (EF), or a customized local policy, | |||
| such as 'High', 'Low', 'Standard'."; | such as 'High', 'Low', 'Standard'."; | |||
| } | } | |||
| skipping to change at page 22, line 35 ¶ | skipping to change at page 25, line 42 ¶ | |||
| list topology-group { | list topology-group { | |||
| key "group-id"; | key "group-id"; | |||
| description | description | |||
| "List of groups for NRP topology elements (node or links) | "List of groups for NRP topology elements (node or links) | |||
| that share common attributes."; | that share common attributes."; | |||
| leaf group-id { | leaf group-id { | |||
| type string; | type string; | |||
| description | description | |||
| "The NRP topology group identifier."; | "The NRP topology group identifier."; | |||
| } | } | |||
| container base-topology-ref { | /*The base topology reference. All links in | |||
| description | the list below must belong to this specific | |||
| "Container for the base topology reference."; | network.*/ | |||
| uses nw:network-ref; | uses nw:network-ref; | |||
| } | ||||
| list link { | list link { | |||
| key "link-ref"; | key "link-ref"; | |||
| description | description | |||
| "A list of links with common attributes"; | "A list of links with common attributes that are | |||
| part of the referenced network"; | ||||
| leaf link-ref { | leaf link-ref { | |||
| type leafref { | type leafref { | |||
| path | path "/nw:networks/nw:network" | |||
| "/nw:networks/nw:network[nw:network-id=current()" | + "[nw:network-id=current()/../../nrp:network-ref]" | |||
| + "/../../base-topology-ref/network-ref]" | + "/nt:link/nt:link-id"; | |||
| + "/nt:link/nt:link-id"; | ||||
| } | } | |||
| description | description | |||
| "A reference to a link in the base topology."; | "A reference to a link in the base topology specified | |||
| by the 'network-ref' sibling node."; | ||||
| } | } | |||
| } | } | |||
| uses resource-reservation; | uses resource-reservation; | |||
| leaf link-partition-type { | leaf link-partition-type { | |||
| type identityref { | type identityref { | |||
| base nrp-link-partition-type; | base nrp-link-partition-type; | |||
| } | } | |||
| description | description | |||
| "Indicates the resource reservation type of an NRP link."; | "Indicates the resource reservation type of an NRP link."; | |||
| } | } | |||
| skipping to change at page 24, line 44 ¶ | skipping to change at page 27, line 51 ¶ | |||
| grouping selector-id-state { | grouping selector-id-state { | |||
| description | description | |||
| "The grouping of NRP selector ID state."; | "The grouping of NRP selector ID state."; | |||
| container selector-id { | container selector-id { | |||
| config false; | config false; | |||
| description | description | |||
| "The container of NRP selector ID."; | "The container of NRP selector ID."; | |||
| leaf srv6 { | leaf srv6 { | |||
| type srv6-types:srv6-sid; | type srv6-types:srv6-sid; | |||
| description | description | |||
| "Indicates the SRv6 SID value as the NRP selector ID."; | "SRv6 SID value."; | |||
| } | ||||
| leaf mpls-nrp-selector { | ||||
| type uint32; | ||||
| description | ||||
| "MPLS NRP selector value."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| // nrp-link-statistics | // nrp-link-statistics | |||
| grouping statistics-per-link { | grouping statistics-per-link { | |||
| description | description | |||
| "Statistics attributes per NRP link."; | "Statistics attributes per NRP link."; | |||
| container statistics { | container statistics { | |||
| skipping to change at page 25, line 20 ¶ | skipping to change at page 28, line 31 ¶ | |||
| uses vpn-common:service-status; | uses vpn-common:service-status; | |||
| uses nrp-bandwidth-metrics; | uses nrp-bandwidth-metrics; | |||
| uses te-packet-types:one-way-performance-metrics-packet; | uses te-packet-types:one-way-performance-metrics-packet; | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * Grouping - NRP node attributes | * Grouping - NRP node attributes | |||
| */ | */ | |||
| grouping nrp-node-attributes { | grouping node-nrp-attributes { | |||
| description | description | |||
| "NRP node scope attributes."; | "NRP node scope attributes."; | |||
| container nrp-node-attributes { | container nrp-node-attributes { | |||
| config false; | config false; | |||
| description | description | |||
| "Containing NRP attributes."; | "Containing NRP attributes."; | |||
| uses selector-id-state; | uses selector-id-state; | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * Grouping - NRP Link Attributes | * Grouping - NRP Link Attributes | |||
| */ | */ | |||
| grouping nrp-link-attributes { | grouping link-nrp-attributes { | |||
| description | description | |||
| "NRP link scope attributes."; | "NRP link scope attributes."; | |||
| container nrp-link-attributes { | container nrp-link-attributes { | |||
| config false; | config false; | |||
| description | description | |||
| "Contains NRP link attributes."; | "Contains NRP link attributes."; | |||
| leaf link-partition-type { | leaf link-partition-type { | |||
| type identityref { | type identityref { | |||
| base nrp-link-partition-type; | base nrp-link-partition-type; | |||
| } | } | |||
| skipping to change at page 26, line 39 ¶ | skipping to change at page 29, line 50 ¶ | |||
| description | description | |||
| "Bandwidth utilization that represents the actual | "Bandwidth utilization that represents the actual | |||
| utilization of the link (i.e., as measured in the router)."; | utilization of the link (i.e., as measured in the router)."; | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * Grouping - NRPs Node Attributes | * Grouping - NRPs Node Attributes | |||
| */ | */ | |||
| grouping nrps-node-attributes { | grouping node-nrp-list-attributes { | |||
| description | description | |||
| "Grouping for NRPs nodes attributes."; | "Grouping for NRPs nodes attributes."; | |||
| container nrps-node-attributes { | container node-nrp-list { | |||
| config false; | ||||
| description | description | |||
| "Containing NRPs attributes."; | "Containing NRPs attributes."; | |||
| list nrp { | list nrp { | |||
| key "nrp-id"; | key "nrp-id"; | |||
| config false; | ||||
| description | description | |||
| "List of NRPs."; | "List of NRPs."; | |||
| leaf nrp-id { | leaf nrp-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "NRP identifier"; | "NRP identifier"; | |||
| } | } | |||
| uses nrp-node-attributes; | uses node-nrp-attributes; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * Grouping - NRPs Link Attributes | * Grouping - NRPs Link Attributes | |||
| */ | */ | |||
| grouping nrps-link-attributes { | grouping link-nrp-list-attributes { | |||
| description | description | |||
| "Grouping for NRPs link attributes."; | "Grouping for NRPs link attributes."; | |||
| container nrps-link-attributes { | container link-nrp-list { | |||
| config false; | config false; | |||
| description | description | |||
| "Contains NRPs link attributes."; | "Contains NRPs link attributes."; | |||
| list nrp { | list nrp { | |||
| key "nrp-id"; | key "nrp-id"; | |||
| config false; | ||||
| description | description | |||
| "List of NRPs."; | "List of NRPs."; | |||
| leaf nrp-id { | leaf nrp-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "NRP identifier"; | "NRP identifier"; | |||
| } | } | |||
| uses nrp-link-attributes; | uses link-nrp-attributes; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| // nrp-network-type | // nrp-network-type | |||
| grouping nrp-network-type { | grouping nrp-network-type { | |||
| description | description | |||
| "Identifies the network type to be NRP."; | "Identifies the network type to be NRP."; | |||
| container nrp { | container nrp { | |||
| skipping to change at page 28, line 28 ¶ | skipping to change at page 31, line 37 ¶ | |||
| description | description | |||
| "Indicates the network type of NRP"; | "Indicates the network type of NRP"; | |||
| uses nrp-network-type; | uses nrp-network-type; | |||
| } | } | |||
| /* | /* | |||
| * Augment - NRP node operational status. | * Augment - NRP node operational status. | |||
| */ | */ | |||
| augment "/nw:networks/nw:network/nw:node" { | augment "/nw:networks/nw:network/nw:node" { | |||
| when '../nw:network-types/nrp:nrp' { | ||||
| description | ||||
| "Augments only for NRP network topology."; | ||||
| } | ||||
| description | description | |||
| "Augments node with NRP state attributes."; | "Augments node with NRP state attributes."; | |||
| uses nrp-node-attributes; | choice nrp-attachment-type { | |||
| } | ||||
| /* | ||||
| * Augment - NRP link operational status. | ||||
| */ | ||||
| augment "/nw:networks/nw:network/nt:link" { | ||||
| when '../nw:network-types/nrp:nrp' { | ||||
| description | description | |||
| "Augments only for NRP network topology."; | "Determines how NRP information is attached to node: | |||
| single-nrp for NRP-specific topology, multi-nrp for | ||||
| native topology with multiple NRPs."; | ||||
| case single-nrp { | ||||
| when '../nw:network-types/nrp:nrp' { | ||||
| description | ||||
| "Condition: only applies to NRP network topologies."; | ||||
| } | ||||
| uses node-nrp-attributes; | ||||
| } | ||||
| case multi-nrp { | ||||
| description | ||||
| "Native topology with NRPs node operational status."; | ||||
| uses node-nrp-list-attributes; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "Augments link with NRP state attributes."; | ||||
| uses nrp-link-attributes; | ||||
| } | } | |||
| /* | /* | |||
| * Augment - Native topology with NRPs node operational status. | * Augment - NRP link operational status. | |||
| */ | ||||
| augment "/nw:networks/nw:network/nw:node" { | ||||
| description | ||||
| "Augments node with NRP list state attributes."; | ||||
| uses nrps-node-attributes; | ||||
| } | ||||
| /* | ||||
| * Augment - Native topology with NRPs link operational status. | ||||
| */ | */ | |||
| augment "/nw:networks/nw:network/nt:link" { | augment "/nw:networks/nw:network/nt:link" { | |||
| description | description | |||
| "Augments link with NRP list state attributes."; | "Augments link with NRP state attributes."; | |||
| uses nrps-link-attributes; | choice nrp-attachment-type { | |||
| description | ||||
| "Determines how NRP information is attached to link: | ||||
| single-nrp for NRP-specific topology, multi-nrp for | ||||
| native topology with multiple NRPs."; | ||||
| case single-nrp { | ||||
| when '../nw:network-types/nrp:nrp' { | ||||
| description | ||||
| "Condition: only applies to NRP network topology."; | ||||
| } | ||||
| uses link-nrp-attributes; | ||||
| } | ||||
| case multi-nrp { | ||||
| /*Native topology with NRPs link operational status.*/ | ||||
| description | ||||
| "Native topology with NRPs link operational status."; | ||||
| uses link-nrp-list-attributes; | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. NRPs Device YANG Module | 5. NRPs Device YANG Module | |||
| The NRP YANG module for devices ("ietf-nrp-device") reuses the qos | The NRP YANG module for devices ("ietf-nrp-device") reuses the qos | |||
| policy, "resource-reservation", "selector-id" grouping defined in | policy, "resource-reservation", "selector-id" grouping defined in | |||
| Section 4,and adds interface-specific NRP attributes. | Section 4,and adds interface-specific NRP attributes. | |||
| skipping to change at page 34, line 7 ¶ | skipping to change at page 37, line 30 ¶ | |||
| Per-NRP view: Operational state scoped to a single "nrp-id", | Per-NRP view: Operational state scoped to a single "nrp-id", | |||
| letting the controller present the logical network dedicated to | letting the controller present the logical network dedicated to | |||
| that NRP. | that NRP. | |||
| Network-wide view: An extension of the RFC 8345 topology model | Network-wide view: An extension of the RFC 8345 topology model | |||
| that exposes the mapping between the underlay network and all | that exposes the mapping between the underlay network and all | |||
| associated NRPs, including per-node and per-link NRP status. | associated NRPs, including per-node and per-link NRP status. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| The YANG models defined in this document is designed to be accessed | The YANG models defined in this document are designed to be accessed | |||
| via network management protocols such as NETCONF [RFC6241] or | via network management protocols such as NETCONF [RFC6241] or | |||
| RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | |||
| layer, and the mandatory-to-implement secure transport is Secure | layer, and the mandatory-to-implement secure transport is Secure | |||
| Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | |||
| mandatory-to-implement secure transport is TLS [RFC8446]. | mandatory-to-implement secure transport is TLS [RFC8446]. | |||
| The NETCONF access control model [RFC8341] provides the means to | The NETCONF access control model [RFC8341] provides the means to | |||
| restrict access for particular NETCONF or RESTCONF users to a | restrict access for particular NETCONF or RESTCONF users to a | |||
| preconfigured subset of all available NETCONF or RESTCONF protocol | preconfigured subset of all available NETCONF or RESTCONF protocol | |||
| operations and content. | operations and content. | |||
| There are a number of data nodes defined in this YANG model that are | There are a number of data nodes defined in this YANG model that are | |||
| writable/creatable/deletable (i.e., config true, which is the | writable/creatable/deletable (i.e., config true, which is the | |||
| default). These data nodes may be considered sensitive or vulnerable | default). These data nodes may be considered sensitive or vulnerable | |||
| in some network environments. Write operations (e.g., edit-config) | in some network environments. Write operations (e.g., edit-config) | |||
| to these data nodes without proper protection can have a negative | to these data nodes without proper protection can have a negative | |||
| effect on network operations. | effect on network operations. | |||
| nrp-link: A malicious client could attempt to remove a link from a | nrp-policies: Unauthorized creation or modification of NRP policies | |||
| topology, add a new link. In each case, the structure of the | can allocate excessive network resources (bandwidth, buffers, | |||
| topology would be sabotaged, and this scenario could, for example, | forwarding entries), causing denial of service to other services. | |||
| result in an NRP topology that is less than optimal. | Implementations MUST enforce resource limits and validate quota | |||
| constraints before applying NRP configurations. NETCONF access | ||||
| control SHOULD restrict NRP policy creation to authorized network- | ||||
| admin roles only. | ||||
| selector-id and phb-profile: Misconfiguration of NRP selector IDs or | ||||
| PHB profiles may cause traffic to be forwarded on the wrong NRP, | ||||
| violating isolation guarantees and SLOs. Implementations MUST | ||||
| validate selector ID uniqueness within the network scope and prevent | ||||
| overlapping PHB configurations that could create ambiguous forwarding | ||||
| rules. | ||||
| topology: Modification of NRP topology (links, nodes, filters) could | ||||
| reroute traffic through unintended paths, bypassing security policies | ||||
| or causing congestion. Operators MUST apply access controls to | ||||
| topology modifications and audit all changes. The model's | ||||
| operational state SHOULD be monitored to detect unauthorized topology | ||||
| alterations. | ||||
| The entries in the nodes above include the whole network | The entries in the nodes above include the whole network | |||
| configurations corresponding with the NRP, and indirectly create or | configurations corresponding with the NRP, and indirectly create or | |||
| modify the PE or P device configurations. Unexpected changes to | modify the PE or P device configurations. Unexpected changes to | |||
| these entries could lead to service disruption and/or network | these entries could lead to service disruption and/or network | |||
| misbehavior. | misbehavior. | |||
| Sensitive Data Exposure: Operational state data (e.g., utilized | ||||
| bandwidth, delay statistics) may reveal sensitive information about | ||||
| network load and customer traffic patterns. Access to operational | ||||
| state SHOULD be restricted using NACM rules, limiting visibility to | ||||
| authorized monitoring systems. | ||||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document registers a URI in the IETF XML registry [RFC3688]. | This document registers a URI in the IETF XML registry [RFC3688]. | |||
| Following the format in [RFC3688], the following registration is | Following the format in [RFC3688], the following registration is | |||
| requested to be made: | requested to be made: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-nrp | URI: urn:ietf:params:xml:ns:yang:ietf-nrp | |||
| 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. | |||
| skipping to change at page 36, line 39 ¶ | skipping to change at page 40, line 39 ¶ | |||
| Email: chengying10@chinaunicom.cn | Email: chengying10@chinaunicom.cn | |||
| Liyan Gong | Liyan Gong | |||
| China Mobile | China Mobile | |||
| Email: gongliyan@chinamobile.com | Email: gongliyan@chinamobile.com | |||
| 11. References | 11. References | |||
| 11.1. Normative References | 11.1. Normative References | |||
| [I-D.ietf-teas-nrp-scalability] | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Dong, J., Li, Z., Gong, L., Yang, G., and G. S. Mishra, | Requirement Levels", BCP 14, RFC 2119, | |||
| "Scalability Considerations for Network Resource | DOI 10.17487/RFC2119, March 1997, | |||
| Partition", Work in Progress, Internet-Draft, draft-ietf- | <https://www.rfc-editor.org/info/rfc2119>. | |||
| teas-nrp-scalability-07, 2 March 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
| nrp-scalability-07>. | ||||
| [I-D.ietf-teas-ns-ip-mpls] | ||||
| Saad, T., Beeram, V. P., Dong, J., Halpern, J. M., and S. | ||||
| Peng, "Realizing Network Slices in IP/MPLS Networks", Work | ||||
| in Progress, Internet-Draft, draft-ietf-teas-ns-ip-mpls- | ||||
| 05, 2 March 2025, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-ietf-teas-ns-ip-mpls-05>. | ||||
| [I-D.ietf-teas-yang-topology-filter] | ||||
| Beeram, V. P., Saad, T., Gandhi, R., and X. Liu, "YANG | ||||
| Data Model for Topology Filter", Work in Progress, | ||||
| Internet-Draft, draft-ietf-teas-yang-topology-filter-01, 6 | ||||
| July 2025, <https://datatracker.ietf.org/doc/html/draft- | ||||
| ietf-teas-yang-topology-filter-01>. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. | [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. | |||
| Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", | Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", | |||
| RFC 4915, DOI 10.17487/RFC4915, June 2007, | RFC 4915, DOI 10.17487/RFC4915, June 2007, | |||
| <https://www.rfc-editor.org/info/rfc4915>. | <https://www.rfc-editor.org/info/rfc4915>. | |||
| skipping to change at page 37, line 36 ¶ | skipping to change at page 41, line 20 ¶ | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | ||||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | ||||
| <https://www.rfc-editor.org/info/rfc6991>. | ||||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
| RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7951>. | <https://www.rfc-editor.org/info/rfc7951>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | |||
| "Common YANG Data Types for the Routing Area", RFC 8294, | "Common YANG Data Types for the Routing Area", RFC 8294, | |||
| DOI 10.17487/RFC8294, December 2017, | DOI 10.17487/RFC8294, December 2017, | |||
| <https://www.rfc-editor.org/info/rfc8294>. | <https://www.rfc-editor.org/info/rfc8294>. | |||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| skipping to change at page 39, line 5 ¶ | skipping to change at page 42, line 39 ¶ | |||
| "Common YANG Data Types for Traffic Engineering", | "Common YANG Data Types for Traffic Engineering", | |||
| RFC 8776, DOI 10.17487/RFC8776, June 2020, | RFC 8776, DOI 10.17487/RFC8776, June 2020, | |||
| <https://www.rfc-editor.org/info/rfc8776>. | <https://www.rfc-editor.org/info/rfc8776>. | |||
| [RFC9543] Farrel, A., Ed., Drake, J., Ed., Rokui, R., Homma, S., | [RFC9543] Farrel, A., Ed., Drake, J., Ed., Rokui, R., Homma, S., | |||
| Makhijani, K., Contreras, L., and J. Tantsura, "A | Makhijani, K., Contreras, L., and J. Tantsura, "A | |||
| Framework for Network Slices in Networks Built from IETF | Framework for Network Slices in Networks Built from IETF | |||
| Technologies", RFC 9543, DOI 10.17487/RFC9543, March 2024, | Technologies", RFC 9543, DOI 10.17487/RFC9543, March 2024, | |||
| <https://www.rfc-editor.org/info/rfc9543>. | <https://www.rfc-editor.org/info/rfc9543>. | |||
| [RFC9911] Schönwälder, J., Ed., "Common YANG Data Types", RFC 9911, | ||||
| DOI 10.17487/RFC9911, December 2025, | ||||
| <https://www.rfc-editor.org/info/rfc9911>. | ||||
| 11.2. Informative References | 11.2. Informative References | |||
| [I-D.bestbar-teas-yang-nrp-policy] | [I-D.bestbar-teas-yang-nrp-policy] | |||
| Beeram, V. P., Saad, T., Wen, B., Ceccarelli, D., Peng, | Beeram, V. P., Saad, T., Wen, B., Ceccarelli, D., Peng, | |||
| S., Chen, R., Contreras, L. M., and X. Liu, "YANG Data | S., Chen, R., Contreras, L. M., and X. Liu, "YANG Data | |||
| Model for Network Resource Partition Policy", Work in | Model for Network Resource Partition Policy", Work in | |||
| Progress, Internet-Draft, draft-bestbar-teas-yang-nrp- | Progress, Internet-Draft, draft-bestbar-teas-yang-nrp- | |||
| policy-03, 24 October 2022, | policy-03, 24 October 2022, | |||
| <https://datatracker.ietf.org/doc/html/draft-bestbar-teas- | <https://datatracker.ietf.org/doc/html/draft-bestbar-teas- | |||
| yang-nrp-policy-03>. | yang-nrp-policy-03>. | |||
| [I-D.ietf-6man-enhanced-vpn-vtn-id] | [I-D.ietf-6man-enhanced-vpn-vtn-id] | |||
| Dong, J., Li, Z., Xie, C., Ma, C., and G. S. Mishra, | Dong, J., Li, Z., Xie, C., Ma, C., and G. S. Mishra, | |||
| "Carrying Network Resource (NR) related Information in | "Carrying Network Resource (NR) related Information in | |||
| IPv6 Extension Header", Work in Progress, Internet-Draft, | IPv6 Extension Header", Work in Progress, Internet-Draft, | |||
| draft-ietf-6man-enhanced-vpn-vtn-id-12, 7 July 2025, | draft-ietf-6man-enhanced-vpn-vtn-id-13, 20 October 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-6man- | <https://datatracker.ietf.org/doc/html/draft-ietf-6man- | |||
| enhanced-vpn-vtn-id-12>. | enhanced-vpn-vtn-id-13>. | |||
| [I-D.ietf-lsr-isis-sr-vtn-mt] | [I-D.ietf-lsr-isis-sr-vtn-mt] | |||
| Xie, C., Ma, C., Dong, J., and Z. Li, "Applicability of | Xie, C., Ma, C., Dong, J., and Z. Li, "Applicability of | |||
| IS-IS Multi-Topology (MT) for Segment Routing based | IS-IS Multi-Topology (MT) for Segment Routing based | |||
| Network Resource Partition (NRP)", Work in Progress, | Network Resource Partition (NRP)", Work in Progress, | |||
| Internet-Draft, draft-ietf-lsr-isis-sr-vtn-mt-10, 13 April | Internet-Draft, draft-ietf-lsr-isis-sr-vtn-mt-11, 13 | |||
| 2025, <https://datatracker.ietf.org/doc/html/draft-ietf- | October 2025, <https://datatracker.ietf.org/doc/html/ | |||
| lsr-isis-sr-vtn-mt-10>. | draft-ietf-lsr-isis-sr-vtn-mt-11>. | |||
| [I-D.ietf-mpls-mna-nrp-selector] | ||||
| Li, T., Beeram, V. P., Drake, J., Saad, T., and I. Meilik, | ||||
| "MPLS Network Actions for Network Resource Partition | ||||
| Selector", Work in Progress, Internet-Draft, draft-ietf- | ||||
| mpls-mna-nrp-selector-03, 23 December 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-mpls- | ||||
| mna-nrp-selector-03>. | ||||
| [I-D.ietf-mpls-mna-psd-nrp-selector] | ||||
| Li, Z. and J. Dong, "Carrying NRP related Information in | ||||
| MPLS Packets", Work in Progress, Internet-Draft, draft- | ||||
| ietf-mpls-mna-psd-nrp-selector-00, 13 August 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-mpls- | ||||
| mna-psd-nrp-selector-00>. | ||||
| [I-D.ietf-spring-sr-for-enhanced-vpn] | [I-D.ietf-spring-sr-for-enhanced-vpn] | |||
| Dong, J., Miyasaka, T., Zhu, Y., Qin, F., and Z. Li, | Dong, J., Miyasaka, T., Zhu, Y., Qin, F., and Z. Li, | |||
| "Segment Routing based Network Resource Partition (NRP) | "Segment Routing based Network Resource Partition (NRP) | |||
| for Enhanced VPN", Work in Progress, Internet-Draft, | for Enhanced VPN", Work in Progress, Internet-Draft, | |||
| draft-ietf-spring-sr-for-enhanced-vpn-09, 10 June 2025, | draft-ietf-spring-sr-for-enhanced-vpn-10, 15 December | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-spring- | 2025, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
| sr-for-enhanced-vpn-09>. | spring-sr-for-enhanced-vpn-10>. | |||
| [I-D.ietf-spring-srv6-yang] | [I-D.ietf-spring-srv6-yang] | |||
| Raza, S. K., Rajamanickam, J., Matsushima, S., Yu, P., and | Raza, S. K., Rajamanickam, J., Matsushima, S., Yu, P., and | |||
| X. Liu, "YANG Data Model for SRv6 Base and Static", Work | X. Liu, "YANG Data Model for SRv6 Base and Static", Work | |||
| in Progress, Internet-Draft, draft-ietf-spring-srv6-yang- | in Progress, Internet-Draft, draft-ietf-spring-srv6-yang- | |||
| 05, 7 July 2025, <https://datatracker.ietf.org/doc/html/ | 05, 7 July 2025, <https://datatracker.ietf.org/doc/html/ | |||
| draft-ietf-spring-srv6-yang-05>. | draft-ietf-spring-srv6-yang-05>. | |||
| [I-D.ietf-teas-nrp-scalability] | ||||
| Dong, J., Li, Z., Gong, L., Yang, G., and G. S. Mishra, | ||||
| "Scalability Considerations for Network Resource | ||||
| Partition", Work in Progress, Internet-Draft, draft-ietf- | ||||
| teas-nrp-scalability-08, 20 October 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
| nrp-scalability-08>. | ||||
| [I-D.ietf-teas-ns-ip-mpls] | ||||
| Saad, T., Beeram, V. P., Dong, J., Halpern, J. M., and S. | ||||
| Peng, "Realizing Network Slices in IP/MPLS Networks", Work | ||||
| in Progress, Internet-Draft, draft-ietf-teas-ns-ip-mpls- | ||||
| 06, 20 October 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-teas-ns- | ||||
| ip-mpls-06>. | ||||
| [I-D.ietf-teas-yang-topology-filter] | ||||
| Beeram, V. P., Saad, T., Gandhi, R., and X. Liu, "YANG | ||||
| Data Model for Topology Filter", Work in Progress, | ||||
| Internet-Draft, draft-ietf-teas-yang-topology-filter-02, | ||||
| 19 October 2025, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-ietf-teas-yang-topology-filter-02>. | ||||
| [I-D.wd-teas-nrp-yang] | [I-D.wd-teas-nrp-yang] | |||
| Wu, B., Dhody, D., Boucadair, M., Cheng, Y., and L. Gong, | Wu, B., Dhody, D., Boucadair, M., Cheng, Y., and L. Gong, | |||
| "A YANG Data Model for Network Resource Partitions | "A YANG Data Model for Network Resource Partitions | |||
| (NRPs)", Work in Progress, Internet-Draft, draft-wd-teas- | (NRPs)", Work in Progress, Internet-Draft, draft-wd-teas- | |||
| nrp-yang-02, 25 September 2022, | nrp-yang-02, 25 September 2022, | |||
| <https://datatracker.ietf.org/doc/html/draft-wd-teas-nrp- | <https://datatracker.ietf.org/doc/html/draft-wd-teas-nrp- | |||
| yang-02>. | yang-02>. | |||
| [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 | |||
| skipping to change at page 40, line 29 ¶ | skipping to change at page 45, line 7 ¶ | |||
| Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, | Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, | |||
| <https://www.rfc-editor.org/info/rfc8309>. | <https://www.rfc-editor.org/info/rfc8309>. | |||
| [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., | [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., | |||
| and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | |||
| DOI 10.17487/RFC9350, February 2023, | DOI 10.17487/RFC9350, February 2023, | |||
| <https://www.rfc-editor.org/info/rfc9350>. | <https://www.rfc-editor.org/info/rfc9350>. | |||
| Appendix A. Open issues | Appendix A. Open issues | |||
| This section lists the non-blocking issues raised during the Working | All issues identified during Working Group review have been resolved. | |||
| Group adoption process. The issues listed below need to be fully | This section is intentionally left blank for the final publication. | |||
| resolved before publication | ||||
| 1. Raised by Tom Petch: Abstract lacks the reference to the NS | ||||
| framework that defines the NRP. | ||||
| 2. Raised by Adrain Farrel: 1) Avoid limiting IP/MPLS technology to | ||||
| realize NRPs, SR should be in scope; 2) Avoid the "IETF Network | ||||
| Slice" language, should use terms as "RFC 9543 Network Slice" and | ||||
| "RFC 9543 Network Slice Service" 3) It's good to investigate any | ||||
| scaling issues with the model and any implications on deployments | ||||
| or implementations, just as draft-ietf-teas-nrp-scalability. | ||||
| 3. Raised by Med Boucadair: 1) Normative dependency on individual | ||||
| drafts, such as I-D.bestbar-teas-yang-topology-filter, suggesting | ||||
| to add it back when stable 2) The device model in the spec is not | ||||
| a device model as it augments a network model. 3) Some of the | ||||
| review provided in https://github.com/boucadair/IETF-Drafts- | ||||
| Reviews/blob/master/2024/draft-ahuang-netconf-udp-client-server- | ||||
| 01-rev%20Med.pdf | ||||
| 4. Raised by Lius Contreras: 1) Clarify the NRP model usage in NSC, | ||||
| network controllers, and devices; 2) Rename Section 3.1.1 title | ||||
| to bandwidth reservation; 3) Add the references of "NRP capable | ||||
| node"; 4) In Section 3.1.3, better to clarify single PHB or | ||||
| multiple PHB per NRP and Whether the PHB management scope is in | ||||
| the NSC or network controller; 5) Section 3.1 adds description of | ||||
| NRP policy modes (b) and (c). | ||||
| 5. Raised by Xuesong: 1) Clarify the considerations for defining the | ||||
| NRP policy; 2) Distinguish NRP model operation and NRP mode | ||||
| (CP,DP, and hybrid); 3) Clarify the relationship and design | ||||
| consideration of NRPs network and device models. | ||||
| 6. Raised by Italo: 1) Clarify the models are technology-agnostic | ||||
| NRPs model or IP technology-specific NRPs model; 2) Updates the | ||||
| abstract/introduction to clarify that this model applies on | ||||
| devices and on controllers. | ||||
| Appendix B. An Example | Appendix B. An Example | |||
| This section contains an example of an instance data tree in JSON | This section contains an example of an instance data tree in JSON | |||
| encoding [RFC7951]. The example below instantiates an NRP for the | encoding [RFC7951]. | |||
| topology that is depicted in the following diagram. There are three | ||||
| nodes, D1, D2, and D3. D1 has three termination points, 1-0-1, | ||||
| 1-2-1, and 1-3-1. D2 has three termination points as well, 2-1-1, | ||||
| 2-0-1, and 2-3-1. D3 has two termination points, 3-1-1 and 3-2-1. | ||||
| In addition there are six links, two between each pair of nodes with | ||||
| one going in each direction. | ||||
| +------------+ +------------+ | +------------+ +------------+ | |||
| | D1 | | D2 | | | D1 | | D2 | | |||
| /-\ /-\ /-\ /-\ | /-\ /-\ /-\ /-\ | |||
| | | 1-0-1 | |---------------->| | 2-1-1 | | | | | 1-0-1 | |---------------->| | 2-1-1 | | | |||
| | | 1-2-1 | |<----------------| | 2-0-1 | | | | | 1-2-1 | |<----------------| | 2-0-1 | | | |||
| \-/ 1-3-1 \-/ \-/ 2-3-1 \-/ | \-/ 1-3-1 \-/ \-/ 2-3-1 \-/ | |||
| | /----\ | | /----\ | | | /----\ | | /----\ | | |||
| +---| |---+ +---| |---+ | +---| |---+ +---| |---+ | |||
| \----/ \----/ | \----/ \----/ | |||
| skipping to change at page 42, line 28 ¶ | skipping to change at page 45, line 38 ¶ | |||
| | | | D3 | | | | | | | D3 | | | | |||
| | | /-\ /-\ | | | | | /-\ /-\ | | | |||
| | +----->| | 3-1-1 | |-------+ | | | +----->| | 3-1-1 | |-------+ | | |||
| +---------| | 3-2-1 | |<---------+ | +---------| | 3-2-1 | |<---------+ | |||
| \-/ \-/ | \-/ \-/ | |||
| | | | | | | |||
| +------------+ | +------------+ | |||
| Figure 10: An NRP Instance Example | Figure 10: An NRP Instance Example | |||
| An corresponding IGP congruent NRP instance data tree is depicted | The following example configures a hybrid NRP (NRP1) with SRv6 | |||
| below: | selector and Flex-Algo based topology. | |||
| ============== NOTE: '\' line wrapping per RFC 8792 =============== | ============== NOTE: '\' line wrapping per RFC 8792 =============== | |||
| { | { | |||
| "ietf-network:networks": { | "ietf-network:networks": { | |||
| "ietf-nrp:nrp-policies": { | "ietf-nrp:nrp-policies": { | |||
| "qos-profiles": { | ||||
| "phb-profile-identifier": [ | ||||
| { | ||||
| "id": "High-Priority-Profile" | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "nrp-policy": [ | "nrp-policy": [ | |||
| { | { | |||
| "name": "NRP1", | "name": "NRP1-SRv6-FlexAlgo", | |||
| "nrp-id": "example:nrp-example1", | "nrp-id": "example:nrp-example1", | |||
| "mode": "ietf-nrp:hybrid-plane-partition", | "mode": "ietf-nrp:hybrid-plane-partition", | |||
| "resource-reservation": { | "resource-reservation": { | |||
| "bw-value": "10000" | "maximum-bandwidth": "10000000000" | |||
| }, | }, | |||
| "selector-id": { | "selector-id": { | |||
| "ipv6": { | "ipv6": { | |||
| "ipv6-hbh-eh:": "100" | "srv6-derived": { | |||
| "srv6-sid": [ | ||||
| "2001:db8:100::" | ||||
| ] | ||||
| } | ||||
| } | } | |||
| }, | }, | |||
| "phb-profile:": "High", | "phb-profile:" "High-Priority-Profile", | |||
| "topology": { | "topology": { | |||
| "igp-congruent": { | "igp-congruent": { | |||
| "multi-topology-id": "2" | "algo-id": "128", | |||
| "sharing": false | ||||
| }, | }, | |||
| "select": { | ] | |||
| "topology-group": [ | } | |||
| { | ||||
| "group-id": "access-group", | ||||
| "base-topology-ref": { | ||||
| "network-ref": "native-topology" | ||||
| }, | ||||
| "link": [ | ||||
| { | ||||
| "link-ref": "example:D1,example:1-2-1,\ | ||||
| example:D2,example:2-1-1" | ||||
| }, | ||||
| { | ||||
| "link-ref": "example:D2,example:2-1-1,\ | ||||
| example:D1,example:1-2-1" | ||||
| }, | ||||
| { | ||||
| "link-ref": "example:D1,example:1-3-1,\ | ||||
| example:D3,example:3-1-1" | ||||
| }, | ||||
| { | ||||
| "link-ref": "example:D3,example:3-1-1,\ | ||||
| example:D1,example:1-3-1" | ||||
| }, | ||||
| { | ||||
| "link-ref": "example:D2,example:2-3-1,\ | ||||
| example:D3,example:3-2-1" | ||||
| }, | ||||
| { | ||||
| "link-ref": "example:D3,example:3-2-1,\ | ||||
| example:D2,example:2-3-1" | ||||
| } | ||||
| ], | ||||
| "link-partition-type": "virtual-sub-interface-\ | ||||
| partition" | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Figure 11: Instance data tree | Figure 11: Instance data tree | |||
| In addition, an example of an NRP that supports the control plane | Another example of an NRP that supports the control plane partition | |||
| partition mode is shown in the following figure. | mode is shown in the following figure. | |||
| { | { | |||
| "ietf-network:networks": { | "ietf-network:networks": { | |||
| "ietf-nrp:nrp-policies": { | "ietf-nrp:nrp-policies": { | |||
| "nrp-policy": [ | "nrp-policy": [ | |||
| { | { | |||
| "name": "NRP2", | "name": "NRP2-CONTROL-PLANE", | |||
| "nrp-id": "example:nrp-example2", | "nrp-id": "example:nrp-example2", | |||
| "mode": "control-plane-partition", | "mode": "control-plane-partition", | |||
| "resource-reservation": { | "resource-reservation": { | |||
| "bw-value": "10000" | "bw-value": "10000" | |||
| }, | }, | |||
| "phb-profile:": "EF", | "phb-profile:": "EF", | |||
| "topology": { | "topology": { | |||
| "filters": { | "filters": { | |||
| "filter": [ | "filter": [ | |||
| { | { | |||
| skipping to change at page 44, line 35 ¶ | skipping to change at page 47, line 32 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| The following example configures a router with two NRP instances | ||||
| using IPv6 Hop-by-Hop extension header options for traffic | ||||
| identification. NRP-100 uses selector ID 100 for high-priority | ||||
| service traffic, while NRP-200 uses selector ID 200 for standard | ||||
| services. | ||||
| { | ||||
| "ietf-interfaces:interfaces": { | ||||
| "interface": [ | ||||
| { | ||||
| "name": "GigabitEthernet0/0/0/0", | ||||
| "type": "iana-if-type:ethernetCsmacd", | ||||
| "enabled": true | ||||
| }, | ||||
| { | ||||
| "name": "GigabitEthernet0/0/0/1", | ||||
| "type": "iana-if-type:ethernetCsmacd", | ||||
| "enabled": true | ||||
| }, | ||||
| { | ||||
| "name": "GigabitEthernet0/0/0/2", | ||||
| "type": "iana-if-type:ethernetCsmacd", | ||||
| "enabled": true | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "ietf-nrp-device:nrp-policies": { | ||||
| "qos-profiles": { | ||||
| "phb-profile-identifier": [ | ||||
| { | ||||
| "id": "High-Priority-PHB" | ||||
| }, | ||||
| { | ||||
| "id": "Standard-PHB" | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "nrp-policy": [ | ||||
| { | ||||
| "name": "NRP-Premium-Service", | ||||
| "nrp-id": 100, | ||||
| "mode": "ietf-nrp:hybrid-plane-partition", | ||||
| "resource-reservation": { | ||||
| "maximum-bandwidth-percent": 20 | ||||
| }, | ||||
| "selector-id": { | ||||
| "ipv6": { | ||||
| "ipv6-hbh-eh": 100 | ||||
| } | ||||
| }, | ||||
| "phb-profile": "High-Priority-PHB", | ||||
| "igp-congruent": { | ||||
| "algo-id": 128, | ||||
| "sharing": false | ||||
| }, | ||||
| "interfaces": { | ||||
| "interface": [ | ||||
| { | ||||
| "interface": "GigabitEthernet0/0/0/0", | ||||
| "resource-reservation": { | ||||
| "maximum-bandwidth-percent": 40 | ||||
| }, | ||||
| "selector-id": { | ||||
| "ipv6": { | ||||
| "ipv6-hbh-eh": 101 | ||||
| } | ||||
| }, | ||||
| "phb-profile": "High-Priority-PHB" | ||||
| }, | ||||
| { | ||||
| "interface": "GigabitEthernet0/0/0/1", | ||||
| "resource-reservation": { | ||||
| "maximum-bandwidth-percent": 30 | ||||
| }, | ||||
| "selector-id": { | ||||
| "ipv6": { | ||||
| "ipv6-hbh-eh": 102 | ||||
| } | ||||
| }, | ||||
| "phb-profile": "High-Priority-PHB" | ||||
| } | ||||
| ] | ||||
| } | ||||
| }, | ||||
| { | ||||
| "name": "NRP-Standard-Service", | ||||
| "nrp-id": 200, | ||||
| "mode": "ietf-nrp:data-plane-partition", | ||||
| "resource-reservation": { | ||||
| "maximum-bandwidth-percent": 50 | ||||
| }, | ||||
| "selector-id": { | ||||
| "ipv6": { | ||||
| "ipv6-hbh-eh": 200 | ||||
| } | ||||
| }, | ||||
| "phb-profile": "Standard-PHB", | ||||
| "interfaces": { | ||||
| "interface": [ | ||||
| { | ||||
| "interface": "GigabitEthernet0/0/0/2", | ||||
| "resource-reservation": { | ||||
| "maximum-bandwidth-percent": 50 | ||||
| }, | ||||
| "selector-id": { | ||||
| "ipv6": { | ||||
| "ipv6-hbh-eh": 201 | ||||
| } | ||||
| }, | ||||
| "phb-profile": "Standard-PHB" | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| Appendix C. NRPs YANG Module Tree | Appendix C. NRPs YANG Module Tree | |||
| Figure 12 shows the full tree diagram of the NRPs YANG model defined | Figure 12 shows the full tree diagram of the NRPs YANG model defined | |||
| in module "ietf-nrp.yang". | in module "ietf-nrp.yang". | |||
| module: ietf-nrp | module: ietf-nrp | |||
| augment /nw:networks: | ||||
| +--rw nrp-policies | ||||
| +--rw qos-profiles | ||||
| | +--rw phb-profile-identifier* [id] | ||||
| | +--rw id string | ||||
| +--rw nrp-policy* [name] | ||||
| +--rw name string | ||||
| +--rw nrp-id? uint32 | ||||
| +--rw mode? identityref | ||||
| +--rw resource-reservation | ||||
| | +--rw (max-bw-type)? | ||||
| | +--:(bw-value) | ||||
| | | +--rw maximum-bandwidth? uint64 | ||||
| | +--:(bw-percentage) | ||||
| | +--rw maximum-bandwidth-percent? | ||||
| | rt-types:percentage | ||||
| +--rw selector-id | ||||
| | +--rw ipv4-derived | ||||
| | | +--rw destination-prefix* inet:ipv4-prefix | ||||
| | +--rw ipv6 | ||||
| | | +--rw (selector-type)? | ||||
| | | +--:(dedicated) | ||||
| | | | +--rw ipv6-hbh-eh? uint32 | ||||
| | | +--:(srv6-sid-derived) | ||||
| | | | +--rw srv6-sid* srv6-types:srv6-sid | ||||
| | | +--:(ipv6-destination-derived) | ||||
| | | +--rw destination-prefix* inet:ipv6-prefix | ||||
| | +--rw mpls | ||||
| | +--rw acl-ref* acl-ref | ||||
| +--rw phb-profile? leafref | ||||
| +--rw topology | ||||
| +--rw igp-congruent! | ||||
| | +--rw multi-topology-id? uint32 | ||||
| | +--rw algo-id? uint32 | ||||
| | +--rw sharing? boolean | ||||
| +--rw (topology-type)? | ||||
| +--:(selection) | ||||
| | +--rw select | ||||
| | +--rw topology-group* [group-id] | ||||
| | +--rw group-id string | ||||
| | +--rw base-topology-ref | ||||
| | | +--rw network-ref? | ||||
| | | -> /nw:networks/network/network-id | ||||
| | +--rw link* [link-ref] | ||||
| | | +--rw link-ref leafref | ||||
| | +--rw resource-reservation | ||||
| | | +--rw (max-bw-type)? | ||||
| | | +--:(bw-value) | ||||
| | | | +--rw maximum-bandwidth? | ||||
| | | | uint64 | ||||
| | | +--:(bw-percentage) | ||||
| | | +--rw maximum-bandwidth-percent? | ||||
| | | rt-types:percentage | ||||
| | +--rw link-partition-type? identityref | ||||
| | +--rw phb-profile? leafref | ||||
| +--:(filter) | ||||
| +--rw filters | ||||
| +--rw filter* [filter-ref] | ||||
| +--rw filter-ref | ||||
| | topo-filter-ref | ||||
| +--rw resource-reservation | ||||
| | +--rw (max-bw-type)? | ||||
| | +--:(bw-value) | ||||
| | | +--rw maximum-bandwidth? | ||||
| | | uint64 | ||||
| | +--:(bw-percentage) | ||||
| | +--rw maximum-bandwidth-percent? | ||||
| | rt-types:percentage | ||||
| +--rw selector-id | ||||
| | +--rw ipv4-derived | ||||
| | | +--rw destination-prefix* | ||||
| | | inet:ipv4-prefix | ||||
| | +--rw ipv6 | ||||
| | | +--rw (selector-type)? | ||||
| | | +--:(dedicated) | ||||
| | | | +--rw ipv6-hbh-eh? | ||||
| | | | uint32 | ||||
| | | +--:(srv6-sid-derived) | ||||
| | | | +--rw srv6-sid* | ||||
| | | | srv6-types:srv6-sid | ||||
| | | +--:(ipv6-destination-derived) | ||||
| | | +--rw destination-prefix* | ||||
| | | inet:ipv6-prefix | ||||
| | +--rw mpls | ||||
| | +--rw acl-ref* acl-ref | ||||
| +--rw phb-profile? leafref | ||||
| augment /nw:networks/nw:network/nw:network-types: | ||||
| +--rw nrp! | ||||
| augment /nw:networks/nw:network/nw:node: | ||||
| +--ro nrp-node-attributes | ||||
| +--ro selector-id | ||||
| +--ro srv6? srv6-types:srv6-sid | ||||
| augment /nw:networks/nw:network/nt:link: | ||||
| +--ro nrp-link-attributes | ||||
| +--ro link-partition-type? identityref | ||||
| +--ro bandwidth-value? uint64 | ||||
| +--ro selector-id | ||||
| | +--ro srv6? srv6-types:srv6-sid | ||||
| +--ro statistics | ||||
| +--ro status | ||||
| | +--ro admin-status | ||||
| | | +--ro status? identityref | ||||
| | | +--ro last-change? yang:date-and-time | ||||
| | +--ro oper-status | ||||
| | +--ro status? identityref | ||||
| | +--ro last-change? yang:date-and-time | ||||
| +--ro one-way-available-bandwidth? uint64 | ||||
| +--ro one-way-utilized-bandwidth? uint64 | ||||
| +--ro one-way-min-delay? uint32 | ||||
| +--ro one-way-max-delay? uint32 | ||||
| +--ro one-way-delay-variation? uint32 | ||||
| +--ro one-way-packet-loss? decimal64 | ||||
| augment /nw:networks/nw:network/nw:node: | ||||
| +--rw nrps-node-attributes | ||||
| +--ro nrp* [nrp-id] | ||||
| +--ro nrp-id uint32 | ||||
| +--ro nrp-node-attributes | ||||
| +--ro selector-id | ||||
| +--ro srv6? srv6-types:srv6-sid | ||||
| augment /nw:networks/nw:network/nt:link: | ||||
| +--ro nrps-link-attributes | ||||
| +--ro nrp* [nrp-id] | ||||
| +--ro nrp-id uint32 | ||||
| +--ro nrp-link-attributes | ||||
| +--ro link-partition-type? identityref | ||||
| +--ro bandwidth-value? uint64 | ||||
| +--ro selector-id | ||||
| | +--ro srv6? srv6-types:srv6-sid | ||||
| +--ro statistics | ||||
| +--ro status | ||||
| | +--ro admin-status | ||||
| | | +--ro status? identityref | ||||
| | | +--ro last-change? yang:date-and-time | ||||
| | +--ro oper-status | ||||
| | +--ro status? identityref | ||||
| | +--ro last-change? yang:date-and-time | ||||
| +--ro one-way-available-bandwidth? uint64 | ||||
| +--ro one-way-utilized-bandwidth? uint64 | ||||
| +--ro one-way-min-delay? uint32 | ||||
| +--ro one-way-max-delay? uint32 | ||||
| +--ro one-way-delay-variation? uint32 | ||||
| +--ro one-way-packet-loss? decimal64 | ||||
| Figure 12 | augment /nw:networks: | |||
| +--rw nrp-policies | ||||
| +--rw qos-profiles | ||||
| | +--rw phb-profile-identifier* [id] | ||||
| | +--rw id string | ||||
| +--rw nrp-policy* [name] | ||||
| +--rw name string | ||||
| +--rw nrp-id? uint32 | ||||
| +--rw mode? identityref | ||||
| +--rw resource-reservation | ||||
| | +--rw (max-bw-type)? | ||||
| | +--:(bw-value) | ||||
| | | +--rw maximum-bandwidth? uint64 | ||||
| | +--:(bw-percentage) | ||||
| | +--rw maximum-bandwidth-percent? | ||||
| | rt-types:percentage | ||||
| +--rw selector-id | ||||
| | +--rw ipv4-derived | ||||
| | | +--rw destination-prefix* inet:ipv4-prefix | ||||
| | +--rw ipv6 | ||||
| | | +--rw (selector-type)? | ||||
| | | +--:(dedicated) | ||||
| | | | +--rw ipv6-hbh-eh? uint32 | ||||
| | | +--:(srv6-derived) | ||||
| | | | +--rw srv6-sid* srv6-types:srv6-sid | ||||
| | | +--:(ipv6-destination-derived) | ||||
| | | +--rw destination-prefix* inet:ipv6-prefix | ||||
| | +--rw mpls | ||||
| | | +--rw (mpls-encapsulation)? | ||||
| | | +--:(mna-in-stack) | ||||
| | | | +--rw in-stack-identifier? uint32 | ||||
| | | | +--rw identifier-format? enumeration | ||||
| | | +--:(post-stack) | ||||
| | | +--rw post-stack-identifier? uint32 | ||||
| | +--rw acl-ref* acl-ref | ||||
| +--rw phb-profile? leafref | ||||
| +--rw topology | ||||
| +--rw igp-congruent! | ||||
| | +--rw multi-topology-id? uint32 | ||||
| | +--rw algo-id? uint32 | ||||
| | +--rw sharing? boolean | ||||
| +--rw (topology-type)? | ||||
| +--:(selection) | ||||
| | +--rw select | ||||
| | +--rw topology-group* [group-id] | ||||
| | +--rw group-id string | ||||
| | +--rw network-ref? | ||||
| | | -> /nw:networks/network/network-id | ||||
| | +--rw link* [link-ref] | ||||
| | | +--rw link-ref leafref | ||||
| | +--rw resource-reservation | ||||
| | | +--rw (max-bw-type)? | ||||
| | | +--:(bw-value) | ||||
| | | | +--rw maximum-bandwidth? | ||||
| | | | uint64 | ||||
| | | +--:(bw-percentage) | ||||
| | | +--rw maximum-bandwidth-percent? | ||||
| | | rt-types:percentage | ||||
| | +--rw link-partition-type? identityref | ||||
| | +--rw phb-profile? leafref | ||||
| +--:(filter) | ||||
| +--rw filters | ||||
| +--rw filter* [filter-ref] | ||||
| +--rw filter-ref | ||||
| | topo-filter-ref | ||||
| +--rw resource-reservation | ||||
| | +--rw (max-bw-type)? | ||||
| | +--:(bw-value) | ||||
| | | +--rw maximum-bandwidth? | ||||
| | | uint64 | ||||
| | +--:(bw-percentage) | ||||
| | +--rw maximum-bandwidth-percent? | ||||
| | rt-types:percentage | ||||
| +--rw selector-id | ||||
| | +--rw ipv4-derived | ||||
| | | +--rw destination-prefix* | ||||
| | | inet:ipv4-prefix | ||||
| | +--rw ipv6 | ||||
| | | +--rw (selector-type)? | ||||
| | | +--:(dedicated) | ||||
| | | | +--rw ipv6-hbh-eh? | ||||
| | | | uint32 | ||||
| | | +--:(srv6-derived) | ||||
| | | | +--rw srv6-sid* | ||||
| | | | srv6-types:srv6-sid | ||||
| | | +--:(ipv6-destination-derived) | ||||
| | | +--rw destination-prefix* | ||||
| | | inet:ipv6-prefix | ||||
| | +--rw mpls | ||||
| | | +--rw (mpls-encapsulation)? | ||||
| | | +--:(mna-in-stack) | ||||
| | | | +--rw in-stack-identifier? | ||||
| | | | | uint32 | ||||
| | | | +--rw identifier-format? | ||||
| | | | enumeration | ||||
| | | +--:(post-stack) | ||||
| | | +--rw post-stack-identifier? | ||||
| | | uint32 | ||||
| | +--rw acl-ref* acl-ref | ||||
| +--rw phb-profile? leafref | ||||
| augment /nw:networks/nw:network/nw:network-types: | ||||
| +--rw nrp! | ||||
| augment /nw:networks/nw:network/nw:node: | ||||
| +--rw (nrp-attachment-type)? | ||||
| +--:(single-nrp) | ||||
| | +--ro nrp-node-attributes | ||||
| | +--ro selector-id | ||||
| | +--ro srv6? srv6-types:srv6-sid | ||||
| | +--ro mpls-nrp-selector? uint32 | ||||
| +--:(multi-nrp) | ||||
| +--ro node-nrp-list | ||||
| +--ro nrp* [nrp-id] | ||||
| +--ro nrp-id uint32 | ||||
| +--ro nrp-node-attributes | ||||
| +--ro selector-id | ||||
| +--ro srv6? srv6-types:srv6-sid | ||||
| +--ro mpls-nrp-selector? uint32 | ||||
| augment /nw:networks/nw:network/nt:link: | ||||
| +--rw (nrp-attachment-type)? | ||||
| +--:(single-nrp) | ||||
| | +--ro nrp-link-attributes | ||||
| | +--ro link-partition-type? identityref | ||||
| | +--ro bandwidth-value? uint64 | ||||
| | +--ro selector-id | ||||
| | | +--ro srv6? srv6-types:srv6-sid | ||||
| | | +--ro mpls-nrp-selector? uint32 | ||||
| | +--ro statistics | ||||
| | +--ro status | ||||
| | | +--ro admin-status | ||||
| | | | +--ro status? identityref | ||||
| | | | +--ro last-change? yang:date-and-time | ||||
| | | +--ro oper-status | ||||
| | | +--ro status? identityref | ||||
| | | +--ro last-change? yang:date-and-time | ||||
| | +--ro one-way-available-bandwidth? uint64 | ||||
| | +--ro one-way-utilized-bandwidth? uint64 | ||||
| | +--ro one-way-min-delay? uint32 | ||||
| | +--ro one-way-max-delay? uint32 | ||||
| | +--ro one-way-delay-variation? uint32 | ||||
| | +--ro one-way-packet-loss? decimal64 | ||||
| +--:(multi-nrp) | ||||
| +--ro link-nrp-list | ||||
| +--ro nrp* [nrp-id] | ||||
| +--ro nrp-id uint32 | ||||
| +--ro nrp-link-attributes | ||||
| +--ro link-partition-type? identityref | ||||
| +--ro bandwidth-value? uint64 | ||||
| +--ro selector-id | ||||
| | +--ro srv6? srv6-types:srv6-sid | ||||
| | +--ro mpls-nrp-selector? uint32 | ||||
| +--ro statistics | ||||
| +--ro status | ||||
| | +--ro admin-status | ||||
| | | +--ro status? identityref | ||||
| | | +--ro last-change? yang:date-and-time | ||||
| | +--ro oper-status | ||||
| | +--ro status? identityref | ||||
| | +--ro last-change? yang:date-and-time | ||||
| +--ro one-way-available-bandwidth? uint64 | ||||
| +--ro one-way-utilized-bandwidth? uint64 | ||||
| +--ro one-way-min-delay? uint32 | ||||
| +--ro one-way-max-delay? uint32 | ||||
| +--ro one-way-delay-variation? uint32 | ||||
| +--ro one-way-packet-loss? decimal64 | ||||
| Figure 12 | ||||
| Appendix D. NRPs Device YANG Module Tree | Appendix D. NRPs Device YANG Module Tree | |||
| Figure 13 shows the full tree diagram of the NRPs device YANG model | Figure 13 shows the full tree diagram of the NRPs device YANG model | |||
| defined in module "ietf-nrp-device.yang". | defined in module "ietf-nrp-device.yang". | |||
| module: ietf-nrp-device | module: ietf-nrp-device | |||
| +--rw nrp-policies | +--rw nrp-policies | |||
| +--rw qos-profiles | +--rw qos-profiles | |||
| | +--rw phb-profile-identifier* [id] | | +--rw phb-profile-identifier* [id] | |||
| skipping to change at page 48, line 20 ¶ | skipping to change at page 54, line 13 ¶ | |||
| | +--:(bw-percentage) | | +--:(bw-percentage) | |||
| | +--rw maximum-bandwidth-percent? | | +--rw maximum-bandwidth-percent? | |||
| | rt-types:percentage | | rt-types:percentage | |||
| +--rw selector-id | +--rw selector-id | |||
| | +--rw ipv4-derived | | +--rw ipv4-derived | |||
| | | +--rw destination-prefix* inet:ipv4-prefix | | | +--rw destination-prefix* inet:ipv4-prefix | |||
| | +--rw ipv6 | | +--rw ipv6 | |||
| | | +--rw (selector-type)? | | | +--rw (selector-type)? | |||
| | | +--:(dedicated) | | | +--:(dedicated) | |||
| | | | +--rw ipv6-hbh-eh? uint32 | | | | +--rw ipv6-hbh-eh? uint32 | |||
| | | +--:(srv6-sid-derived) | | | +--:(srv6-derived) | |||
| | | | +--rw srv6-sid* srv6-types:srv6-sid | | | | +--rw srv6-sid* srv6-types:srv6-sid | |||
| | | +--:(ipv6-destination-derived) | | | +--:(ipv6-destination-derived) | |||
| | | +--rw destination-prefix* inet:ipv6-prefix | | | +--rw destination-prefix* inet:ipv6-prefix | |||
| | +--rw mpls | | +--rw mpls | |||
| | | +--rw (mpls-encapsulation)? | ||||
| | | +--:(mna-in-stack) | ||||
| | | | +--rw in-stack-identifier? uint32 | ||||
| | | | +--rw identifier-format? enumeration | ||||
| | | +--:(post-stack) | ||||
| | | +--rw post-stack-identifier? uint32 | ||||
| | +--rw acl-ref* acl-ref | | +--rw acl-ref* acl-ref | |||
| +--rw phb-profile? leafref | +--rw phb-profile? leafref | |||
| +--rw igp-congruent! | +--rw igp-congruent! | |||
| | +--rw multi-topology-id? uint32 | | +--rw multi-topology-id? uint32 | |||
| | +--rw algo-id? uint32 | | +--rw algo-id? uint32 | |||
| | +--rw sharing? boolean | | +--rw sharing? boolean | |||
| +--rw interfaces | +--rw interfaces | |||
| +--rw interface* [interface] | +--rw interface* [interface] | |||
| +--rw interface if:interface-ref | +--rw interface if:interface-ref | |||
| +--rw resource-reservation | +--rw resource-reservation | |||
| skipping to change at page 48, line 48 ¶ | skipping to change at page 54, line 47 ¶ | |||
| | +--:(bw-percentage) | | +--:(bw-percentage) | |||
| | +--rw maximum-bandwidth-percent? | | +--rw maximum-bandwidth-percent? | |||
| | rt-types:percentage | | rt-types:percentage | |||
| +--rw selector-id | +--rw selector-id | |||
| | +--rw ipv4-derived | | +--rw ipv4-derived | |||
| | | +--rw destination-prefix* inet:ipv4-prefix | | | +--rw destination-prefix* inet:ipv4-prefix | |||
| | +--rw ipv6 | | +--rw ipv6 | |||
| | | +--rw (selector-type)? | | | +--rw (selector-type)? | |||
| | | +--:(dedicated) | | | +--:(dedicated) | |||
| | | | +--rw ipv6-hbh-eh? uint32 | | | | +--rw ipv6-hbh-eh? uint32 | |||
| | | +--:(srv6-sid-derived) | | | +--:(srv6-derived) | |||
| | | | +--rw srv6-sid* | | | | +--rw srv6-sid* | |||
| | | | srv6-types:srv6-sid | | | | srv6-types:srv6-sid | |||
| | | +--:(ipv6-destination-derived) | | | +--:(ipv6-destination-derived) | |||
| | | +--rw destination-prefix* | | | +--rw destination-prefix* | |||
| | | inet:ipv6-prefix | | | inet:ipv6-prefix | |||
| | +--rw mpls | | +--rw mpls | |||
| | | +--rw (mpls-encapsulation)? | ||||
| | | +--:(mna-in-stack) | ||||
| | | | +--rw in-stack-identifier? uint32 | ||||
| | | | +--rw identifier-format? enumeration | ||||
| | | +--:(post-stack) | ||||
| | | +--rw post-stack-identifier? uint32 | ||||
| | +--rw acl-ref* acl-ref | | +--rw acl-ref* acl-ref | |||
| +--rw phb-profile? leafref | +--rw phb-profile? leafref | |||
| Figure 13 | Figure 13 | |||
| Authors' Addresses | Authors' Addresses | |||
| Bo Wu | Bo Wu | |||
| Huawei Technologies | Huawei Technologies | |||
| 101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
| End of changes. 111 change blocks. | ||||
| 518 lines changed or deleted | 817 lines changed or added | |||
This html diff was produced by rfcdiff 1.49. The latest version is available from https://github.com/ietf-tools/rfcdiff | ||||