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
26 // Last updated on 8-17-2016
\r
27 grouping sdnc-request-header {
\r
28 container sdnc-request-header {
\r
29 leaf svc-request-id {
\r
36 enum "activate"; // equal to commit
\r
37 enum "delete"; // equal to commit
\r
38 enum "changeassign";
\r
39 enum "changedelete";
\r
43 leaf svc-notification-url {
\r
49 grouping request-information {
\r
50 container request-information {
\r
54 leaf request-action {
\r
56 enum "PreloadNetworkRequest";
\r
57 enum "DeletePreloadNetworkRequest";
\r
58 enum "NetworkActivateRequest";
\r
59 enum "DisconnectNetworkRequest";
\r
60 enum "PreloadVNFRequest";
\r
61 enum "DeletePreloadVNFRequest";
\r
62 enum "VNFActivateRequest";
\r
63 enum "ChangeVNFActivateRequest";
\r
64 enum "DisconnectVNFRequest";
\r
65 enum "PreloadVnfInstanceRequest";
\r
66 enum "DeletePreloadVnfInstanceRequest";
\r
67 enum "VnfInstanceActivateRequest";
\r
68 enum "ChangeVnfInstanceActivateRequest";
\r
69 enum "DisconnectVnfInstanceRequest";
\r
70 enum "PreloadVfModuleRequest";
\r
71 enum "DeletePreloadVfModuleRequest";
\r
72 enum "VfModuleActivateRequest";
\r
73 enum "ChangeVfModuleActivateRequest";
\r
74 enum "DisconnectVfModuleRequest";
\r
77 leaf request-sub-action {
\r
86 leaf notification-url {
\r
92 leaf order-version {
\r
98 grouping service-information {
\r
99 container service-information {
\r
100 // 1610 use for AnAI subscription-service-type
\r
101 leaf service-type {
\r
103 description "AnAI subscription-service-type";
\r
108 leaf service-instance-id {
\r
110 description "A service instance that a VNF or a l3-network is associated with";
\r
112 // 1610 use for global-customer-id
\r
113 leaf subscriber-name {
\r
115 description "AnAI global-customer-id";
\r
121 grouping vnf-request-information {
\r
122 container vnf-request-information {
\r
123 leaf vnf-request-version {
\r
126 leaf model-customization-uuid {
\r
128 description "customized resource, i.e. vf-module, for use within a given service";
\r
135 description "orchestrate vf-module with full preload data or TOSCA lookup plus EIPAM automation";
\r
139 description "vf-module-id";
\r
143 description "vf-module-type";
\r
147 description "vf-module-name";
\r
149 leaf generic-vnf-id {
\r
151 description "generic vnf-id";
\r
153 leaf generic-vnf-type {
\r
155 description "generic vnf type";
\r
157 leaf generic-vnf-name {
\r
159 description "generic vnf name";
\r
167 leaf aic-cloud-region {
\r
169 description "The AIC cloud region which maps to contrail versions";
\r
171 list vnf-networks {
\r
174 description "Network List";
\r
179 grouping network-request-information {
\r
180 container network-request-information {
\r
184 leaf network-type {
\r
187 leaf network-name {
\r
196 leaf aic-cloud-region {
\r
198 description "The AIC cloud region which maps to contrail versions";
\r
203 /***********************************************************/
\r
205 /***********************************************************/
\r
207 container preload-vnfs {
\r
208 uses preload-model-information;
\r
210 grouping preload-model-information {
\r
211 list vnf-preload-list {
\r
212 key "vnf-name vnf-type";
\r
215 description "vf-module-name";
\r
219 description "vf-module-type";
\r
225 // For preload networks it will have network-topology-information
\r
226 // For preload vnfs, it will have vnf-topology-information
\r
227 grouping preload-data {
\r
228 container preload-data {
\r
229 uses vnf-topology-information;
\r
230 uses network-topology-information;
\r
236 grouping vnf-topology-information {
\r
237 container vnf-topology-information {
\r
238 uses vnf-topology-identifier;
\r
239 uses vnf-assignments;
\r
240 uses vnf-parameters;
\r
244 grouping vnf-topology-identifier {
\r
245 container vnf-topology-identifier {
\r
246 leaf service-type {
\r
254 description "vf-module-name";
\r
258 description "vf-module-type";
\r
260 leaf generic-vnf-name {
\r
263 leaf generic-vnf-type {
\r
266 leaf generic-vnf-id {
\r
272 grouping vnf-assignments {
\r
273 container vnf-assignments {
\r
276 description "Orchestration Status from AAI - to be set by SDNC";
\r
278 list availability-zones {
\r
279 key "availability-zone";
\r
281 leaf availability-zone {
\r
283 description "Openstack availability zone name or UUID";
\r
286 list vnf-networks {
\r
290 uses sriov-vlan-filter-list;
\r
291 description "Network List";
\r
297 grouping vm-topology {
\r
313 //leaf-list vm-names {
\r
315 // ordered-by user;
\r
320 description "Network List";
\r
325 grouping vnf-network {
\r
326 leaf network-role {
\r
328 description "A Network Role to which a VNF must connect";
\r
330 leaf network-name {
\r
332 description "Unique Neutron UUID of an instance of the network role ";
\r
336 description "Unique Neutron UUID of an instance of the network role ";
\r
340 description "Unique Neutron UUID of an instance of the network role ";
\r
344 description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";
\r
346 leaf contrail-network-fqdn {
\r
348 description "contrail network policy object";
\r
351 leaf ipv6-subnet-id {
\r
353 description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";
\r
355 leaf ipv6-subnet-name {
\r
357 description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";
\r
361 description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";
\r
366 grouping sriov-vlan-filter-list {
\r
367 list sriov-vlan-filter-list {
\r
368 key "sriov-vlan-filter";
\r
369 leaf sriov-vlan-filter {
\r
375 grouping vm-network {
\r
376 leaf network-role {
\r
378 description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF";
\r
386 description "Indicator to use DHCP on this network for this VM";
\r
390 description "The number of ip addresses to be assigned per vm for this network role";
\r
397 type ietf:ip-address;
\r
398 description "List of assigned ipv4 addresses on a network";
\r
401 list network-ips-v6 {
\r
402 key "ip-address-ipv6";
\r
404 leaf ip-address-ipv6 {
\r
406 type ietf:ipv6-address;
\r
407 description "List of assigned ipv6 addresses on a network";
\r
410 list network-macs {
\r
415 description "List of network assignments for this VM (one per network)";
\r
420 type ietf:ip-address;
\r
421 description "Floating ipv4 for VMs of a given type on this network";
\r
423 leaf floating-ip-v6 {
\r
425 type ietf:ipv6-address;
\r
426 description "Floating ipv6 for VMs of a given type on this network";
\r
428 list interface-route-prefixes {
\r
429 key "interface-route-prefix-cidr";
\r
431 leaf interface-route-prefix {
\r
432 type ietf:ip-address;
\r
433 description "OBSOLETE, route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";
\r
435 leaf interface-route-prefix-cidr {
\r
437 description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes";
\r
442 grouping vnf-parameters {
\r
443 list vnf-parameters {
\r
444 key vnf-parameter-name;
\r
445 leaf vnf-parameter-name {
\r
447 description "The name of an arbitrary instance-specific vnf-parameters";
\r
449 leaf vnf-parameter-value {
\r
451 description "The value of an arbitrary instance-specific vnf-parameters ";
\r
456 grouping network-topology-information {
\r
457 container network-topology-information {
\r
458 uses network-topology-identifier;
\r
461 uses network-policy;
\r
462 uses route-table-reference;
\r
463 uses provider-network-information;
\r
467 grouping network-topology-identifier {
\r
468 container network-topology-identifier {
\r
469 leaf service-type {
\r
472 leaf network-name {
\r
475 leaf network-role {
\r
478 leaf network-type {
\r
481 leaf network-technology{
\r
489 leaf start-address{
\r
490 type ietf:ip-address;
\r
493 leaf gateway-address{
\r
495 type ietf:ip-address;
\r
503 leaf dhcp-enabled {
\r
509 leaf dhcp-start-address {
\r
512 leaf dhcp-end-address {
\r
523 grouping vpn-bindings {
\r
524 list vpn-bindings {
\r
525 key vpn-binding-id;
\r
526 leaf vpn-binding-id {
\r
529 leaf global-route-target {
\r
535 grouping network-policy {
\r
536 list network-policy {
\r
537 key network-policy-fqdn;
\r
538 leaf network-policy-fqdn {
\r
541 leaf network-policy-id {
\r
548 grouping route-table-reference {
\r
549 list route-table-reference {
\r
550 key "route-table-reference-id";
\r
551 leaf route-table-reference-id {
\r
554 leaf route-table-reference-fqdn {
\r
561 grouping provider-network-information {
\r
562 container provider-network-information {
\r
563 leaf physical-network-name {
\r
566 leaf is-provider-network {
\r
569 leaf is-shared-network {
\r
572 leaf is-external-network {
\r
578 /***********************************************************/
\r
580 /***********************************************************/
\r
582 uses vnf-model-infrastructure;
\r
584 grouping vnf-model-infrastructure {
\r
590 description "vf-module-id";
\r
593 uses service-status;
\r
596 grouping service-data {
\r
597 container service-data {
\r
598 uses vnf-configuration-information;
\r
602 grouping service-status {
\r
603 container service-status {
\r
604 leaf response-code {
\r
607 leaf response-message {
\r
610 leaf final-indicator {
\r
613 leaf request-status {
\r
615 enum "synccomplete";
\r
616 enum "asynccomplete";
\r
617 enum "notifycomplete";
\r
620 leaf vnfsdn-action {
\r
622 enum "PreloadNetworkRequest";
\r
623 enum "DeletePreloadNetworkRequest";
\r
624 enum "NetworkActivateRequest";
\r
625 enum "DisconnectNetworkRequest";
\r
626 enum "PreloadVNFRequest";
\r
627 enum "DeletePreloadVNFRequest";
\r
628 enum "VNFActivateRequest";
\r
629 enum "ChangeVNFActivateRequest";
\r
630 enum "DisconnectVNFRequest";
\r
631 enum "PreloadVnfInstanceRequest";
\r
632 enum "DeletePreloadVnfInstanceRequest";
\r
633 enum "VnfInstanceActivateRequest";
\r
634 enum "ChangeVnfInstanceActivateRequest";
\r
635 enum "DisconnectVnfInstanceRequest";
\r
636 enum "PreloadVfModuleRequest";
\r
637 enum "DeletePreloadVfModuleRequest";
\r
638 enum "VfModuleActivateRequest";
\r
639 enum "ChangeVfModuleActivateRequest";
\r
640 enum "DisconnectVfModuleRequest";
\r
643 leaf vnfsdn-subaction {
\r
651 enum "vnf-topology-operation";
\r
652 enum "preload-vnf-topology-operation";
\r
653 enum "vnf-instance-topology-operation";
\r
654 enum "preload-vnf-instance-topology-operation";
\r
655 enum "vf-module-topology-operation";
\r
656 enum "preload-vf-module-topology-operation";
\r
663 enum "activate"; // equal to commit
\r
664 enum "delete"; // equal to commit
\r
665 enum "changeassign";
\r
666 enum "changedelete";
\r
670 leaf response-timestamp {
\r
675 grouping vnf-configuration-information {
\r
676 uses sdnc-request-header;
\r
677 uses request-information;
\r
678 uses service-information;
\r
679 uses vnf-request-information;
\r
682 grouping vnf-topology-response-body {
\r
683 leaf svc-request-id {
\r
686 leaf response-code {
\r
689 leaf response-message {
\r
692 leaf ack-final-indicator {
\r
697 grouping vnf-information {
\r
698 container vnf-information {
\r
699 leaf vnf-service-type {
\r
704 description "vf-module-id";
\r
709 grouping network-information {
\r
710 container network-information {
\r
711 leaf network-service-type {
\r
721 // Carried over from l3sdn and potentially not needed
\r
722 grouping oper-status {
\r
723 container oper-status {
\r
724 leaf order-status {
\r
727 enum "PendingAssignment";
\r
728 enum "PendingCreate";
\r
729 enum "PendingUpdate";
\r
730 enum "PendingDelete";
\r
737 enum "VNFActivateRequest";
\r
738 enum "ChangeVNFActivateRequest";
\r
739 enum "VnfInstanceActivateRequest";
\r
740 enum "ChangeVnfInstanceActivateRequest";
\r
741 enum "VfModuleActivateRequest";
\r
742 enum "ChangeVfModuleActivateRequest";
\r
743 enum "DisconnectVNFRequest";
\r
744 enum "DisconnectVnfInstanceRequest";
\r
745 enum "DisconnectVfModuleRequest";
\r
746 enum "PreloadVNFRequest";
\r
747 enum "DeletePreloadVNFRequest";
\r
748 enum "PreloadVnfInstanceRequest";
\r
749 enum "DeletePreloadVnfInstanceRequest";
\r
750 enum "PreloadVfModuleRequest";
\r
751 enum "DeletePreloadVfModuleRequest";
\r
754 leaf last-svc-request-id {
\r
757 leaf last-order-status {
\r
760 enum "PendingAssignment";
\r
761 enum "PendingCreate";
\r
762 enum "PendingUpdate";
\r
763 enum "PendingDelete";
\r
767 leaf create-timestamp {
\r
770 leaf modify-timestamp {
\r
773 leaf maintenance-indicator {
\r
781 grouping vnf-topology {
\r
784 description "vf-module-id";
\r
786 uses vnf-topology-information;
\r
790 rpc vnf-topology-operation {
\r
792 uses sdnc-request-header;
\r
793 uses request-information;
\r
794 uses service-information;
\r
795 uses vnf-request-information;
\r
798 uses vnf-topology-response-body;
\r
799 uses vnf-information;
\r
800 uses service-information;
\r
804 rpc network-topology-operation {
\r
806 uses sdnc-request-header;
\r
807 uses request-information;
\r
808 uses service-information;
\r
809 uses network-request-information;
\r
812 uses vnf-topology-response-body;
\r
813 uses network-information;
\r
814 uses service-information;
\r
818 rpc preload-vnf-topology-operation {
\r
820 uses sdnc-request-header;
\r
821 uses request-information;
\r
822 uses vnf-topology-information;
\r
825 uses vnf-topology-response-body;
\r
829 rpc preload-network-topology-operation {
\r
831 uses sdnc-request-header;
\r
832 uses request-information;
\r
833 uses network-topology-information;
\r
836 uses vnf-topology-response-body;
\r