/* * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ module rw-nsr { namespace "http://riftio.com/ns/riftware-1.0/rw-nsr"; prefix "rw-nsr"; import mano-types { prefix "manotypes"; } import nsr { prefix "nsr"; } import nsd { prefix "nsd"; } import rw-cloud { prefix "rw-cloud"; } import rw-config-agent { prefix "rw-config-agent"; } import rw-sdn { prefix "rw-sdn"; } import ietf-yang-types { prefix "yang"; } revision 2015-09-10 { description "Initial revision. This YANG file augments the base MANO VNFD"; reference "Derived from earlier versions of base YANG files"; } grouping operational-events { list operational-events { key "id"; description "Recent operational events for this network service. Though the model does not impose any restrictions on the numbe of events, the max operational events will be limited to the most recent 10"; leaf id { description "The id of the instance"; type uint64; } leaf timestamp { description "The timestamp of this event expressed as seconds since unix epoch - 1970-01-01T00:00:00Z"; type uint32; } leaf event { description "Short description of the event"; type string; } leaf description { description "The description of this event"; type string; } leaf details { description "The detailed description of this event (in case of errors)"; type string; } } } grouping rw-ns-instance-config { leaf cloud-account { description "The configured cloud account which the NSR is instantiated within. All VDU's, Virtual Links, and provider networks will be requested using the cloud-account's associated CAL instance"; type leafref { path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name"; } } leaf om-datacenter { description "Openmano datacenter name to use when instantiating the network service. This is only used when openmano is selected as the cloud account. This should be superceded by multiple cloud accounts when that becomes available."; type string; } list vnf-cloud-account-map { description "Mapping VNF to Cloud Account where VNF will be instantiated"; key "member-vnf-index-ref"; leaf member-vnf-index-ref { type uint64; } leaf cloud-account { description "The configured cloud account where VNF is instantiated within. All VDU's, Virtual Links, and provider networks will be requested using the cloud-account's associated CAL instance"; type leafref { path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name"; } } leaf om-datacenter { description "Openmano datacenter name to use when instantiating the network service. This is only used when openmano is selected as the cloud account. This should be superceded by multiple cloud accounts when that becomes available."; type string; } leaf config-agent-account { description "The configured config agent account to use for instantiating this VNF. The configuration for this VNF will be driven using the specified config agent account"; type leafref { path "/rw-config-agent:config-agent/rw-config-agent:account/rw-config-agent:name"; } } } list vl-cloud-account-map { description "Mapping VL to Cloud Account where VL will be instantiated"; key "vld-id-ref"; leaf vld-id-ref { description "A reference to a vld. leafref path ../../nsd/vld/id"; type string; } leaf-list cloud-accounts { description "The configured list of cloud accounts where VL is instantiated. All VDU's, Virtual Links, and provider networks will be requested using the cloud-account's associated CAL instance"; type leafref { path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name"; } } leaf-list om-datacenters { description "Openmano datacenter names to use when instantiating the VLs. This is only used when openmano is selected as the cloud account. This should be superceded by multiple cloud accounts when that becomes available."; type string; } } } augment /nsr:ns-instance-config/nsr:nsr { uses rw-ns-instance-config; } augment /nsr:start-network-service/nsr:input{ uses rw-ns-instance-config; } augment /nsr:ns-instance-opdata/nsr:nsr { uses manotypes:action-param; uses manotypes:control-param; leaf sdn-account { description "The SDN account associted with the cloud account using which an NS was instantiated."; type leafref { path "/rw-sdn:sdn/rw-sdn:account/rw-sdn:name"; } } leaf config-status-details { description "The configuration status error details of the NS instance, in case of any errors"; type string; } container nfvi-metrics { container vm { leaf label { description "Label to show in UI"; type string; default "VM"; } leaf active-vm { description "The number of active VMs."; type uint64; } leaf inactive-vm { description "The number of inactive VMs."; type uint64; } } uses manotypes:nfvi-metrics; } container epa-param { container ovs-acceleration { leaf label { description "Label to show in UI for the param"; type string; default "OVS ACCELERATION"; } leaf vm { description "Number of VMs with the EPA attribute"; type uint64; } leaf unit { description "Unit label to show in the UI"; type string; default "vms"; } } container ovs-offload { leaf label { description "Label to show in UI for the param"; type string; default "OVS OFFLOAD"; } leaf vm { description "Number of VMs with the EPA attribute"; type uint64; } leaf unit { description "Unit label to show in the UI"; type string; default "vms"; } } container ddio { leaf label { description "Label to show in UI for the param"; type string; default "DDIO"; } leaf vm { description "Number of VMs with the EPA attribute"; type uint64; } leaf unit { description "Unit label to show in the UI"; type string; default "vms"; } } container cat { leaf label { description "Label to show in UI for the param"; type string; default "CAT"; } leaf vm { description "Number of VMs with the EPA attribute"; type uint64; } leaf unit { description "Unit label to show in the UI"; type string; default "vms"; } } container cmt { leaf label { description "Label to show in UI for the param"; type string; default "CMT"; } leaf vm { description "Number of VMs with the EPA attribute"; type uint64; } leaf unit { description "Unit label to show in the UI"; type string; default "vms"; } } } uses operational-events; } augment /nsr:ns-instance-opdata/nsr:nsr/nsr:vlr { leaf assigned-subnet { description "Subnet added for the VL"; type string; } leaf cloud-account { description "The configured cloud account in which the VL is instantiated within."; type leafref { path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name"; } } leaf om-datacenter { description "Openmano datacenter name to use when instantiating the network service. This is only used when openmano is selected as the cloud account. This should be superceded by multiple cloud accounts when that becomes available."; type string; } } augment /nsr:ns-instance-opdata/nsr:nsr/nsr:constituent-vnfr-ref { leaf cloud-account { description "The configured cloud account in which the VNF is instantiated within. All VDU's, Virtual Links, and provider networks will be requested using the cloud-account's associated CAL instance"; type leafref { path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name"; } } leaf om-datacenter { description "Openmano datacenter name to use when instantiating the network service. This is only used when openmano is selected as the cloud account. This should be superceded by multiple cloud accounts when that becomes available."; type string; } } augment /nsr:ns-instance-config { leaf nfvi-polling-period { description "Defines the period (secons) that the NFVI metrics are polled at"; type uint64; default 4; } } notification nsm-notification { description "Notification for NSM Events. The timestamp of this event is automatically expressed in human readble format - 1970-01-01T00:00:00Z"; leaf event { description "Short name of the event"; type string; } leaf description { description "The description of this event"; type string; } leaf details { description "The detailed description of this event, in case of errors"; type string; } } } // vim: sw=2