From: Philip Joseph Date: Tue, 8 Nov 2016 04:45:12 +0000 (+0000) Subject: Model changes for VNF access point support X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=d37ed8eb3cd6772ed1bfddf98c8b805629f193a2;p=osm%2FSO.git Model changes for VNF access point support Merging changes by: Rajesh Velandy Signed-off-by: Philip Joseph --- diff --git a/models/plugins/yang/mano-types.yang b/models/plugins/yang/mano-types.yang index ec3d583f..46cad20a 100644 --- a/models/plugins/yang/mano-types.yang +++ b/models/plugins/yang/mano-types.yang @@ -116,6 +116,22 @@ module mano-types Only applies to parameters with default values."; type boolean; } + leaf parameter-type { + description "Type of this parameter, whether this in IN or OUT"; + type enumeration { + enum OUT; + enum IN; + } + default "IN"; + } + leaf parameter-path { + description "A Leafref to the parameter path with the attribute selection. + At present only attribute ip-address() is supported. + For example, to get the ip address of VNF connection point + the xpath would look something along the following lines, + /vnfd-catalog/vnfd[id='x']/connection-point[name='cp']/ip-address()"; + type string; + } } diff --git a/models/plugins/yang/nsd.yang b/models/plugins/yang/nsd.yang index aa55f34c..467be6d1 100644 --- a/models/plugins/yang/nsd.yang +++ b/models/plugins/yang/nsd.yang @@ -317,6 +317,46 @@ module nsd } } + list vnfap-map { + key "id"; + description "A mapping of VNF application point + capability/dependency within this network service"; + leaf id { + description "Identfier for VNF access point map"; + type string; + } + container capability { + leaf member-vnf-index-ref { + description "Reference to member-vnf within constituent-vnfds"; + type leafref { + path "../../../../constituent-vnfd/member-vnf-index"; + } + } + leaf capability-ref { + description "Reference to the capability with the capability of the VNF + with the specified member-vnf-index"; + type leafref { + path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnfap/vnfd:capability/vnfd:name"; + } + } + } + container dependency { + leaf member-vnf-index-ref { + description "Reference to member-vnf within constituent-vnfds"; + type leafref { + path "../../../../constituent-vnfd/member-vnf-index"; + } + } + leaf dependency-ref { + description "Reference to the dependency within the dependency of the VNF + with the specified member-vnf-index"; + type leafref { + path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnfap/vnfd:dependency/vnfd:name"; + } + } + } + } + // replicate for pnfd container here uses manotypes:provider-network; diff --git a/models/plugins/yang/vnfd.yang b/models/plugins/yang/vnfd.yang index dab74996..15383410 100644 --- a/models/plugins/yang/vnfd.yang +++ b/models/plugins/yang/vnfd.yang @@ -115,6 +115,103 @@ module vnfd } } + grouping vnf-access-point { + list vnfap { + description "List of VNF access points"; + key "name"; + leaf name { + description "Name of the vnf access point"; + type string { + length 128; + } + } + leaf description { + description "A description of this VNF access point"; + type string; + } + list capability { + description "The List of capabilities of this VNF access point"; + key "name"; + leaf name { + description "Name of the capability"; + type string { + length 128; + } + } + leaf description { + description "A description of the capability"; + type string; + } + choice capability-location { + case location-path { + leaf xpath { + description "Location of this capaibility as an xpath. + This field points to an element within vnfd + with the xpath notation and additionally + provides the flexibility to choose attributes + within the instantiated version of this object. + For example, + /vnfd-catalog/vnfd[id='xyz']/connection-point[name='cp1']/ip_address() + refers to the ip address of the connection point with name 'cp1' + in VNFD with id 'xyz'."; + type string; + } + } + case location-primitive-ref { + leaf config-primitive-name-ref { + description "A leafref to configuration primitive. + This field contains a link to the config primitive + the output paramaters of which will satisfy this requirement."; + type leafref { + path "/vnfd:vnfd-catalog/vnfd/vnf-configuration/service-primitive/name"; + } + } + } + case user-input { + list user-input { + key "name"; + description "User input for this capability"; + leaf name { + description "Name of this input"; + type string; + } + leaf value { + description "Value of this input"; + type string; + } + } + } + } + } + list dependency { + description "The List of depenencies of this VNF access point"; + key "name"; + leaf name { + description "Name of this VNF access point"; + type string { + length 128; + } + } + leaf mandatory { + description "Is this dependcy mandatory for this dependency"; + type boolean; + } + leaf description { + description "A description of the dependency"; + type string; + } + leaf config-primitive-name-ref { + description "A leafref to configuration primitive. + This field contains a link to the config primitive + the input paramaters of which will satisfy this requirement."; + type leafref { + path "/vnfd:vnfd-catalog/vnfd/vnf-configuration/service-primitive/name"; + } + } + } + } + } + grouping vnfd-descriptor { leaf id { description "Identifier for the VNFD."; @@ -509,7 +606,9 @@ module vnfd key "id"; uses vnfd-descriptor; - } + + uses vnf-access-point; + } } }