| |
| /* |
| * |
| * 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-vnfr |
| { |
| namespace "http://riftio.com/ns/riftware-1.0/rw-vnfr"; |
| prefix "rw-vnfr"; |
| |
| import mano-types { |
| prefix "manotypes"; |
| } |
| |
| import rw-pb-ext { prefix "rwpb"; } |
| |
| import vnfr { |
| prefix "vnfr"; |
| } |
| |
| import vnfd { |
| prefix "vnfd"; |
| } |
| |
| import rw-cloud { |
| prefix "rw-cloud"; |
| } |
| |
| import rwvcs-types { |
| prefix "rwvcstypes"; |
| } |
| |
| import ietf-yang-types { |
| prefix "yang"; |
| } |
| |
| import ietf-inet-types { |
| prefix "inet"; |
| } |
| |
| 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 vnfr-operational-events { |
| list operational-events { |
| key "id"; |
| description |
| "Recent operational events for VNFR |
| 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 "The event"; |
| type enumeration { |
| rwpb:enum-type "VnfrOperationalEvent"; |
| enum instantiate-rcvd; |
| enum vl-inited; |
| enum vnf-inited; |
| enum running; |
| enum terminate-rcvd; |
| enum vnf-terminated; |
| enum vl-terminated; |
| enum terminated; |
| } |
| } |
| leaf description { |
| description |
| "The description of this event"; |
| type string; |
| } |
| } |
| } |
| |
| grouping vdur-operational-events { |
| list operational-events { |
| key "id"; |
| description |
| "Recent operational events for VDUR |
| 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 "The event"; |
| type enumeration { |
| rwpb:enum-type "VdurOperationalEvent"; |
| enum instantiate-rcvd; |
| enum vm-allocation-requested; |
| enum running; |
| enum terminate-rcvd; |
| enum vm-terminate-requested; |
| enum terminated; |
| } |
| } |
| leaf description { |
| description |
| "The description of this event"; |
| type string; |
| } |
| } |
| } |
| |
| augment /vnfr:vnfr-catalog/vnfr:vnfr { |
| uses manotypes:action-param; |
| uses manotypes:control-param; |
| |
| leaf cloud-account { |
| description |
| "The cloud account to use when requesting resources for |
| this vnf"; |
| 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; |
| } |
| |
| 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; |
| } |
| |
| list component { |
| description |
| "This section defines the RIFT.ware |
| virtual components"; |
| key "component-name"; |
| rwpb:msg-new VcsComponentOp; |
| rwpb:application-request-point; |
| |
| leaf component-name { |
| description ""; |
| type string; |
| } |
| |
| leaf component-type { |
| description ""; |
| type rwvcstypes:component_type; |
| mandatory true; |
| } |
| |
| choice component { |
| case rwvcs-rwcollection { |
| uses rwvcstypes:rwvcs-rwcollection; |
| } |
| case rwvcs-rwvm { |
| uses rwvcstypes:rwvcs-rwvm; |
| } |
| case rwvcs-rwproc { |
| uses rwvcstypes:rwvcs-rwproc; |
| } |
| case native-proc { |
| uses rwvcstypes:native-proc; |
| } |
| case rwvcs-rwtasklet { |
| uses rwvcstypes:rwvcs-rwtasklet; |
| } |
| } |
| } // list component |
| |
| uses vnfr-operational-events; |
| |
| leaf operational-status-details { |
| description |
| "The error message in case of a failed VNFR operational status"; |
| type string; |
| } |
| } |
| |
| augment /vnfr:vnfr-catalog/vnfr:vnfr/vnfr:vdur { |
| leaf vm-pool { |
| description |
| "The pool from which this vm was allocated from"; |
| type string; |
| } |
| |
| container nfvi-metrics { |
| uses manotypes:nfvi-metrics; |
| } |
| |
| leaf vcs-component-ref { |
| description |
| "This defines the software components using the |
| RIFT.ware Virtual Component System (VCS). This |
| also allows specifying a state machine during |
| the VM startup. |
| NOTE: This is an significant addition to MANO, |
| since MANO doesn't clearly specify a method to |
| identify various software components in a VM. |
| Also using a state machine is not something that |
| is well described in MANO."; |
| type leafref { |
| path "/vnfr:vnfr-catalog/vnfr:vnfr/rw-vnfr:component/rw-vnfr:component-name"; |
| } |
| } |
| |
| uses vdur-operational-events; |
| |
| leaf operational-status-details { |
| description |
| "The error message in case of a failed VDU operational status"; |
| type string; |
| } |
| } |
| grouping vnfd-ref-count { |
| list vnfd-ref-count { |
| key "vnfd-id-ref"; |
| description "This table maintains the number of VNFRs used by each VNFD"; |
| |
| leaf vnfd-id-ref { |
| description "Reference to VNFD"; |
| type leafref { |
| path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"; |
| } |
| } |
| leaf instance-ref-count { |
| description |
| "Reference count for the number of VNFRs refering this VNFD. |
| Every VNF Record instantiated using this descriptor takes |
| a reference on the VNFD and releases the reference when the |
| virtual network service is terminated. This desciptor cannot |
| be deleted when this counter is non zero"; |
| type uint64; |
| } |
| } |
| } |
| augment /vnfr:vnfr-catalog { |
| uses vnfd-ref-count; |
| } |
| |
| container vnfr-console { |
| config false; |
| list vnfr { |
| key "id"; |
| leaf id { |
| description "Identifier for the VNFR."; |
| type yang:uuid; |
| } |
| list vdur { |
| description "List of Virtual Deployment Units"; |
| key "id"; |
| leaf id { |
| description "Unique id for the VDU"; |
| type yang:uuid; |
| } |
| leaf console-url { |
| description "Console URL for this VDU, if available"; |
| type inet:uri; |
| } |
| } |
| } |
| } |
| |
| } |
| |
| // vim: sw=2 |