blob: 3547866544c01c33c5556914f8edb088827a5f15 [file] [log] [blame]
velandy88a64f12017-06-07 23:32:49 -04001
2/*
3 *
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 nsr
22{
23 namespace "urn:ietf:params:xml:ns:yang:nfvo:nsr";
24 prefix "nsr";
25
velandy88a64f12017-06-07 23:32:49 -040026 import vlr {
27 prefix "vlr";
28 }
29
Rajesh Velandye27e0b22017-09-18 17:21:48 -040030 import nsd-base {
31 prefix "nsd-base";
velandy88a64f12017-06-07 23:32:49 -040032 }
33
Rajesh Velandye27e0b22017-09-18 17:21:48 -040034 import project-nsd {
35 prefix "project-nsd";
36 }
37
38 import project-vnfd {
39 prefix "project-vnfd";
velandy88a64f12017-06-07 23:32:49 -040040 }
41
42 import vnfr {
43 prefix "vnfr";
44 }
45
46 import ietf-inet-types {
47 prefix "inet";
48 }
49
50 import ietf-yang-types {
51 prefix "yang";
52 }
53
54 import mano-types {
55 prefix "manotypes";
56 }
57
Rajesh Velandye27e0b22017-09-18 17:21:48 -040058 import rw-project {
59 prefix "rw-project";
60 }
61
62 revision 2017-02-08 {
63 description
64 "Update model to support projects.";
velandy88a64f12017-06-07 23:32:49 -040065 }
66
67 revision 2015-09-10 {
68 description
69 "Initial revision. This YANG file defines
70 the Network Service Record (NSR)";
71 reference
72 "Derived from earlier versions of base YANG files";
73 }
74
Rajesh989442e2017-10-08 04:13:32 +000075 typedef vnffgr-operational-status {
76 type enumeration {
77 enum init;
78 enum running;
79 enum terminate;
80 enum terminated;
81 enum failed;
82 }
83 }
84
85 typedef ns-operational-status {
86 type enumeration {
87 enum init;
88 enum vl-init-phase;
89 enum vnf-init-phase;
90 enum running;
91 enum terminate;
92 enum vnf-terminate-phase;
93 enum vl-terminate-phase;
94 enum terminated;
95 enum failed;
96 enum scaling-out;
97 enum scaling-in;
98 enum vl-instantiate;
99 enum vl-terminate;
100 }
101 }
102
velandy88a64f12017-06-07 23:32:49 -0400103 typedef config-states {
104 type enumeration {
105 enum init;
106 enum configuring;
107 enum config_not_needed;
108 enum configured;
109 enum failed;
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400110 enum terminate;
velandy88a64f12017-06-07 23:32:49 -0400111 }
112 }
113
114 typedef trigger-type {
115 type enumeration {
116 enum ns-primitive;
117 enum vnf-primitive;
118 }
119 }
120
121 grouping cloud-config {
122 description "List of cloud config parameters";
123
124 list ssh-authorized-key {
125 key "key-pair-ref";
126
127 description "List of authorized ssh keys as part of cloud-config";
128
129 leaf key-pair-ref {
130 description "A reference to the key pair entry in the global key pair table";
131 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400132 path "../../../../key-pair/name";
velandy88a64f12017-06-07 23:32:49 -0400133 }
134 }
135 }
136 list user {
137 key "name";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400138 description "Used to configure the list of public keys to be injected as part
139 of ns instantiation";
velandy88a64f12017-06-07 23:32:49 -0400140 leaf name {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400141 description "Name of this key pair";
velandy88a64f12017-06-07 23:32:49 -0400142 type string;
143 }
144 leaf user-info {
145 description "The user name's real name";
146 type string;
147 }
148 list ssh-authorized-key {
149 key "key-pair-ref";
150
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400151 description "Used to configure the list of public keys to be injected as part
velandy88a64f12017-06-07 23:32:49 -0400152 of ns instantiation";
153
154 leaf key-pair-ref {
155 description "A reference to the key pair entry in the global key pair table";
156 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400157 path "../../../../../key-pair/name";
velandy88a64f12017-06-07 23:32:49 -0400158 }
159 }
160 }
161 }
162 }
163
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400164 augment "/rw-project:project" {
165 list key-pair {
166 key "name";
167 description "Used to configure the list of public keys to be injected as part
velandy88a64f12017-06-07 23:32:49 -0400168 of ns instantiation";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400169 leaf name {
170 description "Name of this key pair";
171 type string;
172 }
173
174 leaf key {
175 description "Key associated with this key pair";
176 type string;
177 }
178 }
179 }
180
181 grouping event-service-primitive {
182 leaf seq {
183 description
184 "Sequence number for the service primitive.";
185 type uint64;
186 }
187
velandy88a64f12017-06-07 23:32:49 -0400188 leaf name {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400189 description
190 "Name of the service primitive.";
191 type string;
192 mandatory "true";
193 }
194
195 leaf user-defined-script {
196 description
197 "A user defined script.";
velandy88a64f12017-06-07 23:32:49 -0400198 type string;
199 }
200
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400201 list parameter {
202 key "name";
velandy88a64f12017-06-07 23:32:49 -0400203 leaf name {
velandy88a64f12017-06-07 23:32:49 -0400204 type string;
205 }
velandy88a64f12017-06-07 23:32:49 -0400206
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400207 leaf value {
208 type string;
velandy88a64f12017-06-07 23:32:49 -0400209 }
210 }
211 }
212
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400213 augment "/rw-project:project" {
214 container ns-instance-config {
velandy88a64f12017-06-07 23:32:49 -0400215
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400216 list nsr {
217 key "id";
218 unique "name";
velandy88a64f12017-06-07 23:32:49 -0400219
garciadeblas781fe342017-12-18 11:34:47 +0100220 leaf schema-version {
221 description "Schema version for the NSR. If unspecified, it assumes v3.0";
222 type string;
223 default "v3.0";
224 }
225
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400226 leaf id {
227 description "Identifier for the NSR.";
228 type yang:uuid;
velandy88a64f12017-06-07 23:32:49 -0400229 }
velandy88a64f12017-06-07 23:32:49 -0400230
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400231 leaf name {
232 description "NSR name.";
233 type string;
234 }
velandy88a64f12017-06-07 23:32:49 -0400235
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400236 leaf short-name {
237 description "NSR short name.";
238 type string;
239 }
240
241 leaf description {
242 description "NSR description.";
243 type string;
244 }
245
246 leaf admin-status {
247 description
248 "This is the administrative status of the NS instance";
249
250 type enumeration {
251 enum ENABLED;
252 enum DISABLED;
253 }
254 }
255
256 container nsd {
257 description "NS descriptor used to instantiate this NS";
258
259 uses nsd-base:nsd-descriptor-common;
260
261 uses project-nsd:nsr-nsd-vld;
262
263 uses project-nsd:nsr-nsd-constituent-vnfd;
264
265 uses project-nsd:nsr-nsd-placement-groups;
266
267 uses project-nsd:nsr-nsd-vnf-dependency;
268
269 uses project-nsd:nsr-nsd-monitoring-param;
270
271 uses project-nsd:nsr-nsd-service-primitive;
272 }
273 uses ns-instance-config-params;
274 }
velandy88a64f12017-06-07 23:32:49 -0400275 }
276 }
277
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400278 grouping ns-instance-config-params-common {
velandy88a64f12017-06-07 23:32:49 -0400279 uses manotypes:input-parameter;
280
281 list scaling-group {
282 description "List of ns scaling group instances";
283 key "scaling-group-name-ref";
284
285 leaf scaling-group-name-ref {
286 description "name of the scaling group
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400287 leafref path ../nsd/scaling-group-descriptor/name";
velandy88a64f12017-06-07 23:32:49 -0400288 type string;
289 }
290
291 list instance {
292 description "The instance of the scaling group";
293 key "id";
294 leaf id {
295 description "Scaling group instance uuid";
296 type uint16;
297 }
298 }
299 }
300
301 list nsd-placement-group-maps {
302 description
303 "Mapping from mano-placement groups construct from NSD to cloud
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400304 platform placement group construct";
velandy88a64f12017-06-07 23:32:49 -0400305
306 key "placement-group-ref";
307
308 leaf placement-group-ref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400309 description
310 "Reference for NSD placement group";
311 // type leafref {
312 // path "../../nsd/placement-groups/name";
313 // }
velandy88a64f12017-06-07 23:32:49 -0400314 type string;
315 }
316 uses manotypes:placement-group-input;
317 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400318 }
velandy88a64f12017-06-07 23:32:49 -0400319
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400320 grouping ns-instance-config-params {
321 uses ns-instance-config-params-common;
322
323 list vnfd-placement-group-maps {
velandy88a64f12017-06-07 23:32:49 -0400324 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400325 "Mapping from mano-placement groups construct from VNFD to cloud
velandy88a64f12017-06-07 23:32:49 -0400326 platform placement group construct";
327
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400328 key "placement-group-ref vnfd-id-ref";
velandy88a64f12017-06-07 23:32:49 -0400329
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400330 leaf vnfd-id-ref {
331 description
velandy88a64f12017-06-07 23:32:49 -0400332 "A reference to a vnfd. This is a
333 leafref to path:
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400334 ../../../../project-nsd:constituent-vnfd
335 + [id = current()/../id-ref]
336 + /project-nsd:vnfd-id-ref
337 NOTE: An issue with confd is preventing the
338 use of xpath. Seems to be an issue with leafref
339 to leafref, whose target is in a different module.
340 Once that is resolved this will switched to use
341 leafref";
342 type yang:uuid;
velandy88a64f12017-06-07 23:32:49 -0400343 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400344
345 leaf placement-group-ref {
346 description
347 "A reference to VNFD placement group";
348 type leafref {
349 path "../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd[project-vnfd:id = " +
350 "current()/../vnfd-id-ref]/project-vnfd:placement-groups/project-vnfd:name";
351 }
352 }
353
354 uses manotypes:placement-group-input;
velandy88a64f12017-06-07 23:32:49 -0400355 }
356
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400357 uses cloud-config;
velandy88a64f12017-06-07 23:32:49 -0400358 }
359
360 grouping vnffgr {
361
362 list vnffgr {
363 key "id";
364
365 leaf id {
366 description "Identifier for the VNFFGR.";
367 type yang:uuid;
368 }
369
370 leaf vnffgd-id-ref {
371 description "VNFFG descriptor id reference";
372 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400373 path "../../../../ns-instance-config/nsr"
374 + "[id=current()/../../ns-instance-config-ref]"
375 + "/nsd/vnffgd/id";
velandy88a64f12017-06-07 23:32:49 -0400376 }
377 }
378
379 leaf vnffgd-name-ref {
380 description "VNFFG descriptor name reference";
381 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400382 path "../../../../ns-instance-config/nsr"
velandy88a64f12017-06-07 23:32:49 -0400383 + "[id=current()/../../ns-instance-config-ref]"
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400384 + "/nsd/vnffgd"
385 + "[id=current()/../vnffgd-id-ref]"
velandy88a64f12017-06-07 23:32:49 -0400386 + "/name";
387 }
388 }
389
390 leaf sdn-account {
391 description
392 "The SDN account to use when requesting resources for
393 this vnffgr";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400394 type string;
395 }
396
397 leaf cloud-account {
398 description "Cloud Account in which NSR is instantiated";
399 type string;
velandy88a64f12017-06-07 23:32:49 -0400400 }
401
402 leaf operational-status {
403 description
404 "The operational status of the VNFFGR instance
405 init : The VNFFGR has just started.
406 running : The VNFFGR is in running state.
407 terminate : The VNFFGR is being terminated.
408 terminated : The VNFFGR is in the terminated state.
409 failed : The VNFFGR instantiation failed
410 ";
Rajesh989442e2017-10-08 04:13:32 +0000411 type vnffgr-operational-status;
velandy88a64f12017-06-07 23:32:49 -0400412 }
413
414 list rsp {
415 key "id";
416
417 leaf id {
418 description
419 "Identifier for the RSP.";
420 type yang:uuid;
421 }
422
423 leaf name {
424 description
425 "Name for the RSP";
426 type string;
427 }
428
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400429 leaf rsp-id {
430 description
431 "Returned Identifier for the RSP.";
432 type yang:uuid;
433 }
434
velandy88a64f12017-06-07 23:32:49 -0400435 leaf vnffgd-rsp-id-ref {
436 description
437 "Identifier for the VNFFG Descriptor RSP reference";
438 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400439 path "../../../../../ns-instance-config/nsr"
velandy88a64f12017-06-07 23:32:49 -0400440 + "[id=current()/../../../ns-instance-config-ref]"
441 + "/nsd/vnffgd"
442 + "[id=current()/../../vnffgd-id-ref]"
443 + "/rsp/id";
444 }
445 }
446
447 leaf vnffgd-rsp-name-ref {
448 description
449 "Name for the VNFFG Descriptor RSP reference";
450 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400451 path "../../../../../ns-instance-config/nsr"
velandy88a64f12017-06-07 23:32:49 -0400452 + "[id=current()/../../../ns-instance-config-ref]"
453 + "/nsd/vnffgd"
454 + "[id=current()/../../vnffgd-id-ref]"
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400455 + "/rsp"
456 + "[id=current()/../vnffgd-rsp-id-ref]"
velandy88a64f12017-06-07 23:32:49 -0400457 + "/name";
458 }
459 }
460
461 leaf classifier-name {
462 type string;
463 }
464
465 leaf path-id {
466 description
467 "Unique Identifier for the service path";
468 type uint32;
469 }
470
471 list vnfr-connection-point-ref {
472 key "hop-number";
473 leaf hop-number {
474 description
475 "Monotonically increasing number to show service path hop
476 order";
477 type uint8;
478 }
479 leaf service-function-type {
480 description
481 "Type of Service Function.
482 NOTE: This needs to map with Service Function Type in ODL to
483 support VNFFG. Service Function Type is mandatory param in ODL
484 SFC. This is temporarily set to string for ease of use";
485 type string;
486 }
487
488 leaf member-vnf-index-ref {
tiernoea872d42018-04-24 15:13:58 +0200489 type string;
velandy88a64f12017-06-07 23:32:49 -0400490 }
491 leaf vnfd-id-ref {
492 description
493 "Reference to VNF Descriptor Id";
494 type string;
495 }
496 leaf vnfr-id-ref {
497 description
498 "A reference to a vnfr id";
499 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400500 path "../../../../../../vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
velandy88a64f12017-06-07 23:32:49 -0400501 }
502 }
503 leaf vnfr-name-ref {
504 description
505 "A reference to a vnfr name";
506 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400507 path "../../../../../../vnfr:vnfr-catalog/vnfr:vnfr/vnfr:name";
velandy88a64f12017-06-07 23:32:49 -0400508 }
509 }
510 leaf vnfr-connection-point-ref {
511 description
512 "A reference to a vnfr connection point.";
513 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400514 path "../../../../../../vnfr:vnfr-catalog/vnfr:vnfr"
515 + "[vnfr:id = current()/../vnfr-id-ref]"
velandy88a64f12017-06-07 23:32:49 -0400516 + "/vnfr:connection-point/vnfr:name";
517 }
518 }
519 leaf service-index {
520 description
521 "Location within the service path";
522 type uint8;
523 }
524 container connection-point-params {
525 leaf mgmt-address {
526 type inet:ip-address;
527 }
528 leaf name {
529 type string;
530 }
531 leaf port-id {
velandy88a64f12017-06-07 23:32:49 -0400532 type string;
533 }
534 leaf vm-id {
velandy88a64f12017-06-07 23:32:49 -0400535 type string;
536 }
537 leaf address {
538 type inet:ip-address;
539 }
540 leaf port {
541 type inet:port-number;
542 }
543 }
544
545 container service-function-forwarder {
546 leaf name {
547 description
548 "Service Function Forwarder name";
549 type string;
550 }
551 leaf ip-address {
552 description
553 "Data Plane IP Address of the SFF";
554 type inet:ip-address;
555 }
556 leaf port {
557 description
558 "Data Plane Port of the SFF";
559 type inet:port-number;
560 }
561 }
562 }
563 }
564
565 list classifier {
566 key "id";
567
568 leaf id {
569 description
570 "Identifier for the classifier rule.";
571 type yang:uuid;
572 }
573 leaf name {
574 description
575 "Name of the classifier.";
576 type string;
577 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400578 leaf-list classifier-id {
579 description
580 "Returned Identifier for the classifier rule.";
581 type yang:uuid;
582 }
velandy88a64f12017-06-07 23:32:49 -0400583 leaf rsp-id-ref {
584 description
585 "A reference to the RSP.";
586 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400587 path "../../rsp/id";
velandy88a64f12017-06-07 23:32:49 -0400588 }
589 }
590 leaf rsp-name {
591 description
592 "Name for the RSP";
593 type string;
594 }
595 leaf vnfr-id-ref {
596 description
597 "A reference to a vnfr id";
598 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400599 path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
velandy88a64f12017-06-07 23:32:49 -0400600 }
601 }
602 leaf vnfr-name-ref {
603 description
604 "A reference to a vnfr name";
605 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400606 path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr/vnfr:name";
velandy88a64f12017-06-07 23:32:49 -0400607 }
608 }
609 leaf vnfr-connection-point-ref {
610 description
611 "A reference to a vnfr connection point.";
612 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400613 path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr"
614 + "[vnfr:id = current()/../vnfr-id-ref]"
velandy88a64f12017-06-07 23:32:49 -0400615 + "/vnfr:connection-point/vnfr:name";
616 }
617 }
618 leaf port-id {
velandy88a64f12017-06-07 23:32:49 -0400619 type string;
620 }
621 leaf vm-id {
velandy88a64f12017-06-07 23:32:49 -0400622 type string;
623 }
624 leaf ip-address {
625 type string;
626 }
627 leaf sff-name {
628 type string;
629 }
630 }
631 }
632 }
633
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400634 augment "/rw-project:project" {
635 container ns-instance-opdata {
636 config false;
velandy88a64f12017-06-07 23:32:49 -0400637
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400638 list nsr {
639 key "ns-instance-config-ref";
velandy88a64f12017-06-07 23:32:49 -0400640
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400641 leaf ns-instance-config-ref {
642 type leafref {
643 path "../../../ns-instance-config/nsr/id";
644 }
645 // type yang:uuid;
velandy88a64f12017-06-07 23:32:49 -0400646 }
velandy88a64f12017-06-07 23:32:49 -0400647
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400648 leaf name-ref {
649 description "Network service name reference";
650 type leafref {
651 path "../../../ns-instance-config/nsr" +
652 "[id=current()/../ns-instance-config-ref]" +
653 "/name";
654 }
velandy88a64f12017-06-07 23:32:49 -0400655 }
velandy88a64f12017-06-07 23:32:49 -0400656
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400657 leaf nsd-ref {
658 description "Network service descriptor id reference";
659 type leafref {
660 path "../../../ns-instance-config/nsr"
661 + "[id=current()/../ns-instance-config-ref]"
662 + "/nsd/id";
663 }
velandy88a64f12017-06-07 23:32:49 -0400664 }
velandy88a64f12017-06-07 23:32:49 -0400665
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400666 leaf nsd-name-ref {
667 description "Network service descriptor name reference";
668 type leafref {
669 path "../../../ns-instance-config/nsr"
670 + "[id=current()/../ns-instance-config-ref]"
671 + "/nsd/name";
672 }
velandy88a64f12017-06-07 23:32:49 -0400673 }
velandy88a64f12017-06-07 23:32:49 -0400674
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400675 leaf create-time {
676 description
677 "Creation timestamp of this Network Service.
velandy88a64f12017-06-07 23:32:49 -0400678 The timestamp is expressed as seconds
679 since unix epoch - 1970-01-01T00:00:00Z";
680
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400681 type uint32;
682 }
velandy88a64f12017-06-07 23:32:49 -0400683
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400684 leaf uptime {
685 description
686 "Active period of this Network Service.
velandy88a64f12017-06-07 23:32:49 -0400687 Uptime is expressed in seconds";
688
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400689 type uint32;
690 }
velandy88a64f12017-06-07 23:32:49 -0400691
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400692 list connection-point {
693 description
velandy88a64f12017-06-07 23:32:49 -0400694 "List for external connection points.
695 Each NS has one or more external connection points.
696 As the name implies that external connection points
697 are used for connecting the NS to other NS or to
698 external networks. Each NS exposes these connection
699 points to the orchestrator. The orchestrator can
700 construct network service chains by connecting the
701 connection points between different NS.";
702
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400703 key "name";
704 leaf name {
705 description
velandy88a64f12017-06-07 23:32:49 -0400706 "Name of the NS connection point.";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400707 type string;
708 }
velandy88a64f12017-06-07 23:32:49 -0400709
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400710 leaf type {
711 description
velandy88a64f12017-06-07 23:32:49 -0400712 "Type of the connection point.";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400713 type manotypes:connection-point-type;
velandy88a64f12017-06-07 23:32:49 -0400714 }
715 }
716
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400717 list vlr {
718 key "vlr-ref";
719 leaf vlr-ref {
720 description
721 "Reference to a VLR record in the VLR catalog";
722 type leafref {
723 path "../../../../vlr:vlr-catalog/vlr:vlr/vlr:id";
724 }
725 }
velandy88a64f12017-06-07 23:32:49 -0400726
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400727
728 list vnfr-connection-point-ref {
729 description
730 "A list of references to connection points.";
731 key "vnfr-id";
732
733 leaf vnfr-id {
734 description "A reference to a vnfr";
735 type leafref {
736 path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
737 }
738 }
739
740 leaf connection-point {
741 description
742 "A reference to a connection point name in a vnfr";
743 type leafref {
744 path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr"
745 + "[vnfr:id = current()/../vnfr-id]"
746 + "/vnfr:connection-point/vnfr:name";
747 }
748 }
749 }
750 }
751
752 list constituent-vnfr-ref {
velandy88a64f12017-06-07 23:32:49 -0400753 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400754 "List of VNFRs that are part of this
755 network service.";
velandy88a64f12017-06-07 23:32:49 -0400756 key "vnfr-id";
757
758 leaf vnfr-id {
velandy88a64f12017-06-07 23:32:49 -0400759 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400760 "Reference to the VNFR id
761 This should be a leafref to /vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id
762 But due to confd bug (RIFT-9451), changing to string.";
763 type string;
764 }
765 }
766
767 list scaling-group-record {
768 description "List of scaling group records";
769 key "scaling-group-name-ref";
770
771 leaf scaling-group-name-ref {
772 description "name of the scaling group";
velandy88a64f12017-06-07 23:32:49 -0400773 type leafref {
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400774 path "../../../../ns-instance-config/nsr"
775 + "[id=current()/../../ns-instance-config-ref]"
776 + "/nsd/scaling-group-descriptor/name";
velandy88a64f12017-06-07 23:32:49 -0400777 }
778 }
velandy88a64f12017-06-07 23:32:49 -0400779
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400780 list instance {
781 description "Reference to scaling group instance record";
782 key "instance-id";
783 leaf instance-id {
784 description "Scaling group instance id";
785 type uint16;
786 }
velandy88a64f12017-06-07 23:32:49 -0400787
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400788 leaf is-default {
789 description "Flag indicating whether this instance was part of
velandy88a64f12017-06-07 23:32:49 -0400790 default scaling group (and thus undeletable)";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400791 type boolean;
792 }
velandy88a64f12017-06-07 23:32:49 -0400793
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400794 leaf op-status {
795 description
796 "The operational status of the NS instance
velandy88a64f12017-06-07 23:32:49 -0400797 init : The scaling group has just started.
798 vnf-init-phase : The VNFs in the scaling group are being instantiated.
799 running : The scaling group is in running state.
800 terminate : The scaling group is being terminated.
801 vnf-terminate-phase : The VNFs in the scaling group are being terminated.
802 terminated : The scaling group is in the terminated state.
803 failed : The scaling group instantiation failed.
804 ";
805
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400806 type enumeration {
807 enum init;
808 enum vnf-init-phase;
809 enum running;
810 enum terminate;
811 enum vnf-terminate-phase;
812 enum terminated;
813 enum failed;
814 }
velandy88a64f12017-06-07 23:32:49 -0400815 }
velandy88a64f12017-06-07 23:32:49 -0400816
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400817 leaf config-status {
818 description
819 "The configuration status of the scaling group instance
velandy88a64f12017-06-07 23:32:49 -0400820 configuring : At least one of the VNFs in this scaling group instance
821 is in configuring state
822 configured : All the VNFs in this scaling group instance are
823 configured or config-not-needed state
824 failed : Configuring this scaling group instance failed
825 ";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400826 type config-states;
827 }
velandy88a64f12017-06-07 23:32:49 -0400828
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400829 leaf error-msg {
830 description
831 "Reason for failure in configuration of this scaling instance";
832 type string;
833 }
velandy88a64f12017-06-07 23:32:49 -0400834
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400835 leaf create-time {
836 description
837 "Creation timestamp of this scaling group record.
velandy88a64f12017-06-07 23:32:49 -0400838 The timestamp is expressed as seconds
839 since unix epoch - 1970-01-01T00:00:00Z";
840
841 type uint32;
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400842 }
velandy88a64f12017-06-07 23:32:49 -0400843
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400844 leaf-list vnfrs {
845 description "Reference to VNFR within the scale instance";
846 type leafref {
847 path "../../../constituent-vnfr-ref/vnfr-id";
848 }
velandy88a64f12017-06-07 23:32:49 -0400849 }
850 }
851 }
velandy88a64f12017-06-07 23:32:49 -0400852
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400853 uses vnffgr;
velandy88a64f12017-06-07 23:32:49 -0400854
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400855 leaf operational-status {
856 description
857 "The operational status of the NS instance
velandy88a64f12017-06-07 23:32:49 -0400858 init : The network service has just started.
859 vl-init-phase : The VLs in the NS are being instantiated.
860 vnf-init-phase : The VNFs in the NS are being instantiated.
861 running : The NS is in running state.
862 terminate : The NS is being terminated.
863 vnf-terminate-phase : The NS is terminating the VNFs in the NS.
864 vl-terminate-phase : The NS is terminating the VLs in the NS.
865 terminated : The NS is in the terminated state.
866 failed : The NS instantiation failed.
867 scaling-out : The NS is scaling out
868 scaling-in : The NS is scaling in
869 vl-instantiate : The NS is initiating a new VL
870 vl-terminate : The NS is terminating a VL
871 ";
872
Rajesh989442e2017-10-08 04:13:32 +0000873 type ns-operational-status;
velandy88a64f12017-06-07 23:32:49 -0400874 }
velandy88a64f12017-06-07 23:32:49 -0400875
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400876 leaf config-status {
877 description
878 "The configuration status of the NS instance
velandy88a64f12017-06-07 23:32:49 -0400879 configuring: At least one of the VNFs in this instance is in configuring state
880 configured: All the VNFs in this NS instance are configured or config-not-needed state
881 ";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400882 type config-states;
883 }
velandy88a64f12017-06-07 23:32:49 -0400884
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400885 list service-primitive {
velandy88a64f12017-06-07 23:32:49 -0400886 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400887 "Network service level service primitives.";
888
889 key "name";
890
891 leaf name {
892 description
893 "Name of the service primitive.";
894 type string;
895 }
896
897 list parameter {
898 description
899 "List of parameters for the service primitive.";
900
901 key "name";
902 uses manotypes:primitive-parameter;
903 }
904
905 uses manotypes:ui-primitive-group;
906
907 list vnf-primitive-group {
908 description
909 "Reference to member-vnf within constituent-vnfds";
910
911 key "member-vnf-index-ref";
912 leaf member-vnf-index-ref {
913 description
914 "Reference to member-vnf within constituent-vnfds";
tiernoea872d42018-04-24 15:13:58 +0200915 type string;
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400916 }
917
918 leaf vnfd-id-ref {
919 description
920 "A reference to a vnfd. This is a
921 leafref to path:
922 ../../../../nsd:constituent-vnfd
923 + [nsd:id = current()/../nsd:id-ref]
924 + /nsd:vnfd-id-ref
925 NOTE: An issue with confd is preventing the
926 use of xpath. Seems to be an issue with leafref
927 to leafref, whose target is in a different module.
928 Once that is resovled this will switched to use
929 leafref";
930
931 type string;
932 }
933
934 leaf vnfd-name {
935 description
936 "Name of the VNFD";
937 type string;
938 }
939
940 list primitive {
941 key "index";
942
943 leaf index {
944 description "Index of this primitive";
945 type uint32;
946 }
947
948 leaf name {
949 description "Name of the primitive in the VNF primitive ";
950 type string;
951 }
952 }
953 }
954
955 leaf user-defined-script {
956 description
velandy88a64f12017-06-07 23:32:49 -0400957 "A user defined script.";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400958 type string;
959 }
velandy88a64f12017-06-07 23:32:49 -0400960 }
961
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400962 list initial-service-primitive {
velandy88a64f12017-06-07 23:32:49 -0400963 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400964 "Initial set of service primitives for NSD.";
965 key "seq";
966
967 uses event-service-primitive;
velandy88a64f12017-06-07 23:32:49 -0400968 }
969
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400970 list terminate-service-primitive {
velandy88a64f12017-06-07 23:32:49 -0400971 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400972 "Set of service primitives to
973 execute during termination of NSD.";
974 key "seq";
975
976 uses event-service-primitive;
velandy88a64f12017-06-07 23:32:49 -0400977 }
978
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400979 list monitoring-param {
velandy88a64f12017-06-07 23:32:49 -0400980 description
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400981 "List of NS level params.";
982 key "id";
983
984 uses manotypes:monitoring-param-value;
985 uses manotypes:monitoring-param-ui-data;
986 uses manotypes:monitoring-param-aggregation;
987
988 leaf id {
989 type string;
990 }
991
velandy88a64f12017-06-07 23:32:49 -0400992 leaf name {
velandy88a64f12017-06-07 23:32:49 -0400993 type string;
994 }
995
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400996 leaf nsd-mon-param-ref {
997 description "Reference to the NSD monitoring param descriptor
velandy88a64f12017-06-07 23:32:49 -0400998 that produced this result";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400999 // TODO: Fix leafref
1000 type leafref {
1001 path "../../../../project-nsd:nsd-catalog/project-nsd:nsd" +
1002 "[project-nsd:id = current()/../../nsd-ref]" +
1003 "/project-nsd:monitoring-param/project-nsd:id";
1004 }
velandy88a64f12017-06-07 23:32:49 -04001005 }
velandy88a64f12017-06-07 23:32:49 -04001006
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001007 list vnfr-mon-param-ref {
1008 description "A list of VNFR monitoring params associated with this monp";
1009 key "vnfr-id-ref vnfr-mon-param-ref";
velandy88a64f12017-06-07 23:32:49 -04001010
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001011 leaf vnfr-id-ref {
1012 description
1013 "A reference to a vnfr. This is a
velandy88a64f12017-06-07 23:32:49 -04001014 leafref to path:
1015 /vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
1016
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001017 type yang:uuid;
1018 }
velandy88a64f12017-06-07 23:32:49 -04001019
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001020 leaf vnfr-mon-param-ref {
1021 description "A reference to the VNFR monitoring param";
1022 type leafref {
1023 path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr"
1024 + "[vnfr:id = current()/../vnfr-id-ref]"
1025 + "/vnfr:monitoring-param/vnfr:id";
1026 }
velandy88a64f12017-06-07 23:32:49 -04001027 }
1028 }
1029 }
velandy88a64f12017-06-07 23:32:49 -04001030
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001031 list config-agent-job {
1032 key "job-id";
velandy88a64f12017-06-07 23:32:49 -04001033
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001034 leaf job-id {
1035 description "config agent job Identifier for the NS.";
1036 type uint64;
1037 }
velandy88a64f12017-06-07 23:32:49 -04001038
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001039 leaf job-name {
1040 description "Config agent job name";
1041 type string;
1042 }
velandy88a64f12017-06-07 23:32:49 -04001043
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001044 leaf job-status {
1045 description
velandy88a64f12017-06-07 23:32:49 -04001046 "Job status to be set based on each VNF primitive execution,
1047 pending - if at least one VNF is in pending state
1048 and remaining VNFs are in success state.
1049 Success - if all VNF executions are in success state
1050 failure - if one of the VNF executions is failure";
velandy88a64f12017-06-07 23:32:49 -04001051 type enumeration {
1052 enum pending;
1053 enum success;
1054 enum failure;
1055 }
1056 }
1057
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001058 leaf triggered-by {
1059 description "The primitive is triggered from NS or VNF level";
1060 type trigger-type;
1061 }
1062
1063 leaf create-time {
1064 description
1065 "Creation timestamp of this Config Agent Job.
1066 The timestamp is expressed as seconds
1067 since unix epoch - 1970-01-01T00:00:00Z";
1068
1069 type uint32;
1070 }
1071
1072 leaf job-status-details {
1073 description "Config agent job status details, in case of errors";
1074 type string;
1075 }
1076
1077 uses manotypes:primitive-parameter-value;
1078
1079 list parameter-group {
1080 description
1081 "List of NS Primitive parameter groups";
velandy88a64f12017-06-07 23:32:49 -04001082 key "name";
1083 leaf name {
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001084 description
1085 "Name of the parameter.";
velandy88a64f12017-06-07 23:32:49 -04001086 type string;
1087 }
1088
1089 uses manotypes:primitive-parameter-value;
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001090 }
velandy88a64f12017-06-07 23:32:49 -04001091
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001092 list vnfr {
1093 key "id";
1094 leaf id {
1095 description "Identifier for the VNFR.";
1096 type yang:uuid;
velandy88a64f12017-06-07 23:32:49 -04001097 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001098 leaf vnf-job-status {
1099 description
1100 "Job status to be set based on each VNF primitive execution,
1101 pending - if at least one primitive is in pending state
1102 and remaining primitives are in success state.
1103 Success - if all primitive executions are in success state
1104 failure - if one of the primitive executions is failure";
velandy88a64f12017-06-07 23:32:49 -04001105 type enumeration {
1106 enum pending;
1107 enum success;
1108 enum failure;
1109 }
1110 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001111
1112 list primitive {
1113 key "name";
1114 leaf name {
1115 description "the name of the primitive";
1116 type string;
1117 }
1118
1119 uses manotypes:primitive-parameter-value;
1120
1121 leaf execution-id {
1122 description "Execution id of the primitive";
1123 type string;
1124 }
1125 leaf execution-status {
1126 description "status of the Execution";
1127 type enumeration {
1128 enum pending;
1129 enum success;
1130 enum failure;
1131 }
1132 }
1133 leaf execution-error-details {
1134 description "Error details if execution-status is failure";
1135 type string;
1136 }
velandy88a64f12017-06-07 23:32:49 -04001137 }
1138 }
1139 }
1140 }
1141 }
1142 }
1143
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001144 grouping rpc-common {
1145 uses manotypes:rpc-project-name;
1146
1147 leaf nsr_id_ref {
1148 description "Reference to NSR ID ref";
1149 type leafref {
1150 path "/rw-project:project[rw-project:name=current()/.." +
1151 "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr/nsr:id";
1152 }
1153 mandatory true;
1154 }
1155 }
1156
velandy88a64f12017-06-07 23:32:49 -04001157 rpc get-ns-service-primitive-values {
1158 description "Get the service primitive parameter values";
velandy88a64f12017-06-07 23:32:49 -04001159
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001160 input {
velandy88a64f12017-06-07 23:32:49 -04001161 leaf name {
1162 description "Name of the NS service primitive group";
1163 mandatory true;
1164 type string;
1165 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001166
1167 uses rpc-common;
velandy88a64f12017-06-07 23:32:49 -04001168 }
1169
1170 output {
1171 list ns-parameter {
1172 description "Automatically generated parameter";
1173 key "name";
1174
1175 leaf name {
1176 description "Parameter name which should be pulled from a parameter pool";
1177 type string;
1178 }
1179 leaf value {
1180 description "Automatically generated value";
1181 type string;
1182 }
1183 }
1184
1185 list ns-parameter-group {
1186 description "Automatically generated parameters in parameter group";
1187 key "name";
1188 leaf name {
1189 description "Parameter group name";
1190 type string;
1191 }
1192 list parameter {
1193 description "Automatically generated group parameter";
1194 key "name";
1195
1196 leaf name {
1197 description "Parameter name which should be pulled from a parameter pool";
1198 type string;
1199 }
1200 leaf value {
1201 description "Automatically generated value";
1202 type string;
1203 }
1204 }
1205 }
1206
1207 list vnf-primitive-group {
1208 description
1209 "List of service primitives grouped by VNF.";
1210
1211 key "member-vnf-index-ref";
1212 leaf member-vnf-index-ref {
1213 description
1214 "Reference to member-vnf within constituent-vnfds";
tiernoea872d42018-04-24 15:13:58 +02001215 type string;
velandy88a64f12017-06-07 23:32:49 -04001216 }
1217
1218 leaf vnfd-id-ref {
1219 description
1220 "A reference to a vnfd. This is a
1221 leafref to path:
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001222 ../../../../project-nsd:constituent-vnfd
1223 + [project-nsd:id = current()/../project-nsd:id-ref]
1224 + /project-nsd:vnfd-id-ref
1225 NOTE: An issue with confd is preventing the
1226 use of xpath. Seems to be an issue with leafref
1227 to leafref, whose target is in a different module.
1228 Once that is resolved this will switched to use
1229 leafref";
velandy88a64f12017-06-07 23:32:49 -04001230
1231 type string;
1232 }
1233
1234 list primitive {
1235 key "index";
1236 leaf index {
1237 description "Index of this primitive";
1238 type uint32;
1239 }
1240
1241 leaf name {
1242 description "Name of the primitive associated with a value pool";
1243 type string;
1244 }
1245
1246 list parameter {
1247 description "Automatically generated parameter";
1248 key "name";
1249
1250 leaf name {
1251 description "Parameter name which should be pulled from a parameter pool";
1252 type string;
1253 }
1254 leaf value {
1255 description "Automatically generated value";
1256 type string;
1257 }
1258 }
1259 }
1260 }
1261 }
1262 }
1263
1264 rpc exec-ns-service-primitive {
1265 description "Executes a NS service primitive or script";
1266
1267 input {
1268 leaf name {
1269 description "Name of the primitive";
1270 type string;
1271 }
1272
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001273 uses rpc-common;
velandy88a64f12017-06-07 23:32:49 -04001274
1275 leaf triggered-by {
1276 description "The primitive is triggered from NS or VNF level";
1277 type trigger-type;
1278 default ns-primitive;
1279 }
1280
1281 uses manotypes:primitive-parameter-value;
1282
1283 list parameter-group {
1284 description
1285 "List of NS Primitive parameter groups";
1286 key "name";
1287 leaf name {
1288 description
1289 "Name of the parameter.";
1290 type string;
1291 }
1292
1293 uses manotypes:primitive-parameter-value;
1294 }
1295
1296 list vnf-list {
1297 description
1298 "List of VNFs whose primitives are being set.";
1299 key "member_vnf_index_ref";
1300
1301 leaf member_vnf_index_ref {
1302 description "Member VNF index";
1303 type uint64;
1304 }
1305
1306 leaf vnfr-id-ref {
1307 description
1308 "A reference to a vnfr. This is a
1309 leafref to path";
1310 type yang:uuid;
1311 }
1312
1313 list vnf-primitive {
1314 description
1315 "List of service primitives supported by the
1316 configuration agent for this VNF.";
1317 key "index";
1318
1319 leaf index {
1320 description
1321 "index of the service primitive.";
1322 type uint32;
1323 }
1324 leaf name {
1325 description
1326 "Name of the service primitive.";
1327 type string;
1328 }
1329
1330 uses manotypes:primitive-parameter-value;
1331 }
1332 }
1333 leaf user-defined-script {
1334 description
1335 "A user defined script.";
1336 type string;
1337 }
1338 }
1339 output {
1340 leaf job-id {
1341 description "Job identifier for this RPC";
1342 type uint64;
1343 }
1344
1345 leaf name {
1346 description "Name of the service primitive";
1347 type string;
1348 }
1349
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001350 uses rpc-common;
velandy88a64f12017-06-07 23:32:49 -04001351
1352 leaf triggered-by {
1353 description "The primitive is triggered from NS or VNF level";
1354 type trigger-type;
1355 }
1356
1357 leaf create-time {
1358 description
1359 "Creation timestamp of this config agent JOB.
1360 The timestamp is expressed as seconds
1361 since unix epoch - 1970-01-01T00:00:00Z";
1362
1363 type uint32;
1364 }
1365
1366 leaf job-status-details {
1367 description "Job status details, in case of any errors";
1368 type string;
1369 }
1370
1371 uses manotypes:primitive-parameter-value;
1372
1373 list parameter-group {
1374 description
1375 "List of NS Primitive parameter groups";
1376 key "name";
1377 leaf name {
1378 description
1379 "Name of the parameter.";
1380 type string;
1381 }
1382
1383 uses manotypes:primitive-parameter-value;
1384 }
1385
1386 list vnf-out-list {
1387 description
1388 "List of VNFs whose primitives were set.";
1389 key "member_vnf_index_ref";
1390
1391 leaf member_vnf_index_ref {
1392 description "Member VNF index";
1393 type uint64;
1394 }
1395 leaf vnfr-id-ref {
1396 description
1397 "A reference to a vnfr. This is a
1398 leafref to path";
1399 type yang:uuid;
1400 }
1401
1402 list vnf-out-primitive {
1403 description
1404 "List of service primitives supported by the
1405 configuration agent for this VNF.";
1406 key "index";
1407
1408 leaf index {
1409 description
1410 "index of the service primitive.";
1411 type uint32;
1412 }
1413
1414 leaf name {
1415 description
1416 "Name of the service primitive.";
1417 type string;
1418 }
1419
1420 uses manotypes:primitive-parameter-value;
1421
1422 leaf execution-id {
1423 description "Execution id of this primitive";
1424 type string;
1425 }
1426
1427 leaf execution-status {
1428 description "Status of the execution of this primitive";
1429 type string;
1430 }
1431
1432 leaf execution-error-details {
1433 description "Error details if execution-status is failed";
1434 type string;
1435 }
1436 }
1437 }
1438 }
1439 }
1440
1441 rpc exec-scale-in {
1442 description "Executes scale out request";
1443
1444 input {
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001445 uses rpc-common;
velandy88a64f12017-06-07 23:32:49 -04001446
1447 leaf scaling-group-name-ref {
1448 description "name of the scaling group";
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001449 type leafref {
1450 path "/rw-project:project[rw-project:name=current()/.." +
1451 "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr" +
1452 "[nsr:id=current()/../nsr:nsr_id_ref]/nsr:nsd" +
1453 "/nsr:scaling-group-descriptor/nsr:name";
1454 }
1455 mandatory true;
velandy88a64f12017-06-07 23:32:49 -04001456 }
1457
1458 leaf instance-id {
1459 description "id of the scaling group";
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001460 type leafref {
1461 path "/rw-project:project[rw-project:name=current()/.." +
1462 "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr" +
1463 "[nsr:id=current()/../nsr:nsr_id_ref]" +
1464 "/nsr:scaling-group[nsr:scaling-group-name-ref=current()/.." +
1465 "/nsr:scaling-group-name-ref]/nsr:instance/nsr:id";
1466 }
1467 mandatory true;
velandy88a64f12017-06-07 23:32:49 -04001468 }
1469
1470
1471 }
1472 output {
1473 leaf instance-id {
1474 description "id of the scaling group";
1475 type uint64;
1476 }
1477 }
1478 }
1479
1480 rpc exec-scale-out {
1481 description "Executes scale out request";
1482
1483 input {
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001484 uses rpc-common;
velandy88a64f12017-06-07 23:32:49 -04001485
1486 leaf scaling-group-name-ref {
1487 description "name of the scaling group";
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001488 type leafref {
1489 path "/rw-project:project[rw-project:name=current()/.." +
1490 "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr" +
1491 "[nsr:id=current()/../nsr:nsr_id_ref]/nsr:nsd" +
1492 "/nsr:scaling-group-descriptor/nsr:name";
1493 }
1494 mandatory true;
velandy88a64f12017-06-07 23:32:49 -04001495 }
1496
1497 leaf instance-id {
1498 description "id of the scaling group";
1499 type uint64;
1500 }
velandy88a64f12017-06-07 23:32:49 -04001501 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001502
velandy88a64f12017-06-07 23:32:49 -04001503 output {
1504 leaf instance-id {
1505 description "id of the scaling group";
1506 type uint64;
1507 }
1508 }
1509 }
1510
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001511 rpc start-network-service {
1512 description "Start the network service";
1513 input {
1514 leaf name {
1515 mandatory true;
1516 description "Name of the Network Service";
1517 type string;
1518 }
1519
1520 uses manotypes:rpc-project-name;
1521
1522 leaf nsd_id_ref {
1523 description "Reference to NSD ID ref";
1524 type leafref {
1525 path "/rw-project:project[rw-project:name=current()/.." +
1526 "/project-name]/project-nsd:nsd-catalog/project-nsd:nsd/project-nsd:id";
1527 }
1528 }
1529 uses ns-instance-config-params-common;
1530
1531 list vnfd-placement-group-maps {
1532 description
1533 "Mapping from mano-placement groups construct from VNFD to cloud
1534 platform placement group construct";
1535
1536 key "placement-group-ref vnfd-id-ref";
1537
1538 leaf vnfd-id-ref {
1539 description
1540 "A reference to a vnfd. This is a
1541 leafref to path:
1542 ../../../../project-nsd:constituent-vnfd
1543 + [id = current()/../project-nsd:id-ref]
1544 + /project-nsd:vnfd-id-ref
1545 NOTE: An issue with confd is preventing the
1546 use of xpath. Seems to be an issue with leafref
1547 to leafref, whose target is in a different module.
1548 Once that is resovled this will switched to use
1549 leafref";
1550 type yang:uuid;
1551 }
1552
1553 leaf placement-group-ref {
1554 description
1555 "A reference to VNFD placement group";
1556 type leafref {
1557 path "/rw-project:project[rw-project:name=current()/" +
1558 "../../project-name]/project-vnfd:vnfd-catalog/project-vnfd:vnfd[project-vnfd:id = " +
1559 "current()/../vnfd-id-ref]/project-vnfd:placement-groups/project-vnfd:name";
1560 }
1561 }
1562
1563 uses manotypes:placement-group-input;
1564
1565 list ssh-authorized-key {
1566 key "key-pair-ref";
1567
1568 description "List of authorized ssh keys as part of cloud-config";
1569
1570 leaf key-pair-ref {
1571 description "A reference to the key pair entry in the global key pair table";
1572 type leafref {
1573 path "/rw-project:project[rw-project:name=current()/../../../" +
1574 "project-name]/key-pair/name";
1575 }
1576 }
1577 }
1578
1579 list user {
1580 key "name";
1581
1582 description "List of users to be added through cloud-config";
1583 leaf name {
1584 description "Name of the user ";
1585 type string;
1586 }
1587 leaf user-info {
1588 description "The user name's real name";
1589 type string;
1590 }
1591 list ssh-authorized-key {
1592 key "key-pair-ref";
1593
1594 description "Used to configure the list of public keys to be injected as part
1595 of ns instantiation";
1596
1597 leaf key-pair-ref {
1598 description "A reference to the key pair entry in the global key pair table";
1599 type leafref {
1600 path "/rw-project:project[rw-project:name=current()/" +
1601 "../../../../project-name]/key-pair/name";
1602 }
1603 }
1604 }
1605 }
1606 }
1607 }
1608
1609 output {
1610 leaf nsr-id {
1611 description "Automatically generated parameter";
1612 type yang:uuid;
1613 }
1614 }
1615 }
velandy88a64f12017-06-07 23:32:49 -04001616}