5 namespace "org:openecomp:sdnctl:vnf";
\r
9 import ietf-inet-types { prefix "ietf"; revision-date "2010-09-24"; }
\r
11 include "vnfsubmodule";
\r
13 organization "OpenECOMP";
\r
16 "Network Controller <sdnc@lists.openecomp.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
127 description "vf-module-id";
\r
131 description "vf-module-type";
\r
135 description "vf-module-name";
\r
137 leaf generic-vnf-id {
\r
139 description "generic vnf-id";
\r
141 leaf generic-vnf-type {
\r
143 description "generic vnf type";
\r
145 leaf generic-vnf-name {
\r
147 description "generic vnf name";
\r
155 leaf aic-cloud-region {
\r
157 description "The AIC cloud region which maps to contrail versions";
\r
159 list vnf-networks {
\r
162 description "Network List";
\r
167 grouping network-request-information {
\r
168 container network-request-information {
\r
172 leaf network-type {
\r
175 leaf network-name {
\r
184 leaf aic-cloud-region {
\r
186 description "The AIC cloud region which maps to contrail versions";
\r
191 /***********************************************************/
\r
193 /***********************************************************/
\r
195 container preload-vnfs {
\r
196 uses preload-model-information;
\r
198 grouping preload-model-information {
\r
199 list vnf-preload-list {
\r
200 key "vnf-name vnf-type";
\r
203 description "vf-module-name";
\r
207 description "vf-module-type";
\r
209 uses preload-data;
\r
213 // For preload networks it will have network-topology-information
\r
214 // For preload vnfs, it will have vnf-topology-information
\r
215 grouping preload-data {
\r
216 container preload-data {
\r
217 uses vnf-topology-information;
\r
218 uses network-topology-information;
\r
224 grouping vnf-topology-information {
\r
225 container vnf-topology-information {
\r
226 uses vnf-topology-identifier;
\r
227 uses vnf-assignments;
\r
228 uses vnf-parameters;
\r
232 grouping vnf-topology-identifier {
\r
233 container vnf-topology-identifier {
\r
234 leaf service-type {
\r
242 description "vf-module-name";
\r
246 description "vf-module-type";
\r
248 leaf generic-vnf-name {
\r
251 leaf generic-vnf-type {
\r
254 leaf generic-vnf-id {
\r
260 grouping vnf-assignments {
\r
261 container vnf-assignments {
\r
264 description "Orchestration Status from AAI - to be set by SDNC";
\r
266 list availability-zones {
\r
268 leaf availability-zone {
\r
270 description "Openstack availability zone name or UUID";
\r
273 list vnf-networks {
\r
277 uses sriov-vlan-filter-list;
\r
278 description "Network List";
\r
284 grouping vm-topology {
\r
299 //leaf-list vm-names {
\r
301 // ordered-by user;
\r
306 description "Network List";
\r
311 grouping vnf-network {
\r
312 leaf network-role {
\r
314 description "A Network Role to which a VNF must connect";
\r
316 leaf network-name {
\r
318 description "Unique Neutron UUID of an instance of the network role ";
\r
322 description "Unique Neutron UUID of an instance of the network role ";
\r
326 description "Unique Neutron UUID of an instance of the network role ";
\r
330 description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";
\r
332 leaf contrail-network-fqdn {
\r
334 description "contrail network policy object";
\r
337 leaf ipv6-subnet-id {
\r
339 description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";
\r
341 leaf ipv6-subnet-name {
\r
343 description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";
\r
345 leaf subnet-name {
\r
347 description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";
\r
352 grouping sriov-vlan-filter-list {
\r
353 list sriov-vlan-filter-list {
\r
354 leaf sriov-vlan-filter {
\r
360 grouping vm-network {
\r
361 leaf network-role {
\r
363 description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF";
\r
367 type enumeration {
\r
371 description "Indicator to use DHCP on this network for this VM";
\r
375 description "The number of ip addresses to be assigned per vm for this network role";
\r
381 type ietf:ip-address;
\r
382 description "List of assigned ipv4 addresses on a network";
\r
385 list network-ips-v6 {
\r
387 leaf ip-address-ipv6 {
\r
389 type ietf:ipv6-address;
\r
390 description "List of assigned ipv6 addresses on a network";
\r
393 list network-macs {
\r
397 description "List of network assignments for this VM (one per network)";
\r
402 type ietf:ip-address;
\r
403 description "Floating ipv4 for VMs of a given type on this network";
\r
405 leaf floating-ip-v6 {
\r
407 type ietf:ipv6-address;
\r
408 description "Floating ipv6 for VMs of a given type on this network";
\r
410 list interface-route-prefixes {
\r
412 leaf interface-route-prefix {
\r
413 type ietf:ip-address;
\r
414 description "route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";
\r
419 grouping vnf-parameters {
\r
420 list vnf-parameters {
\r
421 key vnf-parameter-name;
\r
422 leaf vnf-parameter-name {
\r
424 description "The name of an arbitrary instance-specific vnf-parameters";
\r
426 leaf vnf-parameter-value {
\r
428 description "The value of an arbitrary instance-specific vnf-parameters ";
\r
433 grouping network-topology-information {
\r
434 container network-topology-information {
\r
435 uses network-topology-identifier;
\r
437 uses vpn-bindings;
\r
438 uses network-policy;
\r
439 uses route-table-reference;
\r
440 uses provider-network-information;
\r
444 grouping network-topology-identifier {
\r
445 container network-topology-identifier {
\r
446 leaf service-type {
\r
449 leaf network-name {
\r
452 leaf network-role {
\r
455 leaf network-type {
\r
458 leaf network-technology{
\r
466 leaf start-address{
\r
467 type ietf:ip-address;
\r
470 leaf gateway-address{
\r
472 type ietf:ip-address;
\r
480 leaf dhcp-enabled {
\r
486 leaf dhcp-start-address {
\r
489 leaf dhcp-end-address {
\r
500 grouping vpn-bindings {
\r
501 list vpn-bindings {
\r
502 key vpn-binding-id;
\r
503 leaf vpn-binding-id {
\r
506 leaf global-route-target {
\r
512 grouping network-policy {
\r
513 list network-policy {
\r
514 key network-policy-fqdn;
\r
515 leaf network-policy-fqdn {
\r
518 leaf network-policy-id {
\r
525 grouping route-table-reference {
\r
526 list route-table-reference {
\r
527 leaf route-table-reference-id {
\r
530 leaf route-table-reference-fqdn {
\r
537 grouping provider-network-information {
\r
538 container provider-network-information {
\r
539 leaf physical-network-name {
\r
542 leaf is-provider-network {
\r
545 leaf is-shared-network {
\r
548 leaf is-external-network {
\r
554 /***********************************************************/
\r
556 /***********************************************************/
\r
558 uses vnf-model-infrastructure;
\r
560 grouping vnf-model-infrastructure {
\r
566 description "vf-module-id";
\r
568 uses service-data;
\r
569 uses service-status;
\r
572 grouping service-data {
\r
573 container service-data {
\r
574 uses vnf-configuration-information;
\r
578 grouping service-status {
\r
579 container service-status {
\r
580 leaf response-code {
\r
583 leaf response-message {
\r
586 leaf final-indicator {
\r
589 leaf request-status {
\r
590 type enumeration {
\r
591 enum "synccomplete";
\r
592 enum "asynccomplete";
\r
593 enum "notifycomplete";
\r
596 leaf vnfsdn-action {
\r
597 type enumeration {
\r
598 enum "PreloadNetworkRequest";
\r
599 enum "DeletePreloadNetworkRequest";
\r
600 enum "NetworkActivateRequest";
\r
601 enum "DisconnectNetworkRequest";
\r
602 enum "PreloadVNFRequest";
\r
603 enum "DeletePreloadVNFRequest";
\r
604 enum "VNFActivateRequest";
\r
605 enum "ChangeVNFActivateRequest";
\r
606 enum "DisconnectVNFRequest";
\r
607 enum "PreloadVnfInstanceRequest";
\r
608 enum "DeletePreloadVnfInstanceRequest";
\r
609 enum "VnfInstanceActivateRequest";
\r
610 enum "ChangeVnfInstanceActivateRequest";
\r
611 enum "DisconnectVnfInstanceRequest";
\r
612 enum "PreloadVfModuleRequest";
\r
613 enum "DeletePreloadVfModuleRequest";
\r
614 enum "VfModuleActivateRequest";
\r
615 enum "ChangeVfModuleActivateRequest";
\r
616 enum "DisconnectVfModuleRequest";
\r
619 leaf vnfsdn-subaction {
\r
620 type enumeration {
\r
626 type enumeration {
\r
627 enum "vnf-topology-operation";
\r
628 enum "preload-vnf-topology-operation";
\r
629 enum "vnf-instance-topology-operation";
\r
630 enum "preload-vnf-instance-topology-operation";
\r
631 enum "vf-module-topology-operation";
\r
632 enum "preload-vf-module-topology-operation";
\r
636 type enumeration {
\r
639 enum "activate"; // equal to commit
\r
640 enum "delete"; // equal to commit
\r
641 enum "changeassign";
\r
642 enum "changedelete";
\r
646 leaf response-timestamp {
\r
651 grouping vnf-configuration-information {
\r
652 uses sdnc-request-header;
\r
653 uses request-information;
\r
654 uses service-information;
\r
655 uses vnf-request-information;
\r
656 uses vnf-topology;
\r
658 grouping vnf-topology-response-body {
\r
659 leaf svc-request-id {
\r
662 leaf response-code {
\r
665 leaf response-message {
\r
668 leaf ack-final-indicator {
\r
673 grouping vnf-information {
\r
674 container vnf-information {
\r
675 leaf vnf-service-type {
\r
680 description "vf-module-id";
\r
685 grouping network-information {
\r
686 container network-information {
\r
687 leaf network-service-type {
\r
697 // Carried over from l3sdn and potentially not needed
\r
698 grouping oper-status {
\r
699 container oper-status {
\r
700 leaf order-status {
\r
701 type enumeration {
\r
703 enum "PendingAssignment";
\r
704 enum "PendingCreate";
\r
705 enum "PendingUpdate";
\r
706 enum "PendingDelete";
\r
711 leaf last-action {
\r
712 type enumeration {
\r
713 enum "VNFActivateRequest";
\r
714 enum "ChangeVNFActivateRequest";
\r
715 enum "VnfInstanceActivateRequest";
\r
716 enum "ChangeVnfInstanceActivateRequest";
\r
717 enum "VfModuleActivateRequest";
\r
718 enum "ChangeVfModuleActivateRequest";
\r
719 enum "DisconnectVNFRequest";
\r
720 enum "DisconnectVnfInstanceRequest";
\r
721 enum "DisconnectVfModuleRequest";
\r
722 enum "PreloadVNFRequest";
\r
723 enum "DeletePreloadVNFRequest";
\r
724 enum "PreloadVnfInstanceRequest";
\r
725 enum "DeletePreloadVnfInstanceRequest";
\r
726 enum "PreloadVfModuleRequest";
\r
727 enum "DeletePreloadVfModuleRequest";
\r
730 leaf last-svc-request-id {
\r
733 leaf last-order-status {
\r
734 type enumeration {
\r
736 enum "PendingAssignment";
\r
737 enum "PendingCreate";
\r
738 enum "PendingUpdate";
\r
739 enum "PendingDelete";
\r
743 leaf create-timestamp {
\r
746 leaf modify-timestamp {
\r
749 leaf maintenance-indicator {
\r
750 type enumeration {
\r
757 grouping vnf-topology {
\r
760 description "vf-module-id";
\r
762 uses vnf-topology-information;
\r
766 rpc vnf-topology-operation {
\r
768 uses sdnc-request-header;
\r
769 uses request-information;
\r
770 uses service-information;
\r
771 uses vnf-request-information;
\r
774 uses vnf-topology-response-body;
\r
775 uses vnf-information;
\r
776 uses service-information;
\r
780 rpc network-topology-operation {
\r
782 uses sdnc-request-header;
\r
783 uses request-information;
\r
784 uses service-information;
\r
785 uses network-request-information;
\r
788 uses vnf-topology-response-body;
\r
789 uses network-information;
\r
790 uses service-information;
\r
794 rpc preload-vnf-topology-operation {
\r
796 uses sdnc-request-header;
\r
797 uses request-information;
\r
798 uses vnf-topology-information;
\r
801 uses vnf-topology-response-body;
\r
805 rpc preload-network-topology-operation {
\r
807 uses sdnc-request-header;
\r
808 uses request-information;
\r
809 uses network-topology-information;
\r
812 uses vnf-topology-response-body;
\r