Agenda:

  1. ETSI NSD to ONAP service descriptor translation by Anatoly Katzman

Materials to discuss:

Recommendations from the last DM callONAP NSD discussion v0_9.pptx, the deck also incorporates vCPE using SOL001.docx and service-VcpeWithAll-template.yml (by Thinh Nguyenphu and Michela Bevilacqua ):

Recommendation A: - SDC update VL type based on SOL001 v2.5.1. Avoid, vendor specific type

Recommendation B: - Deprecate the use of the capabilities to represent properties on the node

Recommendation C: - Deprecate all the type definition and adopt ETSI NSD model which is node type properties and in case extend ETSI model for ONAP specific properties (i.e. ONAP configuration properties)

Recommendation D: - Deprecate all the type definition and define a new (E2E) Service model that can be in the future adopt by ETSI and ONAP.


Reminder:

Dual nature of the ONAP data model: 

Outside: support for SOL001, HEAT, and, possibly, other external data models – onboarding, integrations
Inside: ONAP has its own internal DM:

  • org.openecomp.*
  • tosca.*.nfv.*


The existing ONAP logic depends on the current ONAP internal model. "Deprecate everything" will break everything.


Alternative recommendations:

Recommendation 1:

Usage of capabilities and requirements - better judgement to be applied when adding capabilities and requirements to PNFs, VNFs, and Services. Today, the node types generated by SDC during PNF/VNF/Service composition include HUNDREDs of capabilities and requirements:

- During VNF/PNF/Service composition - SDC gathers ALL vacant capabilities and unfulfilled requirements of ALL internal nodes of the type VNF/PNF/Service implementing topology and exposes them through substitution_mapping as capabilities/requirements of the created VNF/PNF/Service type

- During ServiceProxy generation – SDC copies ALL vacant capabilities and unfulfilled requirements from the source service to the generated service proxy type.

The service designer should be able to specify which capabilities/requirements are RELEVANT for exposure on the created type.


Recommendation 2:
Deprecate Replace the tosca.*.nfv.* type definitions, and replace them with SOL001 v2.5.1. Retain the org.openecomp.* type definitions.


Recommendation 3:
When onboarding ETSI models (VNFDs, PNFDs, NSDs), apply the following translation rules:

- Zero translation for all tosca.*.nfv.* objects (nodes, capabilities, interfaces, properties, etc.) – including all CPs and VLs - for the exception of tosca.nodes.nfv.VNF, tosca.nodes.nfv.PNF, and tosca.nodes.nfv.NS

- Translate tosca.nodes.nfv.VNF into org.openecomp.resource.abstract.nodes.VF (as we do now)

- Translate tosca.nodes.nfv.PNF into org.openecomp.resource.abstract.nodes.PNF

- Translate tosca.nodes.nfv.NS into org.openecomp.resource.abstract.nodes.service


Recommendations slide presented to the Modeling sub-committee



Example:

Onboarded NSD
tosca_definitions_version: tosca_simple_yaml_1_2
metadata:
  nsd_invariant_id: c3887fb3-d1b2-477f-86c4-fd641ee9a7cf
  nsd_name: vcpe
  nsd_file_structure_version: "1.0.0"
  nsd_designer: ONAP
  nsd_release_date_time: "2018-11-05 12:00:00"
description: VCPE Network Service
imports:
  - Definitions/etsi_nfv_sol001_nsd_2_5_1_types.yaml
node_types:
  onap.vcpe.NS:
#    derived_from: tosca.nodes.nfv.NS
    derived_from: org.openecomp.resource.abstract.nodes.service
    properties:
      vendor_provided_properties:
          descriptor_id:
            type: string
            constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1111 ] ]
            default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1111
          designer:
            type: string
            constraints: [ valid_values: [ MyServiceONAP] ]
            default: MyServiceONAP
          name:
            type: string
            constraints: [ valid_values: [ VCPEService ] ]
            default: VCPEService
          version:
            type: string
            constraints: [ valid_values: [ '1.0.0' ] ]
            default: '1.0.0'
          invariant_id:
            type: string
            constraints: [ valid_values: [ c3887fb3-d1b2-477f-86c4-fd641ee9a7cf] ]
            default: c3887fb3-d1b2-477f-86c4-fd641ee9a7cf
          flavour_id: 
            type: string
            constraints: [ valid_values: [ simple ] ]
            default: simple

  onap.demo.vnfs.vCPE_Infrastructure_GW_VNF:
      type: org.openecomp.resource.abstract.nodes.VF
      ## caps & reqs & props specific for this VNF type

  onap.demo.vnfs.vCPE_Infrastructure_vGMUX_VNF:  
      type: org.openecomp.resource.abstract.nodes.VF
      ## caps & reqs & props specific for this VNF type

  onap.demo.vnfs.vCPE_Infrastructure_VNF:
      type: org.openecomp.resource.abstract.nodes.VF
      ## caps & reqs & props specific for this VNF type

  onap.demo.vnfs.vCPE_Infrastructure_Metro_vBNG_VNF:
      type: org.openecomp.resource.abstract.nodes.VF
      ## caps & reqs & props specific for this VNF type

  onap.demo.vnfs.vCPE_Infrastructure_BGREMU_VNF:
      type: org.openecomp.resource.abstract.nodes.VF
      ## caps & reqs & props specific for this VNF type
  
