--- /dev/null
+
+/*
+ *
+ * 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