5 namespace "org:onap:sdnctl:vnf";
9 import ietf-inet-types { prefix "ietf"; revision-date "2010-09-24"; }
11 include "vnfsubmodule";
16 "Network Controller <onap-sdnc@lists.onap.org>";
19 "Defines API interface for VNF Orchestration";
21 revision "2015-07-20" {
25 // Last updated on 8-17-2016
26 grouping sdnc-request-header {
27 container sdnc-request-header {
35 enum "activate"; // equal to commit
36 enum "delete"; // equal to commit
42 leaf svc-notification-url {
48 grouping request-information {
49 container request-information {
55 enum "PreloadNetworkRequest";
56 enum "DeletePreloadNetworkRequest";
57 enum "NetworkActivateRequest";
58 enum "DisconnectNetworkRequest";
59 enum "PreloadVNFRequest";
60 enum "DeletePreloadVNFRequest";
61 enum "VNFActivateRequest";
62 enum "ChangeVNFActivateRequest";
63 enum "DisconnectVNFRequest";
64 enum "PreloadVnfInstanceRequest";
65 enum "DeletePreloadVnfInstanceRequest";
66 enum "VnfInstanceActivateRequest";
67 enum "ChangeVnfInstanceActivateRequest";
68 enum "DisconnectVnfInstanceRequest";
69 enum "PreloadVfModuleRequest";
70 enum "DeletePreloadVfModuleRequest";
71 enum "VfModuleActivateRequest";
72 enum "ChangeVfModuleActivateRequest";
73 enum "DisconnectVfModuleRequest";
76 leaf request-sub-action {
80 enum "RetainResource";
86 leaf notification-url {
98 grouping service-information {
99 container service-information {
102 description "AnAI subscription-service-type";
107 leaf service-instance-id {
109 description "A service instance that a VNF or a l3-network is associated with";
111 leaf subscriber-name {
113 description "AnAI global-customer-id";
119 grouping vnf-request-information {
120 container vnf-request-information {
121 leaf vnf-request-version {
124 leaf model-customization-uuid {
126 description "customized resource, i.e. vf-module, for use within a given service";
133 description "orchestrate vf-module with full preload data or TOSCA lookup plus EIPAM automation";
137 description "vf-module-id";
141 description "vf-module-type";
145 description "vf-module-name";
147 leaf generic-vnf-id {
149 description "generic vnf-id";
151 leaf generic-vnf-type {
153 description "generic vnf type";
155 leaf generic-vnf-name {
157 description "generic vnf name";
165 leaf aic-cloud-region {
167 description "The AIC cloud region which maps to contrail versions";
172 description "Network List";
177 grouping network-request-information {
178 container network-request-information {
194 leaf aic-cloud-region {
196 description "The AIC cloud region which maps to contrail versions";
201 /***********************************************************/
203 /***********************************************************/
205 container preload-vnfs {
206 uses preload-model-information;
208 grouping preload-model-information {
209 list vnf-preload-list {
210 key "vnf-name vnf-type";
213 description "vf-module-name";
217 description "vf-module-type";
223 // For preload networks it will have network-topology-information
224 // For preload vnfs, it will have vnf-topology-information
225 grouping preload-data {
226 container preload-data {
227 uses vnf-topology-information;
228 uses network-topology-information;
234 grouping vnf-topology-information {
235 container vnf-topology-information {
236 uses vnf-topology-identifier;
237 uses vnf-assignments;
242 grouping vnf-topology-identifier {
243 container vnf-topology-identifier {
252 description "vf-module-name";
256 description "vf-module-type";
258 leaf generic-vnf-name {
261 leaf generic-vnf-type {
264 leaf generic-vnf-id {
270 grouping vnf-assignments {
271 container vnf-assignments {
274 description "Orchestration Status from AAI - to be set by SDNC";
276 list availability-zones {
277 key "availability-zone";
279 leaf availability-zone {
281 description "Openstack availability zone name or UUID";
287 uses sriov-vlan-filter-list;
288 description "Network List";
294 grouping vm-topology {
316 key vnfc-network-role;
324 description "Network List";
329 grouping vnfc-network {
330 leaf vnfc-network-role {
334 key "vnfc-subnet-role";
335 leaf vnfc-subnet-role {
338 list vnfc-ipassignments {
339 key "vnfc-address-family";
340 leaf vnfc-address-family {
341 description "Subnet Version tells if this is IpV4 or IpV6";
347 leaf vnfc-subnet-dhcp {
348 description "Indicator to use DHCP on this network for this VNFC. Unless dhcp=N, we wouldnt have any address, since they would not be sdnc assigned ";
354 leaf vnfc-subnet-ipcount {
355 description "The number of ip addresses to be assigned per vnfc for this subnet role";
358 list vnfc-subnet-ips {
359 key "vnfc-client-key";
360 leaf vnfc-client-key {
364 description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. ";
370 leaf vnfc-address-ipv4 {
371 description "Either IpV4 IP addresses or IpV6 IP addresses should be present, but not both within one VnfcVersion. ";
372 type ietf:ip-address;
374 leaf vnfc-address-ipv6 {
375 description "Either IpV4 IP addresses or IpV6 IP addresses should be present, but not both within one VnfcVersion.";
376 type ietf:ipv6-address;
383 grouping vnf-network {
386 description "A Network Role to which a VNF must connect";
388 leaf network-role-tag {
390 description "The network-role that maps to the HEAT parameter {network-role}_net_id";
394 description "Unique Neutron UUID of an instance of the network role ";
398 description "Unique Neutron UUID of an instance of the network role ";
402 description "Unique Neutron UUID of an instance of the network role ";
406 description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";
408 leaf contrail-network-fqdn {
410 description "contrail network policy object";
412 leaf ipv6-subnet-id {
414 description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";
416 leaf ipv6-subnet-name {
418 description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";
422 description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";
424 leaf ipv4-key-subnet-id {
425 description "Unique SDN-C generated UUID of the ipv4 subnet.Key into A&AI instance.";
428 leaf ipv6-key-subnet-id {
429 description "Unique SDN-C generated UUID of the ipv6 subnet.Key into A&AI instance.";
437 grouping sriov-vlan-filter-list {
438 list sriov-vlan-filter-list {
439 key "sriov-vlan-filter";
440 leaf sriov-vlan-filter {
446 grouping vm-network {
449 description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF";
451 leaf network-role-tag {
453 description "The network-role that maps to the HEAT parameter {network-role}_net_id";
460 description "Indicator to use DHCP on this network for this VM";
464 description "The number of ip addresses to be assigned per vm for this network role";
468 description "The number of ipv6 addresses to be assigned per vm for this network role";
474 type ietf:ip-address;
475 description "List of assigned ipv4 addresses on a network";
478 list network-ips-v6 {
481 leaf ip-address-ipv6 {
482 type ietf:ipv6-address;
483 description "List of assigned ipv6 addresses on a network";
491 description "List of network assignments for this VM (one per network)";
495 type ietf:ip-address;
496 description "Floating ipv4 for VMs of a given type on this network";
498 leaf floating-ip-v6 {
499 type ietf:ipv6-address;
500 description "Floating ipv6 for VMs of a given type on this network";
502 list interface-route-prefixes {
504 key interface-route-prefix;
505 leaf interface-route-prefix {
506 type ietf:ip-address;
507 description "OBSOLETE, route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";
509 leaf interface-route-prefix-cidr {
511 description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes";
516 grouping vnf-parameters {
517 list vnf-parameters {
518 key vnf-parameter-name;
519 leaf vnf-parameter-name {
521 description "The name of an arbitrary instance-specific vnf-parameters";
523 leaf vnf-parameter-value {
525 description "The value of an arbitrary instance-specific vnf-parameters ";
530 grouping network-topology-information {
531 container network-topology-information {
532 uses network-topology-identifier;
536 uses route-table-reference;
537 uses provider-network-information;
541 grouping network-topology-identifier {
542 container network-topology-identifier {
555 leaf network-technology{
564 type ietf:ip-address;
566 leaf gateway-address{
567 type ietf:ip-address;
581 leaf dhcp-start-address {
584 leaf dhcp-end-address {
590 leaf addr-from-start {
591 description "Default is N";
604 grouping vpn-bindings {
607 leaf vpn-binding-id {
610 leaf global-route-target {
616 grouping network-policy {
617 list network-policy {
618 key network-policy-fqdn;
619 leaf network-policy-fqdn {
622 leaf network-policy-id {
628 grouping route-table-reference {
629 list route-table-reference {
630 key "route-table-reference-id";
631 leaf route-table-reference-id {
634 leaf route-table-reference-fqdn {
640 grouping provider-network-information {
641 container provider-network-information {
642 leaf physical-network-name {
645 leaf is-provider-network {
648 leaf is-shared-network {
651 leaf is-external-network {
657 grouping host-routes {
664 description "Could be ip-address or hostname or service-instance";
670 /***********************************************************/
672 /***********************************************************/
674 uses vnf-model-infrastructure;
676 grouping vnf-model-infrastructure {
682 description "vf-module-id";
688 grouping service-data {
689 container service-data {
690 uses vnf-configuration-information;
694 grouping service-status {
695 container service-status {
699 leaf response-message {
702 leaf final-indicator {
705 leaf request-status {
708 enum "asynccomplete";
709 enum "notifycomplete";
714 enum "PreloadNetworkRequest";
715 enum "DeletePreloadNetworkRequest";
716 enum "NetworkActivateRequest";
717 enum "DisconnectNetworkRequest";
718 enum "PreloadVNFRequest";
719 enum "DeletePreloadVNFRequest";
720 enum "VNFActivateRequest";
721 enum "ChangeVNFActivateRequest";
722 enum "DisconnectVNFRequest";
723 enum "PreloadVnfInstanceRequest";
724 enum "DeletePreloadVnfInstanceRequest";
725 enum "VnfInstanceActivateRequest";
726 enum "ChangeVnfInstanceActivateRequest";
727 enum "DisconnectVnfInstanceRequest";
728 enum "PreloadVfModuleRequest";
729 enum "DeletePreloadVfModuleRequest";
730 enum "VfModuleActivateRequest";
731 enum "ChangeVfModuleActivateRequest";
732 enum "DisconnectVfModuleRequest";
735 leaf vnfsdn-subaction {
739 enum "RetainResource";
744 enum "vnf-topology-operation";
745 enum "preload-vnf-topology-operation";
746 enum "vnf-instance-topology-operation";
747 enum "preload-vnf-instance-topology-operation";
748 enum "vf-module-topology-operation";
749 enum "preload-vf-module-topology-operation";
756 enum "activate"; // equal to commit
757 enum "delete"; // equal to commit
763 leaf response-timestamp {
768 grouping vnf-configuration-information {
769 uses sdnc-request-header;
770 uses request-information;
771 uses service-information;
772 uses vnf-request-information;
775 grouping vnf-topology-response-body {
776 leaf svc-request-id {
782 leaf response-message {
785 leaf ack-final-indicator {
790 grouping vnf-information {
791 container vnf-information {
792 leaf vnf-service-type {
797 description "vf-module-id";
802 grouping network-information {
803 container network-information {
804 leaf network-service-type {
814 // Carried over from l3sdn and potentially not needed
815 grouping oper-status {
816 container oper-status {
820 enum "PendingAssignment";
821 enum "PendingCreate";
822 enum "PendingUpdate";
823 enum "PendingDelete";
830 enum "VNFActivateRequest";
831 enum "ChangeVNFActivateRequest";
832 enum "VnfInstanceActivateRequest";
833 enum "ChangeVnfInstanceActivateRequest";
834 enum "VfModuleActivateRequest";
835 enum "ChangeVfModuleActivateRequest";
836 enum "DisconnectVNFRequest";
837 enum "DisconnectVnfInstanceRequest";
838 enum "DisconnectVfModuleRequest";
839 enum "PreloadVNFRequest";
840 enum "DeletePreloadVNFRequest";
841 enum "PreloadVnfInstanceRequest";
842 enum "DeletePreloadVnfInstanceRequest";
843 enum "PreloadVfModuleRequest";
844 enum "DeletePreloadVfModuleRequest";
847 leaf last-svc-request-id {
850 leaf last-order-status {
853 enum "PendingAssignment";
854 enum "PendingCreate";
855 enum "PendingUpdate";
856 enum "PendingDelete";
860 leaf create-timestamp {
863 leaf modify-timestamp {
866 leaf maintenance-indicator {
874 grouping vnf-topology {
877 description "vf-module-id";
879 uses vnf-topology-information;
883 rpc vnf-topology-operation {
885 uses sdnc-request-header;
886 uses request-information;
887 uses service-information;
888 uses vnf-request-information;
891 uses vnf-topology-response-body;
892 uses vnf-information;
893 uses service-information;
897 rpc network-topology-operation {
899 uses sdnc-request-header;
900 uses request-information;
901 uses service-information;
902 uses network-request-information;
905 uses vnf-topology-response-body;
906 uses network-information;
907 uses service-information;
911 rpc preload-vnf-topology-operation {
913 uses sdnc-request-header;
914 uses request-information;
915 uses vnf-topology-information;
918 uses vnf-topology-response-body;
922 rpc preload-network-topology-operation {
924 uses sdnc-request-header;
925 uses request-information;
926 uses network-topology-information;
929 uses vnf-topology-response-body;