Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • For E2E (OSS Service) modeling, use org.openecomp.resource.abstract.nodes.service
    • E2E (OSS Service-Level) is outside of ETSI scope, and it could be ONAP-specific that is orchestrated by ONAP SO
    • The E2E (OSS Service-Level) model references/includes associated NSs
    • For the E2E service level, the org.openecop.resource.abstract.nodes.service type is still used as the base type of the service. SDC will use the ETSI SOL001 NSD type and attach the NSDs to the E2E (OSS Service).
  • For NS modeling, use tosca.nodes.nfv.NS
    • ONAP SO-NFVO, VFC and external NFVO manage the NS models and packages
  • The following diagram depicts ONAP ETSI-Alignment Modeling hierarchy.

...

The following summarizes the mapping between two models:

SOL001 VNFSDC AID DMcomments
N/Aorg.openecomp.resource.abstracts.nodes.servicerepresents OSS Service models
org.tosca.nodes.nfv.NStosca.nodes.nfv.NSNS; use of SOL001 as SDC AID DM NS
tosca.nodes.nfv.NsVirtualLinktosca.nodes.nfv.NsVirtualLinkNS VirtualLink; use of SOL001 as SDC AID DM VL
tosca.nodes.nfv.Vnforg.openecomp.resource.abstract.nodes.ETSI.VNFVNF
tosca.nodes.nfv.vduorg.openecomp.resource.abstract.nodes.VFCVDU and SDC VFC
tosca.nodes.nfv.VirtualLinkorg.openecomp.resources.vlVNF VL
tosca.nodes.nfv.VduCporg.openecomp.resources.cpVDU CP
N/Aorg.openecomp.resource.allottedResource
tosca.nodes.nfv.Pnforg.openecomp.resource.abstract.nodes.PNFPNF




Current SDC Resource Models

...

Define a new data type based on the toscathe org.openecomp.resource.abstract.nodes.nfv.VNF with optional attributes that are specific to ONAP.

...

VF with ETSI SOL001 VNF data type attributes.

Option A

  • Make the org.openecomp.resource.abstract.nodes.ETSI.VNF a superset of both tosca.nodes.nfv.VNF and org.openecomp.resource.abstract.node.VF

...

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

namerequiredtype
namerequiredtype
<SOL001 tosca.nodes.nfv.VNF attributes >


<SOL001 tosca.nodes.nfv.VNF attributes >

descriptor_idyesstring<-->descriptor_idyesstring
descriptor_versionyesstring<-->descriptor_versionyesstring
provideryesstring<-->provideryesstring
product_nameyesstring<-->product_nameyesstring
software_versionyesstring<-->software_versionyesstring
product_info_nameno string<-->product_info_nameno string
vnfm_infoyeslist of string<-->vnfm_infoyeslist of string
localization_languagesnolist of string<-->localization_languagesnolist of string
default_localization_languageno string<-->default_localization_languageno string
configurable_propertiesnotosca.datatypes.nfv.VnfconfigurableProperties<-->configurable_propertiesnotosca.datatypes.nfv.VnfconfigurableProperties
modifiable_attributesnotosca.datatypes.nfv.VnfInfoModifiableAttributes<-->modifiable_attributesnotosca.datatypes.nfv.VnfInfoModifiableAttributes
lcm_operations_configuraionnotosca.datatypes.nfv.VnfLcmOperationsConfiguration<-->lcm_operations_configuraionnotosca.datatypes.nfv.VnfLcmOperationsConfiguration
monitoring_parametersnolist of tosca.dataypes.nfv.VnfMonitoringParameter<-->monitoring_parametersnolist of tosca.dataypes.nfv.VnfMonitoringParameter
flavour_idyesstring<-->flavour_idyesstring
flavour_descriptionyesstring<-->flavour_descriptionyesstring
vnf_profilenotosca.datatyhpes.nfv.VnfProfile<-->vnf_profilenotosca.datatyhpes.nfv.VnfProfile




<SDC AID DM VF attributes that are inherited from org.openecomp.resource.abstract.nodes.VF>





nf_functionnostring




nf_rolenostring




nf_typenostring




nf_naming_codenostring




nf_namingnoorg.openecomp.datatypes.Naming




availability_zone_max_countnointeger




min_instancesnointeger




max_instancesnointeger




multi_stage_designnoboolean




sdnc_model_namenostring




sdnc_artifact_namenostring




skip_post_instantiation_configurationno

