idnits 2.17.1 draft-shytyi-opsawg-vysm-04.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 290 has weird spacing: '...:switch str...' == Line 292 has weird spacing: '...pe:port uin...' == Line 298 has weird spacing: '...pe:port str...' == Line 328 has weird spacing: '...ty-time yan...' == (3 more instances...) == The document seems to use 'NOT RECOMMENDED' as an RFC 2119 keyword, but does not include the phrase in its RFC 2119 key words list. -- The document date (October 19, 2019) is 1650 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 ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 9 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: April 21, 2020 L. Iannone 6 Telecom ParisTech 7 October 19, 2019 9 A YANG Module for uCPE management. 10 draft-shytyi-opsawg-vysm-04 12 Abstract 14 This document provides a YANG data model for uCPE management (VYSM) 15 and definition of the uCPE equipment. The YANG Service Model serves 16 as a base framework for managing an universal Customer-Premises 17 Equipment (uCPE) subsystem. The model can be used by a Network 18 Service Orchestrator. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on April 21, 2020. 37 Copyright Notice 39 Copyright (c) 2019 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 56 3. Universal CPE . . . . . . . . . . . . . . . . . . . . . . . . 3 57 3.1. uCPE purpose . . . . . . . . . . . . . . . . . . . . . . 4 58 3.2. uCPE VNF ecosystem example . . . . . . . . . . . . . . . 4 59 3.3. Internal uCPE service example . . . . . . . . . . . . . . 5 60 4. YANG Service Model for uCPE management . . . . . . . . . . . 6 61 5. uCPE YANG Service Model tree diagram overview . . . . . . . . 7 62 6. Specification of the VNF YANG Service Model . . . . . . . . . 9 63 6.1. uCPE main yang module . . . . . . . . . . . . . . . . . . 10 64 6.2. uCPE ports yang module for each interface . . . . . . . . 15 65 6.3. uCPE interfaces yang module . . . . . . . . . . . . . . . 16 66 7. XML example . . . . . . . . . . . . . . . . . . . . . . . . . 39 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 41 68 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41 69 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41 70 11. Normative References . . . . . . . . . . . . . . . . . . . . 42 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 73 1. Introduction 75 Network Function Virtualization is a technology that allows to 76 virtualize the network services running on dedicaded hardware. This 77 technology became a base for universal Customer-Premises Equipment 78 (uCPE). This document defines the uCPE as harware with x86 79 capabilities that has a hypervisor. In other words, uCPE is a host 80 that may run multiple Virtual Machines with guest OSs, where each 81 Guest OS may represent a Physical Network Function. This document 82 presents the YANG Service Model (VYSM) to manage from an Orchestrator 83 the infrastructure inside the uCPE. 85 2. Terminology 87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 89 document are to be interpreted as described in RFC 2119 [RFC2119]. 91 Link - is an entity that enables link layer communication of nodes. 93 Port - node connector to the link. 95 NE - Network Element. 97 NSYM - Network Service Yang Module. 99 VYSM - VNF YANG Service Model. 101 3. Universal CPE 103 Firstly, this document defines the platform that is controlled with 104 VYSM - universal CPE (uCPE). The uCPE as harware with x86 105 capabilities that is generally running Linux distibution with 106 additinal virtualisation layer. Virtualization layer provides 107 virtual compute, virtual storage and virtual network resources. Each 108 VNF runnning in the uCPE requires the amount of virtual resources 109 (for example: 4 vCPUs, 4GB RAM, 40GB storege, 4 vPorts). VNFs MAY be 110 interconnected between each other and physical ports via Virtual 111 Networks. Topology construction and VM lifecycle management is 112 allowed via high level interface (Configuration can be done in the 113 same transaction). The figure below presents the uCPE architecture. 115 ----------------------------------------|-------------- 116 VNF1 VNF2 VNF3 | 117 ----------------------------------------| 118 Virtual Virtual Virtual | uCPE software 119 Compute Storage Networks| 120 ----------------------------------------|--------------- 121 PHY x86 RAM+PHY PHYsical| uCPE Hardware 122 processor storage ports | 124 The next elements can be managed in the uCPE: 126 o Virtual Network Funcitons: 128 * Number of assigned vCPUs. 130 * Size of allocated RAM. 132 * VNF day0 config (bootstrap). 134 * vLinks that are attached to the VNF. 136 o Virtual Switches: 138 * vLinks that are attached to the vSW. 140 o Virtual Links(vLinks). 142 o Physical Ports of the uCPE. 144 3.1. uCPE purpose 146 o uCPE replaces multiple types of equipment (Node#1 - Node#5) with 1 147 unit by virtualizing them as Virtual Network Functions on the top 148 of NFVIs: 150 : NODE #1 : NODE #2 : NODE #3 :NODE #4: NODE #5 : 151 : +-----------+ : +------+ : +------+ : +--+ : +-----+ : 152 ...-----|Aggregation|----|CE-L2 |----|CPE-L3|----|FW|----|SDWAN|---LAN 153 : | switch | : | | : | | : | | : | | : 154 : +-----------+ : +------+ : +------+ : +--+ : +-----+ : 156 : NODE #1 : NODE #2 : 157 : : +.........................................+ : 158 : +-----------+ : | +------+ +------+ +--+ +-----+ | : 159 ...---|Aggregation|---|--|CE-L2 |----|CPE-L3|----|FW|---|SDWAN|-|---LAN 160 : | switch | : | | | | | | | | | | : 161 : +-----------+ : | +------+ +------+ +--+ +-----+ | : 162 : : | universal Customer-Premises Equipment | : 163 : : +-----------------------------------------+ : 165 o uCPE falicitates the interconnection between the Network Funtions 166 (NF) as interconnection between NF is performed via virtual 167 links(that is part of the uCPE management). That meens that no 168 need to hire technichian to cable the equipment, it could be done 169 via orchestrator. 171 o uCPE falicitates the 0day configuration of the VNFs as its 0day 172 configuration can be putted remotely. 174 3.2. uCPE VNF ecosystem example 176 uCPE supports a Virtual Network Funcitons of different type: 178 o SD-WAN 180 o vRouter(vCPE) 182 o vFirewall 184 o vLB(vLoad Balancer) 185 o vCGNAT(vCarrier Grade NAT) 187 o virtual WAN Optimistaion 189 o vWireless LAN controller 191 o Other... 193 3.3. Internal uCPE service example 195 The VNF in the uCPE could be a vRouter or vFirewall or an SD-WAN that 196 is not a default part of virtual network resources of the uCPE. 197 Multiple VNFs MAY be instantiated in the uCPE. With support of links 198 and swithes, VNFs MAY participate a service chains. Example of 199 service chains (Note that virtual switch "vs(WAN)" connected to LAN 200 ports and vSW(WAN) is connected to WAN ports): 202 o vSW(WAN)-l1-vRouter(vCPE)-l2-vSW(LAN). 204 o vSW(WAN)-l1-vRouter(vCPE)-l2-vSW(Service)-l3-vFirewall- 205 l4-vSW(LAN). 207 o vSW(WAN)-l1-vRouter(vCPE)-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 Service Model for uCPE management 228 Secondly, this document defines and classifies the VYSM as Network 229 Service YANG Module(NSYM) layer component RFC 8199 [RFC8199]. Thus 230 it inherits the characteristics of the NSYM Layer. VYSM is a modeled 231 representation of the specific service requirements. It provides 232 abstraction of services configuration and operations that MAY be 233 implemented in Network Elemets (NEs). Thus VYSM does not describe 234 all configuration to be performed on the devices, but provides the 235 configuration that is required for the "Network Service to Network 236 Element(s)" decomposition process RFC 8199 [RFC8199]. Example of the 237 decomposition is presented in the figure below. 239 The Network Service YANG module exposes the configuration commands 240 via the Northbound interfaces of the orchestrator. Therefore the set 241 of the commands modeled in the VYSM can be inputed via Notrhbound 242 interfaces(for example CLI). In the example the command "vm VNF1" is 243 passed via Northbound interface to the orchestrator. It defines the 244 virtual machine name. Further the same configuration MAY be 245 transormed to the one or multiple Network Element payloads (for 246 example xml for NETCONF) that carry an equivalent of commands such as 247 "nf nf-name VNF1" 248 +-+-+-+-+-+-+-+-+-+ 249 | | 250 | config t | 251 | vm VNF1 | 252 +-+-+-+-+-+-+-+-+-+ 253 # 254 # 255 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 256 : : 257 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ : 258 : | Network Service YANG Module | : 259 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ : 260 : # : 261 : ############################## orchestrator : 262 : # # # : 263 : '---------' '------------' '-----------' : 264 : 'Module1 ' ' Module 2 ' ' Module3 ' <= Network Element : 265 : '---------' '------------' '-----------' YANG Modules : 266 : # # # : 267 : # # ####################### : 268 : #### ############## # : 269 : # # # : 270 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 271 # # # 272 Network # element 1 Network # element 2 Network # element3 273 ++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+ 274 | domains domain VNF1| |tenants tenant name VNF1| |nf nf-name VNF1| 275 ++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+ 277 5. uCPE YANG Service Model tree diagram overview 279 This section provides an overview of the Service YANG Model (VSYM) 280 that MAY be made with "pyang" utility. The figure below presents the 281 tree diagram of VYSM. 283 module: ietf-ucpe 284 +--rw ietf-ucpe:ucpe* [name] 285 +--rw ietf-ucpe:Name string 286 +--rw ietf-ucpe:device* -> ../name 287 +--rw ietf-ucpe:links* [link] 288 | +--rw ietf-ucpe:link string 289 +--rw ietf-ucpe:switches* [switch] 290 | +--rw ietf-ucpe:switch string 291 | +--rw ietf-ucpe:ports* [port] 292 | +--rw ietf-ucpe:port uint64 293 | +--rw ietf-ucpe:name? string 294 | +--rw ietf-ucpe:link? -> ../../../links/link 295 +--rw ietf-ucpe:vms* [vm] 296 | +--rw ietf-ucpe:vm string 297 | +--rw ietf-ucpe:ports* [port] 298 | | +--rw ietf-ucpe:port string 299 | | +--rw ietf-ucpe:name? string 300 | | +--rw ietf-ucpe:link? -> ../../../links/link 301 | +--rw ietf-ucpe:ram? string 302 | +--rw ietf-ucpe:cpu? string 303 | +--rw ietf-ucpe:storages* [id] 304 | | +--rw ietf-ucpe:id string 305 | | +--rw ietf-ucpe:location? string 306 | +--rw ietf-ucpe:day0-config 307 | +--rw ietf-ucpe:location? string 308 | +--rw ietf-ucpe:day0-var-path? string 309 | +--rw ietf-ucpe:variable* [name] 310 | +--rw ietf-ucpe:name string 311 | +--rw ietf-ucpe:value? string 312 +--rw ucpe-if:interfaces 313 | +--rw ucpe-if:interface* [name] 314 | +--rw ucpe-if:name string 315 | +--rw ucpe-if:description? string 316 | +--rw ucpe-if:type identityref 317 | +--rw ucpe-if:enabled? boolean 318 | +--rw ucpe-if:link-up-down-trap-enable? enumeration {if-mib}? 319 | +--ro ucpe-if:admin-status enumeration {if-mib}? 320 | +--ro ucpe-if:oper-status enumeration 321 | +--ro ucpe-if:last-change? yang:date-and-time 322 | +--ro ucpe-if:if-index int32 {if-mib}? 323 | +--ro ucpe-if:phys-address? yang:phys-address 324 | +--ro ucpe-if:higher-layer-if* interface-ref 325 | +--ro ucpe-if:lower-layer-if* interface-ref 326 | +--ro ucpe-if:speed? yang:gauge64 327 | +--ro ucpe-if:statistics 328 | | +--ro ucpe-if:discontinuity-time yang:date-and-time 329 | | +--ro ucpe-if:in-octets? yang:counter64 330 | | +--ro ucpe-if:in-unicast-pkts? yang:counter64 331 | | +--ro ucpe-if:in-broadcast-pkts? yang:counter64 332 | | +--ro ucpe-if:in-multicast-pkts? yang:counter64 333 | | +--ro ucpe-if:in-discards? yang:counter32 334 | | +--ro ucpe-if:in-errors? yang:counter32 335 | | +--ro ucpe-if:in-unknown-protos? yang:counter32 336 | | +--ro ucpe-if:out-octets? yang:counter64 337 | | +--ro ucpe-if:out-unicast-pkts? yang:counter64 338 | | +--ro ucpe-if:out-broadcast-pkts? yang:counter64 339 | | +--ro ucpe-if:out-multicast-pkts? yang:counter64 340 | | +--ro ucpe-if:out-discards? yang:counter32 341 | | +--ro ucpe-if:out-errors? yang:counter32 342 | +--rw ucpe-interface:ports* [port] 343 | +--rw ucpe-interface:port string 344 | +--rw ucpe-interface:link?-> ../../../../ietf-nfv:links/link 345 x--ro ucpe-if:interfaces-state 346 x--ro ucpe-if:interface* [name] 347 x--ro ucpe-if:name string 348 x--ro ucpe-if:type identityref 349 x--ro ucpe-if:admin-status enumeration {if-mib}? 350 x--ro ucpe-if:oper-status enumeration 351 x--ro ucpe-if:last-change? yang:date-and-time 352 x--ro ucpe-if:if-index int32 {if-mib}? 353 x--ro ucpe-if:phys-address? yang:phys-address 354 x--ro ucpe-if:speed? yang:gauge64 355 x--ro ucpe-if:statistics 356 x--ro ucpe-if:discontinuity-time yang:date-and-time 357 x--ro ucpe-if:in-octets? yang:counter64 358 x--ro ucpe-if:in-unicast-pkts? yang:counter64 359 x--ro ucpe-if:in-broadcast-pkts? yang:counter64 360 x--ro ucpe-if:in-multicast-pkts? yang:counter64 361 x--ro ucpe-if:in-discards? yang:counter32 362 x--ro ucpe-if:in-errors? yang:counter32 363 x--ro ucpe-if:in-unknown-protos? yang:counter32 364 x--ro ucpe-if:out-octets? yang:counter64 365 x--ro ucpe-if:out-unicast-pkts? yang:counter64 366 x--ro ucpe-if:out-broadcast-pkts? yang:counter64 367 x--ro ucpe-if:out-multicast-pkts? yang:counter64 368 x--ro ucpe-if:out-discards? yang:counter32 369 x--ro ucpe-if:out-errors? yang:counter32 371 6. Specification of the VNF YANG Service Model 373 This section presents the specification of the VYSM. There are 3 374 yang modules, where: 376 o yang module "ietf-vysm-interfaces" augments module "ietf- 377 interfaces" 379 o yang module "ietf-interfaces" augments module "ietf-vysm-service". 381 1. module ietf-ucpe{ 382 ... 383 list ucpe { 384 ... 385 } 386 } 388 2. module ietf-ucpe-interfaces { 389 import ietf-ucpe { prefix ietf-vysm; } 390 ... 391 augment "/ietf-vysm:ucpe"{ 392 container interfaces { 393 description "Interface parameters."; 394 list interface { 395 ... 396 } 397 } 398 } 400 3.module ietf-ucpe-interfaces-ports { 401 import ietf-ucpe { prefix ietf-nfv; } 402 import ietf-ucpe-interfaces { prefix ietf-if; } 403 ... 404 augment "/ietf-nfv:ucpe/ietf-if:interfaces/ietf-if:interface" { 406 } 407 } 409 6.1. uCPE main yang module 411 file "ietf-ucpe@2019-10-19.yang" 412 module ietf-ucpe { 413 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe"; 414 prefix ietf-ucpe; 416 organization "SFR"; 417 contact 418 "Dmytro Shytyi 419 EMail:ietf.dmytro@shytyi.net"; 420 description 421 "This is a Network Function Virtualization (NFV) YANG 422 service model. 424 Copyright (c) 2019 IETF Trust and the persons identified as 425 authors of the code. All rights reserved. 427 Redistribution and use in source and binary forms, with or 428 without modification, is permitted pursuant to, and subject to 429 the license terms contained in, the Simplified BSD License set 430 forth in Section 4.c of the IETF Trust's Legal Provisions 431 Relating to IETF Documents 432 (https://trustee.ietf.org/license-info). 434 This version of this YANG module is part of RFC XXXX 435 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 436 for full legal notices."; 438 revision 2019-10-19 { 439 description 440 "Yang model was cleaned.Ietf interfaces added"; 441 reference "draft-shytyi-opsawg-vysm-04"; 442 } 443 revision 2019-09-16 { 444 description 445 "Added 0day config for VNFs. 446 Yang model modified according 447 to the received comments."; 448 reference "draft-shytyi-opsawg-vysm-00"; 449 } 450 revision 2018-01-07 { 451 description 452 "Initial revision."; 453 reference "draft-shytyi-netmod-vysm-01"; 454 } 456 list ucpe { 457 key "name"; 458 leaf name { 459 type string; 460 description 461 "Device identificator"; 462 } 463 description 464 "Name of the instance of the service"; 465 list links { 466 key "link"; 467 leaf link { 468 type string { 469 pattern "[a-zA-Z0-9]*"; 470 } 471 description 472 "Name of the virtual link from the pool of 473 the links"; 474 } 475 description 476 "Pool of the virtual links that connect 477 VMs and Interfaces"; 478 } 479 list switches { 480 key "switch"; 481 leaf switch { 482 type string; 483 description 484 "Name of the forwarding domain"; 485 } 486 list ports { 487 key "port"; 488 leaf port { 489 type uint64 { 490 range "10..15"; 491 } 492 description 493 "Name of the connector"; 494 } 495 leaf name { 496 type string; 497 description 498 "Name of the subconnector"; 499 } 500 leaf link { 501 type leafref { 502 path "../../../links/link"; 503 } 504 description 505 "Link that is connected to the switch 506 via port"; 507 } 508 description 509 "Set of the connectors the forwarding 510 domain has"; 511 } 512 description 513 "Set of the forwarding domains"; 514 } 515 list vms { 516 key "vm"; 517 leaf vm { 518 type string { 519 pattern "[a-zA-Z]*"; 520 } 521 description 522 "Name of the Virtual Machine"; 524 } 525 list ports { 526 key "port"; 527 leaf port { 528 type string; 529 description 530 "Name of the connector"; 531 } 532 leaf name { 533 type string; 534 description 535 "Name of the subconnector"; 536 } 537 leaf link { 538 type leafref { 539 path "../../../links/link"; 540 } 541 description 542 "Link that connects the VM with a 543 switch or Interface via connector"; 544 } 545 description 546 "Set of Virtual Machine connectors"; 547 } 548 leaf ram { 549 type uint64; 550 description 551 "Size of RAM to allocate for the 552 Guest OS"; 553 } 554 leaf cpu { 555 type uint64; 556 description 557 "Number of vCPUs to allocate for the 558 Guest OS"; 559 } 560 list storages { 561 key "id"; 562 leaf id { 563 type string; 564 description 565 "Name of the Storage"; 566 } 567 leaf location { 568 type string; 569 description 570 "External location where the image is 571 saved."; 573 } 574 description 575 "Virtual storge of the image for the 576 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 that contains the 588 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 "name:value"; 605 } 606 description 607 "0day configuration:init config"; 608 } 609 description 610 "Set of the Virtual Machines configured on 611 the universal Customer-Premises Equipment"; 612 } 613 } 614 } 616 618 6.2. uCPE ports yang module for each interface 620 file "ietf-ucpe-interfaces-ports@2019-10-19.yang" 621 module ietf-ucpe-interfaces-ports { 622 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-interfaces-ports"; 623 prefix ucpe-interface; 625 import ietf-ucpe { 626 prefix ietf-nfv; 627 } 628 import ietf-ucpe-interfaces { 629 prefix ietf-if; 630 } 632 organization "SFR"; 633 contact 634 "Dmytro Shytyi 635 EMail:ietf.dmytro@shytyi.net"; 636 description 637 "This is a Network Function Virtualization (NFV) YANG 638 model for interfaces. 640 Copyright (c) 2019 IETF Trust and the persons identified as 641 authors of the code. All rights reserved. 643 Redistribution and use in source and binary forms, with or 644 without modification, is permitted pursuant to, and subject to 645 the license terms contained in, the Simplified BSD License set 646 forth in Section 4.c of the IETF Trust's Legal Provisions 647 Relating to IETF Documents 648 (https://trustee.ietf.org/license-info). 650 This version of this YANG module is part of RFC XXXX 651 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 652 for full legal notices."; 654 revision 2019-10-19 { 655 description 656 "Yang model is cleaned"; 657 reference "draft-shytyi-opsawg-vysm-04"; 658 } 659 revision 2019-10-03 { 660 description 661 "Initial revision."; 662 reference "draft-shytyi-opsawg-vysm-01"; 663 } 664 augment "/ietf-nfv:ucpe/ietf-if:interfaces/ietf-if:interface" { 665 list ports { 666 key "port"; 667 leaf port { 668 type string; 669 description 670 "Name of the connector"; 671 } 672 leaf link { 673 type leafref { 674 path "../../../../ietf-nfv:links/ietf-nfv:link"; 675 } 676 description 677 "Link that is connected to the port 678 via connector"; 679 } 680 description 681 "Set of the connectors the physical 682 interface has"; 683 } 684 description 685 "ucpe ports of the interface"; 686 } 687 } 689 691 6.3. uCPE interfaces yang module 693 file "ietf-ucpe-interfaces@2019-10-19.yang" 694 module ietf-ucpe-interfaces { 695 yang-version 1.1; 696 namespace "urn:ietf:params:xml:ns:yang:ietf-ucpe-interfaces"; 697 prefix ucpe-if; 699 import ietf-yang-types { 700 prefix yang; 701 } 702 import ietf-ucpe { 703 prefix ietf-vysm; 704 } 706 organization "IETF NETMOD (Network Modeling) Working Group"; 707 contact 708 "WG Web: 709 WG List: 711 Editor: Martin Bjorklund 712 "; 713 description 714 "This module contains a collection of YANG definitions for 715 managing network interfaces. 717 Copyright (c) 2018 IETF Trust and the persons identified as 718 authors of the code. All rights reserved. 720 Redistribution and use in source and binary forms, with or 721 without modification, is permitted pursuant to, and subject 722 to the license terms contained in, the Simplified BSD License 723 set forth in Section 4.c of the IETF Trust's Legal Provisions 724 Relating to IETF Documents 725 (https://trustee.ietf.org/license-info). 727 This version of this YANG module is part of RFC 8343; see 728 the RFC itself for full legal notices. 730 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 731 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 732 'MAY', and 'OPTIONAL' in this document are to be interpreted as 733 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 734 they appear in all capitals, as shown here."; 736 revision 2019-10-19 { 737 description 738 "Yang model updated according to the ucpe needs"; 739 reference "RFC 8343: A YANG Data Model for Interface Management"; 740 } 741 revision 2018-02-20 { 742 description 743 "Updated to support NMDA."; 744 reference "RFC 8343: A YANG Data Model for Interface Management"; 745 } 746 revision 2014-05-08 { 747 description 748 "Initial revision."; 749 reference "RFC 7223: A YANG Data Model for Interface Management"; 750 } 751 /* 752 * Typedefs 753 */ 755 typedef interface-ref { 756 type leafref { 757 path "/ietf-vysm:ucpe/"+ 758 "ucpe-if:interfaces/ucpe-if:interface/ucpe-if:name"; 759 } 760 description 761 "This type is used by data models that need to reference 762 interfaces."; 763 } 765 /* 766 * Identities 767 */ 769 identity interface-type { 770 description 771 "Base identity from which specific interface types are 772 derived."; 773 } 775 /* 776 * Features 777 */ 779 feature arbitrary-names { 780 description 781 "This feature indicates that the device allows user-controlled 782 interfaces to be named arbitrarily."; 783 } 785 feature pre-provisioning { 786 description 787 "This feature indicates that the device supports 788 pre-provisioning of interface configuration, i.e., it is 789 possible to configure an interface whose physical interface 790 hardware is not present on the device."; 791 } 793 feature if-mib { 794 description 795 "This feature indicates that the device implements 796 the IF-MIB."; 797 reference "RFC 2863: The Interfaces Group MIB"; 798 } 800 /* 801 * Data nodes 802 */ 804 augment "/ietf-vysm:ucpe" { 805 container interfaces { 806 description 807 "Interface parameters."; 808 list interface { 809 key "name"; 810 description 811 "The list of interfaces on the device. 813 The status of an interface is available in this list in the 814 operational state. If the configuration of a 815 system-controlled interface cannot be used by the system 816 (e.g., the interface hardware present does not match the 817 interface type), then the configuration is not applied to 818 the system-controlled interface shown in the operational 819 state. If the configuration of a user-controlled interface 820 cannot be used by the system, the configured interface is 821 not instantiated in the operational state. 823 System-controlled interfaces created by the system are 824 always present in this list in the operational state, 825 whether or not they are configured."; 826 leaf name { 827 type string; 828 description 829 "The name of the interface. 831 A device MAY restrict the allowed values for this leaf, 832 possibly depending on the type of the interface. 833 For system-controlled interfaces, this leaf is the 834 device-specific name of the interface. 836 If a client tries to create configuration for a 837 system-controlled interface that is not present in the 838 operational state, the server MAY reject the request if 839 the implementation does not support pre-provisioning of 840 interfaces or if the name refers to an interface that can 841 never exist in the system. A Network Configuration 842 Protocol (NETCONF) server MUST reply with an rpc-error 843 with the error-tag 'invalid-value' in this case. 845 If the device supports pre-provisioning of interface 846 configuration, the 'pre-provisioning' feature is 847 advertised. 849 If the device allows arbitrarily named user-controlled 850 interfaces, the 'arbitrary-names' feature is advertised. 852 When a configured user-controlled interface is created by 853 the system, it is instantiated with the same name in the 854 operational state. 856 A server implementation MAY map this leaf to the ifName 857 MIB object. Such an implementation needs to use some 858 mechanism to handle the differences in size and 859 characters 860 allowed between this leaf and ifName. The definition of 861 such a mechanism is outside the scope of this document."; 862 reference "RFC 2863: The Interfaces Group MIB - ifName"; 863 } 864 leaf description { 865 type string; 866 description 867 "A textual description of the interface. 869 A server implementation MAY map this leaf to the ifAlias 870 MIB object. Such an implementation needs to use some 871 mechanism to handle the differences in size and 872 characters 873 allowed between this leaf and ifAlias. The definition of 874 such a mechanism is outside the scope of this document. 876 Since ifAlias is defined to be stored in non-volatile 877 storage, the MIB implementation MUST map ifAlias to the 878 value of 'description' in the persistently stored 879 configuration."; 880 reference "RFC 2863: The Interfaces Group MIB - ifAlias"; 881 } 882 leaf type { 883 type identityref { 884 base interface-type; 885 } 886 mandatory true; 887 description 888 "The type of the interface. 890 When an interface entry is created, a server MAY 891 initialize the type leaf with a valid value, e.g., if it 892 is possible to derive the type from the name of the 893 interface. 895 If a client tries to set the type of an interface to a 896 value that can never be used by the system, e.g., if the 897 type is not supported or if the type does not match the 898 name of the interface, the server MUST reject the request. 899 A NETCONF server MUST reply with an rpc-error with the 900 error-tag 'invalid-value' in this case."; 901 reference "RFC 2863: The Interfaces Group MIB - ifType"; 902 } 903 leaf enabled { 904 type boolean; 905 default "true"; 906 description 907 "This leaf contains the configured, desired state of the 908 interface. 910 Systems that implement the IF-MIB use the value of this 911 leaf in the intended configuration to set 912 IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry 913 has been initialized, as described in RFC 2863. 915 Changes in this leaf in the intended configuration are 916 reflected in ifAdminStatus."; 917 reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; 918 } 919 leaf link-up-down-trap-enable { 920 if-feature if-mib; 921 type enumeration { 922 enum "enabled" { 923 value 1; 924 description 925 "The device will generate linkUp/linkDown SNMP 926 notifications for this interface."; 927 } 928 enum "disabled" { 929 value 2; 930 description 931 "The device will not generate linkUp/linkDown SNMP 932 notifications for this interface."; 933 } 934 } 935 description 936 "Controls whether linkUp/linkDown SNMP notifications 937 should be generated for this interface. 939 If this node is not configured, the value 'enabled' is 940 operationally used by the server for interfaces that do 941 not operate on top of any other interface (i.e., there 942 are 943 no 'lower-layer-if' entries), and 'disabled' otherwise."; 944 reference 945 "RFC 2863: The Interfaces Group MIB - 946 ifLinkUpDownTrapEnable"; 947 } 948 leaf admin-status { 949 if-feature if-mib; 950 type enumeration { 951 enum "up" { 952 value 1; 953 description 954 "Ready to pass packets."; 955 } 956 enum "down" { 957 value 2; 958 description 959 "Not ready to pass packets and not in some test mode."; 960 } 961 enum "testing" { 962 value 3; 963 description 964 "In some test mode."; 965 } 966 } 967 config false; 968 mandatory true; 969 description 970 "The desired state of the interface. 972 This leaf has the same read semantics as ifAdminStatus."; 973 reference "RFC 2863: The Interfaces Group MIB ifAdminStatus"; 974 } 975 leaf oper-status { 976 type enumeration { 977 enum "up" { 978 value 1; 979 description 980 "Ready to pass packets."; 981 } 982 enum "down" { 983 value 2; 984 description 985 "The interface does not pass any packets."; 986 } 987 enum "testing" { 988 value 3; 989 description 990 "In some test mode. No operational packets can 991 be passed."; 992 } 993 enum "unknown" { 994 value 4; 995 description 996 "Status cannot be determined for some reason."; 997 } 998 enum "dormant" { 999 value 5; 1000 description 1001 "Waiting for some external event."; 1002 } 1003 enum "not-present" { 1004 value 6; 1005 description 1006 "Some component (typically hardware) is missing."; 1007 } 1008 enum "lower-layer-down" { 1009 value 7; 1010 description 1011 "Down due to state of lower-layer interface(s)."; 1012 } 1013 } 1014 config false; 1015 mandatory true; 1016 description 1017 "The current operational state of the interface. 1019 This leaf has the same semantics as ifOperStatus."; 1020 reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; 1021 } 1022 leaf last-change { 1023 type yang:date-and-time; 1024 config false; 1025 description 1026 "The time the interface entered its current operational 1027 state. If the current state was entered prior to the 1028 last re-initialization of the local network management 1029 subsystem, then this node is not present."; 1030 reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; 1031 } 1032 leaf if-index { 1033 if-feature if-mib; 1034 type int32 { 1035 range "1..2147483647"; 1036 } 1037 config false; 1038 mandatory true; 1039 description 1040 "The ifIndex value for the ifEntry represented by this 1041 interface."; 1042 reference "RFC 2863: The Interfaces Group MIB - ifIndex"; 1043 } 1044 leaf phys-address { 1045 type yang:phys-address; 1046 config false; 1047 description 1048 "The interface's address at its protocol sub-layer. For 1049 example, for an 802.x interface, this object normally 1050 contains a Media Access Control (MAC) address. The 1051 interface's media-specific modules must define the bit 1052 and byte ordering and the format of the value of this 1053 object. For interfaces that do not have such an address 1054 (e.g., a serial line), this node is not present."; 1055 reference "RFC 2863: The Interfaces Group MIB ifPhysAddress"; 1056 } 1057 leaf-list higher-layer-if { 1058 type interface-ref; 1059 config false; 1060 description 1061 "A list of references to interfaces layered on top of this 1062 interface."; 1063 reference "RFC 2863: The Interfaces Group MIB 1064 - ifStackTable"; 1065 } 1066 leaf-list lower-layer-if { 1067 type interface-ref; 1068 config false; 1069 description 1070 "A list of references to interfaces layered 1071 underneath this interface."; 1072 reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; 1073 } 1074 leaf speed { 1075 type yang:gauge64; 1076 units "bits/second"; 1077 config false; 1078 description 1079 "An estimate of the interface's current bandwidth in bits 1080 per second. For interfaces that do not vary in 1081 bandwidth or for those where no accurate estimation can 1082 be made, this node should contain the nominal bandwidth. 1083 For interfaces that have no concept of bandwidth, this 1084 node is not present."; 1085 reference 1086 "RFC 2863: The Interfaces Group MIB - 1087 ifSpeed, ifHighSpeed"; 1088 } 1089 container statistics { 1090 config false; 1091 description 1092 "A collection of interface-related statistics objects."; 1093 leaf discontinuity-time { 1094 type yang:date-and-time; 1095 mandatory true; 1096 description 1097 "The time on the most recent occasion at which any one 1098 or more of this interface's counters suffered a 1099 discontinuity. If no such discontinuities have occurred 1100 since the last re-initialization of the local management 1101 subsystem, then this node contains the time the local 1102 management subsystem re-initialized itself."; 1103 } 1104 leaf in-octets { 1105 type yang:counter64; 1106 description 1107 "The total number of octets received on the interface, 1108 including framing characters. 1110 Discontinuities in the value of this counter can occur 1111 at re-initialization of the management system and at 1112 other times as indicated by the value of 1113 'discontinuity-time'."; 1114 reference "RFC 2863: The Interfaces Group MIB ifHCInOctets"; 1115 } 1116 leaf in-unicast-pkts { 1117 type yang:counter64; 1118 description 1119 "The number of packets, delivered by this sub-layer to a 1120 higher (sub-)layer, that were not addressed to a 1121 multicast or broadcast address at this sub-layer. 1123 Discontinuities in the value of this counter can occur 1124 at re-initialization of the management system and at 1125 other times as indicated by the value of 1126 'discontinuity-time'."; 1127 reference "RFC 2863: The Interfaces Group MIB - 1128 ifHCInUcastPkts"; 1129 } 1130 leaf in-broadcast-pkts { 1131 type yang:counter64; 1132 description 1133 "The number of packets, delivered by this sub-layer to a 1134 higher (sub-)layer, that were addressed to a broadcast 1135 address at this sub-layer. 1137 Discontinuities in the value of this counter can occur 1138 at re-initialization of the management system and at 1139 other times as indicated by the value of 1140 'discontinuity-time'."; 1141 reference 1142 "RFC 2863: The Interfaces Group MIB - 1143 ifHCInBroadcastPkts"; 1144 } 1145 leaf in-multicast-pkts { 1146 type yang:counter64; 1147 description 1148 "The number of packets, delivered by this sub-layer to a 1149 higher (sub-)layer, that were addressed to a multicast 1150 address at this sub-layer. For a MAC-layer protocol, 1151 this includes both Group and Functional addresses. 1153 Discontinuities in the value of this counter can occur 1154 at re-initialization of the management system and at 1155 other times as indicated by the value of 1156 'discontinuity-time'."; 1157 reference 1158 "RFC 2863: The Interfaces Group MIB - 1159 ifHCInMulticastPkts"; 1160 } 1161 leaf in-discards { 1162 type yang:counter32; 1163 description 1164 "The number of inbound packets that were chosen to be 1165 discarded even though no errors had been detected to 1166 prevent their being deliverable to a higher-layer 1167 protocol. One possible reason for discarding such a 1168 packet could be to free up buffer space. 1170 Discontinuities in the value of this counter can occur 1171 at re-initialization of the management system and at 1172 other times as indicated by the value of 1173 'discontinuity-time'."; 1174 reference "RFC 2863: The Interfaces Group MIB - 1175 ifInDiscards"; 1176 } 1177 leaf in-errors { 1178 type yang:counter32; 1179 description 1180 "For packet-oriented interfaces, the number of inbound 1181 packets that contained errors preventing them from being 1182 deliverable to a higher-layer protocol. For character- 1183 oriented or fixed-length interfaces, the number of 1184 inbound transmission units that contained errors 1185 preventing them from being deliverable to a higher-layer 1186 protocol. 1188 Discontinuities in the value of this counter can occur 1189 at re-initialization of the management system and at 1190 other times as indicated by the value of 1191 'discontinuity-time'."; 1192 reference "RFC 2863: The Interfaces Group MIB - 1193 ifInErrors"; 1194 } 1195 leaf in-unknown-protos { 1196 type yang:counter32; 1197 description 1198 "For packet-oriented interfaces, the number of packets 1199 received via the interface that were discarded because 1200 of an unknown or unsupported protocol. For 1201 character-oriented or fixed-length interfaces that 1202 support protocol multiplexing, the number of 1203 transmission units received via the interface that were 1204 discarded because of an unknown or unsupported protocol. 1205 For any interface that does not support protocol 1206 multiplexing, this counter is not present. 1208 Discontinuities in the value of this counter can occur 1209 at re-initialization of the management system and at 1210 other times as indicated by the value of 1211 'discontinuity-time'."; 1212 reference "RFC 2863: The Interfaces Group MIB - 1213 ifInUnknownProtos"; 1214 } 1215 leaf out-octets { 1216 type yang:counter64; 1217 description 1218 "The total number of octets transmitted out of the 1219 interface, including framing characters. 1221 Discontinuities in the value of this counter can occur 1222 at re-initialization of the management system and at 1223 other times as indicated by the value of 1224 'discontinuity-time'."; 1225 reference "RFC 2863: The Interfaces Group MIB - 1226 ifHCOutOctets"; 1227 } 1228 leaf out-unicast-pkts { 1229 type yang:counter64; 1230 description 1231 "The total number of packets that higher-level protocols 1232 requested be transmitted and that were not addressed 1233 to a multicast or broadcast address at this sub-layer, 1234 including those that were discarded or not sent. 1236 Discontinuities in the value of this counter can occur 1237 at re-initialization of the management system and at 1238 other times as indicated by the value of 1239 'discontinuity-time'."; 1240 reference "RFC 2863: The Interfaces Group MIB - 1241 ifHCOutUcastPkts"; 1242 } 1243 leaf out-broadcast-pkts { 1244 type yang:counter64; 1245 description 1246 "The total number of packets that higher-level protocols 1247 requested be transmitted and that were addressed to a 1248 broadcast address at this sub-layer, including those 1249 that were discarded or not sent. 1251 Discontinuities in the value of this counter can occur 1252 at re-initialization of the management system and at 1253 other times as indicated by the value of 1254 'discontinuity-time'."; 1255 reference 1256 "RFC 2863: The Interfaces Group MIB - 1257 ifHCOutBroadcastPkts"; 1258 } 1259 leaf out-multicast-pkts { 1260 type yang:counter64; 1261 description 1262 "The total number of packets that higher-level protocols 1263 requested be transmitted and that were addressed to a 1264 multicast address at this sub-layer, including those 1265 that were discarded or not sent. For a MAC-layer 1266 protocol, this includes both Group and Functional 1267 addresses. 1269 Discontinuities in the value of this counter can occur 1270 at re-initialization of the management system and at 1271 other times as indicated by the value of 1272 'discontinuity-time'."; 1273 reference 1274 "RFC 2863: The Interfaces Group MIB - 1275 ifHCOutMulticastPkts"; 1276 } 1277 leaf out-discards { 1278 type yang:counter32; 1279 description 1280 "The number of outbound packets that were chosen to be 1281 discarded even though no errors had been detected to 1282 prevent their being transmitted. One possible reason 1283 for discarding such a packet could be to free up buffer 1284 space. 1286 Discontinuities in the value of this counter can occur 1287 at re-initialization of the management system and at 1288 other times as indicated by the value of 1289 'discontinuity-time'."; 1290 reference "RFC 2863: The Interfaces Group MIB - 1291 ifOutDiscards"; 1292 } 1293 leaf out-errors { 1294 type yang:counter32; 1295 description 1296 "For packet-oriented interfaces, the number of outbound 1297 packets that could not be transmitted because of errors. 1298 For character-oriented or fixed-length interfaces, the 1299 number of outbound transmission units that could not be 1300 transmitted because of errors. 1302 Discontinuities in the value of this counter can occur 1303 at re-initialization of the management system and at 1304 other times as indicated by the value of 1305 'discontinuity-time'."; 1306 reference "RFC 2863: The Interfaces Group MIB - 1307 ifOutErrors"; 1308 } 1309 } 1310 } 1311 } 1312 /* 1313 * Legacy typedefs 1314 */ 1315 // typedef interface-state-ref { 1316 // type leafref { 1317 // path "/ietf-vysm:ucpe"+ 1318 // "ucpe-if:interfaces-state/ucpe-if:interface/ucpe-if:name"; 1319 // } 1320 // status deprecated; 1321 // description 1322 // "This type is used by data models that need to reference 1323 // the operationally present interfaces."; 1324 // } 1325 /* 1326 * Legacy operational state data nodes 1327 */ 1328 container interfaces-state { 1329 config false; 1330 status deprecated; 1331 description 1332 "Data nodes for the operational state of interfaces."; 1333 list interface { 1334 key "name"; 1335 status deprecated; 1336 description 1337 "The list of interfaces on the device. 1339 System-controlled interfaces created by the system are 1340 always present in this list, whether or not they are 1341 configured."; 1342 leaf name { 1343 type string; 1344 status deprecated; 1345 description 1346 "The name of the interface. 1348 A server implementation MAY map this leaf to the ifName 1349 MIB object. Such an implementation needs to use some 1350 mechanism to handle the differences in size and characters 1351 allowed between this leaf and ifName. The definition of 1352 such a mechanism is outside the scope of this document."; 1353 reference "RFC 2863: The Interfaces Group MIB - ifName"; 1354 } 1355 leaf type { 1356 type identityref { 1357 base interface-type; 1358 } 1359 mandatory true; 1360 status deprecated; 1361 description 1362 "The type of the interface."; 1363 reference "RFC 2863: The Interfaces Group MIB - ifType"; 1364 } 1365 leaf admin-status { 1366 if-feature if-mib; 1367 type enumeration { 1368 enum "up" { 1369 value 1; 1370 description 1371 "Ready to pass packets."; 1372 } 1373 enum "down" { 1374 value 2; 1375 description 1376 "Not ready to pass packets and not in some test mode."; 1377 } 1378 enum "testing" { 1379 value 3; 1380 description 1381 "In some test mode."; 1382 } 1383 } 1384 mandatory true; 1385 status deprecated; 1386 description 1387 "The desired state of the interface. 1389 This leaf has the same read semantics as ifAdminStatus."; 1390 reference "RFC 2863: The Interfaces Group MIB - 1391 ifAdminStatus"; 1392 } 1393 leaf oper-status { 1394 type enumeration { 1395 enum "up" { 1396 value 1; 1397 description 1398 "Ready to pass packets."; 1399 } 1400 enum "down" { 1401 value 2; 1402 description 1403 "The interface does not pass any packets."; 1404 } 1405 enum "testing" { 1406 value 3; 1407 description 1408 "In some test mode. No operational packets can 1409 be passed."; 1410 } 1411 enum "unknown" { 1412 value 4; 1413 description 1414 "Status cannot be determined for some reason."; 1415 } 1416 enum "dormant" { 1417 value 5; 1418 description 1419 "Waiting for some external event."; 1420 } 1421 enum "not-present" { 1422 value 6; 1423 description 1424 "Some component (typically hardware) is missing."; 1425 } 1426 enum "lower-layer-down" { 1427 value 7; 1428 description 1429 "Down due to state of lower-layer interface(s)."; 1430 } 1431 } 1432 mandatory true; 1433 status deprecated; 1434 description 1435 "The current operational state of the interface. 1437 This leaf has the same semantics as ifOperStatus."; 1438 reference "RFC 2863: The Interfaces Group MIB - 1439 ifOperStatus"; 1440 } 1441 leaf last-change { 1442 type yang:date-and-time; 1443 status deprecated; 1444 description 1445 "The time the interface entered its current operational 1446 state. If the current state was entered prior to the 1447 last re-initialization of the local network management 1448 subsystem, then this node is not present."; 1449 reference "RFC 2863: The Interfaces Group MIB - 1450 ifLastChange"; 1451 } 1452 leaf if-index { 1453 if-feature if-mib; 1454 type int32 { 1455 range "1..2147483647"; 1456 } 1457 mandatory true; 1458 status deprecated; 1459 description 1460 "The ifIndex value for the ifEntry represented by this 1461 interface."; 1462 reference "RFC 2863: The Interfaces Group MIB - ifIndex"; 1463 } 1464 leaf phys-address { 1465 type yang:phys-address; 1466 status deprecated; 1467 description 1468 "The interface's address at its protocol sub-layer. For 1469 example, for an 802.x interface, this object normally 1470 contains a Media Access Control (MAC) address. The 1471 interface's media-specific modules must define the bit 1472 and byte ordering and the format of the value of this 1473 object. For interfaces that do not have such an address 1474 (e.g., a serial line), this node is not present."; 1475 reference "RFC 2863: The Interfaces Group MIB - 1476 ifPhysAddress"; 1477 } 1478 // leaf-list higher-layer-if { 1479 // type interface-state-ref; 1480 // status deprecated; 1481 // description 1482 // "A list of references to interfaces layered on 1483 // top of this 1484 // interface."; 1485 // reference 1486 // "RFC 2863: The Interfaces Group MIB - 1487 // ifStackTable"; 1488 // } 1489 // 1490 // leaf-list lower-layer-if { 1491 // type interface-state-ref; 1492 // status deprecated; 1493 // description 1494 // "A list of references to interfaces 1495 // layered underneath this 1496 // interface."; 1497 // reference 1498 // "RFC 2863: The Interfaces Group MIB - 1499 // ifStackTable"; 1500 // } 1501 leaf speed { 1502 type yang:gauge64; 1503 units "bits/second"; 1504 status deprecated; 1505 description 1506 "An estimate of the interface's current bandwidth in bits 1507 per second. For interfaces that do not vary in 1508 bandwidth or for those where no accurate estimation can 1510 be made, this node should contain the nominal bandwidth. 1511 For interfaces that have no concept of bandwidth, this 1512 node is not present."; 1513 reference 1514 "RFC 2863: The Interfaces Group MIB - 1515 ifSpeed, ifHighSpeed"; 1516 } 1517 container statistics { 1518 status deprecated; 1519 description 1520 "A collection of interface-related statistics objects."; 1521 leaf discontinuity-time { 1522 type yang:date-and-time; 1523 mandatory true; 1524 status deprecated; 1525 description 1526 "The time on the most recent occasion at which any one or 1527 more of this interface's counters suffered a 1528 discontinuity. If no such discontinuities have occurred 1529 since the last re-initialization of the local management 1530 subsystem, then this node contains the time the local 1531 management subsystem re-initialized itself."; 1532 } 1533 leaf in-octets { 1534 type yang:counter64; 1535 status deprecated; 1536 description 1537 "The total number of octets received on the interface, 1538 including framing characters. 1540 Discontinuities in the value of this counter can occur 1541 at re-initialization of the management system and at 1542 other times as indicated by the value of 1543 'discontinuity-time'."; 1544 reference "RFC 2863: The Interfaces Group MIB - 1545 ifHCInOctets"; 1546 } 1547 leaf in-unicast-pkts { 1548 type yang:counter64; 1549 status deprecated; 1550 description 1551 "The number of packets, delivered by this sub-layer to a 1552 higher (sub-)layer, that were not addressed to a 1553 multicast or broadcast address at this sub-layer. 1554 Discontinuities in the value of this counter can occur 1555 at re-initialization of the management system and at 1556 other times as indicated by the value of 1557 'discontinuity-time'."; 1558 reference "RFC 2863: The Interfaces Group MIB - 1559 ifHCInUcastPkts"; 1560 } 1561 leaf in-broadcast-pkts { 1562 type yang:counter64; 1563 status deprecated; 1564 description 1565 "The number of packets, delivered by this sub-layer to a 1566 higher (sub-)layer, that were addressed to a broadcast 1567 address at this sub-layer. 1569 Discontinuities in the value of this counter can occur 1570 at re-initialization of the management system and at 1571 other times as indicated by the value of 1572 'discontinuity-time'."; 1573 reference 1574 "RFC 2863: The Interfaces Group MIB - 1575 ifHCInBroadcastPkts"; 1576 } 1577 leaf in-multicast-pkts { 1578 type yang:counter64; 1579 status deprecated; 1580 description 1581 "The number of packets, delivered by this sub-layer to a 1582 higher (sub-)layer, that were addressed to a multicast 1583 address at this sub-layer. For a MAC-layer protocol, 1584 this includes both Group and Functional addresses. 1586 Discontinuities in the value of this counter can occur 1587 at re-initialization of the management system and at 1588 other times as indicated by the value of 1589 'discontinuity-time'."; 1590 reference 1591 "RFC 2863: The Interfaces Group MIB - 1592 ifHCInMulticastPkts"; 1593 } 1594 leaf in-discards { 1595 type yang:counter32; 1596 status deprecated; 1597 description 1598 "The number of inbound packets that were chosen to be 1599 discarded even though no errors had been detected to 1600 prevent their being deliverable to a higher-layer 1601 protocol. One possible reason for discarding such a 1602 packet could be to free up buffer space. 1604 Discontinuities in the value of this counter can occur 1605 at re-initialization of the management system and at 1606 other times as indicated by the value of 1607 'discontinuity-time'."; 1608 reference "RFC 2863: The Interfaces Group MIB - 1609 ifInDiscards"; 1610 } 1611 leaf in-errors { 1612 type yang:counter32; 1613 status deprecated; 1614 description 1615 "For packet-oriented interfaces, the number of inbound 1616 packets that contained errors preventing them from being 1617 deliverable to a higher-layer protocol. For character- 1618 oriented or fixed-length interfaces, the number of 1619 inbound transmission units that contained errors 1620 preventing them from being deliverable to a higher-layer 1621 protocol. 1623 Discontinuities in the value of this counter can occur 1624 at re-initialization of the management system and at 1625 other times as indicated by the value of 1626 'discontinuity-time'."; 1627 reference "RFC 2863: The Interfaces Group MIB - 1628 ifInErrors"; 1629 } 1630 leaf in-unknown-protos { 1631 type yang:counter32; 1632 status deprecated; 1633 description 1634 "For packet-oriented interfaces, the number of packets 1635 received via the interface that were discarded because 1636 of an unknown or unsupported protocol. For 1637 character-oriented or fixed-length interfaces that 1638 support protocol multiplexing, the number of 1639 transmission units received via the interface that were 1640 discarded because of an unknown or unsupported protocol. 1641 For any interface that does not support protocol 1642 multiplexing, this counter is not present. 1643 Discontinuities in the value of this counter can occur 1644 at re-initialization of the management system and at 1645 other times as indicated by the value of 1646 'discontinuity-time'."; 1647 reference "RFC 2863: The Interfaces Group MIB - 1648 ifInUnknownProtos"; 1649 } 1650 leaf out-octets { 1651 type yang:counter64; 1652 status deprecated; 1653 description 1654 "The total number of octets transmitted out of the 1655 interface, including framing characters. 1657 Discontinuities in the value of this counter can occur 1658 at re-initialization of the management system and at 1659 other times as indicated by the value of 1660 'discontinuity-time'."; 1661 reference "RFC 2863: The Interfaces Group MIB - 1662 ifHCOutOctets"; 1664 } 1665 leaf out-unicast-pkts { 1666 type yang:counter64; 1667 status deprecated; 1668 description 1669 "The total number of packets that higher-level protocols 1670 requested be transmitted and that were not addressed 1671 to a multicast or broadcast address at this sub-layer, 1672 including those that were discarded or not sent. 1674 Discontinuities in the value of this counter can occur 1675 at re-initialization of the management system and at 1676 other times as indicated by the value of 1677 'discontinuity-time'."; 1678 reference "RFC 2863: The Interfaces Group MIB - 1679 ifHCOutUcastPkts"; 1680 } 1681 leaf out-broadcast-pkts { 1682 type yang:counter64; 1683 status deprecated; 1684 description 1685 "The total number of packets that higher-level protocols 1686 requested be transmitted and that were addressed to a 1687 broadcast address at this sub-layer, including those 1688 that were discarded or not sent. 1690 Discontinuities in the value of this counter can occur 1691 at re-initialization of the management system and at 1692 other times as indicated by the value of 1693 'discontinuity-time'."; 1694 reference 1695 "RFC 2863: The Interfaces Group MIB - 1696 ifHCOutBroadcastPkts"; 1697 } 1698 leaf out-multicast-pkts { 1699 type yang:counter64; 1700 status deprecated; 1701 description 1702 "The total number of packets that higher-level protocols 1703 requested be transmitted and that were addressed to a 1704 multicast address at this sub-layer, including those 1705 that were discarded or not sent. For a MAC-layer 1706 protocol, this includes both Group and Functional 1707 addresses. 1709 Discontinuities in the value of this counter can occur 1710 at re-initialization of the management system and at 1711 other times as indicated by the value of 1712 'discontinuity-time'."; 1713 reference 1714 "RFC 2863: The Interfaces Group MIB - 1715 ifHCOutMulticastPkts"; 1716 } 1717 leaf out-discards { 1718 type yang:counter32; 1719 status deprecated; 1720 description 1721 "The number of outbound packets that were chosen to be 1722 discarded even though no errors had been detected to 1723 prevent their being transmitted. One possible reason 1724 for discarding such a packet could be to free up buffer 1725 space. 1727 Discontinuities in the value of this counter can occur 1728 at re-initialization of the management system and at 1729 other times as indicated by the value of 1730 'discontinuity-time'."; 1731 reference "RFC 2863: The Interfaces Group MIB - 1732 ifOutDiscards"; 1733 } 1734 leaf out-errors { 1735 type yang:counter32; 1736 status deprecated; 1737 description 1738 "For packet-oriented interfaces, the number of outbound 1739 packets that could not be transmitted because of errors. 1740 For character-oriented or fixed-length interfaces, the 1741 number of outbound transmission units that could not be 1742 transmitted because of errors. 1744 Discontinuities in the value of this counter can occur 1745 at re-initialization of the management system and at 1746 other times as indicated by the value of 1747 'discontinuity-time'."; 1748 reference "RFC 2863: The Interfaces Group MIB - 1749 ifOutErrors"; 1750 } 1751 } 1752 } 1753 } 1754 description 1755 "ucpe physical interfaces"; 1756 } 1758 } 1759 1761 7. XML example 1763 The XML example below presents the configuration of the next service 1764 in the uCPE, where: vSW(LAN), vSW(WAN), vSW(Service) - virtual 1765 switches; l1,l2,l3,l4 - virtual links; VMs represent PNFs (Physical 1766 Network Fuctions) that could be bootstrapped with 0day config/ 1767 license. 1769 +--------+ +-------------+ +------------+ 1770 |vSW(LAN)|--l2--|VNF-vFirewall|--l3--| | 1771 +--------+ +-------------+ | | 1772 +--------+ +-------------+ |vSW(Service)| 1773 |vSW(WAN)|--l1--| VNF_vCPE |--l4--| | 1774 +--------+ +-------------+ +------------+ 1776 1777 ucpe1 1778 1779 l1 1780 1781 1782 l2 1783 1784 1785 l3 1786 1787 1788 l4 1789 1790 1791 lan 1792 1793 10 1794 l2p10 1795 l2 1796 1797 1798 1799 service 1800 1801 10 1802 l3p10 1803 l3 1804 1805 1806 11 1807 l4p10 1808 l4 1809 1810 1811 1812 wan 1813 1814 10 1815 l1 1816 1817 1818 1819 VNF-vCPE 1820 1821 1 1822 l1p1 1823 l1 1824 1825 1826 2 1827 l4p2 1828 l4 1829 1830 2048 1831 2 1832 1833 1 1834 http://192.168.2.1/vCPE-x86.qcow2 1835 1836 1837 https://192.168.2.1/vCPE-day0.iso 1838 /config.rom 1839 1840 hostname 1841 IETF-vCPE 1842 1843 1844 ipaddress 1845 192.168.1.2 255.255.255.0 1846 1847 1848 1849 1850 VNF-vFirewall 1851 1852 1 1853 l3p1 1854 l3 1855 1856 1857 2 1858 l2p2 1859 l2 1860 1861 2048 1862 2 1863 1864 1 1865 http://192.168.2.1/vFirewall-x86.qcow2 1866 1867 1868 https://192.168.2.1/vFirewall-day0.iso 1869 /config.rom 1870 1871 hostname 1872 vFirewall 1873 1874 1875 ipaddress 1876 192.168.1.3 255.255.255.0 1877 1878 1879 1880 1882 8. Security Considerations 1884 At this time, no security considerations are addressed by this memo. 1886 9. IANA Considerations 1888 No request to IANA at this time. 1890 10. Acknowledgements 1892 The authors would like to thank: 1894 o Mahesh Jethanandani. 1896 o Robert Varga. 1898 o Bill Wu. 1900 o Joe Clarke. 1902 o Tom Petch. 1904 for their valuable comments. 1906 11. Normative References 1908 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1909 Requirement Levels", BCP 14, RFC 2119, 1910 DOI 10.17487/RFC2119, March 1997, 1911 . 1913 [RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module 1914 Classification", RFC 8199, DOI 10.17487/RFC8199, July 1915 2017, . 1917 Authors' Addresses 1919 Dmytro Shytyi 1920 SFR 1921 Paris , Ile-de-France 1922 France 1924 Email: ietf.dmytro@shytyi.net 1925 URI: https://dmytro.shytyi.net 1927 Laurent Beylier 1928 SFR 1929 Paris , Ile-de-France 1930 France 1932 Email: laurent.beylier@sfr.com 1934 Luigi Iannone 1935 Telecom ParisTech 1936 Paris , Ile-de-France 1937 France 1939 Email: luigi.iannone@telecom-paristech.fr