...
Current VNF Modeling in ETSI and SDC
SOL001 VNF (tosca.nodes.nfv.VNF)
| SDC AID DM VNF (org.openecomp.resource.abstract.nodes.VF)
| org.openecomp.resource.vf.vcpeInfrastructureGwDemoApp (derived from org.openecomp.resource.abstract.nodes.VF) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
name | required | type | name | required | type | name | required | type | ||
descriptor_id | yes | string | nf_function | string | nf_function | string | ||||
descriptor_version | yes | string | nf_role | string | nf_role | string | ||||
provider | yes | string | nf_type | string | nf_type | string | ||||
product_name | yes | string | nf_naming_code | string | nf_name_code | string | ||||
software_version | yes | string | nf_naming | org.openecomp.datatyhpes.Naming | nf_naming | org.openecomp.datatyhpes.Naming | ||||
product_info_name | no | string | availability_zone_max_count | integer | availablity_zone_max_count | integer | ||||
vnfm_info | yes | list of string | min_instances | integer | min_instances | integer | ||||
localization_languages | no | list of string | max_instances | integer | max_instances | integer | ||||
default_localization_language | no | string | multi_stage_design | boolean | multi_stage_design | boolean | ||||
configurable_properties | no | tosca.datatypes.nfv.VnfconfigurableProperties | sdnc_model_name | string | vf_module_id | no | ||||
modifiable_attributes | no | tosca.datatypes.nfv.VnfInfoModifiableAttributes | sdnc_artifact_name | string | vcpe_image_name | no | ||||
lcm_operations_configuraion | no | tosca.datatypes.nfv.VnfLcmOperationsConfiguration | skip_post_instantiation_configuration | boolean (default true)
| public_net_id | no | ||||
monitoring_parameters | no | list of tosca.dataypes.nfv.VnfMonitoringParameter | controller_actor | string (default: SO-REF-DATA)
| vgw_name_0 | no | ||||
flavour_id | yes | string | nexus_artifact_repo | no | ||||||
flavour_description | yes | string | mux_ip_addr | no | ||||||
vnf_profile | no | tosca.datatyhpes.nfv.VnfProfile | vnf_id | no | ||||||
mciop_profile | no | list of tosca.datatypes.nfv.MciopProfile | cpe_public_net_cidr | no | ||||||
vg_vgmux_tunnel_vni | no | |||||||||
nf_naming | no | |||||||||
multi_stage_design | no | |||||||||
<tosca.datatypes.nfv.VnfProfile> | nf_naming_code | no | ||||||||
instantiation_level | no | string | vgw_private_ip_0 | no | ||||||
min_number_of_instances | yes | integer | vgw_private_ip_1 | no | ||||||
max_number_of_instances | yes | integer | vgw_private_ip_2 | no | ||||||
pub_key | no | |||||||||
install_script_version | no | |||||||||
onap_private_net_cidr | no | |||||||||
cpe_public_net_id | no | |||||||||
mux_gw_private_net_id | no | |||||||||
dcae_collector_ip | no | |||||||||
dcae_collector_port | no | |||||||||
onap_private_net_id | no | |||||||||
cloud_env | no |
Solutions:
There are two options. For now, we chose the option A. The option B is under discussion.
...
- Make the org.openecomp.resource.abstract.nodes.ETSI.VNF a superset of both tosca.nodes.nfv.VNF and org.openecomp.resource.abstract.node.VF
- During VNF onboarding, SDC copies SOL001 VNF attribute contents to the corresponding attributes in the org.openecomp.resource.abstract.nodes.ETSI.VNF
- In GuilinHonolulu, SO NFVO, VFC and SVNFM get those SOL001 VNF attributes from the descriptor, not from AAI. So, AAI schema changes are not expected in GuilinHonolulu.
- SOL001 VNF attributes in SDC AID DM VNF will be visible to SDC UI, so SDC UI can change the attributes.
- But the onboarded vendor ETSI package will note be changed by the SDC UI users in GuilinHonolulu.
- Since SO NFVO, VFC and SVNFM use only the original ETSI package, those changes will not be used in GuilinHonolulu;
- For the Honolulu release, it is under consideration
- to sync up between those modified SOL001 VNF attributes and the vendor ETSI Package attributes
- to reflect those modified SOL001 VNF attributes in the orchestration
- ONAP specific attributes that are inherited from the org.openecomp.resource.abstract.nodes.VF will be filled up by SDC (design time)
- Those attribute contents will not be mapped back into the SOL001 VNF (reverse mapping). For that case, only the SOL001 VNF corresponding attributes will be copied
SOL001 VNF (tosca.nodes.nfv.VNF) | Mapping | New SDC AID DM VNF (org.openecomp.resource.abstract.nodes.ETSI.VNF) derived from org.openecomp.resource.abstract.nodes.VF | ||||
---|---|---|---|---|---|---|
name | required | type | name | required | type | |
<SOL001 tosca.nodes.nfv.VNF attributes > | <SOL001 tosca.nodes.nfv.VNF attributes > | |||||
descriptor_id | yes | string | <--> | descriptor_id | yes | string |
descriptor_version | yes | string | <--> | descriptor_version | yes | string |
provider | yes | string | <--> | provider | yes | string |
product_name | yes | string | <--> | product_name | yes | string |
software_version | yes | string | <--> | software_version | yes | string |
product_info_name | no | string | <--> | product_info_name | no | string |
vnfm_info | yes | list of string | <--> | vnfm_info | yes | list of string |
localization_languages | no | list of string | <--> | localization_languages | no | list of string |
default_localization_language | no | string | <--> | default_localization_language | no | string |
configurable_properties | no | tosca.datatypes.nfv.VnfconfigurableProperties | <--> | configurable_properties | no | tosca.datatypes.nfv.VnfconfigurableProperties |
modifiable_attributes | no | tosca.datatypes.nfv.VnfInfoModifiableAttributes | <--> | modifiable_attributes | no | tosca.datatypes.nfv.VnfInfoModifiableAttributes |
lcm_operations_configuration | no | tosca.datatypes.nfv.VnfLcmOperationsConfiguration | <--> | lcm_operations_configuration | no | tosca.datatypes.nfv.VnfLcmOperationsConfiguration |
monitoring_parameters | no | list of tosca.datatypes.nfv.VnfMonitoringParameter | <--> | monitoring_parameters | no | list of tosca.datatypes.nfv.VnfMonitoringParameter |
flavour_id | yes | string | <--> | flavour_id | yes | string |
flavour_description | yes | string | <--> | flavour_description | yes | string |
vnf_profile | no | tosca.datatypes.nfv.VnfProfile | <--> | vnf_profile | no | tosca.datatypes.nfv.VnfProfile |
mciop_profile | no | list of tosca.datatypes.nfv.MciopProfile | <--> | mciop_profile | no | list of tosca.datatypes.nfv.MciopProfile |
<SDC AID DM VF attributes that are inherited from org.openecomp.resource.abstract.nodes.VF> | ||||||
<the followings are being considered> | nf_function | no | string | |||
requirements | Yes | nf_role | no | string | ||
interfaces | yes | tosca.interfaces.nfv.VnfLcm | nf_type | no | string | |
nf_naming_code | no | string | ||||
nf_naming | no | org.openecomp.datatypes.Naming | ||||
availability_zone_max_count | no | integer | ||||
min_instances | no | integer | ||||
max_instances | no | integer | ||||
multi_stage_design | no | boolean | ||||
sdnc_model_name | no | string | ||||
sdnc_artifact_name | no | string | ||||
skip_post_instantiation_configuration | no | boolean (default true)
| ||||
controller_actor | no | string (default: SO-REF-DATA)
| ||||
SOL001 VDU mapping to/from VNF SDC AID DM VFC
...
- no 1:1 mapping
- note: the SDC AID DM VFC represents design-time VFC (like VDU), not VFC instances in runtime
SOL001 VDU | SDC AID DM VFC (org.openecomp.resource.abstract.nodes.VFC) | ||||
---|---|---|---|---|---|
Name | Required | Type | Name | Required | Type |
name | yes | string | nfc_function | string | |
description | yes | string | high_availability | no | string |
boot_order | no | boolean | vm_image_name | string | |
nfvi_constraints | no | map of string | vm_flavor_name | yes | string |
monitoring_parameters | no | list of tosca.datatypes.nfv.VnfcMonitoringParameter | nfc_naming_code | no | string |
configurable_properties | no | map of tosca.datatypes.nfv.VnfcConfigurableProperties | vm_type_tag | no | string |
boot_data | no | tosca.datatypes.nfv.BootData | nfc_naming | org.openecomp.datatypes.Naming
| |
vdu_profile | yes | tosca.datatypes.nfv.VduProfile | min_instances | no | integer |
sw_image_data | no | tosca.datatypes.nfv.SwImageData | |||
Solutions for VDU and VFC mapping
- Make the org.openecomp.resource.abstract.nodes.ETSI.VFC a superset of both tosca.nodes.nfv.Vdu and org.openecomp.resource.abstract.nodes.VFC
- Note: the org.openecomp.resource.abstract.nodes.VFC represents design-time VFC, not VFC instances
- During VNF onboarding, SDC copies SOL001 VDU attribute contents to the corresponding attributes in the org.openecomp.resource.abstract.nodes.ETSI.VFC
- In GuilinHonolulu, SO NFVO, VFC and SVNFM get those SOL001 VDU attributes from the descriptor, not from AAI. So, AAI schema changes are not expected in GuilinHonolulu.
- SOL001 VDU attributes in SDC AID DM VNF will be visible to SDC UI, so SDC UI can change the attributes.
- But the onboarded vendor ETSI package will note be changed by the SDC UI users in GuilinHonolulu.
- Since SO NFVO, VFC and SVNFM use only the original ETSI package, those changes will not be used in GuilinHonolulu;
- For the Honolulu release, it is under consideration
- to sync up between those modified SOL001 VDU attributes and the vendor ETSI Package attributes
- to reflect those modified SOL001 VDU / VFC attributes in the orchestration
New SDC AID DM VFC type (org.openecomp.resource.abstract.nodes.ETSI.VFC)
SOL001 VDU | Mapping | org.openecomp.resource.abstract.nodes.ETSI.VFC (derived from org.openecomp.resource.abstract.nodes.VFC) | ||||
---|---|---|---|---|---|---|
Name | Required | Type | <--> | Name | Required | Type |
name | yes | string | <--> | name | yes | string |
description | yes | string | <--> | description | yes | string |
boot_order | no | boolean | <--> | boot_order | no | boolean |
nfvi_constraints | no | map of string | <--> | nfvi_constraints | no | map of string |
monitoring_parameters | no | list of tosca.datatypes.nfv.VnfcMonitoringParameter | <--> | monitoring_parameters | no | list of tosca.datatypes.nfv.VnfcMonitoringParameter |
configurable_properties | no | map of tosca.datatypes.nfv.VnfcConfigurableProperties | <--> | configurable_properties | no | map of tosca.datatypes.nfv.VnfcConfigurableProperties |
boot_data | no | tosca.datatypes.nfv.BootData | <--> | boot_data | no | tosca.datatypes.nfv.BootData |
vdu_profile | yes | tosca.datatypes.nfv.VduProfile | <--> | vdu_profile | yes | tosca.datatypes.nfv.VduProfile |
sw_image_data | no | tosca.datatypes.nfv.SwImageData | <--> | sw_image_data | no | tosca.datatypes.nfv.SwImageData |
<SDC AID DM VFC attributes that are inherited from the org.openecomp.resource.abstract.nodes.VFC> | ||||||
nfc_function | no | string | ||||
high_availability | no | string | ||||
vm_image_name | no | string | ||||
vm_flavor_name | no | string | ||||
nfc_naming_code | no | string | ||||
vm_type_tag | no | string | ||||
nfc_naming | no | org.openecomp.datatypes.Naming
| ||||
min_instances | no | integer |
SOL001 3.3.1 VNFD Mapping from/to SDC AID DM VNFD
...
SOL001 VNFD mapping to/from SDC AID DM VFD
SOL001 VNFD | SDC AID DM VFD | |||
---|---|---|---|---|
Name | Grammar | Name | Grammar | |
tosca_definitions_version | string (tosca_simple_yaml_1_3) | tosca_definitions_version | string (tosca_simple_yaml_1_3) | |
description | string | description | string | |
metadata | map of <string> | metadata | map of <string> | |
imports | Single-line grammar
Multi-line grammar
| imports | Identifies the lower level models (VFC, CP, VL, heat) | |
data_types | <data_type_name>: derived_from: <existing_type_name> version: <version_number> metadata: <map of string> description: <datatype_description> constraints: - <type_constraints> properties: <property_definitions> | data_types | <data_type_name>: derived_from: <existing_type_name> version: <version_number> metadata: <map of string> description: <datatype_description> constraints: - <type_constraints> properties: <property_definitions> | |
node_types | <node_type_name>: derived_from: <parent_node_type_name> version: <version_number> metadata: <map of string> description: <node_type_description> attributes: <attribute_definitions> properties: <property_definitions> requirements: - <requirement_definitions> capabilities: <capability_definitions> interfaces: <interface_definitions> artifacts: <artifact_definitions> | node_types | <node_type_name>: derived_from: <parent_node_type_name> version: <version_number> metadata: <map of string> description: <node_type_description> attributes: <attribute_definitions> properties: <property_definitions> requirements: - <requirement_definitions> capabilities: <capability_definitions> interfaces: <interface_definitions> artifacts: <artifact_definitions> | |
topology_template | topology_template: description: <template_description> inputs: <input_parameter_list> outputs: <output_parameter_list> node_templates: <node_template_list> relationship_templates: <relationship_template_list> groups: <group_definition_list> policies: - <policy_definition_list> workflows: <workflow_list> # Optional declaration that exports the Topology Template # as an implementation of a Node Type. substitution_mappings: <substitution_mappings> | topology_template | similar, but the following are different
| |
| string |
| string | |
|
| <parameter name>: type: <parameter_type> description: <parameter_description> required: <parameter_required> default: <parameter_default_value> constraints: - <parameter_constraints> | ||
| vnf: tosca.nodes.nfv.Vnf vdu: tosca.nodes.nfv.Vdu vl: tosca.nodes.nfv.VnfVirtualLink vduCp: tosca.nodes.nfv.VduCp vduCompute: tosca.nodes.nfv.Vdu.Compute |
| vfc: type: org.openecomp.resources.vfc.<> vl: type: org.openecomp.resources.vl.<> cp: type: org.openecomp.resources.cp.<> allotted_resource: type: org.openecomp.resource.allottedResource.<> | |
| <workflow name> | |||
policies
| tosca.datatypes.nfv.ScalingAspect
|
| list of VF Modules VFModule_Base: type: org.openecomp.groups.VfModule VFModule_Expansion: type: org.openecomp.groups.VfModule | |
| optional list of policies | |||
substitution_mappings | substitution_mappings | |||
|
| |||
| <capability_type_name>: derived_from: <parent_capability_type_name> version: <version_number> description: <capability_description> properties: <property_definitions> attributes: <attribute_definitions> valid_source_types: [ <node type_names> ] | capabilities | <capability_type_name>: derived_from: <parent_capability_type_name> version: <version_number> description: <capability_description> properties: <property_definitions> attributes: <attribute_definitions> valid_source_types: [ <node type_names> ] | |
|
| |||
group | not defined | group | <group_type_name>: derived_from: <parent_group_type_name> version: <version_number> metadata: <map of string> description: <group_description> properties: <property_definitions> members: [ <list_of_valid_member_types> ] requirements: - <requirement_definitions> capabilities: | |
policy | only the Abstract.SecurityGroupRule policy type is defined
| policy | <policy_type_name>: derived_from: <parent_policy_type_name> version: <version_number> metadata: <map of string> description: <policy_description> properties: <property_definitions> targets: [ <list_of_valid_target_types> ] triggers: <list_of_trigger_definitions> | |
relationship | tosca.relationships.nfv.VirtualBindsTo tosca.relationships.nfv.AttachesTo | relationship | <relationship_type_name>: derived_from: <parent_relationship_type_name> version: <version_number> metadata: <map of string> description: <relationship_description> properties: <property_definitions> attributes: <attribute_definitions> interfaces: <interface_definitions> valid_target_types: [ <capability_type_names> ] | |
annotation_type | <annotation_type_name>: version: <version_number> description: <annotation_type_description> properties: <property_definitions> | |||
annotation | <annotation_name>: type: <annotation_type> properties: <property_assignments> | |||
VF-Module Initial Input
The following is a summary of initial input from Gil Bullard (AT&T).
...
- SDC deduces the VF-Module from the SOL001 VNFD Policies>scaling_aspects>properties>aspects
- Additional VF-Module attributes are deduced as the following table
- SOL003 Adapter may need to transform the VF-Module back to the SOL001 VNFD policies for the scaling and healing requests from VNFM(s) – not part of Guilin
Gliffy | ||||
---|---|---|---|---|
|
org.openecomp.group.VfModule Attribute and SOL001 VNF Policies deduction
Name | Required | Type | SOL001 VNFD Policies |
vf_module_type | yes | string valid values: Base, Expansion | Base default: Base |
vf_module_label | yes | string | aspects: <A> |
min_vf_module_instances | yes | integer | initial_delta: 0 |
max_vf_module_instances | no | integer | max_scale_level |
initial_count | yes | integer | initial_data: number_of_instances |
vf_module_description | no | string | aspects: description |
volume_group | yes | Boolean | default to false |
group_naming | no | org.openecomp.datatypes.Naming | optional field, leave it empty |