boolean (default true)

  • constraints: true, false




controller_actorno

string (default: SO-REF-DATA)

  • constraints: SO-REF-DATA, CDS, SDNC, APPC

...








Option B

Can we use the additionalAttribute map to represent ONAP specific attributes? If so, we can use the base data type extensively.

New SDC AID DM VNF (org.openecomp.resource.abstract.nodes.ETSI.VNF)
namerequiredtype
descriptor_idyesstring
descriptor_versionyesstring
provideryesstring
product_nameyesstring
software_versionyesstring
product_info_nameno string
vnfm_infoyeslist of string
localization_languagesnolist of string
default_localization_languageno string
configurable_propertiesnotosca.datatypes.nfv.VnfconfigurableProperties
modifiable_attributesnotosca.datatypes.nfv.VnfInfoModifiableAttributes
lcm_operations_configuraionnotosca.datatypes.nfv.VnfLcmOperationsConfiguration
monitoring_parametersnolist of tosca.dataypes.nfv.VnfMonitoringParameter
flavour_idyesstring
flavour_descriptionyesstring
vnf_profilenotosca.datatyhpes.nfv.VnfProfile
additionalAttributeno (0..N)map (string, object pair)

SOL001

...

VDU mapping to/from VNF SDC AID DM VFC

Current SOL001 VDU vs. SDC AID DM VFC

  • no 1:1 mapping
SOL001 VDU

SDC AID DM VFC (org.openecomp.resource.abstract.nodes.VFC)

NameRequiredTypeNameRequiredType
nameyesstringnfc_function
string
descriptionyesstringhigh_availabilitynostring
boot_ordernobooleanvm_image_name
string
nfvi_constraintsnomap of stringvm_flavor_nameyesstring
monitoring_parametersnolist of tosca.datatypes.nfv.VnfcMonitoringParameternfc_naming_codenostring
configurable_propertiesnomap of tosca.datatypes.nfv.VnfcConfigurablePropertiesvm_type_tagnostring
boot_datanotosca.datatypes.nfv.BootDatanfc_naming

org.openecomp.datatypes.Naming

  • ONAP_generated_naming: yes: boolean
  • naming_policy: no: string
  • instance_name: no: string
vdu_profileyestosca.datatypes.nfv.VduProfilemin_instancesnointeger
sw_image_datanotosca.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.node.VFC

...

SOL001 VDU

Mapping

org.openecomp.resource.abstract.nodes.ETSI.VFC

(derived from org.openecomp.resource.abstract.nodes.VFC)



NameRequiredType<-->NameRequiredType
nameyesstring<-->nameyesstring
descriptionyesstring<-->descriptionyesstring
boot_ordernoboolean<-->boot_ordernoboolean
nfvi_constraintsnomap of string<-->nfvi_constraintsnomap of string
monitoring_parametersnolist of tosca.datatypes.nfv.VnfcMonitoringParameter<-->monitoring_parametersnolist of tosca.datatypes.nfv.VnfcMonitoringParameter
configurable_propertiesnomap of tosca.datatypes.nfv.VnfcConfigurableProperties<-->configurable_propertiesnomap of tosca.datatypes.nfv.VnfcConfigurableProperties
boot_datanotosca.datatypes.nfv.BootData<-->boot_datanotosca.datatypes.nfv.BootData
vdu_profileyestosca.datatypes.nfv.VduProfile<-->vdu_profileyestosca.datatypes.nfv.VduProfile
sw_image_datanotosca.datatypes.nfv.SwImageData<-->sw_image_datanotosca.datatypes.nfv.SwImageData




<SDC AID DM VFC attributes that are inherited from the org.openecomp.resource.abstract.nodes.VFC>





nfc_functionnostring




high_availabilitynostring




vm_image_namenostring




vm_flavor_nameyesstring




nfc_naming_codenostring




vm_type_tagnostring




nfc_namingno

org.openecomp.datatypes.Naming

  • ONAP_generated_naming: yes: boolean
  • naming_policy: no: string
  • instance_name: no: string




min_instancesnointeger

SOL001 2.7.1 VNFD Mapping from/to SDC AID DM VNFD

SOL001 2.7.1

...

VNFD Template

tosca_definitions_version: tosca_simple_yaml_1_2

description:

imports:

data_types:

node_types:

topology_template:

    inputs: 

    node_templates: 

        VNF

substitution_mappings:

    capabilities:

    requirements:

SDC

...

VFD Template

tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0

descriptions:

imports:

data_types:

node_types:

topology_template:

    inputs:

    node_templates:

         vfc:

            type: org.openecomp.resource.vfc

        extCP:

            type: org.openecomp.resources.cp

    groups:

        VFModule_Base:

            type: org.openecomp.groups.VfModule

        VFModule_Expansion:

            type: org.openecomp.groups.VfModule

    workflows:

    policies:

        anti_collated_az_policy:

substitution_mappings:

    node_type: org.openecomp.resources.vf.<vf_name>

    capabilities:

    requirements:


SOL001 VNFD mapping to/from SDC AID DM

...

VFD


SOL001 VNFD
SDC AID DM VFVFD
NameGrammar
NameGrammar
tosca_definitions_version

string

(tosca_simple_yaml_1_2)


tosca_definitions_version

string

(tosca_simple_yaml_1_2)

descriptionstring
descriptionstring
metadatamap of <string>
metadatamap of <string>
imports

Single-line grammar

  • <URI_1>
  • <URI_2>

Multi-line grammar

  • file: <file_URI>
  • repository: <repository name>
  • namespace_uri: <definition_namespace_uri> # deprecated
  • namespace_prefix: <definition_namespace_prefix>

importsIdentifies 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
  • description
string
  • description
string
  • inputs


  • inputs

<parameter name>:

type: <parameter_type>

description: <parameter_description>

required: <parameter_required>

default: <parameter_default_value>

constraints:

- <parameter_constraints>

  • node_templates

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


  • node_templates

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.<>





  • workflows
<workflow name>

policies

  • scaling aspect

tosca.datatypes.nfv.ScalingAspect

  • description
  • properties
    • name:
    • description
    • max_scale_level:
    • step_deltas:

  • groups

list of VF Modules

VFModule_Base:

    type: org.openecomp.groups.VfModule

VFModule_Expansion:

    type: org.openecomp.groups.VfModule




  • policies
for each VF Module, additional information is provided
substitution_mappings

substitution_mappings
  • node_type


  • node_type

  • 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> ]


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> ]

  • requirements


  • requirements

?

Groupgroup

<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

<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>

?

Relationshiprelationship

<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>






...

  • Mapping Scope Challenges and Suggestions 

    • ONAP wants to distinguish between the mode/data required to drive ONAP functionality from a Service Provider perspective from any ancillary mode/data required to drive Cloud Provider automation.

      • See the ONAP MultiVim Proposal on the separation of concerns.
    • SDC AID  was created before a separation of concerns was envisioned, thus there are data structures in the SDC AID that would be considered Cloud Provider automation data and that we would likely take out of the SDC AID.
      • Examples of Service Provider data that would need to be mapped in order to drive ONAP automation would include:
        • HPA requirements needed by OOF to determine cloud feasibility
        • Input parameters passed to the Cloud provider
      • There is probably some data in the SOL001 that would be considered Cloud Provider automation data. Any such data could remain unmapped
      • SOL001 content needed to drive ONAP automation (SO, OOF, SDNC, AAI, DCAE, etc.) would need to be mapped
    • The VNFM should not be aware of the VF Module structure, though the current SO-SDNC interactions to get assignment are by VF Module, and the VF Module entity plays prominent in AAI. That means there needs to be two adaptation points as we have discussed:
      • An SDC function to extract VF Module information from the SOL001 VNFD prior to distribution to runtime
      • A VNFM Adapter function to flatten the VF Module structure prior to handoff to the VNFM
  • VF-Module Deduction from SOL001

    • There is an assumption that SDC transforms the vendor provided VNF package into ONAP-compliant one; i.e., deducing VF Modules based on VNFD ScalingAspects and Delta.
    • If SDC supports the transformation in Dublin time-frame, the transformed CSAR will be imported to SO, and SO VNF- and VF-Module-level workflows will manage VNF and VF Module topology towards SDNC with the following changes - Input from Gil Bullard (AT&T)
      • Today the VNF-level workflow has an embedded per-VF Module loop that a) retrieves the SDNC assignments for that VF Module, and then b) sends those VF Module-level assignments down to the VIM (e.g., OpenStack); the loop then moves to repeat "a" with the next VF Module. 
      • The new VNF-level flow will have the following sequences:
        1. an embedded per-VF Module loop that only retrieves the SDNC assignments for each VF Module; because the VIM is hidden from SO's sight, beneath the VNFM Adapter/VNFM.
        2. After finishing the loop, the SO workflows will send a structure  to the VNFM Adapter that includes the aggregate assignments at the VNF level.
        3. The VNFM Adapter aggregates all the VF-Module level assignments and transforms the assignment data into SOL003 API parameters before sending them to SVNFM
          1. The VNFM Adapter would need to be able to parse the VNF-level assignments structure received from SO to obtain the per-VDUconnection point assignments information and any per-VDU parameter information (e.g., hostnames)
          2. In doing so, the VNFM Adapter would need to know to ignore the VF Module groupings of these assignments
          3. Further know how to map the ONAP data structure and parameter names into the ETSI (e.g., VM=VDU, VNFC=VNFC, vNIC=vNIC, etc.). Note that the above assumes that in ONAP, as in ETSI, there will be a one-to-one correspondence between VM/VDU and VNFC.

