X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Fplugins%2Fyang%2Frw-vnfd.yang;h=e8f085c6de270bc87e17c7a781a4b0b679b27233;hb=refs%2Fchanges%2F77%2F5477%2F1;hp=29eb852f9bfd1941219deb235b65ab1108b563b4;hpb=6f1a3fe149e4a6b9803382cb299c902f4cf58ec9;p=osm%2FSO.git diff --git a/models/plugins/yang/rw-vnfd.yang b/models/plugins/yang/rw-vnfd.yang index 29eb852f..e8f085c6 100644 --- a/models/plugins/yang/rw-vnfd.yang +++ b/models/plugins/yang/rw-vnfd.yang @@ -1,7 +1,7 @@ /* * - * Copyright 2016 RIFT.IO Inc + * Copyright 2016-2017 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. @@ -23,24 +23,35 @@ module rw-vnfd namespace "http://riftio.com/ns/riftware-1.0/rw-vnfd"; prefix "rw-vnfd"; + import ietf-inet-types { + prefix "inet"; + } + import vnfd { prefix "vnfd"; } - import rwvcs-types { - prefix "rwvcstypes"; + import rw-vnfd-base { + prefix "rw-vnfd-base"; } - import rw-pb-ext { prefix "rwpb"; } + import vnfd-base { + prefix "vnfd-base"; + } - import ietf-yang-types { - prefix "yang"; + import mano-rift-groupings { + prefix "mano-rift"; } import mano-types { prefix "manotypes"; } + revision 2017-02-28 { + description + "Update model to support projects."; + } + revision 2015-09-10 { description "Initial revision. This YANG file augments @@ -49,69 +60,233 @@ module rw-vnfd "Derived from earlier versions of base YANG files"; } - augment /vnfd:vnfd-catalog/vnfd:vnfd { - uses manotypes:control-param; - uses manotypes:action-param; - leaf meta { - description - "Any meta-data needed by the UI"; - type string; - } - list component { + grouping vnfd-config-parameter { + container config-parameter { description - "This section defines the RIFT.ware - virtual components"; - key "component-name"; - rwpb:msg-new VcsComponent; - rwpb:application-request-point; - - leaf component-name { - description ""; - type string; - } + "List of VNF config parameter requests and sources"; + list config-parameter-source { + description "The list of parameters exposed by this VNF"; + key "name"; - leaf component-type { - description ""; - type rwvcstypes:component_type; - mandatory true; - } + leaf name { + description "Name of the source"; + type string { + length "1..128"; + } + } + + leaf description { + description " Description of the source"; + type string; + } + + choice source { + case descriptor { + leaf descriptor { + description + "Location of this source as an xpath. + For example: + ../../../mgmt-interface/port"; + type string; + } + } - choice component { - case rwvcs-rwcollection { - uses rwvcstypes:rwvcs-rwcollection; + case attribute { + leaf attribute { + description + "Location of this source as runtime attribute. + The value is , + For example: + ../../../mgmt-interface, ip-address + which retruns the ip-address assigned to the + mgmt-interface after VNF instantiation."; + type string; + } + } + + case primitive-ref { + leaf config-primitive-name-ref { + description + "A leafref to configuration primitive. + This refers to a config parameter whose + output parameter is referred in out-parameter."; + type leafref { + path "../../../vnfd:vnf-configuration/vnfd:config-primitive/vnfd:name"; + } + } + + leaf parameter-ref { + description + "Name of the output parameter in the config primitiive"; + type leafref { + path + "../../../vnfd:vnf-configuration/vnfd:config-primitive[vnfd:name=current()/../config-primitive-name-ref]/vnfd:parameter/vnfd:name"; + } + } + } + + case value { + leaf value { + description + "Pre-defined value to be used for this source"; + type string; + } + } } - case rwvcs-rwvm { - uses rwvcstypes:rwvcs-rwvm; + + list parameter { + key "config-primitive-name-ref"; + + leaf config-primitive-name-ref { + description + "Name of the configuration primitive where this + request will used"; + type leafref { + path "../../../../vnfd:vnf-configuration/vnfd:config-primitive/vnfd:name"; + } + } + + leaf config-primitive-parameter-ref { + description + "Parameter name of the config primitive"; + type leafref { + path "../../../../vnfd:vnf-configuration/vnfd:config-primitive[vnfd:name=current()/../config-primitive-name-ref]/vnfd:parameter/vnfd:name"; + } + } } - case rwvcs-rwproc { - uses rwvcstypes:rwvcs-rwproc; + } + + list config-parameter-request { + description "The list of requests for this VNF"; + key "name"; + + leaf name { + description "Name of this parameter request"; + type string { + length "1..128"; + } } - case native-proc { - uses rwvcstypes:native-proc; + + leaf description { + description "Description of this request"; + type string; } - case rwvcs-rwtasklet { - uses rwvcstypes:rwvcs-rwtasklet; + + list parameter { + key "config-primitive-name-ref"; + + leaf config-primitive-name-ref { + description + "Name of the configuration primitive where this + request will used"; + type leafref { + path "../../../../vnfd:vnf-configuration/vnfd:config-primitive/vnfd:name"; + } + } + + leaf config-primitive-parameter-ref { + description + "Parameter name of the config primitive"; + type leafref { + path "../../../../vnfd:vnf-configuration/vnfd:config-primitive[vnfd:name=current()/../config-primitive-name-ref]/vnfd:parameter/vnfd:name"; + } + } } } - } // list component + } } - augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu { - leaf vcs-component-ref { + augment /vnfd:vnfd-catalog/vnfd:vnfd { + uses rw-vnfd-base:rw-vnfd-ext; + uses vnfd-config-parameter; + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:mgmt-interface { + uses rw-vnfd-base:ssh-key; + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:http-endpoint { + uses mano-rift:http-end-point-additions; + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:supplemental-boot-data { + uses mano-rift:custom-meta-data; + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:volumes { + uses mano-rift:volume-info-additions; + uses mano-rift:custom-meta-data; + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:interface { + leaf static-ip-address { + description "Static IP address for the connection point"; + type inet:ip-address; + } + + leaf floating-ip-needed{ + type boolean; + default "false"; + description + "Sole purpose of this field is to facilitate translation of VNFD + to other VNFMs"; + } + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:volumes/vnfd:volume-source { + case volume { + leaf volume-ref { + description "Reference for pre-existing volume in VIM"; + type string; + } + } + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:internal-vld { + list virtual-connection-points { 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 "/vnfd:vnfd-catalog/vnfd:vnfd/rw-vnfd:component/rw-vnfd:component-name"; + "A list of virtual-connection points associated with Virtual Link. + These connection points are not directly associated with any VDUs"; + key name; + uses vnfd-base:common-connection-point; + + leaf-list associated-cps { + description + "A List of connection points associated with virtual connection point"; + type leafref { + path "../../vnfd:internal-connection-point/vnfd:id-ref"; + } + } + } + } + + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:vm-flavor { + uses manotypes:vm-flavor-name; + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnf-configuration/vnfd:config-primitive/vnfd:parameter { + leaf out { + description "If this is an output of the primitive execution"; + type boolean; + default false; + } + } + + augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnf-configuration/vnfd:initial-config-primitive/vnfd:primitive-type { + case primitive-ref { + leaf config-primitive-ref { + description + "Reference to a config primitive name. + NOTE: The config primitive referred should have + all the input parameters predefined either + with default values or dependency references."; + type leafref { + path "../../vnfd:config-primitive/vnfd:name"; + } } } } + } // vim: sw=2