aboutsummaryrefslogtreecommitdiffstats
path: root/vnfapi/model/src/main/yang/VNF-API.yang
diff options
context:
space:
mode:
Diffstat (limited to 'vnfapi/model/src/main/yang/VNF-API.yang')
-rwxr-xr-xvnfapi/model/src/main/yang/VNF-API.yang777
1 files changed, 393 insertions, 384 deletions
diff --git a/vnfapi/model/src/main/yang/VNF-API.yang b/vnfapi/model/src/main/yang/VNF-API.yang
index 1b44413c..9b621aa2 100755
--- a/vnfapi/model/src/main/yang/VNF-API.yang
+++ b/vnfapi/model/src/main/yang/VNF-API.yang
@@ -22,14 +22,15 @@ module VNF-API {
description
"Initial draft";
}
+
// Last updated on 8-17-2016
- grouping sdnc-request-header {
- container sdnc-request-header {
- leaf svc-request-id {
- type string;
- }
- leaf svc-action {
- type enumeration {
+ grouping sdnc-request-header {
+ container sdnc-request-header {
+ leaf svc-request-id {
+ type string;
+ }
+ leaf svc-action {
+ type enumeration {
enum "reserve";
enum "assign";
enum "activate"; // equal to commit
@@ -37,21 +38,21 @@ module VNF-API {
enum "changeassign";
enum "changedelete";
enum "rollback";
- }
- }
- leaf svc-notification-url {
- type string;
- }
- }
- }
-
- grouping request-information {
- container request-information {
- leaf request-id {
- type string;
- }
- leaf request-action {
- type enumeration {
+ }
+ }
+ leaf svc-notification-url {
+ type string;
+ }
+ }
+ }
+
+ grouping request-information {
+ container request-information {
+ leaf request-id {
+ type string;
+ }
+ leaf request-action {
+ type enumeration {
enum "PreloadNetworkRequest";
enum "DeletePreloadNetworkRequest";
enum "NetworkActivateRequest";
@@ -71,210 +72,211 @@ module VNF-API {
enum "VfModuleActivateRequest";
enum "ChangeVfModuleActivateRequest";
enum "DisconnectVfModuleRequest";
- }
- }
- leaf request-sub-action {
- type enumeration {
+ }
+ }
+ leaf request-sub-action {
+ type enumeration {
enum "SUPP";
enum "CANCEL";
- }
- }
- leaf source {
- type string;
- }
- leaf notification-url {
- type string;
- }
- leaf order-number {
- type string;
- }
- leaf order-version {
- type string;
- }
- }
- }
-
- grouping service-information {
- container service-information {
+ }
+ }
+ leaf source {
+ type string;
+ }
+ leaf notification-url {
+ type string;
+ }
+ leaf order-number {
+ type string;
+ }
+ leaf order-version {
+ type string;
+ }
+ }
+ }
+
+ grouping service-information {
+ container service-information {
// 1610 use for AnAI subscription-service-type
- leaf service-type {
+ leaf service-type {
type string;
description "AnAI subscription-service-type";
- }
- leaf service-id {
+ }
+ leaf service-id {
+ type string;
+ }
+ leaf service-instance-id {
type string;
- }
- leaf service-instance-id {
- type string;
description "A service instance that a VNF or a l3-network is associated with";
- }
+ }
// 1610 use for global-customer-id
- leaf subscriber-name {
- type string;
+ leaf subscriber-name {
+ type string;
description "AnAI global-customer-id";
- }
- }
- }
+ }
+ }
+ }
- grouping vnf-request-information {
- container vnf-request-information {
+ grouping vnf-request-information {
+ container vnf-request-information {
leaf vnf-request-version {
- type string;
+ type string;
}
leaf model-customization-uuid {
- type string;
+ type string;
description "customized resource, i.e. vf-module, for use within a given service";
}
leaf use-preload {
- type enumeration {
+ type enumeration {
enum "Y";
enum "N";
}
description "orchestrate vf-module with full preload data or TOSCA lookup plus EIPAM automation";
}
leaf vnf-id {
- type string;
+ type string;
description "vf-module-id";
}
- leaf vnf-type {
- type string;
+ leaf vnf-type {
+ type string;
description "vf-module-type";
- }
- leaf vnf-name {
- type string;
+ }
+ leaf vnf-name {
+ type string;
description "vf-module-name";
- }
+ }
leaf generic-vnf-id {
- type string;
+ type string;
description "generic vnf-id";
}
- leaf generic-vnf-type {
- type string;
+ leaf generic-vnf-type {
+ type string;
description "generic vnf type";
- }
- leaf generic-vnf-name {
- type string;
+ }
+ leaf generic-vnf-name {
+ type string;
description "generic vnf name";
- }
- leaf tenant {
- type string;
- }
- leaf aic-clli {
- type string;
- }
- leaf aic-cloud-region {
- type string;
+ }
+ leaf tenant {
+ type string;
+ }
+ leaf aic-clli {
+ type string;
+ }
+ leaf aic-cloud-region {
+ type string;
description "The AIC cloud region which maps to contrail versions";
- }
+ }
list vnf-networks {
key network-role;
uses vnf-network;
description "Network List";
}
}
- }
+ }
- grouping network-request-information {
- container network-request-information {
+ grouping network-request-information {
+ container network-request-information {
leaf network-id {
- type string;
- }
- leaf network-type {
- type string;
- }
- leaf network-name {
- type string;
- }
- leaf tenant {
- type string;
- }
- leaf aic-clli {
- type string;
- }
- leaf aic-cloud-region {
- type string;
+ type string;
+ }
+ leaf network-type {
+ type string;
+ }
+ leaf network-name {
+ type string;
+ }
+ leaf tenant {
+ type string;
+ }
+ leaf aic-clli {
+ type string;
+ }
+ leaf aic-cloud-region {
+ type string;
description "The AIC cloud region which maps to contrail versions";
- }
+ }
}
- }
+ }
/***********************************************************/
/* PRELOAD DATA */
/***********************************************************/
container preload-vnfs {
- uses preload-model-information;
- }
- grouping preload-model-information {
- list vnf-preload-list {
- key "vnf-name vnf-type";
- leaf vnf-name {
- type string;
+ uses preload-model-information;
+ }
+ grouping preload-model-information {
+ list vnf-preload-list {
+ key "vnf-name vnf-type";
+ leaf vnf-name {
+ type string;
description "vf-module-name";
- }
- leaf vnf-type {
- type string;
+ }
+ leaf vnf-type {
+ type string;
description "vf-module-type";
- }
- uses preload-data;
- }
- }
+ }
+ uses preload-data;
+ }
+ }
// For preload networks it will have network-topology-information
// For preload vnfs, it will have vnf-topology-information
- grouping preload-data {
- container preload-data {
- uses vnf-topology-information;
- uses network-topology-information;
- uses oper-status;
+ grouping preload-data {
+ container preload-data {
+ uses vnf-topology-information;
+ uses network-topology-information;
+ uses oper-status;
}
- }
+ }
- grouping vnf-topology-information {
- container vnf-topology-information {
+ grouping vnf-topology-information {
+ container vnf-topology-information {
uses vnf-topology-identifier;
- uses vnf-assignments;
- uses vnf-parameters;
+ uses vnf-assignments;
+ uses vnf-parameters;
}
- }
+ }
- grouping vnf-topology-identifier {
- container vnf-topology-identifier {
- leaf service-type {
+ grouping vnf-topology-identifier {
+ container vnf-topology-identifier {
+ leaf service-type {
type string;
- }
- leaf service-id {
+ }
+ leaf service-id {
+ type string;
+ }
+ leaf vnf-name {
type string;
- }
- leaf vnf-name {
- type string;
description "vf-module-name";
- }
- leaf vnf-type {
- type string;
+ }
+ leaf vnf-type {
+ type string;
description "vf-module-type";
- }
- leaf generic-vnf-name {
- type string;
- }
- leaf generic-vnf-type {
- type string;
- }
- leaf generic-vnf-id {
- type string;
- }
- }
- }
+ }
+ leaf generic-vnf-name {
+ type string;
+ }
+ leaf generic-vnf-type {
+ type string;
+ }
+ leaf generic-vnf-id {
+ type string;
+ }
+ }
+ }
grouping vnf-assignments {
- container vnf-assignments {
+ container vnf-assignments {
leaf vnf-status {
type string;
description "Orchestration Status from AAI - to be set by SDNC";
}
list availability-zones {
+ key "availability-zone";
ordered-by user;
leaf availability-zone {
type string;
@@ -290,25 +292,26 @@ module VNF-API {
}
uses vm-topology;
}
- }
+ }
grouping vm-topology {
list vnf-vms {
key vm-type;
- leaf vm-type {
- type string;
- }
- leaf vm-count {
- type uint8;
- }
+ leaf vm-type {
+ type string;
+ }
+ leaf vm-count {
+ type uint8;
+ }
list vm-names {
+ key "vm-name";
ordered-by user;
- leaf vm-name{
- type string;
- }
+ leaf vm-name {
+ type string;
+ }
}
//leaf-list vm-names {
- // type string;
+ // type string;
// ordered-by user;
//}
list vm-networks {
@@ -320,24 +323,24 @@ module VNF-API {
}
grouping vnf-network {
- leaf network-role {
- type string;
+ leaf network-role {
+ type string;
description "A Network Role to which a VNF must connect";
- }
- leaf network-name {
- type string;
+ }
+ leaf network-name {
+ type string;
description "Unique Neutron UUID of an instance of the network role ";
- }
- leaf neutron-id {
- type string;
+ }
+ leaf neutron-id {
+ type string;
description "Unique Neutron UUID of an instance of the network role ";
- }
- leaf network-id {
- type string;
+ }
+ leaf network-id {
+ type string;
description "Unique Neutron UUID of an instance of the network role ";
- }
- leaf subnet-id {
- type string;
+ }
+ leaf subnet-id {
+ type string;
description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";
}
leaf contrail-network-fqdn {
@@ -345,16 +348,16 @@ module VNF-API {
description "contrail network policy object";
}
// 1610
- leaf ipv6-subnet-id {
- type string;
+ leaf ipv6-subnet-id {
+ type string;
description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";
}
- leaf ipv6-subnet-name {
- type string;
+ leaf ipv6-subnet-name {
+ type string;
description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";
}
- leaf subnet-name {
- type string;
+ leaf subnet-name {
+ type string;
description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";
}
}
@@ -362,6 +365,7 @@ module VNF-API {
// 1610
grouping sriov-vlan-filter-list {
list sriov-vlan-filter-list {
+ key "sriov-vlan-filter";
leaf sriov-vlan-filter {
type string;
}
@@ -372,13 +376,13 @@ module VNF-API {
leaf network-role {
type string;
description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF";
-
+
}
leaf use-dhcp {
- type enumeration {
+ type enumeration {
enum "Y";
enum "N";
- }
+ }
description "Indicator to use DHCP on this network for this VM";
}
leaf ip-count {
@@ -386,6 +390,7 @@ module VNF-API {
description "The number of ip addresses to be assigned per vm for this network role";
}
list network-ips {
+ key "ip-address";
ordered-by user;
leaf ip-address {
//type string;
@@ -394,6 +399,7 @@ module VNF-API {
}
}
list network-ips-v6 {
+ key "ip-address-ipv6";
ordered-by user;
leaf ip-address-ipv6 {
//type string;
@@ -402,6 +408,7 @@ module VNF-API {
}
}
list network-macs {
+ key "mac-address";
ordered-by user;
leaf mac-address {
type string;
@@ -419,6 +426,7 @@ module VNF-API {
description "Floating ipv6 for VMs of a given type on this network";
}
list interface-route-prefixes {
+ key "interface-route-prefix-cidr";
ordered-by user;
leaf interface-route-prefix {
type ietf:ip-address;
@@ -434,47 +442,47 @@ module VNF-API {
grouping vnf-parameters {
list vnf-parameters {
key vnf-parameter-name;
- leaf vnf-parameter-name {
- type string;
+ leaf vnf-parameter-name {
+ type string;
description "The name of an arbitrary instance-specific vnf-parameters";
- }
- leaf vnf-parameter-value {
- type string;
+ }
+ leaf vnf-parameter-value {
+ type string;
description "The value of an arbitrary instance-specific vnf-parameters ";
- }
+ }
}
}
- grouping network-topology-information {
- container network-topology-information {
+ grouping network-topology-information {
+ container network-topology-information {
uses network-topology-identifier;
- uses subnets;
- uses vpn-bindings;
+ uses subnets;
+ uses vpn-bindings;
uses network-policy;
uses route-table-reference;
uses provider-network-information;
}
- }
-
- grouping network-topology-identifier {
- container network-topology-identifier {
- leaf service-type {
- type string;
- }
- leaf network-name {
- type string;
- }
- leaf network-role {
- type string;
- }
- leaf network-type {
- type string;
- }
- leaf network-technology{
- type string;
- }
- }
- }
+ }
+
+ grouping network-topology-identifier {
+ container network-topology-identifier {
+ leaf service-type {
+ type string;
+ }
+ leaf network-name {
+ type string;
+ }
+ leaf network-role {
+ type string;
+ }
+ leaf network-type {
+ type string;
+ }
+ leaf network-technology{
+ type string;
+ }
+ }
+ }
grouping subnets {
list subnets {
key start-address;
@@ -508,9 +516,9 @@ module VNF-API {
leaf subnet-name {
type string;
}
-
+
}
- }
+ }
grouping vpn-bindings {
list vpn-bindings {
@@ -522,7 +530,7 @@ module VNF-API {
type string;
}
}
- }
+ }
grouping network-policy {
list network-policy {
@@ -534,11 +542,12 @@ module VNF-API {
type string;
}
}
- }
+ }
//1610
grouping route-table-reference {
list route-table-reference {
+ key "route-table-reference-id";
leaf route-table-reference-id {
type string;
}
@@ -570,46 +579,46 @@ module VNF-API {
/* SERVICE_DATA */
/***********************************************************/
container vnfs {
- uses vnf-model-infrastructure;
- }
- grouping vnf-model-infrastructure {
- list vnf-list {
- key vnf-id;
- leaf vnf-id {
- type string;
- mandatory true;
+ uses vnf-model-infrastructure;
+ }
+ grouping vnf-model-infrastructure {
+ list vnf-list {
+ key vnf-id;
+ leaf vnf-id {
+ type string;
+ mandatory true;
description "vf-module-id";
- }
- uses service-data;
- uses service-status;
- }
- }
- grouping service-data {
- container service-data {
- uses vnf-configuration-information;
- uses oper-status;
- }
- }
- grouping service-status {
- container service-status {
- leaf response-code {
- type string;
- }
- leaf response-message {
- type string;
- }
- leaf final-indicator {
- type string;
- }
- leaf request-status {
- type enumeration {
+ }
+ uses service-data;
+ uses service-status;
+ }
+ }
+ grouping service-data {
+ container service-data {
+ uses vnf-configuration-information;
+ uses oper-status;
+ }
+ }
+ grouping service-status {
+ container service-status {
+ leaf response-code {
+ type string;
+ }
+ leaf response-message {
+ type string;
+ }
+ leaf final-indicator {
+ type string;
+ }
+ leaf request-status {
+ type enumeration {
enum "synccomplete";
enum "asynccomplete";
enum "notifycomplete";
- }
- }
- leaf vnfsdn-action {
- type enumeration {
+ }
+ }
+ leaf vnfsdn-action {
+ type enumeration {
enum "PreloadNetworkRequest";
enum "DeletePreloadNetworkRequest";
enum "NetworkActivateRequest";
@@ -629,26 +638,26 @@ module VNF-API {
enum "VfModuleActivateRequest";
enum "ChangeVfModuleActivateRequest";
enum "DisconnectVfModuleRequest";
- }
- }
- leaf vnfsdn-subaction {
- type enumeration {
+ }
+ }
+ leaf vnfsdn-subaction {
+ type enumeration {
enum "SUPP";
enum "CANCEL";
- }
+ }
}
- leaf rpc-name {
- type enumeration {
+ leaf rpc-name {
+ type enumeration {
enum "vnf-topology-operation";
enum "preload-vnf-topology-operation";
enum "vnf-instance-topology-operation";
enum "preload-vnf-instance-topology-operation";
enum "vf-module-topology-operation";
enum "preload-vf-module-topology-operation";
- }
- }
- leaf rpc-action {
- type enumeration {
+ }
+ }
+ leaf rpc-action {
+ type enumeration {
enum "reserve";
enum "assign";
enum "activate"; // equal to commit
@@ -656,75 +665,75 @@ module VNF-API {
enum "changeassign";
enum "changedelete";
enum "rollback";
- }
- }
- leaf response-timestamp {
- type string;
- }
- }
- }
- grouping vnf-configuration-information {
- uses sdnc-request-header;
- uses request-information;
+ }
+ }
+ leaf response-timestamp {
+ type string;
+ }
+ }
+ }
+ grouping vnf-configuration-information {
+ uses sdnc-request-header;
+ uses request-information;
uses service-information;
uses vnf-request-information;
- uses vnf-topology;
- }
- grouping vnf-topology-response-body {
- leaf svc-request-id {
- type string;
- }
- leaf response-code {
- type string;
- }
- leaf response-message {
- type string;
- }
- leaf ack-final-indicator {
- type string;
- }
- }
-
- grouping vnf-information {
- container vnf-information {
- leaf vnf-service-type {
- type string;
- }
- leaf vnf-id {
- type string;
+ uses vnf-topology;
+ }
+ grouping vnf-topology-response-body {
+ leaf svc-request-id {
+ type string;
+ }
+ leaf response-code {
+ type string;
+ }
+ leaf response-message {
+ type string;
+ }
+ leaf ack-final-indicator {
+ type string;
+ }
+ }
+
+ grouping vnf-information {
+ container vnf-information {
+ leaf vnf-service-type {
+ type string;
+ }
+ leaf vnf-id {
+ type string;
description "vf-module-id";
- }
- }
- }
+ }
+ }
+ }
- grouping network-information {
- container network-information {
- leaf network-service-type {
+ grouping network-information {
+ container network-information {
+ leaf network-service-type {
type string;
- }
- leaf network-id {
- type string;
- }
- }
- }
+ }
+ leaf network-id {
+ type string;
+ }
+ }
+ }
// Carried over from l3sdn and potentially not needed
- grouping oper-status {
- container oper-status {
- leaf order-status {
- type enumeration {
+ grouping oper-status {
+ container oper-status {
+ leaf order-status {
+ type enumeration {
enum "Active";
enum "PendingAssignment";
enum "PendingCreate";
enum "PendingUpdate";
enum "PendingDelete";
enum "Deleted";
-
- }
+
+ }
}
- leaf last-action {
- type enumeration {
+ leaf last-action {
+ type enumeration {
enum "VNFActivateRequest";
enum "ChangeVNFActivateRequest";
enum "VnfInstanceActivateRequest";
@@ -740,91 +749,91 @@ module VNF-API {
enum "DeletePreloadVnfInstanceRequest";
enum "PreloadVfModuleRequest";
enum "DeletePreloadVfModuleRequest";
- }
- }
- leaf last-svc-request-id {
- type string;
- }
- leaf last-order-status {
- type enumeration {
+ }
+ }
+ leaf last-svc-request-id {
+ type string;
+ }
+ leaf last-order-status {
+ type enumeration {
enum "Active";
enum "PendingAssignment";
enum "PendingCreate";
enum "PendingUpdate";
enum "PendingDelete";
enum "Deleted";
- }
- }
- leaf create-timestamp {
- type string;
- }
- leaf modify-timestamp {
- type string;
- }
- leaf maintenance-indicator {
- type enumeration {
+ }
+ }
+ leaf create-timestamp {
+ type string;
+ }
+ leaf modify-timestamp {
+ type string;
+ }
+ leaf maintenance-indicator {
+ type enumeration {
enum "Y";
enum "N";
- }
- }
- }
- }
- grouping vnf-topology {
+ }
+ }
+ }
+ }
+ grouping vnf-topology {
leaf vnf-id {
- type string;
+ type string;
description "vf-module-id";
}
- uses vnf-topology-information;
- }
-
-
+ uses vnf-topology-information;
+ }
+
+
rpc vnf-topology-operation {
- input {
- uses sdnc-request-header;
- uses request-information;
+ input {
+ uses sdnc-request-header;
+ uses request-information;
uses service-information;
- uses vnf-request-information;
- }
- output {
- uses vnf-topology-response-body;
+ uses vnf-request-information;
+ }
+ output {
+ uses vnf-topology-response-body;
uses vnf-information;
uses service-information;
- }
- }
+ }
+ }
rpc network-topology-operation {
- input {
- uses sdnc-request-header;
- uses request-information;
+ input {
+ uses sdnc-request-header;
+ uses request-information;
uses service-information;
- uses network-request-information;
- }
- output {
- uses vnf-topology-response-body;
+ uses network-request-information;
+ }
+ output {
+ uses vnf-topology-response-body;
uses network-information;
uses service-information;
- }
- }
+ }
+ }
rpc preload-vnf-topology-operation {
- input {
- uses sdnc-request-header;
- uses request-information;
+ input {
+ uses sdnc-request-header;
+ uses request-information;
uses vnf-topology-information;
- }
- output {
- uses vnf-topology-response-body;
- }
+ }
+ output {
+ uses vnf-topology-response-body;
+ }
}
rpc preload-network-topology-operation {
- input {
- uses sdnc-request-header;
- uses request-information;
+ input {
+ uses sdnc-request-header;
+ uses request-information;
uses network-topology-information;
- }
- output {
- uses vnf-topology-response-body;
- }
+ }
+ output {
+ uses vnf-topology-response-body;
+ }
}
}