blob: 7a0594b73e52da9db41310cccd51a40e128536e9 [file] [log] [blame]
velandy88a64f12017-06-07 23:32:49 -04001
2/*
Adam Israelcc14dd72017-06-28 14:31:45 -04003 *
Rajesh Velandye27e0b22017-09-18 17:21:48 -04004 * Copyright 2016-2017 RIFT.IO Inc
velandy88a64f12017-06-07 23:32:49 -04005 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 *
19 */
20
21module vnfr
22{
garciadeblasc038a8d2019-04-03 13:35:27 +020023 namespace "urn:etsi:osm:yang:vnfr";
velandy88a64f12017-06-07 23:32:49 -040024 prefix "vnfr";
25
26 import mano-types {
27 prefix "manotypes";
28 }
29
Rajesh Velandye27e0b22017-09-18 17:21:48 -040030 import vnfd-base {
31 prefix "vnfd-base";
velandy88a64f12017-06-07 23:32:49 -040032 }
33
Rajesh Velandye27e0b22017-09-18 17:21:48 -040034 import project-vnfd {
35 prefix "project-vnfd";
36 }
37
38 import project-nsd {
39 prefix "project-nsd";
velandy88a64f12017-06-07 23:32:49 -040040 }
41
42 import vlr {
43 prefix "vlr";
44 }
45
46 import ietf-yang-types {
47 prefix "yang";
48 }
49
50 import ietf-inet-types {
51 prefix "inet";
52 }
53
garciadeblasc038a8d2019-04-03 13:35:27 +020054 import osm-project {
55 prefix "osm-project";
Rajesh Velandye27e0b22017-09-18 17:21:48 -040056 }
57
58 revision 2017-02-28 {
59 description
60 "Update model to support projects.";
61 }
62
velandy88a64f12017-06-07 23:32:49 -040063 revision 2015-09-10 {
64 description
65 "Initial revision. This YANG file defines
66 the Virtual Network Function Record (VNFR)";
67 reference
68 "Derived from earlier versions of base YANG files";
69 }
70
Rajesh989442e2017-10-08 04:13:32 +000071 typedef vdu-operational-status {
72 type enumeration {
73 enum init;
74 enum vm-init-phase;
75 enum vm-alloc-pending;
76 enum running;
Adam Israelfcfb1cb2017-10-10 12:12:30 -040077 enum upgrading;
Rajesh989442e2017-10-08 04:13:32 +000078 enum terminate;
79 enum vl-terminate-phase;
80 enum terminated;
81 enum failed;
82 }
83 }
84
85 typedef vnf-operational-status {
86 type enumeration {
87 enum pre-init;
88 enum init;
89 enum vl-init-phase;
90 enum vm-init-phase;
91 enum running;
Adam Israelfcfb1cb2017-10-10 12:12:30 -040092 enum upgrading; // Experimental
Rajesh989442e2017-10-08 04:13:32 +000093 enum terminate;
94 enum vm-terminate-phase;
95 enum vl-terminate-phase;
96 enum terminated;
97 enum failed;
98 }
99 }
100
velandy88a64f12017-06-07 23:32:49 -0400101 grouping placement-group-info {
102 list placement-groups-info {
103 description
104 "
105 Placement groups to which this VDU belongs and its
106 cloud construct
107 ";
108 key "name";
109 uses manotypes:placement-group-info;
110 uses manotypes:placement-group-input;
Adam Israelcc14dd72017-06-28 14:31:45 -0400111 }
velandy88a64f12017-06-07 23:32:49 -0400112 }
Adam Israelcc14dd72017-06-28 14:31:45 -0400113
velandy88a64f12017-06-07 23:32:49 -0400114 grouping virtual-interface {
115 container virtual-interface {
116 description
117 "Container for the virtual interface properties";
118
119 leaf type {
120 description
121 "Specifies the type of virtual interface
122 between VM and host.
garciadeblasc0a20492018-10-11 16:26:04 +0200123 PARAVIRT : Use the default paravirtualized interface for the VIM (virtio, vmxnet3, etc.).
124 VIRTIO : Deprecated! Use the traditional VIRTIO interface.
velandy88a64f12017-06-07 23:32:49 -0400125 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
126 SR-IOV : Use SR-IOV interface.";
127 type enumeration {
garciadeblasc0a20492018-10-11 16:26:04 +0200128 enum PARAVIRT;
velandy88a64f12017-06-07 23:32:49 -0400129 enum VIRTIO;
130 enum PCI-PASSTHROUGH;
131 enum SR-IOV;
132 }
133 }
134
135 leaf bandwidth {
136 description
137 "Aggregate bandwidth of the NIC.";
138 type uint64;
139 }
140
141 leaf ovs-offload {
142 description
143 "Defines if the NIC supports OVS offload.
144 MANDATORY : OVS offload support in the NIC is mandatory.
145 PREFERRED : OVS offload support in the NIC is preferred.";
146 type enumeration {
147 enum MANDATORY;
148 enum PREFERRED;
149 }
150 }
151
152 leaf vendor-id {
153 description
154 "Specifies the vendor specific id for
155 the device. This is used when a NIC from
156 specific HW vendor is required.";
157 type string;
158 }
159
160 leaf datapath-library {
161 description
162 "Specifies the name and version of the datapath
163 library the NIC is expected to support.";
164 type string;
165 }
166
167 leaf provider-network-name {
168 description
169 "Name of the provider network to which this
170 NIC is attached.";
171 type string;
172 }
173 }
174 }
175
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400176 grouping associated-virtual-cps {
177 list virtual-cps {
178 key "name";
179 uses vnfd-base:common-connection-point;
velandy88a64f12017-06-07 23:32:49 -0400180
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400181 leaf ip-address {
182 description
183 "IP address assigned to the virtual connection point";
184 type inet:ip-address;
velandy88a64f12017-06-07 23:32:49 -0400185 }
186
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400187 leaf mac-address {
velandy88a64f12017-06-07 23:32:49 -0400188 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400189 "MAC address assigned to the virtual connection point";
190 type string;
191 }
192
193 leaf connection-point-id {
194 description "VIM identifier for connection point";
195 type string;
196 }
197 }
198 }
199
garciadeblasc038a8d2019-04-03 13:35:27 +0200200 augment "/osm-project:project" {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400201 container vnfr-catalog {
garciadeblas781fe342017-12-18 11:34:47 +0100202 leaf schema-version {
203 description "Schema version for the VNFR. If unspecified, it assumes v3.0";
204 type string;
205 default "v3.0";
206 }
207
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400208 config false;
209 list vnfr {
210 description
211 "Virtual Network Function Record (VNFR).";
212 key "id";
213 unique "name";
214
215 leaf id {
216 description "Identifier for the VNFR.";
217 type yang:uuid;
218 }
219
220 leaf nsr-id-ref {
221 description
velandy88a64f12017-06-07 23:32:49 -0400222 "NS instance identifier.
223 This is a leafref /nsr:ns-instance-config/nsr:nsr/nsr:id";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400224 type yang:uuid;
velandy88a64f12017-06-07 23:32:49 -0400225 }
velandy88a64f12017-06-07 23:32:49 -0400226
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400227 leaf member-vnf-index-ref {
228 description "Reference to member VNF index in Network service.";
229 type leafref {
230 path "../../../project-nsd:nsd-catalog/project-nsd:nsd/project-nsd:constituent-vnfd/project-nsd:member-vnf-index";
231 }
232 }
velandy88a64f12017-06-07 23:32:49 -0400233
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400234 leaf dashboard-url {
235 description "Dashboard URL";
236 type inet:uri;
237 }
velandy88a64f12017-06-07 23:32:49 -0400238
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400239 leaf name {
240 description "VNFR name.";
241 type string;
242 }
velandy88a64f12017-06-07 23:32:49 -0400243
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400244 leaf short-name {
245 description "VNFR short name.";
246 type string;
247 }
velandy88a64f12017-06-07 23:32:49 -0400248
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400249 leaf vendor {
250 description "Vendor of the VNFR.";
251 type string;
252 }
velandy88a64f12017-06-07 23:32:49 -0400253
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400254 leaf description {
255 description "Description of the VNFR.";
256 type string;
257 }
velandy88a64f12017-06-07 23:32:49 -0400258
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400259 leaf version {
260 description "Version of the VNFR";
261 type string;
262 }
263
264 leaf create-time {
265 description
266 "Creation timestamp of this Virtual Network
Adam Israelcc14dd72017-06-28 14:31:45 -0400267 Function. The timestamp is expressed as
velandy88a64f12017-06-07 23:32:49 -0400268 seconds since unix epoch - 1970-01-01T00:00:00Z";
269
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400270 type uint32;
271 }
velandy88a64f12017-06-07 23:32:49 -0400272
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400273 leaf uptime {
274 description
275 "Active period of this Virtual Network Function.
velandy88a64f12017-06-07 23:32:49 -0400276 Uptime is expressed in seconds";
277
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400278 type uint32;
279 }
velandy88a64f12017-06-07 23:32:49 -0400280
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400281 container vnfd {
282 description "VNF descriptor used to instantiate this VNF";
283 uses vnfd-base:vnfd-descriptor;
284 }
velandy88a64f12017-06-07 23:32:49 -0400285
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400286 leaf vnfd-ref {
287 description "Reference to VNFD";
288 type leafref {
289 path "../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
290 }
291 }
292
293 // Use parameters provided here to configure this VNF
garciadeblas0ec676d2017-12-18 18:22:27 +0100294 container vnf-configuration {
295 uses manotypes:vca-configuration;
296 }
velandy88a64f12017-06-07 23:32:49 -0400297
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400298 // Mainly used by Mon-params & dashboard url
299 container mgmt-interface {
300 leaf ip-address {
301 type inet:ip-address;
302 }
velandy88a64f12017-06-07 23:32:49 -0400303
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400304 leaf port {
305 type inet:port-number;
306 }
velandy88a64f12017-06-07 23:32:49 -0400307
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400308 container ssh-key {
309 description "SSH key pair used for this VNF";
310 leaf public-key {
311 description "Public key configured on this VNF";
312 type string;
313 }
314
315 leaf private-key-file {
316 description "Path to the private key file";
317 type string;
318 }
velandy88a64f12017-06-07 23:32:49 -0400319 }
320 }
321
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400322 list internal-vlr {
323 key "vlr-ref";
324
325 leaf vlr-ref {
326 description "Reference to a VLR record in the VLR catalog";
327 type leafref {
328 path "../../../../vlr:vlr-catalog/vlr:vlr/vlr:id";
329 }
330 }
331
332 leaf-list internal-connection-point-ref {
333 type leafref {
334 path "../../vdur/internal-connection-point/id";
335 }
velandy88a64f12017-06-07 23:32:49 -0400336 }
337 }
velandy88a64f12017-06-07 23:32:49 -0400338
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400339 list connection-point {
340 key "name";
341 description
velandy88a64f12017-06-07 23:32:49 -0400342 "List for external connection points. Each VNF has one
343 or more external connection points. As the name
344 implies that external connection points are used for
345 connecting the VNF to other VNFs or to external networks.
346 Each VNF exposes these connection points to the
347 orchestrator. The orchestrator can construct network
348 services by connecting the connection points between
349 different VNFs. The NFVO will use VLDs and VNFFGs at
350 the network service level to construct network services.";
351
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400352 uses vnfd-base:common-connection-point;
velandy88a64f12017-06-07 23:32:49 -0400353
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400354 leaf vlr-ref {
355 description
velandy88a64f12017-06-07 23:32:49 -0400356 "Reference to the VLR associated with this connection point";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400357 type leafref {
358 path "../../../../vlr:vlr-catalog/vlr:vlr/vlr:id";
359 }
velandy88a64f12017-06-07 23:32:49 -0400360 }
velandy88a64f12017-06-07 23:32:49 -0400361
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400362 leaf ip-address {
363 description
velandy88a64f12017-06-07 23:32:49 -0400364 "IP address assigned to the external connection point";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400365 type inet:ip-address;
velandy88a64f12017-06-07 23:32:49 -0400366 }
Rajesh989442e2017-10-08 04:13:32 +0000367
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400368 leaf mac-address {
369 description
370 "MAC address assigned to the external connection point";
371 // type inet:mac-address;
372 type string;
373 }
374
375 leaf connection-point-id {
376 type string;
377 }
378
379 uses associated-virtual-cps;
velandy88a64f12017-06-07 23:32:49 -0400380 }
381
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400382 list vdur {
383 description "List of Virtual Deployment Units";
384 key "id";
385 unique "name";
velandy88a64f12017-06-07 23:32:49 -0400386
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400387 leaf id {
388 description "Unique id for the VDU";
389 type yang:uuid;
390 }
velandy88a64f12017-06-07 23:32:49 -0400391
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400392 leaf name {
393 description "name of the instantiated VDUR";
394 type string;
395 }
velandy88a64f12017-06-07 23:32:49 -0400396
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400397 leaf unique-short-name {
398 description "Short Unique name of the VDU
399 This will be of the format NSR name-ShortnedString-VDUname
400 NSR name and VDU name shall be constrained to 10 characters";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400401 type string;
402 }
velandy88a64f12017-06-07 23:32:49 -0400403
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400404 leaf vdu-id-ref {
405 type leafref {
406 path "../../vnfd/vdu/id";
407 }
408 }
velandy88a64f12017-06-07 23:32:49 -0400409
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400410 leaf vim-id {
411 description "Allocated VM resource id";
412 type string;
413 }
velandy88a64f12017-06-07 23:32:49 -0400414
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400415 leaf flavor-id {
416 description "VIM assigned flavor id";
417 type string;
418 }
velandy88a64f12017-06-07 23:32:49 -0400419
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400420 leaf image-id {
421 description "VIM assigned image id";
422 type string;
423 }
424
425 leaf management-ip {
426 description "Management IP address";
427 type inet:ip-address;
428 }
429
430 leaf vm-management-ip {
431 description "VM Private Management IP address";
432 type inet:ip-address;
433 }
434
435 leaf console-url {
436 description "Console URL for this VDU, if available";
437 type inet:uri;
438 }
439
440 uses manotypes:vm-flavor;
441 uses manotypes:guest-epa;
442 uses manotypes:vswitch-epa;
443 uses manotypes:hypervisor-epa;
444 uses manotypes:host-epa;
445
446 uses manotypes:supplemental-boot-data;
velandy88a64f12017-06-07 23:32:49 -0400447
garciadeblas0ec676d2017-12-18 18:22:27 +0100448 container vdu-configuration {
449 uses manotypes:vca-configuration;
450 }
Adam Israelcc14dd72017-06-28 14:31:45 -0400451
garciadeblas7c7af702018-06-12 15:43:51 +0200452 list monitoring-param {
453 description
454 "List of VDU-related monitoring parameters at NFVI level";
455 key id;
456 leaf id {
457 description "The unique id of the monitoring param at VDU level";
458 type string;
459 }
460
461 leaf nfvi-metric {
462 description "The associated NFVI metric to be monitored";
463 type manotypes:nfvi-metric-type;
464 }
465
466 leaf interface-name-ref {
467 description
468 "Reference to a VDU interface name. Applicable only when the nfvi-metric
469 refers to an interface and not to the VM";
470 type leafref {
471 path "../../interface/name";
472 }
473 }
474 }
475
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400476 list volumes {
477 key "name";
velandy88a64f12017-06-07 23:32:49 -0400478
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400479 leaf name {
480 description "Name of the disk-volumes, e.g. vda, vdb etc";
481 type string;
482 }
483
484 leaf volume-id {
485 description "VIM assigned volume id";
486 type string;
487 }
488
489 uses manotypes:volume-info;
velandy88a64f12017-06-07 23:32:49 -0400490 }
491
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400492 list internal-connection-point {
493 key "id";
494 description
velandy88a64f12017-06-07 23:32:49 -0400495 "List for internal connection points. Each VNFC
496 has zero or more internal connection points.
497 Internal connection points are used for connecting
498 the VNF components internal to the VNF. If a VNF
499 has only one VNFC, it may not have any internal
500 connection points.";
501
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400502 uses vnfd-base:common-connection-point;
velandy88a64f12017-06-07 23:32:49 -0400503
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400504 leaf ip-address {
505 description
velandy88a64f12017-06-07 23:32:49 -0400506 "IP address assigned to the internal connection point";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400507 type inet:ip-address;
508 }
Rajesh989442e2017-10-08 04:13:32 +0000509
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400510 leaf mac-address {
511 description
velandy88a64f12017-06-07 23:32:49 -0400512 "MAC address assigned to the internal connection point";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400513 // type inet:mac-address;
514 type string;
515 }
velandy88a64f12017-06-07 23:32:49 -0400516
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400517 leaf connection-point-id {
518 type string;
519 }
520
521 uses associated-virtual-cps;
522 }
523
garciadeblas0ec676d2017-12-18 18:22:27 +0100524 list interface {
velandy88a64f12017-06-07 23:32:49 -0400525 description
garciadeblas0ec676d2017-12-18 18:22:27 +0100526 "List of interfaces (internal and external) for the VNF";
527 key name;
velandy88a64f12017-06-07 23:32:49 -0400528
garciadeblas0ec676d2017-12-18 18:22:27 +0100529 leaf name {
530 description
531 "Name of the interface. Note that this
532 name has only local significance to the VDU.";
533 type string;
534 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400535
garciadeblas0ec676d2017-12-18 18:22:27 +0100536 leaf position {
537 description
538 "Explicit Position of the interface within the list";
539 type uint32;
540 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400541
garciadeblas0ec676d2017-12-18 18:22:27 +0100542 leaf type {
543 description
544 "Type of the Interface";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400545
garciadeblas0ec676d2017-12-18 18:22:27 +0100546 type vnfd-base:interface-type;
547
548 default "EXTERNAL";
549 }
550 choice connection-point-type {
551 case internal {
552 leaf internal-connection-point-ref {
553 description
554 "Leaf Ref to the particular internal connection point";
555 type leafref {
556 path "../../internal-connection-point/id";
557 }
558 }
559 }
560 case external {
561 leaf external-connection-point-ref {
562 description
563 "Leaf Ref to the particular external connection point";
564 type leafref {
565 path "../../../connection-point/name";
566 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400567 }
568 }
569 }
garciadeblas0ec676d2017-12-18 18:22:27 +0100570 uses virtual-interface;
velandy88a64f12017-06-07 23:32:49 -0400571 }
velandy88a64f12017-06-07 23:32:49 -0400572
garciadeblas0ec676d2017-12-18 18:22:27 +0100573 leaf operational-status {
Rajesh989442e2017-10-08 04:13:32 +0000574 description
575 "The operational status of the VDU
576 init : The VDU has just started.
577 vm-init-phase : The VDUs in the VNF is being created in VIM.
578 vm-alloc-pending : The VM alloc is pending in VIM
579 running : The VDU is active in VM
Adam Israelfcfb1cb2017-10-10 12:12:30 -0400580 upgrading : The VDU is being upgraded (EXPERIMENTAL)
Rajesh989442e2017-10-08 04:13:32 +0000581 terminate : The VDU is being terminated
582 vm-terminate-phase : The VDU in the VNF is being terminated in VIM.
583 terminated : The VDU is in the terminated state.
584 failed : The VDU instantiation failed.
585 ";
586 type vdu-operational-status;
garciadeblas0ec676d2017-12-18 18:22:27 +0100587 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400588
589 uses placement-group-info;
590 }
591
garciadeblas7c7af702018-06-12 15:43:51 +0200592 list monitoring-param {
593 description
594 "List of monitoring parameters at the network service level";
595 key id;
596 leaf id {
597 type string;
598 }
599
600 leaf name {
601 type string;
602 }
603
604 uses manotypes:monitoring-param-aggregation;
605
606 choice monitoring-type {
607 description
608 "Defines the type of monitoring param to be used:
609 * vdu-monitorin-param: VDU-related metric (from NFVI)
610 * vnf-metric: VNF-related metric (from VCA)
611 * vdu-metric: VDU-related metric (from VCA)
612 ";
613
614 case vdu-monitoring-param {
615 description "VDU-related metric from the infrastructure";
616 container vdu-monitoring-param {
617 leaf vdu-ref {
618 type leafref {
619 path "../../../vdur/id";
620 }
621 }
622 leaf vdu-monitoring-param-ref {
623 type leafref {
624 path "../../../vdur[id = current()/../vdu-ref]/monitoring-param/id";
625 }
626 }
627 }
628 }
629
630 case vnf-metric {
631 description "VNF-related metric (from VCA)";
632 container vnf-metric {
633 leaf vnf-metric-name-ref {
634 type leafref {
635 path "../../../vnf-configuration/metrics/name";
636 }
637 }
638 }
639 }
640
641 case vdu-metric {
642 description "VDU-related metric (from VCA)";
643 container vdu-metric {
644 leaf vdu-ref {
645 type leafref {
646 path "../../../vdur/id";
647 }
648 }
649 leaf vdu-metric-name-ref {
650 type leafref {
651 path "../../../vdur[id = current()/../vdu-ref]/vdu-configuration/metrics/name";
652 }
653 }
654 }
655 }
656
657 }
658
659 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400660
661 leaf operational-status {
662 description
663 "The operational status of the VNFR instance
664 pre-init : The VNF before Input Param Substitution.
665 init : The VNF has just started.
666 vl-init-phase : The internal VLs in the VNF are being instantiated.
667 vm-init-phase : The VMs for VDUs in the VNF are being instantiated.
668 running : The VNF is in running state.
669 terminate : The VNF is being terminated.
670 vm-terminate-phase : The VMs in the VNF are being terminated.
671 vl-terminate-phase : The internal VLs in the VNF are being terminated.
672 terminated : The VNF is in the terminated state.
673 failed : The VNF instantiation failed
674 ";
Rajesh989442e2017-10-08 04:13:32 +0000675 type vnf-operational-status;
velandy88a64f12017-06-07 23:32:49 -0400676 }
velandy88a64f12017-06-07 23:32:49 -0400677
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400678 leaf config-status {
679 description
680 "The configuration status of the NS instance
velandy88a64f12017-06-07 23:32:49 -0400681 configuring: At least one of the VNFs in this instance is in configuring state
682 configured: All the VNFs in this NS instance are configured or config-not-needed state
683 ";
684
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400685 type enumeration {
686 enum configuring {
687 value 1;
688 }
689 enum configured {
690 value 2;
691 }
692 enum failed {
693 value 3;
694 }
695 enum config-not-needed {
696 value 4;
697 }
velandy88a64f12017-06-07 23:32:49 -0400698 }
699 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400700 uses placement-group-info;
velandy88a64f12017-06-07 23:32:49 -0400701
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400702 container cloud-config {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400703 uses manotypes:cloud-config;
704 }
velandy88a64f12017-06-07 23:32:49 -0400705 }
706 }
707 }
708}