idnits 2.17.00 (12 Aug 2021) /tmp/idnits64098/draft-wd-teas-nrp-yang-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- -- The document date (30 January 2022) is 104 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-19) exists of draft-ietf-lsr-flex-algo-18 ** Downref: Normative reference to an Informational draft: draft-ietf-lsr-isis-sr-vtn-mt (ref. 'I-D.ietf-lsr-isis-sr-vtn-mt') == Outdated reference: A later version (-02) exists of draft-ietf-spring-sr-for-enhanced-vpn-01 ** Downref: Normative reference to an Informational draft: draft-ietf-spring-sr-for-enhanced-vpn (ref. 'I-D.ietf-spring-sr-for-enhanced-vpn') ** Downref: Normative reference to an Informational RFC: RFC 8309 == Outdated reference: A later version (-01) exists of draft-dong-teas-nrp-scalability-00 == Outdated reference: draft-ietf-opsawg-l3sm-l3nm has been published as RFC 9182 == Outdated reference: A later version (-10) exists of draft-ietf-teas-ietf-network-slices-05 Summary: 3 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group B. Wu 3 Internet-Draft D. Dhody 4 Intended status: Standards Track Huawei Technologies 5 Expires: 3 August 2022 Y. Cheng 6 China Unicom 7 30 January 2022 9 A YANG Data Model for Network Resource Partition (NRP) 10 draft-wd-teas-nrp-yang-00 12 Abstract 14 This document defines a YANG data model for managing Network Resource 15 Partition (NRP) topologies and associated resource allocation. The 16 model can be used for the realization of IETF network slice services. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on 3 August 2022. 35 Copyright Notice 37 Copyright (c) 2022 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 42 license-info) in effect on the date of publication of this document. 43 Please review these documents carefully, as they describe your rights 44 and restrictions with respect to this document. Code Components 45 extracted from this document must include Revised BSD License text as 46 described in Section 4.e of the Trust Legal Provisions and are 47 provided without warranty as described in the Revised BSD License. 49 Table of Contents 51 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 52 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 53 2.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 54 3. NRP Modelling Consideration . . . . . . . . . . . . . . . . . 3 55 3.1. NRP Model Usage example . . . . . . . . . . . . . . . . . 5 56 3.2. NRP Modeling Design . . . . . . . . . . . . . . . . . . . 6 57 4. Description of NRP YANG Module . . . . . . . . . . . . . . . 9 58 5. NRP Yang Module Tree . . . . . . . . . . . . . . . . . . . . 10 59 6. NRP Yang Module . . . . . . . . . . . . . . . . . . . . . . . 11 60 7. Security Considerations . . . . . . . . . . . . . . . . . . . 20 61 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 62 9. Contributor . . . . . . . . . . . . . . . . . . . . . . . . . 21 63 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 64 10.1. Normative References . . . . . . . . . . . . . . . . . . 22 65 10.2. Informative References . . . . . . . . . . . . . . . . . 24 66 Appendix A. An Example . . . . . . . . . . . . . . . . . . . . . 25 67 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 69 1. Introduction 71 [I-D.ietf-teas-ietf-network-slices] defines IETF network slice 72 services that provide connectivity coupled with network resources 73 commitment between a number of endpoints over a shared network 74 infrastructure and, for scalability concerns, defines network 75 resource partition (NRP) to host one or a group of network slice 76 services according to characteristics including SLOs and SLEs. 77 [I-D.dong-teas-nrp-scalability] analyzes the scalability issues of 78 network slice services in detail and suggests candidate technologies 79 of control and forwarding planes of the NRP. 81 This document defines a YANG model of NRP that the IETF NSC (Network 82 Slice controller) can use to manage NRP instances to realize the 83 network slicing services. According to the YANG model classification 84 of [RFC8309], the NRP model is a network configuration model. 86 2. Terminology 88 The following terms are defined in [RFC6241] and are used in this 89 specification: 91 * configuration data 93 * state data 95 The following terms are defined in [RFC7950] and are used in this 96 specification: 98 * augment 100 * data model 102 * data node 104 The terminology for describing YANG data models is found in 105 [RFC7950]. 107 2.1. Tree Diagrams 109 The tree diagram used in this document follows the notation defined 110 in [RFC8340]. 112 3. NRP Modelling Consideration 114 As specified in [I-D.ietf-teas-ietf-network-slices], an NRP is a 115 subset of dedicated or shared nodes and links in a network, and 116 includes associated control plane and forwarding plane technologies 117 so that the traffic received from NRP edge nodes that is 118 characterized to match the NRP traffic classification rule is 119 constrained to the NRP exclusive topology and resource allocation. 120 The NRP allows network operators to manage the resources of IETF 121 network slices which are used to provide network slice service 122 traffic with specific SLOs and SLEs. 124 An NRP is a subset of resources allocated from a physical network or 125 logical network. Depending on the SLO and SLE requirements of the 126 slicing service and also the available resources of the operator's 127 network, there are several options of creating an NRP. One option is 128 that each physical link is allocated to only one specific NRP, and 129 different NRPs do not share any physical link. One more typical 130 option is that multiple NRPs share the same physical links, and each 131 NRP is built with virtual links with a certain subset of the 132 bandwidth available on the physical links to provide network resource 133 isolation. 135 To constrain the traffic that matches NRP traffic classification to 136 be forwarded based on the NRP topology and resources, an NRP also 137 includes the control and forwarding plane functions. As defined in 138 [I-D.dong-teas-nrp-scalability], the draft discusses NRP control 139 plane and data plane requirements in different provisioning 140 scenarios, and describes that the NRP control plane is used to 141 exchange network resource attributes and associated logical topology 142 information between nodes of the NRP so that NRP-specific routing and 143 forwarding tables could be generated. For the NRP control plane, 144 distributed control plane mechanism, such as Multi-topology, Flex- 145 Algo or centralized SDN or hybrid combination could be defined. To 146 help with forwarding entries, several data-plane encapsulation 147 options are also discussed to carry NRP information in the NRP 148 traffic packets. The example NRP data plane identifier could be the 149 IPv6 addresses or the MPLS forwarding labels or dedicated NRP data- 150 plane identifiers. 152 An example of NRP instances and a physical network is illustrated in 153 Figure 1. In the example, each NRP instance has a customized network 154 topology comprised of a set of links and nodes in the physical 155 network. In control plane, each NRP could be associated with a 156 multi-topology or a Flex-Algo. And it also has its own forwarding 157 plane resources and identifiers which provide NRP-specific packet 158 forwarding. 160 ++++ ++++ ++++ 161 +--+===+--+===+--+ 162 +--+===+--+===+--+ 163 ++++ +++\\ ++++ 164 || || \\ || Physical 165 || || \\ || Network 166 ++++ ++++ ++++ \\+++ ++++ 167 + +===+--+===+--+===+--+===+ + 168 + +===+--+===+--+===+--+===+ + 169 ++++ ++++ ++++ ++++ ++++ 170 PE1 PE2 171 | 172 \|/ 174 o----o-----o 175 / / NRP-1 176 o-----o-----o----o----o 178 o----o 179 / / \ NRP-2 180 o-----o----o---o------o 182 ... 184 o----o 185 / / NPR-n 186 o-----o----o----o-----o 188 o is a virtual node 189 --- is a virtual link 191 Figure 1: An NRP Example 193 [I-D.ietf-teas-ietf-network-slices] also describes the management of 194 the NRP. After an NRP created, the NRP may need to be refined and 195 modified as the network status and slice services change, and could 196 be extended if necessary to meet the customers' demands. In addition 197 to configuration management, the NRP should also provide detailed 198 monitoring information about underlying resources to further provide 199 monitoring for the hosted slice services. 201 3.1. NRP Model Usage example 203 One major application of network slices is 5G services. Figure 2 204 shows the use of the NRP model to realize the IETF Network Slice for 205 the 5G use case, based on the reference framework defined in 206 [I-D.ietf-teas-ietf-network-slices]. The figure shows that the NSC 207 uses the L3VPN network model [I-D.ietf-opsawg-l3sm-l3nm] to map to an 208 IETF Network Slice service and uses the NRP model to map VPN traffic 209 to underlying network resources, so that the SLO and SLE required by 210 the IETF network slice service are ensured when the VPN service 211 traverses the underlying network. 213 +------------------------------------------+ 214 | Customer | 215 | | 216 +------------------------------------------+ 217 A 218 | Network slice service interface 219 V 220 +------------------------------------------+ 221 | IETF Network Slice Controller (NSC) | 222 +------------------------------------------+ 223 A 224 L3NM model | NSC SBI NRP model 225 V NRP as VPN underlay 226 +------------------------------------------+ 227 | Network Controller(s) | 228 +------------------------------------------+ 229 A 230 | Device model 231 V 232 +------------------------------------------------+ 233 Network 235 Figure 2: Reference Module Use Case 237 In the process of realizing an IETF network slice service, the NSC 238 can use a static NRP instance or dynamically create one as one or a 239 group of VPNs underlay construct. Compared with existing VPN 240 underlying built with full mesh tunneling mechanisms, the NRP could 241 provide resource isolation, topology constraints, and simplified 242 configuration. Additionally, specific service flows of a VPN can be 243 further optimized using SR policies defined in 244 [I-D.dong-idr-sr-policy-vtn]. 246 3.2. NRP Modeling Design 248 An NRP is modeled as network topology defined in [RFC8345] with 249 augmentations. A new network type "nrp" is defined. A network 250 topology data instance containing the nrp network type, indicates an 251 NRP instance. 253 As discussed in [I-D.dong-teas-nrp-scalability], an NRP could have 254 multiple control plane implementation options. For a better network 255 scalability, an NRP does not require an independent Layer 3 topology, 256 that is, multiple NRPs can share a same Layer 3 topology or TE 257 topology. Thus, an NRP can use a predefined basic TE topology by 258 referring to the TE network instance or a predefined basic Layer3 TE 259 topology by referring to the network instance with both TE and Layer3 260 type enabled or other topology combination. The Figure 3 shows the 261 example references between this module and other YANG modules. 263 +--------------------------+ 264 | ietf-te-topology: | 265 |+------------------------+| 266 || ietf-network-topology: || 267 +-->|| network-id (key) || 268 +-------------------------------+ | || network-types: { || 269 | ietf-nrp: | | || te-topology || 270 | +---------------------------+ | | || } || 271 | | ietf-network-topology: | | | || || 272 | | network-id (key) | | | |+------------------------+| 273 | | network-types: { | | | | | 274 | | nrp: | |--+ +--------------------------+ 275 | | } | | | 276 | | | | | +-----------------------------+ 277 | +---------------------------+ | | | ietf-l3-te-topology: | 278 | network-ref | | |+---------------------------+| 279 | | | || ietf-network-topology: || 280 +-------------------------------+ | || network-id (key) || 281 | || network-types: { || 282 +-->|| l3-unicast-topology || 283 || te-topology || 284 || } || 285 || || 286 |+---------------------------+| 287 | | 288 | | 289 +-----------------------------+ 291 Figure 3: Topology References 293 But in some situations, an NRP may need its own Layer 3 topology or 294 Traffic Engineering (TE) topology to support route forwarding or TE 295 forwarding capability. Inheriting the extensibility from [RFC8345], 296 an NRP can have several types of networks simultaneously. The Layer 297 3 Topologies model defined in [RFC8346] can be used to enable an NRP 298 unicast capable. And the TE Topology model defined in [RFC8795] can 299 be used to make an NRP TE capable. The Figure 4 shows the 300 relationship between this module and other YANG modules. 302 +-----------------------+ 303 |Network Topology Model | 304 | RFC8345 | 305 +-----------------------+ 306 | 307 +-------------+-------------+-------------+ 308 | | | | 309 V V V V 310 ............ +----------+ ............ ............ 311 : L3 : | Network | : TE : : L2 : 312 :Topology : | Resource | : Topology : : Topology : 313 : Model : | Partition| : Model : : Model : 314 :..........: | Model | :..........: :..........: 315 | +----------+ 316 | 317 V 318 ................. 319 : ospf-topology : 320 :...............: 322 Figure 4: NRP Model Relationship 324 The container "nrp" under 'network' of [RFC8345] defines global 325 parameters for an NRP, which defines the specific control plane and 326 data plane mechanisms of an NRP. And also, the traffic steering 327 policy of the NRP may include a dynamic color based policies or an 328 ACL-based static ones. 330 Each NRP instance consists of a set of nodes and a set of links. 331 Each node and link have different attributes that represent the 332 allocated resources or the operational status of the NRP. An NRP 333 could support several resource partition methods, which are defined 334 by 'link-partition-type'' under an NRP link, which can further be 335 supported by FlexE or independent queue techniques. 337 There are multiple modes of NRP operations to be supported as 338 follows: 340 * NRP instantiation: Depending on the slice services types and also 341 network status, there can be two types of approaches. One method 342 is to create an NRP instance before the network controller 343 processes the IETF network slice service request. Another one is 344 that the network controller may start creating an NRP instance 345 while configuring the IETF network slice service request. 347 * NRP modification: When the capacity of an existing NPR link is 348 close to capacity, the bandwidth of the link could be increased. 349 And when the NRP link or node resources are insufficient, new NRP 350 links and nodes could be added. 352 * NRP Deletion: If the NSC determines that no slice service is using 353 an NRP, the NSC can delete the NRP instance. 355 * NRP Monitoring: The NSC can use the NRP model to track and monitor 356 NRP resource status and usage. 358 4. Description of NRP YANG Module 360 The description of the NRP data nodes are as follows: 362 * "nrp-id": Is an identifier that is used to uniquely identify an 363 NRP instance within the network scope. 365 * NRP resources reservation: The nodes and links represent the 366 network resource allocated for an NRP instance. 'bandwidth- 367 reservation' specifies the bandwidth allocated to an NRP instance, 368 or is overridden by the configuration of the NRP link. 'link- 369 partition-type' specifies the resource partition types of the 370 physical interfaces associated with an NRP link. 372 * NRP control plane: When an NRP shares an IGP topology or TE 373 topology with other NRPs, "network-ref" or "te-topology- 374 identifier" is used to refer to the existing IGP network instance 375 or TE topology instance. And an NRP can further use Multi- 376 Topology Routing (MTR) or Flex-algo to refer to the IGP instance 377 to generate its own NRP-specific forwarding tables. Multi- 378 Topology Routing (MTR) is defined in [RFC4915], [RFC5120], and 379 [I-D.ietf-lsr-isis-sr-vtn-mt] or Flex-algo is defined in 380 [I-D.ietf-lsr-flex-algo]. 382 * NRP data plane: Defines the data plane mechanism and the NRP 383 identifier of the network domain managed by the network 384 controller. The data plane mechanism could be based on MPLS or 385 IPv6 forwarding. The container "data plane" is used to specify 386 the NRP data plane encapsulation types and values that are used to 387 identify NRP-specific network resources. The NRP data plane 388 identifier is defined in [I-D.ietf-spring-sr-for-enhanced-vpn] 389 and[I-D.dong-6man-enhanced-vpn-vtn-id]. 391 * NRP steering policy: The leaf-list "color-id" is used for dynamic 392 traffic steering based on SR policy of an NRP and The leaf-list 393 "acl-ref" is used for common traffic steering. 395 5. NRP Yang Module Tree 397 module: ietf-nrp 398 augment /nw:networks/nw:network/nw:network-types: 399 +--rw nrp! 400 augment /nw:networks/nw:network: 401 +--rw nrp 402 +--rw nrp-id? uint32 403 +--rw nrp-name? string 404 +--rw bandwidth-reservation 405 | +--rw (bandwidth-type)? 406 | +--:(bandwidth-value) 407 | | +--rw bandwidth-value? uint64 408 | +--:(bandwidth-percentage) 409 | +--rw bandwidth-percent? rt-types:percentage 410 +--rw control-plane 411 | +--rw topology-ref 412 | +--rw igp-topology-ref 413 | | +--rw network-ref? 414 | | | -> /nw:networks/network/network-id 415 | | +--rw multi-topology-id? uint32 416 | | +--rw flex-algo-id? uint32 417 | +--rw te-topology-identifier 418 | +--rw provider-id? te-global-id 419 | +--rw client-id? te-global-id 420 | +--rw topology-id? te-topology-id 421 +--rw data-plane 422 | +--rw global-resource-identifier 423 | | +--rw nrp-dataplane-ipv6-type 424 | | | +--rw nrp-dp-value? inet:ipv6-address 425 | | +--rw nrp-dataplane-mpls-type 426 | | +--rw nrp-dp-value? uint32 427 | +--rw nrp-aware-dp 428 | +--rw nrp-aware-srv6-type! 429 | +--rw nrp-aware-sr-mpls-type! 430 +--rw steering-policy 431 +--rw color-id* uint32 432 +--rw acl-ref* -> /acl:acls/acl/name 433 augment /nw:networks/nw:network/nw:node: 434 +--rw nrp 435 +--rw nrp-aware-srv6 436 | +--rw nrp-dp-value? srv6-types:srv6-sid 437 +--rw nrp-aware-sr-mpls 438 +--rw nrp-dp-value? rt-types:mpls-label 439 augment /nw:networks/nw:network/nt:link: 440 +--rw nrp 441 | +--rw link-partition-type? identityref 442 | +--rw bandwidth-reservation 443 | | +--rw (bandwidth-type)? 444 | | +--:(bandwidth-value) 445 | | | +--rw bandwidth-value? uint64 446 | | +--:(bandwidth-percentage) 447 | | +--rw bandwidth-percent? rt-types:percentage 448 | +--rw nrp-aware-srv6 449 | | +--rw nrp-dp-value? srv6-types:srv6-sid 450 | +--rw nrp-aware-sr-mpls 451 | +--rw nrp-dp-value? rt-types:mpls-label 452 +--ro statistics 453 +--ro admin-status? te-types:te-admin-status 454 +--ro oper-status? te-types:te-oper-status 455 +--ro one-way-available-bandwidth? 456 | rt-types:bandwidth-ieee-float32 457 +--ro one-way-utilized-bandwidth? 458 | rt-types:bandwidth-ieee-float32 459 +--ro one-way-min-delay? uint32 460 +--ro one-way-max-delay? uint32 461 +--ro one-way-delay-variation? uint32 462 +--ro one-way-packet-loss? decimal64 464 6. NRP Yang Module 466 file "ietf-nrp@2022-01-29.yang" 468 module ietf-nrp { 469 yang-version 1.1; 470 namespace "urn:ietf:params:xml:ns:yang:ietf-nrp"; 471 prefix nrp; 473 import ietf-network { 474 prefix nw; 475 reference 476 "RFC 8345: A YANG Data Model for Network Topologies"; 477 } 478 import ietf-network-topology { 479 prefix nt; 480 reference 481 "RFC 8345: A YANG Data Model for Network Topologies"; 482 } 483 import ietf-routing-types { 484 prefix rt-types; 485 reference 486 "RFC 8294: Common YANG Data Types for the Routing Area"; 487 } 488 import ietf-te-types { 489 prefix te-types; 490 reference 491 "RFC 8776: Traffic Engineering Common YANG Types"; 492 } 493 import ietf-te-packet-types { 494 prefix te-packet-types; 495 reference 496 "RFC 8776: Traffic Engineering Common YANG Types"; 497 } 498 import ietf-srv6-types { 499 prefix srv6-types; 500 } 501 import ietf-inet-types { 502 prefix inet; 503 reference 504 "RFC 6991: Common YANG Data Types"; 505 } 506 import ietf-access-control-list { 507 prefix acl; 508 reference 509 "RFC 8519: YANG Data Model for Network Access Control Lists 510 (ACLs)"; 511 } 513 organization 514 "IETF TEAS Working Group"; 515 contact 516 " 517 WG Web: 518 WG List: 520 Editor: Bo Wu 521 : Dhruv Dhody "; 522 description 523 "This YANG module defines a network data module for 524 NRP(Network Resource Partition). 526 Copyright (c) 2022 IETF Trust and the persons identified as 527 authors of the code. All rights reserved. 529 Redistribution and use in source and binary forms, with or 530 without modification, is permitted pursuant to, and subject to 531 the license terms contained in, the Simplified BSD License set 532 forth in Section 4.c of the IETF Trust's Legal Provisions 533 Relating to IETF Documents 534 (https://trustee.ietf.org/license-info). 536 This version of this YANG module is part of RFC XXXX 537 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 538 for full legal notices."; 540 revision 2022-01-29 { 541 description 542 "This is the initial version of NRP YANG model."; 543 reference 544 "RFC XXX: A YANG Data Model for Network Resource Partition"; 545 } 547 identity link-partition-type { 548 description 549 "Base identity for interface partition type."; 550 } 552 identity virtual-sub-interface-partition { 553 base link-partition-type; 554 description 555 "Identity for virtual interface or sub-interface, e.g. FlexE."; 556 } 558 identity queue-partition { 559 base link-partition-type; 560 description 561 "Identity for queue partition type."; 562 } 564 identity nrp-dataplane-type { 565 description 566 "Base identity for NRP data plane type."; 567 } 569 identity nrp-dataplane-ipv6 { 570 base nrp-dataplane-type; 571 description 572 "Identity for NRP specific packet forwarding of IPv6."; 573 } 575 identity nrp-dataplane-mpls { 576 base nrp-dataplane-type; 577 description 578 "Identity for NRP specific packet forwarding of MPLS."; 579 } 581 identity nrp-dataplane-sr-mpls { 582 base nrp-dataplane-type; 583 description 584 "Identity for NRP specific packet forwarding of SR MPLS."; 585 } 587 identity nrp-dataplane-srv6 { 588 base nrp-dataplane-type; 589 description 590 "Identity for NRP specific packet forwarding of SRv6."; 591 } 593 /* 594 * Groupings 595 */ 597 grouping nrp-bandwidth-reservation { 598 description 599 "Grouping for NRP bandwidth reservation."; 600 container bandwidth-reservation { 601 description 602 "Container for NRP bandwidth reservation."; 603 choice bandwidth-type { 604 description 605 "Choice of bandwidth reservation type."; 606 case bandwidth-value { 607 leaf bandwidth-value { 608 type uint64; 609 units "bps"; 610 description 611 "Bandwidth allocation for the NRP as absolute value."; 612 } 613 } 614 case bandwidth-percentage { 615 leaf bandwidth-percent { 616 type rt-types:percentage; 617 description 618 "Bandwidth allocation for the NRP as a percentage 619 of a link."; 620 } 621 } 622 } 623 } 624 } 626 grouping nrp-control-plane-attributes { 627 description 628 "Grouping for NRP control plane attributes."; 629 container control-plane { 630 description 631 "The container of NRP control plane mechanisms."; 632 container topology-ref { 633 description 634 "Container for topology reference."; 635 container igp-topology-ref { 636 description 637 "Container for IGP topology reference."; 638 uses nw:network-ref; 639 leaf multi-topology-id { 640 type uint32; 641 description 642 "The MT-id of an NRP."; 643 } 644 leaf flex-algo-id { 645 type uint32; 646 description 647 "The flex-algo-id of an NRP."; 648 } 649 } 650 uses te-types:te-topology-identifier; 651 } 652 } 653 } 655 grouping nrp-data-plane-attributes { 656 description 657 "Grouping for NRP data plane attributes."; 658 container data-plane { 659 description 660 "The data plane mechanisms of an NRP. The forwarding plane 661 could be MPLS, IPv6, SRv6, or SR-MPLS."; 662 container global-resource-identifier { 663 description 664 "The container of global NRP data-plane ID."; 665 container nrp-dataplane-ipv6-type { 666 description 667 "The container of IPv6 based NRP data-plane identifier."; 668 leaf nrp-dp-value { 669 type inet:ipv6-address; 670 description 671 "Indicates the IPv6 NRP data-plane identifier."; 672 } 673 } 674 container nrp-dataplane-mpls-type { 675 description 676 "The container of MPLS based NRP data-plane identifier."; 677 leaf nrp-dp-value { 678 type uint32; 679 description 680 "Indicates MPLS metadata values to identify MPLS NRP 681 data plane identifier, e.g. Ancillary data."; 682 } 683 } 685 } 686 container nrp-aware-dp { 687 description 688 "The container of SR based NRP data-plane identifier."; 689 container nrp-aware-srv6-type { 690 presence "Enables SRv6 data plane type."; 691 description 692 "The container of SRv6 based NRP data-plane identifier."; 693 } 694 container nrp-aware-sr-mpls-type { 695 presence "Enables SR MPLS data plane type."; 696 description 697 "The container of SR MPLS based NRP data-plane identifier."; 698 } 699 } 700 } 701 } 703 grouping nrp-traffic-steering-policy { 704 description 705 "The grouping of the NRP traffic steering policy."; 706 container steering-policy { 707 description 708 "The container of a policy set 709 matching an NRP traffic classifier."; 710 leaf-list color-id { 711 type uint32; 712 description 713 "A list of color ID for NRP traffic steering based on 714 SR policy."; 715 } 716 leaf-list acl-ref { 717 type leafref { 718 path "/acl:acls/acl:acl/acl:name"; 719 } 720 description 721 "A list of ACL for NRP traffic classification."; 722 } 723 } 724 } 726 grouping nrp-aware-id { 727 description 728 "The grouping of NRP aware SR ID."; 729 container nrp-aware-srv6 { 730 description 731 "The container of SRv6 based NRP data plane identifier."; 732 leaf nrp-dp-value { 733 type srv6-types:srv6-sid; 734 description 735 "Indicates the SRv6 SID value as the NRP data plane 736 identifier."; 737 } 738 } 739 container nrp-aware-sr-mpls { 740 description 741 "The container of SR MPLS based NRP data plane identifier."; 742 leaf nrp-dp-value { 743 type rt-types:mpls-label; 744 description 745 "Indicates the SR MPLS ID value as the NRP data plane 746 identifier."; 747 } 748 } 749 } 751 grouping nrp-topology-attributes { 752 description 753 "NRP global attributes."; 754 container nrp { 755 description 756 "Containing NRP topology attributes."; 757 leaf nrp-id { 758 type uint32; 759 description 760 "NRP identifier."; 761 } 762 leaf nrp-name { 763 type string; 764 description 765 "NRP Name."; 766 } 767 uses nrp-bandwidth-reservation; 768 uses nrp-control-plane-attributes; 769 uses nrp-data-plane-attributes; 770 uses nrp-traffic-steering-policy; 771 } 772 // nrp 773 } 775 // nrp-node-attributes 777 grouping nrp-node-attributes { 778 description 779 "NRP node scope attributes."; 780 container nrp { 781 description 782 "Containing NRP attributes."; 783 uses nrp-aware-id; 784 } 785 } 787 // nrp-node-attributes 789 grouping nrp-link-attributes { 790 description 791 "NRP link scope attributes."; 792 container nrp { 793 description 794 "Containing NRP attributes."; 795 leaf link-partition-type { 796 type identityref { 797 base link-partition-type; 798 } 799 description 800 "Indicates the resource partition type of a link."; 801 } 802 uses nrp-bandwidth-reservation; 803 uses nrp-aware-id; 804 } 805 } 807 // nrp-statistics 809 grouping statistics-per-nrp { 810 description 811 "Statistics attributes per NRP."; 812 } 814 // nrp-node-statistics 816 grouping statistics-per-node { 817 description 818 "Statistics attributes per NRP node."; 819 } 821 // one-way-performance-metrics 823 grouping one-way-performance-bandwidth { 824 description 825 "Grouping for one-way performance bandwidth."; 826 leaf one-way-available-bandwidth { 827 type rt-types:bandwidth-ieee-float32; 828 units "bytes per second"; 829 default "0x0p0"; 830 description 831 "Available bandwidth that is defined to be NRP link 832 bandwidth minus bandwidth utilization. For a 833 bundled link, available bandwidth is defined to be the 834 sum of the component link available bandwidths."; 835 } 836 leaf one-way-utilized-bandwidth { 837 type rt-types:bandwidth-ieee-float32; 838 units "bytes per second"; 839 default "0x0p0"; 840 description 841 "Bandwidth utilization that represents the actual 842 utilization of the link (i.e. as measured in the router). 843 For a bundled link, bandwidth utilization is defined to 844 be the sum of the component link bandwidth 845 utilizations."; 846 } 847 } 849 // nrp-link-statistics 851 grouping nrp-statistics-per-link { 852 description 853 "Statistics attributes per NRP link."; 854 container statistics { 855 config false; 856 description 857 "Statistics for NRP link."; 858 leaf admin-status { 859 type te-types:te-admin-status; 860 description 861 "The administrative state of the link."; 862 } 863 leaf oper-status { 864 type te-types:te-oper-status; 865 description 866 "The current operational state of the link."; 867 } 868 uses one-way-performance-bandwidth; 869 uses te-packet-types:one-way-performance-metrics-packet; 870 } 871 } 873 augment "/nw:networks/nw:network/nw:network-types" { 874 description 875 "Defines the NRP topology type."; 876 container nrp { 877 presence "Indicates NRP topology"; 878 description 879 "The presence identifies the NRP type."; 880 } 881 } 883 augment "/nw:networks/nw:network" { 884 when 'nw:network-types/nrp:nrp' { 885 description 886 "Augment only for NRP topology."; 887 } 888 description 889 "Augment NRP configuration and state."; 890 uses nrp-topology-attributes; 891 } 893 augment "/nw:networks/nw:network/nw:node" { 894 when '../nw:network-types/nrp:nrp' { 895 description 896 "Augment only for NRP topology."; 897 } 898 description 899 "Augment node configuration and state."; 900 uses nrp-node-attributes; 901 } 903 augment "/nw:networks/nw:network/nt:link" { 904 when '../nw:network-types/nrp:nrp' { 905 description 906 "Augment only for NRP topology."; 907 } 908 description 909 "Augment link configuration and state."; 910 uses nrp-link-attributes; 911 uses nrp-statistics-per-link; 912 } 913 } 915 917 7. Security Considerations 919 The YANG module defined in this document is designed to be accessed 920 via network management protocols such as NETCONF [RFC6241] or 921 RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport 922 layer, and the mandatory-to-implement secure transport is Secure 923 Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the 924 mandatory-to-implement secure transport is TLS [RFC8446]. 926 The NETCONF access control model [RFC8341] provides the means to 927 restrict access for particular NETCONF or RESTCONF users to a 928 preconfigured subset of all available NETCONF or RESTCONF protocol 929 operations and content. 931 There are a number of data nodes defined in this YANG module that are 932 writable/creatable/deletable (i.e., config true, which is the 933 default). These data nodes may be considered sensitive or vulnerable 934 in some network environments. Write operations (e.g., edit-config) 935 to these data nodes without proper protection can have a negative 936 effect on network operations. 938 nrp-link: A malicious client could attempt to remove a link from a 939 topology, add a new link. In each case, the structure of the 940 topology would be sabotaged, and this scenario could, for example, 941 result in an NRP topology that is less than optimal. 943 The entries in the nodes above include the whole network 944 configurations corresponding with the NRP, and indirectly create or 945 modify the PE or P device configurations. Unexpected changes to 946 these entries could lead to service disruption and/or network 947 misbehavior. 949 8. IANA Considerations 951 This document registers a URI in the IETF XML registry [RFC3688]. 952 Following the format in [RFC3688], the following registration is 953 requested to be made: 955 URI: urn:ietf:params:xml:ns:yang:ietf-nrp 956 Registrant Contact: The IESG. 957 XML: N/A, the requested URI is an XML namespace. 959 This document requests to register a YANG module in the YANG Module 960 Names registry [RFC7950]. 962 Name: ietf-nrp 963 Namespace: urn:ietf:params:xml:ns:yang:ietf-nrp 964 Prefix: nrp 965 Reference: RFC XXXX 967 9. Contributor 968 Zhenbin Li 969 Huawei 971 Email: lizhenbin@huawei.com 973 Jie Dong 974 Huawei 976 Email: jie.dong@huawei.com 978 10. References 980 10.1. Normative References 982 [I-D.dong-6man-enhanced-vpn-vtn-id] 983 Dong, J., Li, Z., Xie, C., Ma, C., and G. Mishra, 984 "Carrying Virtual Transport Network (VTN) Identifier in 985 IPv6 Extension Header", Work in Progress, Internet-Draft, 986 draft-dong-6man-enhanced-vpn-vtn-id-06, 24 October 2021, 987 . 990 [I-D.dong-idr-sr-policy-vtn] 991 Dong, J., Hu, Z., and R. Pang, "BGP SR Policy Extensions 992 for Virtual Transport Network", Work in Progress, 993 Internet-Draft, draft-dong-idr-sr-policy-vtn-01, 11 July 994 2021, . 997 [I-D.ietf-lsr-flex-algo] 998 Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and 999 A. Gulko, "IGP Flexible Algorithm", Work in Progress, 1000 Internet-Draft, draft-ietf-lsr-flex-algo-18, 25 October 1001 2021, . 1004 [I-D.ietf-lsr-isis-sr-vtn-mt] 1005 Xie, C., Ma, C., Dong, J., and Z. Li, "Using IS-IS Multi- 1006 Topology (MT) for Segment Routing based Virtual Transport 1007 Network", Work in Progress, Internet-Draft, draft-ietf- 1008 lsr-isis-sr-vtn-mt-02, 13 January 2022, 1009 . 1012 [I-D.ietf-spring-sr-for-enhanced-vpn] 1013 Dong, J., Bryant, S., Miyasaka, T., Zhu, Y., Qin, F., Li, 1014 Z., and F. Clad, "Segment Routing based Virtual Transport 1015 Network (VTN) for Enhanced VPN", Work in Progress, 1016 Internet-Draft, draft-ietf-spring-sr-for-enhanced-vpn-01, 1017 12 July 2021, . 1020 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1021 DOI 10.17487/RFC3688, January 2004, 1022 . 1024 [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. 1025 Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", 1026 RFC 4915, DOI 10.17487/RFC4915, June 2007, 1027 . 1029 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 1030 Topology (MT) Routing in Intermediate System to 1031 Intermediate Systems (IS-ISs)", RFC 5120, 1032 DOI 10.17487/RFC5120, February 2008, 1033 . 1035 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1036 and A. Bierman, Ed., "Network Configuration Protocol 1037 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1038 . 1040 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1041 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1042 . 1044 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1045 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1046 . 1048 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 1049 RFC 7951, DOI 10.17487/RFC7951, August 2016, 1050 . 1052 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1053 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1054 . 1056 [RFC8309] Wu, Q., Liu, W., and A. Farrel, "Service Models 1057 Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, 1058 . 1060 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1061 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1062 . 1064 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 1065 Access Control Model", STD 91, RFC 8341, 1066 DOI 10.17487/RFC8341, March 2018, 1067 . 1069 [RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., 1070 Ananthakrishnan, H., and X. Liu, "A YANG Data Model for 1071 Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 1072 2018, . 1074 [RFC8346] Clemm, A., Medved, J., Varga, R., Liu, X., 1075 Ananthakrishnan, H., and N. Bahadur, "A YANG Data Model 1076 for Layer 3 Topologies", RFC 8346, DOI 10.17487/RFC8346, 1077 March 2018, . 1079 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 1080 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 1081 . 1083 [RFC8795] Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and 1084 O. Gonzalez de Dios, "YANG Data Model for Traffic 1085 Engineering (TE) Topologies", RFC 8795, 1086 DOI 10.17487/RFC8795, August 2020, 1087 . 1089 10.2. Informative References 1091 [I-D.dong-teas-nrp-scalability] 1092 Dong, J., Li, Z., Gong, L., Yang, G., Guichard, J. N., 1093 Mishra, G., and F. Qin, "Scalability Considerations for 1094 Network Resource Partition", Work in Progress, Internet- 1095 Draft, draft-dong-teas-nrp-scalability-00, 17 December 1096 2021, . 1099 [I-D.ietf-opsawg-l3sm-l3nm] 1100 Barguil, S., Dios, O. G. D., Boucadair, M., Munoz, L. A., 1101 and A. Aguado, "A Layer 3 VPN Network YANG Model", Work in 1102 Progress, Internet-Draft, draft-ietf-opsawg-l3sm-l3nm-18, 1103 8 October 2021, . 1106 [I-D.ietf-teas-ietf-network-slices] 1107 Farrel, A., Gray, E., Drake, J., Rokui, R., Homma, S., 1108 Makhijani, K., Contreras, L. M., and J. Tantsura, 1109 "Framework for IETF Network Slices", Work in Progress, 1110 Internet-Draft, draft-ietf-teas-ietf-network-slices-05, 25 1111 October 2021, . 1114 Appendix A. An Example 1116 This section contains an example of an instance data tree in JSON 1117 encoding [RFC7951]. The example instantiates ietf-nrp for the 1118 topology that is depicted in the following diagram. There are three 1119 nodes, D1, D2, and D3. D1 has three termination points, 1-0-1, 1120 1-2-1, and 1-3-1. D2 has three termination points as well, 2-1-1, 1121 2-0-1, and 2-3-1. D3 has two termination points, 3-1-1 and 3-2-1. 1122 In addition there are six links, two between each pair of nodes with 1123 one going in each direction. 1125 +------------+ +------------+ 1126 | D1 | | D2 | 1127 /-\ /-\ /-\ /-\ 1128 | | 1-0-1 | |---------------->| | 2-1-1 | | 1129 | | 1-2-1 | |<----------------| | 2-0-1 | | 1130 \-/ 1-3-1 \-/ \-/ 2-3-1 \-/ 1131 | /----\ | | /----\ | 1132 +---| |---+ +---| |---+ 1133 \----/ \----/ 1134 | | | | 1135 | | | | 1136 | | | | 1137 | | +------------+ | | 1138 | | | D3 | | | 1139 | | /-\ /-\ | | 1140 | +----->| | 3-1-1 | |-------+ | 1141 +---------| | 3-2-1 | |<---------+ 1142 \-/ \-/ 1143 | | 1144 +------------+ 1146 Figure 5: An NRP Instance Example 1148 The corresponding NRP instance data tree is depicted below: 1150 { 1151 "ietf-network:networks":{ 1152 "network":[ 1153 { 1154 "network-types":{ 1155 "ietf-nrp:nrp":{ 1156 } 1157 }, 1158 "network-id":"nrp-example", 1159 "ietf-nrp:nrp":{ 1160 "nrp-id":"NRP1", 1161 "bandwidth-reservation":{ 1162 "bandwidth-value":10000 1163 }, 1164 "control-plane":{ 1165 "topology-ref":{ 1166 "igp-topology-ref":{ 1167 " network-ref":"L3-topology", 1168 " flex-algo-id":129 1169 } 1170 } 1171 }, 1172 "data-plane":{ 1173 "global-resource-identifier":{ 1174 "nrp-dataplane-ipv6-type":{ 1175 " nrp-dp-value:":100 1176 } 1177 } 1178 }, 1179 "steering-policy":{ 1180 "color-id":100 1181 } 1182 }, 1183 "node":[ 1184 { 1185 "node-id":"D1", 1186 "termination-point":[ 1187 { 1188 "tp-id":"1-0-1" 1189 }, 1190 { 1191 "tp-id":"1-2-1" 1192 }, 1193 { 1194 "tp-id":"1-3-1" 1195 } 1196 ] 1197 }, 1198 { 1199 "node-id":"D2", 1200 "termination-point":[ 1201 { 1202 "tp-id":"2-0-1" 1203 }, 1204 { 1205 "tp-id":"2-1-1" 1206 }, 1207 { 1208 "tp-id":"2-3-1" 1209 } 1210 ] 1211 }, 1212 { 1213 "node-id":"D3", 1214 "termination-point":[ 1215 { 1217 }, 1218 { 1219 "tp-id":"3-2-1" 1220 } 1221 ] 1222 } 1223 ], 1224 "ietf-network-topology:link":[ 1225 { 1226 "link-id":"D1,1-2-1,D2,2-1-1", 1227 "source":{ 1228 "source-node":"D1", 1229 "source-tp":"1-2-1" 1230 }, 1231 "destination":{ 1232 "dest-node":"D2", 1233 "dest-tp":"2-1-1" 1234 }, 1235 "ietf-nrp:nrp":{ 1236 "link-partition-type": 1237 "virtual-sub-interface-partition", 1238 "bandwidth-reservation":{ 1239 "bandwidth-value":"10000" 1240 }, 1241 "nrp-aware-srv6":{ 1242 " nrp-dp-value:":101 1243 } 1244 } 1245 }, 1246 { 1247 "link-id":"D2,2-1-1,D1,1-2-1", 1248 "source":{ 1249 "source-node":"D2", 1250 "source-tp":"2-1-1" 1251 }, 1252 "destination":{ 1253 "dest-node":"D1", 1254 "dest-tp":"1-2-1" 1255 }, 1256 "ietf-nrp:nrp":{ 1257 "link-partition-type": 1258 "virtual-sub-interface-partition", 1259 "bandwidth-reservation":{ 1260 "bandwidth-value":"10000" 1261 }, 1262 "nrp-aware-srv6":{ 1263 " nrp-dp-value:":101 1264 } 1265 } 1266 }, 1267 { 1268 "link-id":"D1,1-3-1,D3,3-1-1", 1269 "source":{ 1270 "source-node":"D1", 1271 "source-tp":"1-3-1" 1272 }, 1273 "destination":{ 1274 "dest-node":"D3", 1275 "dest-tp":"3-1-1" 1276 }, 1277 "ietf-nrp:nrp":{ 1278 "link-partition-type": 1279 "virtual-sub-interface-partition", 1280 "bandwidth-reservation":{ 1281 "bandwidth-value":"10000" 1282 }, 1283 "nrp-aware-srv6":{ 1284 " nrp-dp-value:":101 1285 } 1286 } 1287 }, 1288 { 1289 "link-id":"D3,3-1-1,D1,1-3-1", 1290 "source":{ 1291 "source-node":"D3", 1292 "source-tp":"3-1-1" 1293 }, 1294 "destination":{ 1295 "dest-node":"D1", 1296 "dest-tp":"1-3-1" 1297 }, 1298 "ietf-nrp:nrp":{ 1299 "link-partition-type": 1300 "virtual-sub-interface-partition", 1301 "bandwidth-reservation":{ 1302 "bandwidth-value":"10000" 1303 }, 1304 "nrp-aware-srv6":{ 1305 " nrp-dp-value:":101 1306 } 1307 } 1308 }, 1309 { 1310 "link-id":"D2,2-3-1,D3,3-2-1", 1311 "source":{ 1312 "source-node":"D2", 1313 "source-tp":"2-3-1" 1314 }, 1315 "destination":{ 1316 "dest-node":"D3", 1317 "dest-tp":"3-2-1" 1318 }, 1319 "ietf-nrp:nrp":{ 1320 "link-partition-type": 1321 "virtual-sub-interface-partition", 1322 "bandwidth-reservation":{ 1323 "bandwidth-value":"10000" 1324 }, 1325 "nrp-aware-srv6":{ 1326 " nrp-dp-value:":101 1327 } 1328 } 1329 }, 1330 { 1331 "link-id":"D3,3-2-1,D2,2-3-1", 1332 "source":{ 1333 "source-node":"D3", 1334 "source-tp":"3-2-1" 1335 }, 1336 "destination":{ 1337 "dest-node":"D2", 1338 "dest-tp":"2-3-1" 1339 }, 1340 "ietf-nrp:nrp":{ 1341 "link-partition-type": 1343 "virtual-sub-interface-partition", 1344 "bandwidth-reservation":{ 1345 "bandwidth-value":"10000" 1346 }, 1347 "nrp-aware-srv6":{ 1348 " nrp-dp-value:":101 1349 } 1350 } 1351 } 1352 ] 1353 } 1354 ] 1355 } 1356 } 1358 Figure 6: Instance data tree 1360 Authors' Addresses 1362 Bo Wu 1363 Huawei Technologies 1364 101 Software Avenue, Yuhua District 1365 Nanjing 1366 Jiangsu, 210012 1367 China 1369 Email: lana.wubo@huawei.com 1371 Dhruv Dhody 1372 Huawei Technologies 1373 Divyashree Techno Park 1374 Bangalore 560066 1375 Karnataka 1376 India 1378 Email: dhruv.ietf@gmail.com 1380 Ying Cheng 1381 China Unicom 1382 Beijing 1383 China 1385 Email: chengying10@chinaunicom.cn