idnits 2.17.1 draft-shytyi-opsawg-vysm-08.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 213 has weird spacing: '...Balance vFire...' == Line 419 has weird spacing: '...oint-id stri...' == Line 943 has weird spacing: '...rw link str...' == Line 945 has weird spacing: '...terface str...' == Line 947 has weird spacing: '...rw port str...' == (3 more instances...) -- The document date (May 18, 2020) is 1439 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 909, 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: November 19, 2020 L. Iannone 6 Telecom ParisTech 7 May 18, 2020 9 A YANG Module for uCPE management. 10 draft-shytyi-opsawg-vysm-08 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 November 19, 2020. 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. Deprecated VNF YANG Model . . . . . . . . . . . . . 22 69 Appendix C. XML example of deprecated YANG model . . . . . . . . 28 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 72 1. Introduction 74 Network Function Virtualization is a technology that allows to 75 virtualize the network services running on dedicaded hardware. This 76 technology became a base for universal Customer-Premises Equipment 77 (uCPE). This document defines the uCPE as harware with x86 78 capabilities that has a hypervisor. In other words, uCPE is a host 79 that may run multiple Virtual Machines with guest OSs, where each 80 Guest OS may represent a Physical Network Function. This document 81 presents the YANG Model (VYSM) to manage from an Orchestrator the 82 infrastructure inside the uCPE. 84 2. Terminology 86 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 87 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 88 document are to be interpreted as described in RFC 2119 [RFC2119]. 90 Link - is an entity that enables link layer communication of nodes. 92 Port - node connector to the link. 94 NE - Network Element. 96 NSYM - Network Yang Module. 98 VYSM - VNF YANG Model. 100 3. Universal CPE 102 Firstly, this document defines the platform that is controlled with 103 VYSM - universal CPE (uCPE). The uCPE as harware with x86 104 capabilities that is generally running Linux distibution with 105 additinal virtualisation layer. Virtualization layer provides 106 virtual compute, virtual storage and virtual network resources. Each 107 VNF runnning in the uCPE requires the amount of virtual resources 108 (for example: 4 vCPUs, 4GB RAM, 40GB storege, 4 vPorts). VNFs MAY be 109 interconnected between each other and physical ports via Virtual 110 Networks. Topology construction and VM lifecycle management is 111 allowed via high level interface (Configuration can be done in the 112 same transaction). The figure below presents the uCPE architecture. 114 ----------------------------------------|-------------- 115 VNF1 VNF2 VNF3 | 116 ----------------------------------------| 117 Virtual Virtual Virtual | uCPE software 118 Compute Storage Networks| 119 ----------------------------------------|--------------- 120 PHY x86 RAM+PHY PHYsical| uCPE Hardware 121 processor storage ports | 123 The next elements can be managed in the uCPE: 125 o Virtual Network Funcitons: 127 * Number of assigned vCPUs. 129 * Size of allocated RAM. 131 * VNF day0 config (bootstrap). 133 * vLinks that are attached to the VNF. 135 o Virtual Switches: 137 * vLinks that are attached to the vSW. 139 o Virtual Links(vLinks). 141 o Physical Ports of the uCPE. 143 3.1. uCPE purpose 145 o uCPE replaces multiple types of equipment (Node#1 - Node#5) with 1 146 unit by virtualizing them as Virtual Network Functions on the top 147 of NFVIs: 149 : NODE #1 : NODE #2 : NODE #3 :NODE #4: NODE #5 : 150 : +-----------+ : +------+ : +------+ : +--+ : +-----+ : 151 ...-----|Aggregation|----|CE-L2 |----| CE-L3|----|FW|----|SDWAN|---LAN 152 : | switch | : | | : | | : | | : | | : 153 : +-----------+ : +------+ : +------+ : +--+ : +-----+ : 155 : NODE #1 : NODE #2 : 156 : : +.........................................+ : 157 : +-----------+ : | +------+ +------+ +--+ +-----+ | : 158 ...---|Aggregation|---|--|CE-L2 |----| CE-L3|----|FW|---|SDWAN|-|---LAN 159 : | switch | : | | | | | | | | | | : 160 : +-----------+ : | +------+ +------+ +--+ +-----+ | : 161 : : | universal Customer-Premises Equipment | : 162 : : +-----------------------------------------+ : 164 o uCPE falicitates the interconnection between the Network Funtions 165 (NF) as interconnection between NF is performed via virtual 166 links(that is part of the uCPE management). That meens that no 167 need to hire technichian to cable the equipment, it could be done 168 via orchestrator. 170 o uCPE falicitates the 0day configuration of the VNFs as its 0day 171 configuration can be putted remotely. 173 3.2. uCPE VNF ecosystem example 175 uCPE supports a Virtual Network Funcitons of different type: 177 o SD-WAN 179 o vRouter 181 o vFirewall 183 o vLB(vLoad Balancer) 184 o vCGNAT(vCarrier Grade NAT) 186 o virtual WAN Optimistaion 188 o vWireless LAN controller 190 o Other... 192 3.3. Internal uCPE service example 194 The VNF in the uCPE could be a vRouter or vFirewall or an SD-WAN that 195 is not a default part of virtual network resources of the uCPE. 196 Multiple VNFs MAY be instantiated in the uCPE. With support of links 197 and swithes, VNFs MAY participate a service chains. Example of 198 service chains (Note that virtual switch "vs(WAN)" connected to LAN 199 ports and vSW(WAN) is connected to WAN ports): 201 o vSW(WAN)-l1-vRouter-l2-vSW(LAN). 203 o vSW(WAN)-l1-vRouter-l2-vSW(Service)-l3-vFirewall-l4-vSW(LAN). 205 o vSW(WAN)-l1-vRouter-l2-vSW(Service1)-l3-vFirewall-l4- 206 vSW(Service2)-l5-SD-WAN-l6-vSW(LAN). 208 o vSW(WAN)-l1-SDWAN-l2-vSW(Service)-l3-vFirewall-l4-vSW(LAN). 210 o 212 vSW(WAN1)--vRouter--+ 213 +--vLoadBalance vFirewall--vSW(LAN) 214 vSW(WAN2)--vRouter--+ | | 215 +-vSW(Service1)+ 217 o 219 vSW(WAN1)--vRouter(ISP1)--+ 220 +--SD-WAN vFirewall--vSW(LAN) 221 vSW(WAN2)--vRouter(ISP2)--+ | | 222 +-vSW(Service1)+ 224 4. YANG Model for uCPE management 226 Secondly, this document defines and classifies the YANG Model for 227 uCPE Management. This Module is modeled representation of the 228 specific network requirements. It provides abstraction of network 229 configuration and operations. The YANG Model for uCPE Management 230 does not describe all configuration to be performed on the devices, 231 but provides the configuration that is required for the "Network to 232 Network Element(s)" decomposition process RFC 8199 [RFC8199]. 233 Example of the decomposition is presented in the figure below. 235 The Network YANG module exposes the configuration commands via the 236 Northbound interfaces of the orchestrator. Therefore the set of the 237 commands modeled in the VYSM can be inputed via Notrhbound 238 interfaces(for example CLI). In the example the command "vm VNF1" is 239 passed via Northbound interface to the orchestrator. It defines the 240 virtual machine name. Further the same configuration MAY be 241 transormed to the one or multiple Network Element payloads (for 242 example xml for NETCONF) that carry an equivalent of commands such as 243 "nf nf-name VNF1" 244 +-+-+-+-+-+-+-+-+-+ 245 | | 246 | config t | 247 | vm VNF1 | 248 +-+-+-+-+-+-+-+-+-+ 249 # 250 # 251 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 252 : : 253 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ : 254 : | Network YANG Module | <= scope of this document : 255 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ : 256 : # : 257 : ############################## : 258 : # # # : 259 : '---------' '------------' '-----------' : 260 : 'Module1 ' ' Module 2 ' ' Module3 ' : 261 : '---------' '------------' '-----------' : 262 : # # # : 263 : # # ####################### : 264 : #### ############## # : 265 : # # # : 266 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 267 # # # 268 Network # element 1 Network # element 2 Network # element3 269 ++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+ 270 | domains domain VNF1| |tenants tenant name VNF1| |nf nf-name VNF1| 271 ++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+ 273 5. Components for uCPE Management 275 This section provides a components overview to manage the uCPE. 277 There are multiple RFCs and drafts produced by the IETF community, 278 that are referenced in the YANG tree to manage the uCPE. Each 279 document produced by the IETF covers a part of uCPE Management. The 280 list of the documents is provided below: 282 o [RFC8530] - logical network elements (VNFs) properties. 284 o [RFC8345] - definition of networks, nodes, node-termination- 285 points: network includes the uCPE with uCPE's physical termination 286 points. 288 o [I-D.ietf-teas-sf-aware-topo-model]physical ports and service 289 functions (VNFs) interconnection matrixes (PhyPort-VNF, VNF-VNF). 291 o This document itself provides yang modules that completes the 292 existing documents produced by IETF. 294 This document introduces yang modules for 'logical network elements 295 properties(VNFs)" part: 297 o day0-info: mapping between variables inside of the bootstap config 298 and required values in the list "day0-info". In the bootstap 299 config the variable could be putted instead value. The value 300 could be set in the day0-info part (check the YANG model) and 301 after the value in the list will be mapped to the variable in the 302 bootstrap config. 304 o vCPU/vRAM/vDisk/VNF-ports leafs and lists. 306 The minimal list of yang models required for compilation of the YANG 307 tree to manage the uCPE is presented below: 309 o ieee-dot1Q-types 311 o ietf-interfaces 313 o ietf-ip 315 o ietf-logical-network-element 317 o ietf-network 319 o ietf-network-instance 321 o ietf-ietf-network-topology 323 o ietf-routing-types 325 o ietf-te-topology 327 o ietf-te-topology-sf 329 o ietf-te-types 331 o ietf-yang-schema-mount 333 o The YANG modules introduced in this document: 335 o 337 * ietf-ucpe-lne-properties 338 * ietf-ucpe-lt-virtual-link-id 340 * ietf-ucpe-ni-properties 342 * ietf-ucpe-node-type 344 6. Diagram overview of YANG Data Model tree for uCPE management 346 This section provides an overview of the Data YANG Model that MAY be 347 made with "pyang" utility. The figure below presents the tree 348 diagram. 350 module: ietf-network 351 +--rw networks 352 +--rw network* [network-id] 353 +--rw network-id network-id 354 +--rw network-types 355 | +--rw tet:te-topology! 356 | +--rw tet-sf:sf! 357 +--rw supporting-network* [network-ref] 358 | +--rw network-ref -> /networks/network/network-id 359 +--rw node* [node-id] 360 +--rw node-id node-id 361 +--rw supporting-node* [network-ref node-ref] 362 | +--rw network-ref -> 363 | | ../../../supporting-network/network-ref 364 | +--rw node-ref -> /networks/network/node/node-id 365 +--rw nt:termination-point* [tp-id] 366 | +--rw nt:tp-id tp-id 367 | +--rw nt:supporting-termination-point* 368 | | [network-ref node-ref tp-ref] 369 | +--rw nt:network-ref 370 | | -> ../../../nw:supporting-node/network-ref 371 | +--rw nt:node-ref 372 | | -> ../../../nw:supporting-node/node-ref 373 | +--rw nt:tp-ref 374 | -> /nw:networks/network[nw:network-id= 375 | current()/../network-ref]/node 376 | [nw:node-id=current()/../node-ref]/ 377 | termination-point/tp-id 378 +--rw tet:te-node-id? te-types:te-node-id 379 +--rw tet:te! 380 +--rw tet:te-node-template* 381 | -> ../../../../te/templates/ 382 | node-template/name {template}? 383 +--rw tet:te-node-attributes 384 | ... 386 +--rw tet-sf:service-function 387 +--rw tet-sf:connectivity-matrices 388 | +--rw tet-sf:connectivity-matrix* [id] 389 | +--rw tet-sf:id uint32 390 | +--rw tet-sf:from 391 | | +--rw tet-sf:service-function-id? string 392 | | +--rw tet-sf:sf-connection-point-id? string 393 | +--rw tet-sf:to 394 | | +--rw tet-sf:service-function-id? string 395 | | +--rw tet-sf:sf-connection-point-id? string 396 | +--rw tet-sf:enabled? boolean 397 | +--rw tet-sf:direction? connectivity-direction 398 | +--rw tet-sf:virtual-link-id? string 399 +--rw tet-sf:link-terminations 400 +--rw tet-sf:link-termination* [id] 401 +--rw tet-sf:id uint32 402 +--rw tet-sf:from 403 | +--rw tet-sf:tp-ref? -> ../../../../ 404 | ../../../nt:termination-point/tp-id 405 +--rw tet-sf:to 406 | +--rw tet-sf:service-function-id? string 407 | +--rw tet-sf:sf-connection-point-id? string 408 +--rw tet-sf:enabled? boolean 409 +--rw tet-sf:direction? connectivity-direction 411 logical-network-elements 412 +--rw logical-network-element* [name] 413 +--rw name string 414 +--rw managed? boolean 415 +--rw description? string 416 +--rw root 417 +--rw logical-network-elements-properties 418 +--rw sf-connection-points* [sf-connection-point-id] 419 | +--rw sf-connection-point-id string 420 +--rw ram? uint64 421 +--rw cpu? uint64 422 +--rw storages* [id] 423 | +--rw id string 424 | +--rw location? string 425 +--rw day0-config 426 +--rw location? string 427 +--rw day0-var-path? string 428 +--rw variable* [name] 429 +--rw name string 430 +--rw value? string 432 ietf-network-instance 433 +--rw network-instances 434 +--rw network-instance* [name] 435 +--rw name string 436 +--rw enabled? boolean 437 +--rw description? string 438 +--rw (ni-type)? 439 +--rw (root-type) 440 +--:(vrf-root) 441 | +--rw vrf-root 442 +--:(vsi-root) 443 | +--rw vsi-root 444 | +--rw ietf-ucpe-ni:network-instance-properties 445 | +--rw ietf-ucpe-ni:sf-connection-points* 446 | | | [sf-connection-point-id] 447 | | +--rw ietf-ucpe-ni:sf-connection-point-id 448 | | | string 449 | | +--rw ietf-ucpe-ni:dot1q-vlan 450 | | +--rw ietf-ucpe-ni:access-tag? 451 | | | d1q:vid-range 452 | | +--rw ietf-ucpe-ni:trunk-allowed-vlans? 453 | | | d1q:vid-range 454 | | +--rw ietf-ucpe-ni:port-mode? 455 | | enumeration 456 | +--rw ietf-ucpe-ni:supporting-node? 457 | -> /nw:networks/network/node/node-id 458 +--:(vv-root) 459 +--rw vv-root 461 7. Logical Network Elements extension YANG Model 463 This section provides a YANG models that address uCPE resources 464 management. 466 file "ietf-ucpe-lne-properties@2019-11-21.yang" 467 module ietf-ucpe-lne-properties { 468 yang-version 1.1; 469 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-lne-properties"; 470 prefix ietf-ucpe; 472 import ietf-logical-network-element { 473 prefix lne; 474 reference 475 "RFC 8530: YANG Model for Logical Network Elements"; 476 } 477 organization 478 "SFR"; 479 contact 480 "Dmytro Shytyi 481 EMail:ietf.dmytro@shytyi.net"; 482 description 483 "This is a Network Function Virtualization (NFV) YANG 484 service model. 486 Copyright (c) 2019 IETF Trust and the persons identified as 487 authors of the code. All rights reserved. 489 Redistribution and use in source and binary forms, with or 490 without modification, is permitted pursuant to, and subject to 491 the license terms contained in, the Simplified BSD License set 492 forth in Section 4.c of the IETF Trust's Legal Provisions 493 Relating to IETF Documents 494 (https://trustee.ietf.org/license-info). 496 This version of this YANG module is part of RFC XXXX 497 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 498 for full legal notices."; 500 revision 2019-11-21 { 501 description 502 "Augmentation of RFC 8530"; 503 reference 504 "draft-shytyi-opsawg-vysm-07"; 505 } 506 revision 2019-10-28 { 507 description 508 "Yang model with vPorts assigned to the interfaces"; 509 reference 510 "draft-shytyi-opsawg-vysm-05"; 511 } 512 revision 2019-10-19 { 513 description 514 "Yang model was cleaned. Interfaces added"; 515 reference 516 "draft-shytyi-opsawg-vysm-04"; 517 } 518 revision 2019-09-16 { 519 description 520 "Added 0day config for VNFs. 521 Yang model modified according 522 to the received comments."; 523 reference 524 "draft-shytyi-opsawg-vysm-00"; 526 } 527 revision 2018-01-07 { 528 description 529 "Initial revision."; 530 reference 531 "draft-shytyi-netmod-vysm-01"; 532 } 534 augment "/lne:logical-network-elements/lne:logical-network-element" { 535 container logical-network-element-properties { 536 list sf-connection-points { 537 key "sf-connection-point-id"; 538 leaf sf-connection-point-id { 539 type string; 540 description 541 "Name of the connector"; 542 } 543 description 544 "Connection points of logical-network-element"; 545 } 546 description 547 "Set of Virtual Network Function connectors"; 548 leaf ram { 549 type uint64; 550 description 551 "Size of RAM to allocate for 552 the Guest OS"; 553 } 554 leaf cpu { 555 type uint64; 556 description 557 "Number of vCPUs to 558 allocate for the Guest OS"; 559 } 560 list storages { 561 key "id"; 562 leaf id { 563 type string; 564 description 565 "Number of 566 vDisk attached to the VM"; 567 } 568 leaf location { 569 type string; 570 description 571 "External location where 572 the image (ex.qcow2) is saved."; 573 } 574 description 575 "Virtual storge/vDisk 576 attached to the Virtual Machine"; 577 } 578 container day0-config { 579 leaf location { 580 type string; 581 description 582 "0day configuration location"; 583 } 584 leaf day0-var-path { 585 type string; 586 description 587 "path of the file 588 that contains the 0day variables"; 589 } 590 list variable { 591 key "name"; 592 leaf name { 593 type string; 594 description 595 "variable name"; 596 } 597 leaf value { 598 type string; 599 description 600 "variable value"; 601 } 602 description 603 "list of variables"; 604 } 605 description 606 "0day configuration:init config"; 607 } 608 } 609 description 610 "Properties of logic-network-element"; 611 } 612 } 614 616 file "ietf-ucpe-ni-properties@2019-11-27.yang" 617 module ietf-ucpe-ni-properties { 618 yang-version 1.1; 619 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-ni-properties"; 620 prefix ietf-ucpe-ni; 621 import ieee-dot1Q-types{ 622 prefix d1q; 623 reference 624 "Prefix dot1Q-types. 625 Institute of Electrical and Electronics Engineers"; 626 } 627 import ietf-logical-network-element { 628 prefix lne; 629 reference 630 "RFC 8530: YANG Model for Logical Network Elements"; 631 } 632 import ietf-network{ 633 prefix nw; 634 reference 635 "RFC 8345: YANG Data Model for Network Topologies"; 636 } 637 import ietf-network-instance{ 638 prefix ni; 639 reference 640 "RFC 8529: YANG Data Model for Network Instances"; 641 } 643 organization 644 "SFR"; 645 contact 646 "Dmytro Shytyi 647 EMail:ietf.dmytro@shytyi.net"; 648 description 649 "This is a YANG data model that 650 extends Network Instance properties. 652 Copyright (c) 2019 IETF Trust and the persons identified as 653 authors of the code. All rights reserved. 655 Redistribution and use in source and binary forms, with or 656 without modification, is permitted pursuant to, and subject to 657 the license terms contained in, the Simplified BSD License set 658 forth in Section 4.c of the IETF Trust's Legal Provisions 659 Relating to IETF Documents 660 (https://trustee.ietf.org/license-info). 662 This version of this YANG module is part of RFC XXXX 663 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 664 for full legal notices."; 666 revision 2019-11-27 { 667 description 668 "Added VLANs"; 669 reference 670 "draft-shytyi-opsawg-vysm-07"; 671 } 672 revision 2019-11-21 { 673 description 674 "Augmentation of RFC 8530"; 675 reference 676 "draft-shytyi-opsawg-vysm-07"; 677 } 678 revision 2019-10-28 { 679 description 680 "Yang model with vPorts assigned to the interfaces"; 681 reference 682 "draft-shytyi-opsawg-vysm-05"; 683 } 684 revision 2019-10-19 { 685 description 686 "Yang model was cleaned. Interfaces added"; 687 reference 688 "draft-shytyi-opsawg-vysm-04"; 689 } 690 revision 2019-09-16 { 691 description 692 "Added 0day config for VNFs."; 693 reference 694 "draft-shytyi-opsawg-vysm-00"; 695 } 696 revision 2018-01-07 { 697 description 698 "Initial revision."; 699 reference 700 "draft-shytyi-netmod-vysm-01"; 701 } 703 augment "/ni:network-instances/ni:network-instance/" 704 + "ni:root-type/ni:vsi-root" { 705 container network-instance-properties { 706 list sf-connection-points { 707 key "sf-connection-point-id"; 708 leaf sf-connection-point-id { 709 type string; 710 description 711 "Name of the connector"; 712 } 713 container dot1q-vlan{ 714 leaf access-tag{ 715 type d1q:vid-range; 716 description 717 "Acccess tag"; 718 } 719 leaf trunk-allowed-vlans{ 720 type d1q:vid-range; 721 } 722 leaf port-mode{ 723 type enumeration{ 724 enum trunk; 725 enum access; 726 } 727 } 728 description 729 "Dot1q encapsulation parameters"; 730 } 731 description 732 "Connection points of logical-network-element"; 733 } 734 description 735 "Set of Virtual Network Function connectors"; 736 leaf supporting-node { 737 type leafref{ 738 path "/nw:networks/nw:network/nw:node/nw:node-id"; 739 } 740 description 741 "The reference to a physical node which 742 hosts the logical element"; 743 } 744 } 745 description 746 "Properties of network instance"; 747 } 748 } 749 751 file "ietf-ucpe-node-type@2020-02-14.yang" 752 module ietf-ucpe-node-type { 753 yang-version 1.1; 754 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-node-type"; 755 prefix node-type; 756 import ietf-network{ 757 prefix nw; 758 reference 759 "RFC 8345: YANG Data Model for Network Topologies"; 760 } 761 organization 762 "SFR"; 763 contact 764 "Dmytro Shytyi 765 EMail:ietf.dmytro@shytyi.net"; 766 description 767 "This is a YANG data model that extends node-type. 769 Copyright (c) 2019 IETF Trust and the persons identified as 770 authors of the code. All rights reserved. 772 Redistribution and use in source and binary forms, with or 773 without modification, is permitted pursuant to, and subject to 774 the license terms contained in, the Simplified BSD License set 775 forth in Section 4.c of the IETF Trust's Legal Provisions 776 Relating to IETF Documents 777 (https://trustee.ietf.org/license-info). 779 This version of this YANG module is part of RFC XXXX 780 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 781 for full legal notices."; 783 revision 2020-02-14 { 784 description 785 "Added node type"; 786 reference 787 "draft-shytyi-opsawg-vysm-08"; 788 } 789 identity node-type { 790 description 791 "Base identity for node-type."; 792 } 793 identity ucpe { 794 base node-type; 795 description 796 "Identity for mail application."; 797 } 798 augment "/nw:networks/nw:network/nw:node" { 799 leaf node-type { 800 type identityref{ 801 base node-type; 802 } 804 description 805 "Properties of network instance"; 806 } 807 } 808 } 809 811 file "ietf-ucpe-lt-virtual-link-id@2020-02-14.yang" 812 module ietf-ucpe-lt-virtual-link-id { 813 yang-version 1.1; 814 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-lt-virtual-link-id"; 815 prefix lt-vlink-id; 816 import ietf-network{ 817 prefix nw; 818 reference 819 "RFC 8345: YANG Data Model for Network Topologies"; 821 } 822 import ietf-te-topology { 823 prefix "tet"; 824 reference 825 "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic 826 Engineering (TE) Topologies"; 827 } 828 import ietf-te-topology-sf{ 829 prefix "tet-sf"; 830 reference "RFC XXXX: SF Aware TE Topology YANG Model"; 831 } 832 organization 833 "SFR"; 834 contact 835 "Dmytro Shytyi 836 EMail:ietf.dmytro@shytyi.net"; 837 description 838 "This is a YANG data model that extends link-termination of 839 service function vith virtual link. 841 Copyright (c) 2019 IETF Trust and the persons identified as 842 authors of the code. All rights reserved. 844 Redistribution and use in source and binary forms, with or 845 without modification, is permitted pursuant to, and subject to 846 the license terms contained in, the Simplified BSD License set 847 forth in Section 4.c of the IETF Trust's Legal Provisions 848 Relating to IETF Documents 849 (https://trustee.ietf.org/license-info). 851 This version of this YANG module is part of RFC XXXX 852 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 853 for full legal notices."; 855 revision 2020-02-14 { 856 description 857 "Added virtual link id"; 858 reference 859 "draft-shytyi-opsawg-vysm-08"; 860 } 861 augment "/nw:networks/nw:network/nw:node/tet:te/" 862 + "tet:te-node-attributes/tet-sf:service-function/" 863 + "tet-sf:link-terminations/tet-sf:link-termination"{ 864 leaf virtual-link-id { 865 type string; 866 description 867 "Virtual link id between equipment and service function"; 868 } 869 description 870 "Virtual link id between equipment and service function"; 871 } 872 } 873 875 8. Security Considerations 877 At this time, no security considerations are addressed by this memo. 879 9. IANA Considerations 881 No request to IANA at this time. 883 10. Acknowledgements 885 the authors would like to thank: 887 o Mahesh Jethanandani. 889 o Robert Varga. 891 o Bill Wu. 893 o Joe Clarke. 895 o Tom Petch. 897 o Martin Bjorklund. 899 o Schonwalder Jurgen. 901 o Dean Bogdanovic. 903 o Bo Wu. 905 for their valuable comments. 907 11. Normative References 909 [I-D.ietf-teas-sf-aware-topo-model] 910 Bryskin, I., Liu, X., Lee, Y., Guichard, J., Contreras, 911 L., Ceccarelli, D., and J. Tantsura, "SF Aware TE Topology 912 YANG Model", draft-ietf-teas-sf-aware-topo-model-03 (work 913 in progress), March 2019. 915 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 916 Requirement Levels", BCP 14, RFC 2119, 917 DOI 10.17487/RFC2119, March 1997, 918 . 920 [RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module 921 Classification", RFC 8199, DOI 10.17487/RFC8199, July 922 2017, . 924 [RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., 925 Ananthakrishnan, H., and X. Liu, "A YANG Data Model for 926 Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 927 2018, . 929 [RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 930 Liu, "YANG Model for Logical Network Elements", RFC 8530, 931 DOI 10.17487/RFC8530, March 2019, 932 . 934 Appendix A. Example of the uCPE resources management 936 This section provides an overview of the deprecated YANG Model that 937 MAY give an alternative view on the uCPE management. 939 module: ietf-example-ucpe 940 +--rw ucpe* [name] 941 +--rw name string 942 +--rw links* [link] 943 | +--rw link string 944 +--rw phyInterfaces* [interface] 945 | +--rw interface string 946 | +--rw ports* [port] 947 | +--rw port string 948 | +--rw link? -> ../../../links/link 949 +--rw switches* [switch] 950 | +--rw switch string 951 | +--rw ports* [port] 952 | +--rw port string 953 | +--rw name? string 954 | +--rw link? -> ../../../links/link 955 +--rw vms* [vm] 956 +--rw vm string 957 +--rw ports* [port] 958 | +--rw port string 959 | +--rw name? string 960 | +--rw link? -> ../../../links/link 961 +--rw ram? uint64 962 +--rw cpu? uint64 963 +--rw storages* [id] 964 | +--rw id string 965 | +--rw location? string 966 +--rw day0-config 967 +--rw location? string 968 +--rw day0-var-path? string 969 +--rw variable* [name] 970 +--rw name string 971 +--rw value? string 973 Appendix B. Deprecated VNF YANG Model 975 This section provides a deprecated yang model that addresses the 976 configuration of the uCPE resources presented above. 978 file "ietf-example-ucpe@2019-10-28.yang" 979 module ietf-example-ucpe { 980 namespace "urn:ietf:params:xml:ns:yang:ietf-example-ucpe"; 981 prefix ietf-example-ucpe; 983 organization 984 "SFR"; 986 contact 987 "Dmytro Shytyi 988 EMail:ietf.dmytro@shytyi.net"; 989 description 990 "This is a Network Function Virtualization (NFV) YANG 991 service model. 993 Copyright (c) 2019 IETF Trust and the persons identified as 994 authors of the code. All rights reserved. 996 Redistribution and use in source and binary forms, with or 997 without modification, is permitted pursuant to, and subject to 998 the license terms contained in, the Simplified BSD License set 999 forth in Section 4.c of the IETF Trust's Legal Provisions 1000 Relating to IETF Documents 1001 (https://trustee.ietf.org/license-info). 1003 This version of this YANG module is part of RFC XXXX 1004 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 1005 for full legal notices."; 1007 revision 2019-10-28 { 1008 description 1009 "Yang model with vPorts assigned to the interfaces"; 1010 reference 1011 "draft-shytyi-opsawg-vysm-05"; 1012 } 1013 revision 2019-10-19 { 1014 description 1015 "Yang model was cleaned. Interfaces added"; 1016 reference 1017 "draft-shytyi-opsawg-vysm-04"; 1018 } 1019 revision 2019-09-16 { 1020 description 1021 "Added 0day config for VNFs. 1022 Yang model modified according 1023 to the received comments."; 1024 reference 1025 "draft-shytyi-opsawg-vysm-00"; 1026 } 1027 revision 2018-01-07 { 1028 description 1029 "Initial revision."; 1030 reference 1031 "draft-shytyi-netmod-vysm-01"; 1032 } 1033 list ucpe { 1034 key "name"; 1035 leaf name { 1036 type string; 1037 description 1038 "ID of uCPE where 1039 a service is instantiated"; 1040 } 1041 list links { 1042 key "link"; 1043 leaf link { 1044 type string; 1045 description 1046 "Name of the virtual link from the pool 1047 of the links"; 1048 } 1049 description 1050 "Pool of the virtual links that connect VMs and 1051 Interfaces"; 1052 } 1053 list phyInterfaces { 1054 key "interface"; 1055 leaf interface { 1056 type string; 1057 description 1058 "Name of physical interface"; 1059 } 1060 list ports { 1061 key "port"; 1062 leaf port { 1063 type string; 1064 description 1065 "Name of the connector"; 1066 } 1067 leaf link { 1068 type leafref { 1069 path "../../../links/link"; 1070 } 1071 description 1072 "Link that is connected to 1073 the port via connector"; 1074 } 1075 description 1076 "Set of the connectors the 1077 physical interface has"; 1078 } 1079 description 1080 "Set of physical interfaces"; 1082 } 1083 list switches { 1084 key "switch"; 1085 leaf switch { 1086 type string; 1087 description 1088 "Name of the forwarding domain"; 1089 } 1090 list ports { 1091 key "port"; 1092 leaf port { 1093 type string; 1094 description 1095 "Name of the connector"; 1096 } 1097 leaf name { 1098 type string; 1099 description 1100 "Name of the 1101 subconnector"; 1102 } 1103 leaf link { 1104 type leafref { 1105 path "../../../links/link"; 1106 } 1107 description 1108 "Link that is connected to the 1109 switch via port"; 1110 } 1111 description 1112 "Set of the connectors the 1113 forwarding domain has"; 1114 } 1115 description 1116 "Set of the forwarding domains"; 1117 } 1118 list vms { 1119 key "vm"; 1120 leaf vm { 1121 type string; 1122 description 1123 "ID of the Virtual Machine"; 1124 } 1125 list ports { 1126 key "port"; 1127 leaf port { 1128 type string; 1129 description 1130 "Name of the connector"; 1131 } 1132 leaf name { 1133 type string; 1134 description 1135 "Name of 1136 the subconnector"; 1137 } 1138 leaf link { 1139 type leafref { 1140 path "../../../links/link"; 1141 } 1142 description 1143 "Link that connects the 1144 VM with a switch or Interface 1145 via connector"; 1146 } 1147 description 1148 "Set of Virtual Machine connectors"; 1149 } 1150 leaf ram { 1151 type uint64; 1152 description 1153 "Size of RAM to allocate for 1154 the Guest OS"; 1155 } 1156 leaf cpu { 1157 type uint64; 1158 description 1159 "Number of vCPUs to 1160 allocate for the Guest OS"; 1161 } 1162 list storages { 1163 key "id"; 1164 leaf id { 1165 type string; 1166 description 1167 "Number of 1168 vDisk attached to the VM"; 1169 } 1170 leaf location { 1171 type string; 1172 description 1173 "External location where 1174 the image (ex.qcow2) is saved."; 1175 } 1176 description 1177 "Virtual storge/vDisk 1178 attached to the Virtual Machine"; 1179 } 1180 container day0-config { 1181 leaf location { 1182 type string; 1183 description 1184 "0day configuration location"; 1185 } 1186 leaf day0-var-path { 1187 type string; 1188 description 1189 "path of the file 1190 that contains the 0day variables"; 1191 } 1192 list variable { 1193 key "name"; 1194 leaf name { 1195 type string; 1196 description 1197 "variable name"; 1198 } 1199 leaf value { 1200 type string; 1201 description 1202 "variable value"; 1203 } 1204 description 1205 "list of variables"; 1206 } 1207 description 1208 "0day configuration:init config"; 1209 } 1210 description 1211 "Set of the Virtual Machines configured 1212 on the universal Customer-Premises Equipment"; 1213 } 1214 description 1215 "This is an uCPE management service"; 1216 } 1217 } 1219 1221 Appendix C. XML example of deprecated YANG model 1223 The XML example below presents the configuration of the next service 1224 in the uCPE, where: vSW(LAN), vSW(WAN), vSW(Service) - virtual 1225 switches; l1,l2,l3,l4 - virtual links; VMs represent PNFs (Physical 1226 Network Fuctions) that could be bootstrapped with 0day config/ 1227 license. 1229 +--------+ +-------------+ +------------+ 1230 |vSW(LAN)|--l2--|VNF-vFirewall|--l3--| | 1231 +--------+ +-------------+ | | 1232 +--------+ +-------------+ |vSW(Service)| 1233 |vSW(WAN)|--l1--| VNF_vRtr |--l4--| | 1234 +--------+ +-------------+ +------------+ 1236 1237 ucpe1 1238 1239 l1 1240 1241 1242 l2 1243 1244 1245 l3 1246 1247 1248 l4 1249 1250 1251 lan 1252 1253 10 1254 l2p10 1255 l2 1256 1257 1258 1259 service 1260 1261 10 1262 l3p10 1263 l3 1264 1265 1266 11 1267 l4p10 1268 l4 1269 1270 1271 1272 wan 1273 1274 10 1275 l1 1276 1277 1278 1279 VNF-vRtr 1280 1281 1 1282 l1p1 1283 l1 1284 1285 1286 2 1287 l4p2 1288 l4 1289 1290 2048 1291 2 1292 1293 1 1294 http://192.168.2.1/vRtr-x86.qcow2 1295 1296 1297 https://192.168.2.1/vRtr-day0.iso 1298 /config.rom 1299 1300 hostname 1301 IETF-vRtr 1302 1303 1304 ipaddress 1305 192.168.1.2 255.255.255.0 1306 1307 1308 1309 1310 VNF-vFirewall 1311 1312 1 1313 l3p1 1314 l3 1315 1316 1317 2 1318 l2p2 1319 l2 1320 1321 2048 1322 2 1323 1324 1 1325 http://192.168.2.1/vFirewall-x86.qcow2 1326 1327 1328 https://192.168.2.1/vFirewall-day0.iso 1329 /config.rom 1330 1331 hostname 1332 vFirewall 1333 1334 1335 ipaddress 1336 192.168.1.3 255.255.255.0 1337 1338 1339 1340 1342 Authors' Addresses 1344 Dmytro Shytyi 1345 SFR 1346 Paris , Ile-de-France 1347 France 1349 Email: ietf.dmytro@shytyi.net 1350 URI: https://dmytro.shytyi.net 1352 Laurent Beylier 1353 SFR 1354 Paris , Ile-de-France 1355 France 1357 Email: laurent.beylier@sfr.com 1358 Luigi Iannone 1359 Telecom ParisTech 1360 Paris , Ile-de-France 1361 France 1363 Email: luigi.iannone@telecom-paristech.fr