idnits 2.17.1 draft-shytyi-opsawg-vysm-09.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 : ---------------------------------------------------------------------------- == There are 2 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 215 has weird spacing: '...Balance vFire...' == Line 421 has weird spacing: '...oint-id stri...' == Line 1125 has weird spacing: '...rw link str...' == Line 1127 has weird spacing: '...terface str...' == Line 1129 has weird spacing: '...rw port str...' == (3 more instances...) -- The document date (November 18, 2020) is 1245 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'I-D.ietf-teas-sf-aware-topo-model' is defined on line 911, but no explicit reference was found in the text == Outdated reference: A later version (-12) exists of draft-ietf-teas-sf-aware-topo-model-03 Summary: 0 errors (**), 0 flaws (~~), 10 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Shytyi 3 Internet-Draft L. Beylier 4 Intended status: Informational SFR 5 Expires: May 22, 2021 L. Iannone 6 Telecom ParisTech 7 November 18, 2020 9 A YANG Module for uCPE management. 10 draft-shytyi-opsawg-vysm-09 12 Abstract 14 This document provides a YANG data model for uCPE management (VYSM) 15 and definition of the uCPE equipment. The YANG Model serves as a 16 base framework for managing an universal Customer-Premises Equipment 17 (uCPE) subsystem. The model can be used by a Network Orchestrator. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on May 22, 2021. 36 Copyright Notice 38 Copyright (c) 2020 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (https://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 55 3. Universal CPE . . . . . . . . . . . . . . . . . . . . . . . . 3 56 3.1. uCPE purpose . . . . . . . . . . . . . . . . . . . . . . 4 57 3.2. uCPE VNF ecosystem example . . . . . . . . . . . . . . . 4 58 3.3. Internal uCPE service example . . . . . . . . . . . . . . 5 59 4. YANG Model for uCPE management . . . . . . . . . . . . . . . 6 60 5. Components for uCPE Management . . . . . . . . . . . . . . . 7 61 6. Diagram overview of YANG Data Model tree for uCPE management 9 62 7. Logical Network Elements extension YANG Model . . . . . . . . 11 63 8. Security Considerations . . . . . . . . . . . . . . . . . . . 20 64 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 65 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 66 11. Normative References . . . . . . . . . . . . . . . . . . . . 21 67 Appendix A. Example of the uCPE resources management . . . . . . 21 68 Appendix B. Example of the uCPE resources management 69 (deprecated) . . . . . . . . . . . . . . . . . . . . 25 70 Appendix C. Deprecated VNF YANG Model . . . . . . . . . . . . . 26 71 Appendix D. XML example of deprecated YANG model . . . . . . . . 32 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 74 1. Introduction 76 Network Function Virtualization is a technology that allows to 77 virtualize the network services running on dedicaded hardware. This 78 technology became a base for universal Customer-Premises Equipment 79 (uCPE). This document defines the uCPE as harware with x86 80 capabilities that has a hypervisor. In other words, uCPE is a host 81 that may run multiple Virtual Machines with guest OSs, where each 82 Guest OS may represent a Physical Network Function. This document 83 presents the YANG Model (VYSM) to manage from an Orchestrator the 84 infrastructure inside the uCPE. 86 2. Terminology 88 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 89 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 90 document are to be interpreted as described in RFC 2119 [RFC2119]. 92 Link - is an entity that enables link layer communication of nodes. 94 Port - node connector to the link. 96 NE - Network Element. 98 NSYM - Network Yang Module. 100 VYSM - VNF YANG Model. 102 3. Universal CPE 104 Firstly, this document defines the platform that is controlled with 105 VYSM - universal CPE (uCPE). The uCPE as harware with x86 106 capabilities that is generally running Linux distibution with 107 additinal virtualisation layer. Virtualization layer provides 108 virtual compute, virtual storage and virtual network resources. Each 109 VNF runnning in the uCPE requires the amount of virtual resources 110 (for example: 4 vCPUs, 4GB RAM, 40GB storege, 4 vPorts). VNFs MAY be 111 interconnected between each other and physical ports via Virtual 112 Networks. Topology construction and VM lifecycle management is 113 allowed via high level interface (Configuration can be done in the 114 same transaction). The figure below presents the uCPE architecture. 116 ----------------------------------------|-------------- 117 VNF1 VNF2 VNF3 | 118 ----------------------------------------| 119 Virtual Virtual Virtual | uCPE software 120 Compute Storage Networks| 121 ----------------------------------------|--------------- 122 PHY x86 RAM+PHY PHYsical| uCPE Hardware 123 processor storage ports | 125 The next elements can be managed in the uCPE: 127 o Virtual Network Funcitons: 129 * Number of assigned vCPUs. 131 * Size of allocated RAM. 133 * VNF day0 config (bootstrap). 135 * vLinks that are attached to the VNF. 137 o Virtual Switches: 139 * vLinks that are attached to the vSW. 141 o Virtual Links(vLinks). 143 o Physical Ports of the uCPE. 145 3.1. uCPE purpose 147 o uCPE replaces multiple types of equipment (Node#1 - Node#5) with 1 148 unit by virtualizing them as Virtual Network Functions on the top 149 of NFVIs: 151 : NODE #1 : NODE #2 : NODE #3 :NODE #4: NODE #5 : 152 : +-----------+ : +------+ : +------+ : +--+ : +-----+ : 153 ..-----|Aggregation|----|CE-L2 |----| CE-L3|----|FW|----|SDWAN|---LAN 154 : | switch | : | | : | | : | | : | | : 155 : +-----------+ : +------+ : +------+ : +--+ : +-----+ : 157 : NODE #1 : NODE #2 : 158 : : +.........................................+ : 159 : +-----------+ : | +------+ +------+ +--+ +-----+ | : 160 ..---|Aggregation|---|--|CE-L2 |----| CE-L3|----|FW|---|SDWAN|-|---LAN 161 : | switch | : | | | | | | | | | | : 162 : +-----------+ : | +------+ +------+ +--+ +-----+ | : 163 : : | universal Customer-Premises Equipment | : 164 : : +-----------------------------------------+ : 166 o uCPE falicitates the interconnection between the Network Funtions 167 (NF) as interconnection between NF is performed via virtual 168 links(that is part of the uCPE management). That meens that no 169 need to hire technichian to cable the equipment, it could be done 170 via orchestrator. 172 o uCPE falicitates the 0day configuration of the VNFs as its 0day 173 configuration can be putted remotely. 175 3.2. uCPE VNF ecosystem example 177 uCPE supports a Virtual Network Funcitons of different type: 179 o SD-WAN 181 o vRouter 183 o vFirewall 184 o vLB(vLoad Balancer) 186 o vCGNAT(vCarrier Grade NAT) 188 o virtual WAN Optimistaion 190 o vWireless LAN controller 192 o Other... 194 3.3. Internal uCPE service example 196 The VNF in the uCPE could be a vRouter or vFirewall or an SD-WAN that 197 is not a default part of virtual network resources of the uCPE. 198 Multiple VNFs MAY be instantiated in the uCPE. With support of links 199 and swithes, VNFs MAY participate a service chains. Example of 200 service chains (Note that virtual switch "vs(WAN)" connected to LAN 201 ports and vSW(WAN) is connected to WAN ports): 203 o vSW(WAN)-l1-vRouter-l2-vSW(LAN). 205 o vSW(WAN)-l1-vRouter-l2-vSW(Service)-l3-vFirewall-l4-vSW(LAN). 207 o vSW(WAN)-l1-vRouter-l2-vSW(Service1)-l3-vFirewall-l4- 208 vSW(Service2)-l5-SD-WAN-l6-vSW(LAN). 210 o vSW(WAN)-l1-SDWAN-l2-vSW(Service)-l3-vFirewall-l4-vSW(LAN). 212 o 214 vSW(WAN1)--vRouter--+ 215 +--vLoadBalance vFirewall--vSW(LAN) 216 vSW(WAN2)--vRouter--+ | | 217 +-vSW(Service1)+ 219 o 221 vSW(WAN1)--vRouter(ISP1)--+ 222 +--SD-WAN vFirewall--vSW(LAN) 223 vSW(WAN2)--vRouter(ISP2)--+ | | 224 +-vSW(Service1)+ 226 4. YANG Model for uCPE management 228 Secondly, this document defines and classifies the YANG Model for 229 uCPE Management. This Module is modeled representation of the 230 specific network requirements. It provides abstraction of network 231 configuration and operations. The YANG Model for uCPE Management 232 does not describe all configuration to be performed on the devices, 233 but provides the configuration that is required for the "Network to 234 Network Element(s)" decomposition process RFC 8199 [RFC8199]. 235 Example of the decomposition is presented in the figure below. 237 The Network YANG module exposes the configuration commands via the 238 Northbound interfaces of the orchestrator. Therefore the set of the 239 commands modeled in the VYSM can be inputed via Notrhbound 240 interfaces(for example CLI). In the example the command "vm VNF1" is 241 passed via Northbound interface to the orchestrator. It defines the 242 virtual machine name. Further the same configuration MAY be 243 transormed to the one or multiple Network Element payloads (for 244 example xml for NETCONF) that carry an equivalent of commands such as 245 "nf nf-name VNF1" 246 +-+-+-+-+-+-+-+-+-+ 247 | | 248 | config t | 249 | vm VNF1 | 250 +-+-+-+-+-+-+-+-+-+ 251 # 252 # 253 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 254 : : 255 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ : 256 : | Network YANG Module | <= scope of this document : 257 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ : 258 : # : 259 : ############################## : 260 : # # # : 261 : '---------' '------------' '-----------' : 262 : 'Module1 ' ' Module 2 ' ' Module3 ' : 263 : '---------' '------------' '-----------' : 264 : # # # : 265 : # # ####################### : 266 : #### ############## # : 267 : # # # : 268 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 269 # # # 270 Network # element 1 Network # element 2 Network # element3 271 ++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+ 272 | domains domain VNF1| |tenants tenant name VNF1| |nf nf-name VNF1| 273 ++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+ 275 5. Components for uCPE Management 277 This section provides a components overview to manage the uCPE. 279 There are multiple RFCs and drafts produced by the IETF community, 280 that are referenced in the YANG tree to manage the uCPE. Each 281 document produced by the IETF covers a part of uCPE Management. The 282 list of the documents is provided below: 284 o [RFC8530] - logical network elements (VNFs) properties. 286 o [RFC8345] - definition of networks, nodes, node-termination- 287 points: network includes the uCPE with uCPE's physical termination 288 points. 290 o [I-D.ietf-teas-sf-aware-topo-model]physical ports and service 291 functions (VNFs) interconnection matrixes (PhyPort-VNF, VNF-VNF). 293 o This document itself provides yang modules that completes the 294 existing documents produced by IETF. 296 This document introduces yang modules for 'logical network elements 297 properties(VNFs)" part: 299 o day0-info: mapping between variables inside of the bootstap config 300 and required values in the list "day0-info". In the bootstap 301 config the variable could be putted instead value. The value 302 could be set in the day0-info part (check the YANG model) and 303 after the value in the list will be mapped to the variable in the 304 bootstrap config. 306 o vCPU/vRAM/vDisk/VNF-ports leafs and lists. 308 The minimal list of yang models required for compilation of the YANG 309 tree to manage the uCPE is presented below: 311 o ieee-dot1Q-types 313 o ietf-interfaces 315 o ietf-ip 317 o ietf-logical-network-element 319 o ietf-network 321 o ietf-network-instance 323 o ietf-ietf-network-topology 325 o ietf-routing-types 327 o ietf-te-topology 329 o ietf-te-topology-sf 331 o ietf-te-types 333 o ietf-yang-schema-mount 335 o The YANG modules introduced in this document: 337 o 339 * ietf-ucpe-lne-properties 340 * ietf-ucpe-lt-virtual-link-id 342 * ietf-ucpe-ni-properties 344 * ietf-ucpe-node-type 346 6. Diagram overview of YANG Data Model tree for uCPE management 348 This section provides an overview of the Data YANG Model that MAY be 349 made with "pyang" utility. The figure below presents the tree 350 diagram. 352 module: ietf-network 353 +--rw networks 354 +--rw network* [network-id] 355 +--rw network-id network-id 356 +--rw network-types 357 | +--rw tet:te-topology! 358 | +--rw tet-sf:sf! 359 +--rw supporting-network* [network-ref] 360 | +--rw network-ref -> /networks/network/network-id 361 +--rw node* [node-id] 362 +--rw node-id node-id 363 +--rw supporting-node* [network-ref node-ref] 364 | +--rw network-ref -> 365 | | ../../../supporting-network/network-ref 366 | +--rw node-ref -> /networks/network/node/node-id 367 +--rw nt:termination-point* [tp-id] 368 | +--rw nt:tp-id tp-id 369 | +--rw nt:supporting-termination-point* 370 | | [network-ref node-ref tp-ref] 371 | +--rw nt:network-ref 372 | | -> ../../../nw:supporting-node/network-ref 373 | +--rw nt:node-ref 374 | | -> ../../../nw:supporting-node/node-ref 375 | +--rw nt:tp-ref 376 | -> /nw:networks/network[nw:network-id= 377 | current()/../network-ref]/node 378 | [nw:node-id=current()/../node-ref]/ 379 | termination-point/tp-id 380 +--rw tet:te-node-id? te-types:te-node-id 381 +--rw tet:te! 382 +--rw tet:te-node-template* 383 | -> ../../../../te/templates/ 384 | node-template/name {template}? 385 +--rw tet:te-node-attributes 386 | ... 388 +--rw tet-sf:service-function 389 +--rw tet-sf:connectivity-matrices 390 | +--rw tet-sf:connectivity-matrix* [id] 391 | +--rw tet-sf:id uint32 392 | +--rw tet-sf:from 393 | | +--rw tet-sf:service-function-id? string 394 | | +--rw tet-sf:sf-connection-point-id? string 395 | +--rw tet-sf:to 396 | | +--rw tet-sf:service-function-id? string 397 | | +--rw tet-sf:sf-connection-point-id? string 398 | +--rw tet-sf:enabled? boolean 399 | +--rw tet-sf:direction? connectivity-direction 400 | +--rw tet-sf:virtual-link-id? string 401 +--rw tet-sf:link-terminations 402 +--rw tet-sf:link-termination* [id] 403 +--rw tet-sf:id uint32 404 +--rw tet-sf:from 405 | +--rw tet-sf:tp-ref? -> ../../../../ 406 | ../../../nt:termination-point/tp-id 407 +--rw tet-sf:to 408 | +--rw tet-sf:service-function-id? string 409 | +--rw tet-sf:sf-connection-point-id? string 410 +--rw tet-sf:enabled? boolean 411 +--rw tet-sf:direction? connectivity-direction 413 logical-network-elements 414 +--rw logical-network-element* [name] 415 +--rw name string 416 +--rw managed? boolean 417 +--rw description? string 418 +--rw root 419 +--rw logical-network-elements-properties 420 +--rw sf-connection-points* [sf-connection-point-id] 421 | +--rw sf-connection-point-id string 422 +--rw ram? uint64 423 +--rw cpu? uint64 424 +--rw storages* [id] 425 | +--rw id string 426 | +--rw location? string 427 +--rw day0-config 428 +--rw location? string 429 +--rw day0-var-path? string 430 +--rw variable* [name] 431 +--rw name string 432 +--rw value? string 434 ietf-network-instance 435 +--rw network-instances 436 +--rw network-instance* [name] 437 +--rw name string 438 +--rw enabled? boolean 439 +--rw description? string 440 +--rw (ni-type)? 441 +--rw (root-type) 442 +--:(vrf-root) 443 | +--rw vrf-root 444 +--:(vsi-root) 445 | +--rw vsi-root 446 | +--rw ietf-ucpe-ni:network-instance-properties 447 | +--rw ietf-ucpe-ni:sf-connection-points* 448 | | | [sf-connection-point-id] 449 | | +--rw ietf-ucpe-ni:sf-connection-point-id 450 | | | string 451 | | +--rw ietf-ucpe-ni:dot1q-vlan 452 | | +--rw ietf-ucpe-ni:access-tag? 453 | | | d1q:vid-range 454 | | +--rw ietf-ucpe-ni:trunk-allowed-vlans? 455 | | | d1q:vid-range 456 | | +--rw ietf-ucpe-ni:port-mode? 457 | | enumeration 458 | +--rw ietf-ucpe-ni:supporting-node? 459 | -> /nw:networks/network/node/node-id 460 +--:(vv-root) 461 +--rw vv-root 463 7. Logical Network Elements extension YANG Model 465 This section provides a YANG models that address uCPE resources 466 management. 468 file "ietf-ucpe-lne-properties@2019-11-21.yang" 469 module ietf-ucpe-lne-properties { 470 yang-version 1.1; 471 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-lne-properties"; 472 prefix ietf-ucpe; 474 import ietf-logical-network-element { 475 prefix lne; 476 reference 477 "RFC 8530: YANG Model for Logical Network Elements"; 478 } 479 organization 480 "SFR"; 481 contact 482 "Dmytro Shytyi 483 EMail:ietf.dmytro@shytyi.net"; 484 description 485 "This is a Network Function Virtualization (NFV) YANG 486 service model. 488 Copyright (c) 2019 IETF Trust and the persons identified as 489 authors of the code. All rights reserved. 491 Redistribution and use in source and binary forms, with or 492 without modification, is permitted pursuant to, and subject to 493 the license terms contained in, the Simplified BSD License set 494 forth in Section 4.c of the IETF Trust's Legal Provisions 495 Relating to IETF Documents 496 (https://trustee.ietf.org/license-info). 498 This version of this YANG module is part of RFC XXXX 499 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 500 for full legal notices."; 502 revision 2019-11-21 { 503 description 504 "Augmentation of RFC 8530"; 505 reference 506 "draft-shytyi-opsawg-vysm-07"; 507 } 508 revision 2019-10-28 { 509 description 510 "Yang model with vPorts assigned to the interfaces"; 511 reference 512 "draft-shytyi-opsawg-vysm-05"; 513 } 514 revision 2019-10-19 { 515 description 516 "Yang model was cleaned. Interfaces added"; 517 reference 518 "draft-shytyi-opsawg-vysm-04"; 519 } 520 revision 2019-09-16 { 521 description 522 "Added 0day config for VNFs. 523 Yang model modified according 524 to the received comments."; 525 reference 526 "draft-shytyi-opsawg-vysm-00"; 528 } 529 revision 2018-01-07 { 530 description 531 "Initial revision."; 532 reference 533 "draft-shytyi-netmod-vysm-01"; 534 } 536 augment "/lne:logical-network-elements/lne:logical-network-element" { 537 container logical-network-element-properties { 538 list sf-connection-points { 539 key "sf-connection-point-id"; 540 leaf sf-connection-point-id { 541 type string; 542 description 543 "Name of the connector"; 544 } 545 description 546 "Connection points of logical-network-element"; 547 } 548 description 549 "Set of Virtual Network Function connectors"; 550 leaf ram { 551 type uint64; 552 description 553 "Size of RAM to allocate for 554 the Guest OS"; 555 } 556 leaf cpu { 557 type uint64; 558 description 559 "Number of vCPUs to 560 allocate for the Guest OS"; 561 } 562 list storages { 563 key "id"; 564 leaf id { 565 type string; 566 description 567 "Number of 568 vDisk attached to the VM"; 569 } 570 leaf location { 571 type string; 572 description 573 "External location where 574 the image (ex.qcow2) is saved."; 575 } 576 description 577 "Virtual storge/vDisk 578 attached to the Virtual Machine"; 579 } 580 container day0-config { 581 leaf location { 582 type string; 583 description 584 "0day configuration location"; 585 } 586 leaf day0-var-path { 587 type string; 588 description 589 "path of the file 590 that contains the 0day variables"; 591 } 592 list variable { 593 key "name"; 594 leaf name { 595 type string; 596 description 597 "variable name"; 598 } 599 leaf value { 600 type string; 601 description 602 "variable value"; 603 } 604 description 605 "list of variables"; 606 } 607 description 608 "0day configuration:init config"; 609 } 610 } 611 description 612 "Properties of logic-network-element"; 613 } 614 } 616 618 file "ietf-ucpe-ni-properties@2019-11-27.yang" 619 module ietf-ucpe-ni-properties { 620 yang-version 1.1; 621 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-ni-properties"; 622 prefix ietf-ucpe-ni; 623 import ieee-dot1Q-types{ 624 prefix d1q; 625 reference 626 "Prefix dot1Q-types. 627 Institute of Electrical and Electronics Engineers"; 628 } 629 import ietf-logical-network-element { 630 prefix lne; 631 reference 632 "RFC 8530: YANG Model for Logical Network Elements"; 633 } 634 import ietf-network{ 635 prefix nw; 636 reference 637 "RFC 8345: YANG Data Model for Network Topologies"; 638 } 639 import ietf-network-instance{ 640 prefix ni; 641 reference 642 "RFC 8529: YANG Data Model for Network Instances"; 643 } 645 organization 646 "SFR"; 647 contact 648 "Dmytro Shytyi 649 EMail:ietf.dmytro@shytyi.net"; 650 description 651 "This is a YANG data model that 652 extends Network Instance properties. 654 Copyright (c) 2019 IETF Trust and the persons identified as 655 authors of the code. All rights reserved. 657 Redistribution and use in source and binary forms, with or 658 without modification, is permitted pursuant to, and subject to 659 the license terms contained in, the Simplified BSD License set 660 forth in Section 4.c of the IETF Trust's Legal Provisions 661 Relating to IETF Documents 662 (https://trustee.ietf.org/license-info). 664 This version of this YANG module is part of RFC XXXX 665 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 666 for full legal notices."; 668 revision 2019-11-27 { 669 description 670 "Added VLANs"; 671 reference 672 "draft-shytyi-opsawg-vysm-07"; 673 } 674 revision 2019-11-21 { 675 description 676 "Augmentation of RFC 8530"; 677 reference 678 "draft-shytyi-opsawg-vysm-07"; 679 } 680 revision 2019-10-28 { 681 description 682 "Yang model with vPorts assigned to the interfaces"; 683 reference 684 "draft-shytyi-opsawg-vysm-05"; 685 } 686 revision 2019-10-19 { 687 description 688 "Yang model was cleaned. Interfaces added"; 689 reference 690 "draft-shytyi-opsawg-vysm-04"; 691 } 692 revision 2019-09-16 { 693 description 694 "Added 0day config for VNFs."; 695 reference 696 "draft-shytyi-opsawg-vysm-00"; 697 } 698 revision 2018-01-07 { 699 description 700 "Initial revision."; 701 reference 702 "draft-shytyi-netmod-vysm-01"; 703 } 705 augment "/ni:network-instances/ni:network-instance/" 706 + "ni:root-type/ni:vsi-root" { 707 container network-instance-properties { 708 list sf-connection-points { 709 key "sf-connection-point-id"; 710 leaf sf-connection-point-id { 711 type string; 712 description 713 "Name of the connector"; 714 } 715 container dot1q-vlan{ 716 leaf access-tag{ 717 type d1q:vid-range; 718 description 719 "Acccess tag"; 720 } 721 leaf trunk-allowed-vlans{ 722 type d1q:vid-range; 723 } 724 leaf port-mode{ 725 type enumeration{ 726 enum trunk; 727 enum access; 728 } 729 } 730 description 731 "Dot1q encapsulation parameters"; 732 } 733 description 734 "Connection points of logical-network-element"; 735 } 736 description 737 "Set of Virtual Network Function connectors"; 738 leaf supporting-node { 739 type leafref{ 740 path "/nw:networks/nw:network/nw:node/nw:node-id"; 741 } 742 description 743 "The reference to a physical node which 744 hosts the logical element"; 745 } 746 } 747 description 748 "Properties of network instance"; 749 } 750 } 751 753 file "ietf-ucpe-node-type@2020-02-14.yang" 754 module ietf-ucpe-node-type { 755 yang-version 1.1; 756 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-node-type"; 757 prefix node-type; 758 import ietf-network{ 759 prefix nw; 760 reference 761 "RFC 8345: YANG Data Model for Network Topologies"; 762 } 763 organization 764 "SFR"; 765 contact 766 "Dmytro Shytyi 767 EMail:ietf.dmytro@shytyi.net"; 768 description 769 "This is a YANG data model that extends node-type. 771 Copyright (c) 2019 IETF Trust and the persons identified as 772 authors of the code. All rights reserved. 774 Redistribution and use in source and binary forms, with or 775 without modification, is permitted pursuant to, and subject to 776 the license terms contained in, the Simplified BSD License set 777 forth in Section 4.c of the IETF Trust's Legal Provisions 778 Relating to IETF Documents 779 (https://trustee.ietf.org/license-info). 781 This version of this YANG module is part of RFC XXXX 782 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 783 for full legal notices."; 785 revision 2020-02-14 { 786 description 787 "Added node type"; 788 reference 789 "draft-shytyi-opsawg-vysm-08"; 790 } 791 identity node-type { 792 description 793 "Base identity for node-type."; 794 } 795 identity ucpe { 796 base node-type; 797 description 798 "Identity for mail application."; 799 } 800 augment "/nw:networks/nw:network/nw:node" { 801 leaf node-type { 802 type identityref{ 803 base node-type; 804 } 806 description 807 "Properties of network instance"; 808 } 809 } 810 } 811 813 file "ietf-ucpe-lt-virtual-link-id@2020-02-14.yang" 814 module ietf-ucpe-lt-virtual-link-id { 815 yang-version 1.1; 816 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-lt-virtual-link-id"; 817 prefix lt-vlink-id; 818 import ietf-network{ 819 prefix nw; 820 reference 821 "RFC 8345: YANG Data Model for Network Topologies"; 823 } 824 import ietf-te-topology { 825 prefix "tet"; 826 reference 827 "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic 828 Engineering (TE) Topologies"; 829 } 830 import ietf-te-topology-sf{ 831 prefix "tet-sf"; 832 reference "RFC XXXX: SF Aware TE Topology YANG Model"; 833 } 834 organization 835 "SFR"; 836 contact 837 "Dmytro Shytyi 838 EMail:ietf.dmytro@shytyi.net"; 839 description 840 "This is a YANG data model that extends link-termination of 841 service function vith virtual link. 843 Copyright (c) 2019 IETF Trust and the persons identified as 844 authors of the code. All rights reserved. 846 Redistribution and use in source and binary forms, with or 847 without modification, is permitted pursuant to, and subject to 848 the license terms contained in, the Simplified BSD License set 849 forth in Section 4.c of the IETF Trust's Legal Provisions 850 Relating to IETF Documents 851 (https://trustee.ietf.org/license-info). 853 This version of this YANG module is part of RFC XXXX 854 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 855 for full legal notices."; 857 revision 2020-02-14 { 858 description 859 "Added virtual link id"; 860 reference 861 "draft-shytyi-opsawg-vysm-08"; 862 } 863 augment "/nw:networks/nw:network/nw:node/tet:te/" 864 + "tet:te-node-attributes/tet-sf:service-function/" 865 + "tet-sf:link-terminations/tet-sf:link-termination"{ 866 leaf virtual-link-id { 867 type string; 868 description 869 "Virtual link id between equipment and service function"; 870 } 871 description 872 "Virtual link id between equipment and service function"; 873 } 874 } 875 877 8. Security Considerations 879 At this time, no security considerations are addressed by this memo. 881 9. IANA Considerations 883 No request to IANA at this time. 885 10. Acknowledgements 887 the authors would like to thank: 889 o Mahesh Jethanandani. 891 o Robert Varga. 893 o Bill Wu. 895 o Joe Clarke. 897 o Tom Petch. 899 o Martin Bjorklund. 901 o Schonwalder Jurgen. 903 o Dean Bogdanovic. 905 o Bo Wu. 907 for their valuable comments. 909 11. Normative References 911 [I-D.ietf-teas-sf-aware-topo-model] 912 Bryskin, I., Liu, X., Lee, Y., Guichard, J., Contreras, 913 L., Ceccarelli, D., and J. Tantsura, "SF Aware TE Topology 914 YANG Model", draft-ietf-teas-sf-aware-topo-model-03 (work 915 in progress), March 2019. 917 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 918 Requirement Levels", BCP 14, RFC 2119, 919 DOI 10.17487/RFC2119, March 1997, 920 . 922 [RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module 923 Classification", RFC 8199, DOI 10.17487/RFC8199, July 924 2017, . 926 [RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., 927 Ananthakrishnan, H., and X. Liu, "A YANG Data Model for 928 Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 929 2018, . 931 [RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 932 Liu, "YANG Model for Logical Network Elements", RFC 8530, 933 DOI 10.17487/RFC8530, March 2019, 934 . 936 Appendix A. Example of the uCPE resources management 938 This section provides an overview of the YIN format. 940 941 942 network-1 943 944 945 946 947 948 949 ucpe1 950 0.0.0.0 953 954 955 957 958 959 1 960 961 VMone 962 1 963 964 965 SwitchOne 966 11 967 968 l11 969 970 971 2 972 973 VMtwo 974 1 975 976 977 SwitchOne 978 12 979 980 l12 981 982 983 3 984 985 VMthree 986 1 987 988 989 SwitchOne 990 13 991 992 l13 993 994 995 4 996 997 VMfour 998 1 999 1000 1001 SwitchOne 1002 14 1003 1004 l14 1005 1006 1007 1008 1009 1010 1011 1012 1014 1016 1017 VMfour 1018 1020 1021 1 1022 1023 ucpe1 1024 1024 1025 4 1026 1027 1 1028 vm4.qcow2 1029 1030 1031 1032 1033 VMone 1034 1036 1037 1 1038 1039 ucpe1 1040 1024 1041 4 1042 1043 1 1044 vm1.qcow2 1045 1046 1047 1048 1049 VMthree 1050 1052 1053 1 1054 1055 ucpe 1056 1024 1057 4 1058 1059 1 1060 vm3qcow2 1061 1062 1063 1064 1065 VMtwo 1066 1068 1069 1 1070 1071 ucpe1 1072 1024 1073 4 1074 1075 1 1076 vm4.iso 1077 1078 1079 1080 1081 1083 1084 SwitchOne 1085 1087 1088 10 1089 1090 112 1091 113 1092 114 1093 trunk 1094 1095 1096 1097 11 1098 1099 1100 111 1101 1102 1103 12 1104 1105 1106 13 1107 1108 1109 14 1110 1111 ucpe1 1112 1113 1114 1116 Appendix B. Example of the uCPE resources management (deprecated) 1118 This section provides an overview of the deprecated YANG Model that 1119 MAY give an alternative view on the uCPE management. 1121 module: ietf-example-ucpe 1122 +--rw ucpe* [name] 1123 +--rw name string 1124 +--rw links* [link] 1125 | +--rw link string 1126 +--rw phyInterfaces* [interface] 1127 | +--rw interface string 1128 | +--rw ports* [port] 1129 | +--rw port string 1130 | +--rw link? -> ../../../links/link 1131 +--rw switches* [switch] 1132 | +--rw switch string 1133 | +--rw ports* [port] 1134 | +--rw port string 1135 | +--rw name? string 1136 | +--rw link? -> ../../../links/link 1137 +--rw vms* [vm] 1138 +--rw vm string 1139 +--rw ports* [port] 1140 | +--rw port string 1141 | +--rw name? string 1142 | +--rw link? -> ../../../links/link 1143 +--rw ram? uint64 1144 +--rw cpu? uint64 1145 +--rw storages* [id] 1146 | +--rw id string 1147 | +--rw location? string 1148 +--rw day0-config 1149 +--rw location? string 1150 +--rw day0-var-path? string 1151 +--rw variable* [name] 1152 +--rw name string 1153 +--rw value? string 1155 Appendix C. Deprecated VNF YANG Model 1157 This section provides a deprecated yang model that addresses the 1158 configuration of the uCPE resources presented above. 1160 file "ietf-example-ucpe@2019-10-28.yang" 1161 module ietf-example-ucpe { 1162 namespace "urn:ietf:params:xml:ns:yang:ietf-example-ucpe"; 1163 prefix ietf-example-ucpe; 1165 organization 1166 "SFR"; 1168 contact 1169 "Dmytro Shytyi 1170 EMail:ietf.dmytro@shytyi.net"; 1171 description 1172 "This is a Network Function Virtualization (NFV) YANG 1173 service model. 1175 Copyright (c) 2019 IETF Trust and the persons identified as 1176 authors of the code. All rights reserved. 1178 Redistribution and use in source and binary forms, with or 1179 without modification, is permitted pursuant to, and subject to 1180 the license terms contained in, the Simplified BSD License set 1181 forth in Section 4.c of the IETF Trust's Legal Provisions 1182 Relating to IETF Documents 1183 (https://trustee.ietf.org/license-info). 1185 This version of this YANG module is part of RFC XXXX 1186 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 1187 for full legal notices."; 1189 revision 2019-10-28 { 1190 description 1191 "Yang model with vPorts assigned to the interfaces"; 1192 reference 1193 "draft-shytyi-opsawg-vysm-05"; 1194 } 1195 revision 2019-10-19 { 1196 description 1197 "Yang model was cleaned. Interfaces added"; 1198 reference 1199 "draft-shytyi-opsawg-vysm-04"; 1200 } 1201 revision 2019-09-16 { 1202 description 1203 "Added 0day config for VNFs. 1204 Yang model modified according 1205 to the received comments."; 1206 reference 1207 "draft-shytyi-opsawg-vysm-00"; 1208 } 1209 revision 2018-01-07 { 1210 description 1211 "Initial revision."; 1212 reference 1213 "draft-shytyi-netmod-vysm-01"; 1214 } 1215 list ucpe { 1216 key "name"; 1217 leaf name { 1218 type string; 1219 description 1220 "ID of uCPE where 1221 a service is instantiated"; 1222 } 1223 list links { 1224 key "link"; 1225 leaf link { 1226 type string; 1227 description 1228 "Name of the virtual link from the pool 1229 of the links"; 1230 } 1231 description 1232 "Pool of the virtual links that connect VMs and 1233 Interfaces"; 1234 } 1235 list phyInterfaces { 1236 key "interface"; 1237 leaf interface { 1238 type string; 1239 description 1240 "Name of physical interface"; 1241 } 1242 list ports { 1243 key "port"; 1244 leaf port { 1245 type string; 1246 description 1247 "Name of the connector"; 1248 } 1249 leaf link { 1250 type leafref { 1251 path "../../../links/link"; 1252 } 1253 description 1254 "Link that is connected to 1255 the port via connector"; 1256 } 1257 description 1258 "Set of the connectors the 1259 physical interface has"; 1260 } 1261 description 1262 "Set of physical interfaces"; 1264 } 1265 list switches { 1266 key "switch"; 1267 leaf switch { 1268 type string; 1269 description 1270 "Name of the forwarding domain"; 1271 } 1272 list ports { 1273 key "port"; 1274 leaf port { 1275 type string; 1276 description 1277 "Name of the connector"; 1278 } 1279 leaf name { 1280 type string; 1281 description 1282 "Name of the 1283 subconnector"; 1284 } 1285 leaf link { 1286 type leafref { 1287 path "../../../links/link"; 1288 } 1289 description 1290 "Link that is connected to the 1291 switch via port"; 1292 } 1293 description 1294 "Set of the connectors the 1295 forwarding domain has"; 1296 } 1297 description 1298 "Set of the forwarding domains"; 1299 } 1300 list vms { 1301 key "vm"; 1302 leaf vm { 1303 type string; 1304 description 1305 "ID of the Virtual Machine"; 1306 } 1307 list ports { 1308 key "port"; 1309 leaf port { 1310 type string; 1311 description 1312 "Name of the connector"; 1313 } 1314 leaf name { 1315 type string; 1316 description 1317 "Name of 1318 the subconnector"; 1319 } 1320 leaf link { 1321 type leafref { 1322 path "../../../links/link"; 1323 } 1324 description 1325 "Link that connects the 1326 VM with a switch or Interface 1327 via connector"; 1328 } 1329 description 1330 "Set of Virtual Machine connectors"; 1331 } 1332 leaf ram { 1333 type uint64; 1334 description 1335 "Size of RAM to allocate for 1336 the Guest OS"; 1337 } 1338 leaf cpu { 1339 type uint64; 1340 description 1341 "Number of vCPUs to 1342 allocate for the Guest OS"; 1343 } 1344 list storages { 1345 key "id"; 1346 leaf id { 1347 type string; 1348 description 1349 "Number of 1350 vDisk attached to the VM"; 1351 } 1352 leaf location { 1353 type string; 1354 description 1355 "External location where 1356 the image (ex.qcow2) is saved."; 1357 } 1358 description 1359 "Virtual storge/vDisk 1360 attached to the Virtual Machine"; 1361 } 1362 container day0-config { 1363 leaf location { 1364 type string; 1365 description 1366 "0day configuration location"; 1367 } 1368 leaf day0-var-path { 1369 type string; 1370 description 1371 "path of the file 1372 that contains the 0day variables"; 1373 } 1374 list variable { 1375 key "name"; 1376 leaf name { 1377 type string; 1378 description 1379 "variable name"; 1380 } 1381 leaf value { 1382 type string; 1383 description 1384 "variable value"; 1385 } 1386 description 1387 "list of variables"; 1388 } 1389 description 1390 "0day configuration:init config"; 1391 } 1392 description 1393 "Set of the Virtual Machines configured 1394 on the universal Customer-Premises Equipment"; 1395 } 1396 description 1397 "This is an uCPE management service"; 1398 } 1399 } 1401 1403 Appendix D. XML example of deprecated YANG model 1405 The XML example below presents the configuration of the next service 1406 in the uCPE, where: vSW(LAN), vSW(WAN), vSW(Service) - virtual 1407 switches; l1,l2,l3,l4 - virtual links; VMs represent PNFs (Physical 1408 Network Fuctions) that could be bootstrapped with 0day config/ 1409 license. 1411 +--------+ +-------------+ +------------+ 1412 |vSW(LAN)|--l2--|VNF-vFirewall|--l3--| | 1413 +--------+ +-------------+ | | 1414 +--------+ +-------------+ |vSW(Service)| 1415 |vSW(WAN)|--l1--| VNF_vRtr |--l4--| | 1416 +--------+ +-------------+ +------------+ 1418 1419 ucpe1 1420 1421 l1 1422 1423 1424 l2 1425 1426 1427 l3 1428 1429 1430 l4 1431 1432 1433 lan 1434 1435 10 1436 l2p10 1437 l2 1438 1439 1440 1441 service 1442 1443 10 1444 l3p10 1445 l3 1446 1447 1448 11 1449 l4p10 1450 l4 1451 1452 1453 1454 wan 1455 1456 10 1457 l1 1458 1459 1460 1461 VNF-vRtr 1462 1463 1 1464 l1p1 1465 l1 1466 1467 1468 2 1469 l4p2 1470 l4 1471 1472 2048 1473 2 1474 1475 1 1476 http://192.168.2.1/vRtr-x86.qcow2 1477 1478 1479 https://192.168.2.1/vRtr-day0.iso 1480 /config.rom 1481 1482 hostname 1483 IETF-vRtr 1484 1485 1486 ipaddress 1487 192.168.1.2 255.255.255.0 1488 1489 1490 1491 1492 VNF-vFirewall 1493 1494 1 1495 l3p1 1496 l3 1497 1498 1499 2 1500 l2p2 1501 l2 1502 1503 2048 1504 2 1505 1506 1 1507 http://192.168.2.1/vFirewall-x86.qcow2 1508 1509 1510 https://192.168.2.1/vFirewall-day0.iso 1511 /config.rom 1512 1513 hostname 1514 vFirewall 1515 1516 1517 ipaddress 1518 192.168.1.3 255.255.255.0 1519 1520 1521 1522 1524 Authors' Addresses 1526 Dmytro Shytyi 1527 SFR 1528 Paris , Ile-de-France 1529 France 1531 Email: ietf.dmytro@shytyi.net 1532 URI: https://dmytro.shytyi.net 1534 Laurent Beylier 1535 SFR 1536 Paris , Ile-de-France 1537 France 1539 Email: laurent.beylier@sfr.com 1540 Luigi Iannone 1541 Telecom ParisTech 1542 Paris , Ile-de-France 1543 France 1545 Email: luigi.iannone@telecom-paristech.fr