...

      • SOL001 concept of Aspect+ScalingDelta combination is one to one with the ONAP concept of VF Module.
      • SOL001 concept of VDU is one to one with the ONAP concept of A&AI vServer
      • SOL001 concept of a connection point associated with a VDU corresponds to the ONAP concept of the same name, as does the understanding of the meaning of “internal” versus “external” connection point.
      • ONAP-compliant SOL001 VNF Vendors will be obliged to name their HEAT files using a naming convention that encodes the SOL001 Aspect+ScalingDelta names
      • ONAP-compliant SOL001 VNF Vendors will be obliged to name their SOL001 Aspect+ScalingDelta parameters using a naming convention that readily maps to the corresponding HEAT properties.  
      • In addition, if AT&T has already deployed such a vendor’s VNF into its network, the HEAT naming will remain invariant, and (at least) the (AT&T version of that) SOL001 be written to match it.
    • What to do
      • ONAP will be extended to incorporate the constructs of Aspect and Scaling Level.  This includes SDC’s, SOs, and A&AI’s modeling of these constructs and A&AI's ability to capture and SO’s ability to set/update the "current scaling level" of a VNF for a given Aspect. 
      • If ETSI in their SOL001 VNFD had defined a "ScalingDelta" in a straightforward manner, i.e., in terms of the VNFCs that comprise it, then it would be very easy to extract VF Module information from the VNFD.  (I would like to see ETSI define "ScalingDelta" in this manner, as opposed to the current way they do so. )  However, given that they did not, ONAP SDC would need to be extended to derive the VF Module “structure” from the SOL001 document through the algorithm below.  “Structure” in this case includes the VDU topology, connection points and associated parameters.  This algorithm will:
      • Determine the set of Aspects and corresponding VDUs and associated ScalingDeltas (step_deltas) from the SOL001.
      • Determine the set of ScalingLevels associated with each Aspect and the ScalingDeltas associated with each.
      • Translate the VDU-centric representation of ScalingDeltas (step_deltas) as per SOL001 to come up with a ScalingDelta-centric representation that captures the number and type of VDUs associated with that ScalingDelta across the various VDU types.
      • Create a VF Module object that corresponds to each ScalingDelta-centric representation of a ScalingDelta calculated above.
      • Fill in the details of the VF Module object based on the SOL001 data to represent the VDU connection points, associated Networks (internal or external), and associated Parameters.
      • Determine if there is an artifact in the SOL004 package that is a HOT YAML whose file name corresponds (through a VNF vendor obligatory naming convention) to the Aspect+ScalingDelta from which this VF Module object was derived.  If so, associate that HOT file with the VF Module.
      • Name the VF Module based on a naming convention to capture the Aspect+ScalingDelta names
      • Determine and capture the mapping from each Aspect + ScalingLevel model for the VNF to the corresponding VF Module.
      • Given a desired state Aspect+ScalingLevel, will be able to calculate (from the SDC distributed mapping of Aspect+ScalingLevel to VF Module along with the current Scaling Level for this Aspect as per A&AI) the (ordered set of) VF Module(s) needed to take that VNF from the “current scaling level” to the desired level for that Aspect.
      • Note:  As an aside, SDC enhancements are being discussed. It is not clear if the SDC changes will be available in the Dublin time frame. some “stubbing off” SDC with a simulator could be suggested to at least prove in the run-time aspects of the solution.

Gliffy Diagram
macroId4e072032-7cad-4d7d-befc-a60416101d10
nameONAP ETSI-Alignment VF-Module Mapping
pagePin2

VirtualLink Mapping to SDC AID DM

...