topology_template:
  substitution_mappings:
    node_type: onap.vcpe.NS
    requirements:
      #virtual_link:  #what is external connection of the VNF?

  node_templates:
    vcpe_service:
      type: onap.vcpe.NS
      properties:
        descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1111
        designer: MyServiceONAP
        name: VCPEService
        version: '1.0.0'
        invariant_id: c3887fb3-d1b2-477f-86c4-fd641ee9a7cf
        flavour_id: simple
      interfaces:
        Nslcm: 
          instantiate:
            implementation: instantiate.workflow.yaml
          terminate:
            implementation: terminate.workflow.yaml
    
    vCPE_Infrastructure_GW_demo_app:
#     type: tosca.nodes.nfv.VNF
      type: onap.demo.vnfs.vCPE_Infrastructure_GW_VNF
      properties:
        descriptor_id: 3fca3543-07f5-492f-812c-ed462e4f94f4
        provider: onap
        product_name: vcpe_vgw
        software_version: '1.0.0'
        descriptor_version: '1.0.0'
        flavour_id: simple
        flavour_description: simple
        vnfm_info: ['etsivnfm:v2.5.1']
        vnf_profile:
          instantiation_Level: level_1
          min_number_of_instances: 1
          max_number_of_instances: 3
      requirements:
        - virtual_link: vcpe_public_net

    vCPE_Infrastructure_vGMUX_demo_app:
#     type: tosca.nodes.nfv.VNF
      type: onap.demo.vnfs.vCPE_Infrastructure_vGMUX_VNF
      properties:
        descriptor_id: 0408f076-e6c0-4c82-9940-272fddbb82de
        provider: onap
        product_name: vcpe_vgmux
        software_version: '1.0.0'
        descriptor_version: '1.0.0'
        flavour_id: simple
        flavour_description: simple
        vnfm_info: ['etsivnfm:v2.5.1']
        vnf_profile:
          instantiation_Level: level_1
          min_number_of_instances: 1
          max_number_of_instances: 3
      requirements:
        - virtual_link: vcpe_public_net

    vCPE_Infrastructure_demo_app:
#     type: tosca.nodes.nfv.VNF
      type: onap.demo.vnfs.vCPE_Infrastructure_VNF
      properties:
        descriptor_id: b1bb0ce7-2222-4fa7-95ed-4840d70a1100
        provider: onap
        product_name: vcpe_infra
        software_version: '1.0.0'
        descriptor_version: '1.0.0'
        flavour_id: simple
        flavour_description: simple
        vnfm_info: ['etsivnfm:v2.5.1']
        vnf_profile:
          instantiation_Level: level_1
          min_number_of_instances: 1
          max_number_of_instances: 3
      requirements:
        - virtual_link: vcpe_public_net

    vCPE_Infrastructure_Metro_vBNG_demo_app:
#     type: tosca.nodes.nfv.VNF
      type: onap.demo.vnfs.vCPE_Infrastructure_Metro_vBNG_VNF
      properties:
        descriptor_id: b1bb0ce7-2222-4fa7-95ed-4840d70a1101
        provider: onap
        product_name: vcpe_vbng
        software_version: '1.0.0'
        descriptor_version: '1.0.0'
        flavour_id: simple
        flavour_description: simple
        vnfm_info: ['etsivnfm:v2.5.1']
        vnf_profile:
          instantiation_Level: level_1
          min_number_of_instances: 1
          max_number_of_instances: 3
      requirements:
        - virtual_link: vcpe_public_net

    vCPE_Infrastructure_BGREMU_demo_app:
#     type: tosca.nodes.nfv.VNF
      type: onap.demo.vnfs.vCPE_Infrastructure_BGREMU_VNF
      properties:
        descriptor_id: b1bb0ce7-2222-4fa7-95ed-4840d70a1102
        provider: onap
        product_name: vcpe_vbrgemu
        software_version: '1.0.0'
        descriptor_version: '1.0.0'
        flavour_id: simple
        flavour_description: simple
        vnfm_info: ['etsivnfm:v2.5.1']
        vnf_profile:
          instantiation_Level: level_1
          min_number_of_instances: 1
          max_number_of_instances: 3
      requirements:
        - virtual_link: vcpe_public_net

    vcpe_public_net:
      type: tosca.nodes.nfv.NsVirtualLink
      properties:
        connectivity_type:
          layer_protocol: ipv4
        # version: 1.0.0 #not defined in SOL001 v2.5.1
        vl_profile:
          max_bit_rate_requirements:
            root: 10000000
            leaf: 10000000
          min_bit_rate_requirements:
            root: 10000000
            leaf: 10000000
          # networkName: oam-zte #not defined in SOL001 v2.5.1
          # cidr: 172.30.23.0/24 #not defined in SOL001 v2.5.1
          # dhcpEnabled: false   #not defined in SOL001 v2.5.1





  • No labels