5 namespace "org:onap:sdnctl:vnf";
\r
9 import ietf-inet-types { prefix "ietf"; revision-date "2010-09-24"; }
\r
11 include "vnfsubmodule";
\r
13 organization "ONAP";
\r
16 "Network Controller <onap-sdnc@lists.onap.org>";
\r
19 "Defines API interface for VNF Orchestration";
\r
21 revision "2015-07-20" {
\r
25 // Last updated on 8-17-2016
\r
26 grouping sdnc-request-header {
\r
27 container sdnc-request-header {
\r
28 leaf svc-request-id {
\r
35 enum "activate"; // equal to commit
\r
36 enum "delete"; // equal to commit
\r
37 enum "changeassign";
\r
38 enum "changedelete";
\r
42 leaf svc-notification-url {
\r
48 grouping request-information {
\r
49 container request-information {
\r
53 leaf request-action {
\r
55 enum "PreloadNetworkRequest";
\r
56 enum "DeletePreloadNetworkRequest";
\r
57 enum "NetworkActivateRequest";
\r
58 enum "DisconnectNetworkRequest";
\r
59 enum "PreloadVNFRequest";
\r
60 enum "DeletePreloadVNFRequest";
\r
61 enum "VNFActivateRequest";
\r
62 enum "ChangeVNFActivateRequest";
\r
63 enum "DisconnectVNFRequest";
\r
64 enum "PreloadVnfInstanceRequest";
\r
65 enum "DeletePreloadVnfInstanceRequest";
\r
66 enum "VnfInstanceActivateRequest";
\r
67 enum "ChangeVnfInstanceActivateRequest";
\r
68 enum "DisconnectVnfInstanceRequest";
\r
69 enum "PreloadVfModuleRequest";
\r
70 enum "DeletePreloadVfModuleRequest";
\r
71 enum "VfModuleActivateRequest";
\r
72 enum "ChangeVfModuleActivateRequest";
\r
73 enum "DisconnectVfModuleRequest";
\r
76 leaf request-sub-action {
\r
85 leaf notification-url {
\r
88 leaf order-number {
\r
91 leaf order-version {
\r
97 grouping service-information {
\r
98 container service-information {
\r
99 // 1610 use for AnAI subscription-service-type
\r
100 leaf service-type {
\r
102 description "AnAI subscription-service-type";
\r
107 leaf service-instance-id {
\r
109 description "A service instance that a VNF or a l3-network is associated with";
\r
111 // 1610 use for global-customer-id
\r
112 leaf subscriber-name {
\r
114 description "AnAI global-customer-id";
\r
120 grouping vnf-request-information {
\r
121 container vnf-request-information {
\r
122 leaf vnf-request-version {
\r
125 leaf model-customization-uuid {
\r
127 description "customized resource, i.e. vf-module, for use within a given service";
\r
130 type enumeration {
\r
134 description "orchestrate vf-module with full preload data or TOSCA lookup plus EIPAM automation";
\r
138 description "vf-module-id";
\r
142 description "vf-module-type";
\r
146 description "vf-module-name";
\r
148 leaf generic-vnf-id {
\r
150 description "generic vnf-id";
\r
152 leaf generic-vnf-type {
\r
154 description "generic vnf type";
\r
156 leaf generic-vnf-name {
\r
158 description "generic vnf name";
\r
166 leaf aic-cloud-region {
\r
168 description "The AIC cloud region which maps to contrail versions";
\r
170 list vnf-networks {
\r
173 description "Network List";
\r
178 grouping network-request-information {
\r
179 container network-request-information {
\r
183 leaf network-type {
\r
186 leaf network-name {
\r
195 leaf aic-cloud-region {
\r
197 description "The AIC cloud region which maps to contrail versions";
\r
202 /***********************************************************/
\r
204 /***********************************************************/
\r
206 container preload-vnfs {
\r
207 uses preload-model-information;
\r
209 grouping preload-model-information {
\r
210 list vnf-preload-list {
\r
211 key "vnf-name vnf-type";
\r
214 description "vf-module-name";
\r
218 description "vf-module-type";
\r
220 uses preload-data;
\r
224 // For preload networks it will have network-topology-information
\r
225 // For preload vnfs, it will have vnf-topology-information
\r
226 grouping preload-data {
\r
227 container preload-data {
\r
228 uses vnf-topology-information;
\r
229 uses network-topology-information;
\r
235 grouping vnf-topology-information {
\r
236 container vnf-topology-information {
\r
237 uses vnf-topology-identifier;
\r
238 uses vnf-assignments;
\r
239 uses vnf-parameters;
\r
243 grouping vnf-topology-identifier {
\r
244 container vnf-topology-identifier {
\r
245 leaf service-type {
\r
253 description "vf-module-name";
\r
257 description "vf-module-type";
\r
259 leaf generic-vnf-name {
\r
262 leaf generic-vnf-type {
\r
265 leaf generic-vnf-id {
\r
271 grouping vnf-assignments {
\r
272 container vnf-assignments {
\r
275 description "Orchestration Status from AAI - to be set by SDNC";
\r
277 list availability-zones {
\r
279 leaf availability-zone {
\r
281 description "Openstack availability zone name or UUID";
\r
284 list vnf-networks {
\r
288 uses sriov-vlan-filter-list;
\r
289 description "Network List";
\r
295 grouping vm-topology {
\r
310 //leaf-list vm-names {
\r
312 // ordered-by user;
\r
317 description "Network List";
\r
322 grouping vnf-network {
\r
323 leaf network-role {
\r
325 description "A Network Role to which a VNF must connect";
\r
327 leaf network-name {
\r
329 description "Unique Neutron UUID of an instance of the network role ";
\r
333 description "Unique Neutron UUID of an instance of the network role ";
\r
337 description "Unique Neutron UUID of an instance of the network role ";
\r
341 description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";
\r
343 leaf contrail-network-fqdn {
\r
345 description "contrail network policy object";
\r
348 leaf ipv6-subnet-id {
\r
350 description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";
\r
352 leaf ipv6-subnet-name {
\r
354 description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";
\r
356 leaf subnet-name {
\r
358 description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";
\r
363 grouping sriov-vlan-filter-list {
\r
364 list sriov-vlan-filter-list {
\r
365 leaf sriov-vlan-filter {
\r
371 grouping vm-network {
\r
372 leaf network-role {
\r
374 description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF";
\r
378 type enumeration {
\r
382 description "Indicator to use DHCP on this network for this VM";
\r
386 description "The number of ip addresses to be assigned per vm for this network role";
\r
392 type ietf:ip-address;
\r
393 description "List of assigned ipv4 addresses on a network";
\r
396 list network-ips-v6 {
\r
398 leaf ip-address-ipv6 {
\r
400 type ietf:ipv6-address;
\r
401 description "List of assigned ipv6 addresses on a network";
\r
404 list network-macs {
\r
408 description "List of network assignments for this VM (one per network)";
\r
413 type ietf:ip-address;
\r
414 description "Floating ipv4 for VMs of a given type on this network";
\r
416 leaf floating-ip-v6 {
\r
418 type ietf:ipv6-address;
\r
419 description "Floating ipv6 for VMs of a given type on this network";
\r
421 list interface-route-prefixes {
\r
423 leaf interface-route-prefix {
\r
424 type ietf:ip-address;
\r
425 description "OBSOLETE, route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";
\r
427 leaf interface-route-prefix-cidr {
\r
429 description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes";
\r
434 grouping vnf-parameters {
\r
435 list vnf-parameters {
\r
436 key vnf-parameter-name;
\r
437 leaf vnf-parameter-name {
\r
439 description "The name of an arbitrary instance-specific vnf-parameters";
\r
441 leaf vnf-parameter-value {
\r
443 description "The value of an arbitrary instance-specific vnf-parameters ";
\r
448 grouping network-topology-information {
\r
449 container network-topology-information {
\r
450 uses network-topology-identifier;
\r
452 uses vpn-bindings;
\r
453 uses network-policy;
\r
454 uses route-table-reference;
\r
455 uses provider-network-information;
\r
459 grouping network-topology-identifier {
\r
460 container network-topology-identifier {
\r
461 leaf service-type {
\r
464 leaf network-name {
\r
467 leaf network-role {
\r
470 leaf network-type {
\r
473 leaf network-technology{
\r
481 leaf start-address{
\r
482 type ietf:ip-address;
\r
485 leaf gateway-address{
\r
487 type ietf:ip-address;
\r
495 leaf dhcp-enabled {
\r
501 leaf dhcp-start-address {
\r
504 leaf dhcp-end-address {
\r
515 grouping vpn-bindings {
\r
516 list vpn-bindings {
\r
517 key vpn-binding-id;
\r
518 leaf vpn-binding-id {
\r
521 leaf global-route-target {
\r
527 grouping network-policy {
\r
528 list network-policy {
\r
529 key network-policy-fqdn;
\r
530 leaf network-policy-fqdn {
\r
533 leaf network-policy-id {
\r
540 grouping route-table-reference {
\r
541 list route-table-reference {
\r
542 leaf route-table-reference-id {
\r
545 leaf route-table-reference-fqdn {
\r
552 grouping provider-network-information {
\r
553 container provider-network-information {
\r
554 leaf physical-network-name {
\r
557 leaf is-provider-network {
\r
560 leaf is-shared-network {
\r
563 leaf is-external-network {
\r
569 /***********************************************************/
\r
571 /***********************************************************/
\r
573 uses vnf-model-infrastructure;
\r
575 grouping vnf-model-infrastructure {
\r
581 description "vf-module-id";
\r
583 uses service-data;
\r
584 uses service-status;
\r
587 grouping service-data {
\r
588 container service-data {
\r
589 uses vnf-configuration-information;
\r
593 grouping service-status {
\r
594 container service-status {
\r
595 leaf response-code {
\r
598 leaf response-message {
\r
601 leaf final-indicator {
\r
604 leaf request-status {
\r
605 type enumeration {
\r
606 enum "synccomplete";
\r
607 enum "asynccomplete";
\r
608 enum "notifycomplete";
\r
611 leaf vnfsdn-action {
\r
612 type enumeration {
\r
613 enum "PreloadNetworkRequest";
\r
614 enum "DeletePreloadNetworkRequest";
\r
615 enum "NetworkActivateRequest";
\r
616 enum "DisconnectNetworkRequest";
\r
617 enum "PreloadVNFRequest";
\r
618 enum "DeletePreloadVNFRequest";
\r
619 enum "VNFActivateRequest";
\r
620 enum "ChangeVNFActivateRequest";
\r
621 enum "DisconnectVNFRequest";
\r
622 enum "PreloadVnfInstanceRequest";
\r
623 enum "DeletePreloadVnfInstanceRequest";
\r
624 enum "VnfInstanceActivateRequest";
\r
625 enum "ChangeVnfInstanceActivateRequest";
\r
626 enum "DisconnectVnfInstanceRequest";
\r
627 enum "PreloadVfModuleRequest";
\r
628 enum "DeletePreloadVfModuleRequest";
\r
629 enum "VfModuleActivateRequest";
\r
630 enum "ChangeVfModuleActivateRequest";
\r
631 enum "DisconnectVfModuleRequest";
\r
634 leaf vnfsdn-subaction {
\r
635 type enumeration {
\r
641 type enumeration {
\r
642 enum "vnf-topology-operation";
\r
643 enum "preload-vnf-topology-operation";
\r
644 enum "vnf-instance-topology-operation";
\r
645 enum "preload-vnf-instance-topology-operation";
\r
646 enum "vf-module-topology-operation";
\r
647 enum "preload-vf-module-topology-operation";
\r
651 type enumeration {
\r
654 enum "activate"; // equal to commit
\r
655 enum "delete"; // equal to commit
\r
656 enum "changeassign";
\r
657 enum "changedelete";
\r
661 leaf response-timestamp {
\r
666 grouping vnf-configuration-information {
\r
667 uses sdnc-request-header;
\r
668 uses request-information;
\r
669 uses service-information;
\r
670 uses vnf-request-information;
\r
671 uses vnf-topology;
\r
673 grouping vnf-topology-response-body {
\r
674 leaf svc-request-id {
\r
677 leaf response-code {
\r
680 leaf response-message {
\r
683 leaf ack-final-indicator {
\r
688 grouping vnf-information {
\r
689 container vnf-information {
\r
690 leaf vnf-service-type {
\r
695 description "vf-module-id";
\r
700 grouping network-information {
\r
701 container network-information {
\r
702 leaf network-service-type {
\r
712 // Carried over from l3sdn and potentially not needed
\r
713 grouping oper-status {
\r
714 container oper-status {
\r
715 leaf order-status {
\r
716 type enumeration {
\r
718 enum "PendingAssignment";
\r
719 enum "PendingCreate";
\r
720 enum "PendingUpdate";
\r
721 enum "PendingDelete";
\r
726 leaf last-action {
\r
727 type enumeration {
\r
728 enum "VNFActivateRequest";
\r
729 enum "ChangeVNFActivateRequest";
\r
730 enum "VnfInstanceActivateRequest";
\r
731 enum "ChangeVnfInstanceActivateRequest";
\r
732 enum "VfModuleActivateRequest";
\r
733 enum "ChangeVfModuleActivateRequest";
\r
734 enum "DisconnectVNFRequest";
\r
735 enum "DisconnectVnfInstanceRequest";
\r
736 enum "DisconnectVfModuleRequest";
\r
737 enum "PreloadVNFRequest";
\r
738 enum "DeletePreloadVNFRequest";
\r
739 enum "PreloadVnfInstanceRequest";
\r
740 enum "DeletePreloadVnfInstanceRequest";
\r
741 enum "PreloadVfModuleRequest";
\r
742 enum "DeletePreloadVfModuleRequest";
\r
745 leaf last-svc-request-id {
\r
748 leaf last-order-status {
\r
749 type enumeration {
\r
751 enum "PendingAssignment";
\r
752 enum "PendingCreate";
\r
753 enum "PendingUpdate";
\r
754 enum "PendingDelete";
\r
758 leaf create-timestamp {
\r
761 leaf modify-timestamp {
\r
764 leaf maintenance-indicator {
\r
765 type enumeration {
\r
772 grouping vnf-topology {
\r
775 description "vf-module-id";
\r
777 uses vnf-topology-information;
\r
781 rpc vnf-topology-operation {
\r
783 uses sdnc-request-header;
\r
784 uses request-information;
\r
785 uses service-information;
\r
786 uses vnf-request-information;
\r
789 uses vnf-topology-response-body;
\r
790 uses vnf-information;
\r
791 uses service-information;
\r
795 rpc network-topology-operation {
\r
797 uses sdnc-request-header;
\r
798 uses request-information;
\r
799 uses service-information;
\r
800 uses network-request-information;
\r
803 uses vnf-topology-response-body;
\r
804 uses network-information;
\r
805 uses service-information;
\r
809 rpc preload-vnf-topology-operation {
\r
811 uses sdnc-request-header;
\r
812 uses request-information;
\r
813 uses vnf-topology-information;
\r
816 uses vnf-topology-response-body;
\r
820 rpc preload-network-topology-operation {
\r
822 uses sdnc-request-header;
\r
823 uses request-information;
\r
824 uses network-topology-information;
\r
827 uses vnf-topology-response-body;
\r