The following requirements are defined in the Honolulu release - functional requirements proposed list.
Feature | Description |
---|---|
Epic | User Story | Task | Description | Honolulu Plan? | JIRA | Size (S/M/L/XL) | Priority |
---|---|---|---|---|---|---|---|
Support Onboard ETSI 3.3.1 SOL004 compliant VNF / CNF packages |
| Yes | 4 weeks for one designer | High | |||
Support for onboarding ETSI v3.3.1 SOL004 VNF CSAR Packages with minimum CNF enhancements from 4.1.1 |
source: Artifacts/helm/helm_charts.yaml
| Yes | High | ||||
Determine the onboarding path based on manifest metadata |
| High | |||||
Create a new onboarding path for SOL004 3.3.1 VNF package |
| High | |||||
Support the SOL001 vnf_profile properties | SDC needs to support the SOL001 vnf_profile (toaca.databypes.nfv.VnfProfile) properties | High | |||||
Support for onboarding ETSI v3.3.1 SOL001 VNF Descriptors |
| Yes | High | ||||
Determine the onboarding path based on metadata |
| ||||||
Create a new onboarding path for SOL001 VNFD 3.3.1 |
| ||||||
Support for onboarding ETSI v3.3.1 SOL001 VNF Descriptors with minimum CNF enhancements from 4.1.1 | SDC users need to onboard ETSI 3.3.1 with minimum CNF enhancements from 4.1.1
| Yes | High | ||||
Support minimum CNF enhancements from 4.1.1 | Support the vnfd_type with CNF attributes from 4.1.1:
| ||||||
Extend the 3.3.1 VNFD onboarding path for CNF attributes | Extend the 3.3.1 VNFD onboarding logic for CNF attribute handling | ||||||
=========== | |||||||
Support for mapping of ETSI v3.3.1 SOL001 VNF Descriptor into SDC AID Data Model | Once SDC onboards an ETSI v3.3.1 SOL001 VNF Descriptor, SDC needs to map the ETSI v3.3.1 SOL001 VNF Descriptor into SDC AID Data Model
VNF Mapping:
VDU Mapping:
VF-Module Mapping (Stretch goal)
SDC supports Interface mapping to SDC AID DM for creating Service and connect VNF to external networking, etc. Capacity and requirement mapping won't be necessary in this release | Yes | Medium (VF-Module mapping is a stretch goal) | ||||
Map VNF data type to SDC AID DM VF | Map VNF data type to SDC AID DM VF | ||||||
Map VDU data type to SDC AID DM VFC | Map VDU data type to SDC AID DM VFC | ||||||
Deduce VF-Module from VNFD Policies | Deduce VF-Module from VNFD Policies | ||||||
Map VNF Interfaces to SDC AID DM | Map VNF Interfaces to SDC AID DM | ||||||
Support for mapping of ETSI v3.3.1 SOL001 VNF Descriptor with minimum CNF enhancements from 4.1.1 into SDC AID Data Model | Once SDC onboards an ETSI v3.3.1 SOL001 VNF Descriptor with CNF enhancements, SDC needs to map the ETSI v3.3.1 SOL001 VNF Descriptor with minimum CNF enhancements from 4.1.1 into SDC AID Data Model
| Yes | medium | ||||
Map VNF with CNF properties to SDC AID DM | |||||||
Map VDU with CNF properties to SDC AID DM | |||||||
Map virtualCPD to SDC AID DM | |||||||
Map MCIOP to SDC AID DM | |||||||
Support for editing ETSI v3.3.1 SOL001 VNF / CNF Descriptor | SDC users should be able to edit onboarded ETSI v3.3.1 SOL001 VNF Descriptors
Note: should we reflect the changes to original vendor packages in ETSI_PACKAGE directory??? need to think about impact... SDC generates a new digital signature for the package and distributes it to ETSI Catalog Manager. | Yes | medium | ||||
Enhance SDC UI for editing SOL001 VNF / CNF descriptor properties | Enhance SDC UI for editing SOL001 VNF / CNF descriptor properties | ||||||
Design ETSI SOL007 compliant Network Service Descriptor packages |
| Yes | 1 week for one designer | High | |||
Support for designing an ETSI SOL001 v3.3.1 compliant Network Service that can be deployed with an ETSI compliant NFVO | SDC users need to design an ETSI SOL001 v3.3.1 compliant Network Service that can be deployed with an ETSI compliant NFVO
| Yes | High | ||||
Enhance SDC design for creating v3.3.1 NS | Enhance SDC design for creating v3.3.1 NS | ||||||
Generate v3.3.1 SOL007 NS package | Generate v3.3.1 SOL007 NS package
| ||||||
Compose of one or more VNFs and the Virtual Links that connect them | SDC users need to compose one or more VNFs and the Virtual Links that connect them in NS
Note: cover the VNF version validation... SAP descriptor has a version... | Yes | High | ||||
Enhance SDC to compose v3.3.1 VNFs and VLs for v3.3.1 NS | Enhance SDC to allow compose v3.3.1 VNFs and VLs for v3.3.1 NS | ||||||
Validate NSD and VNFD version match | Validate NSD and VNFD version match
| ||||||
Support for compose VNFs with CNF enhancements | SDC users need to compose VNFs with CNF enhancements
| Yes | High | ||||
Enhance SDC to compose v3.3.1 VNFs with CNF enhancements | Enhance SDC to compose v3.3.1 VNFs with CNF enhancements | ||||||
Support for mapping of ETSI v3.3.1 SOL001 Network Service Descriptor in the SOL007 package into SDC AID Data Model | SDC needs to support for mapping of ETSI SOL001 Network Service Descriptor in the SOL007 package into SDC AID Data Model
| Yes | Medium | ||||
Map v3.3.1 NSD to SDC AID DM | Map v3.3.1 NSD to SDC AID DM | ||||||
Suport Interfaces | Suport NS Interfaces to SDC AID DM | ||||||
Support design of Service templates, leveraging NSDs | SDC users need to support design of Service templates, leveraging NSDs ONAP service references NSDs... | Yes | Medium | ||||
Compose Service Templates referencing NSDs | Compose Service Templates referencing NSDs | ||||||
Design Nested/Hierarchical ETSI SOL001 v3.3.1 Network Service Descriptor package |
| No | N/A | ||||
Compose of zero or more VNFs and one or more nested Network Services and the Virtual Links that connect them | SDC users need to compose zero or more VNFs and one or more nested Network Services and the Virtual Links that connect them | No | N/A | ||||
Support for using VNFs with CNF enhancements | Support design of Service templates, leveraging NSDs | No | N/A | ||||
Onboard Prototype Package based on ETSI IFA011 v4.1.1 supporting containerized VNF (CNF) packages |
| No | N/A | ||||
Support for onboarding Prototype v4.1.1 CSAR Packages | SDC needs to support onboarding prototype v4.1.1 CSAR packages with CNF artifacts and metadata | No | |||||
Support for onboarding Prototype v4.1.1 VNF/CNF Descriptor | SDC needs to support onboarding prototype v4.1.1 VNF/CNF descriptor | No | |||||
Support for mapping of Prototype v4.1.1 VNF/CNF Descriptor into SDC AID Data Model | SDC needs to support mapping of prototype v4.1.1 VNF/CNF Descriptor into SDC AID Data Model | No | |||||
Support for using a Prototype v4.1.1 VNF in an ETSI Network Service | SDC needs to support for a prototype v4.1.1 VNF/CNF in an ETSI network Service | No | |||||
Onboard ETSI 3.3.1 SOL004 compliant PNF packages | Executive Summary - Enable a vendor provided ETSI 3.3.1 SOL004 compliant PNF package including an ETSI SOL001 PNF Descriptor to be onboarded into ONAP for composition into an ONAP Service Business Impact - Enables operators and service providers to use same ETSI compliant PNF packages with ONAP and existing NFVO. Industry compatibility. Business Markets - All operators that are currently using ETSI packages to deploy PNFs Funding/Financial Impacts - Reduction in operations expense from using industry standard PNF packaging. Reduction in capital expense from vendors using a single packaging methodology. Organization Mgmt, Sales Strategies -There is no additional organizational management or sales strategies for this requirement outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider. | No | N/A | ||||
SDC supports onboarding of the 3.3.1 SOL004 PNF package includes SOL001 PNFD |
| No | N/A | ||||
Support for mapping of ETSI v3.3.1 SOL001 PNF Descriptor into SDC AID Data Model | SDC needs to support 3.3.1 SOL001 PNFD Mapping to SDC AID DM | No | N/A | ||||
Onboard ETSI SOL007 compliant Network Service Descriptor packages | Executive Summary - Onboard an ETSI SOL007 v3.3.1 compliant (Link to ETSI SOL007 v3.3.1) Network Service Descriptor package including an ETSI version 3.3.1 SOL001 Network Service Descriptor (NSD) to be onboarded into ONAP for composition into an ONAP Service or deployment using an ETSI compliant NFVO.
Business Markets - All operators and service providers that are developing ETSI compatible Network Services Funding/Financial Impacts - Reduction in operations expense from using industry standard NSD packaging. Organization Mgmt, Sales Strategies -There is no additional organizational management or sales strategies for this requirement outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider. | No | N/A | ||||
Support onboarding for Cataloging and Preserving the original SOL007 package | SDC users need to support onboarding for Cataloging and Preserving the original SOL007 package (Link to ETSI SOL001 v3.3.1) | No | N/A | ||||
Support for onboarding of the SOL007 v3.3.1 compliant NSD package including SOL001 NSD that includes references to other NSDs for composition into ONAP Service | SDC users need to support for onboarding of the SOL007 v3.3.1 compliant NSD package including SOL001 NSD that includes references to other NSDs for composition into ONAP Service | No | N/A | ||||
Support ETSI Package Security and validation | ONAP supports vendor ETSI 3.3.1Package Security and validation
| Yes | 4 weeks for one designer | High | |||
| ONAP SDC supports ETSI 3.3.1 SOL004 VNF/PNF Package security | Yes | |||||
| ONAP SDC supports ETSI 3.3.1 SOL007 NS Package security | Yes | High | ||||
Support of ETSI Package Validation | VNF SDK will support ETSI package validation for VNF and NS | TBD | N/A | ||||
VNF SDK will support ETSI VNF package pre-onboarding for validation | VNF SDK will support ETSI VNF package pre-onboarding for validation | TBD | N/A | ||||
VNF SDK will support ETSI NS package pre-onboarding for validation | VNF SDK will support ETSI NS package pre-onboarding for validation | TBD | N/A |
The diagram depicts the package management architecture.
This section describes SDC VNF/PNF onboarding and the End-to-End package distribution from SDC to SVNFM/external NFVOs.
SDC takes the vendor provided package and adds some files or changes files and meta data according to SDC procedure.
The following diagram depicts the onboarding procedures for VNF/NS/PNF.
The following is an example of VCPE model hierarchy. In VCPE, the E2E Service model includes one NS (vCPE). And the vCPE NS model includes vbng, vbrgemu, vgmux and vgw VNFs and a network VL.
<example>
The latest (Frankfurt) vCPE CSARs can be retrieved from the https://git.onap.org/demo/tree/tosca/vCPE_F. There are one NS CSAR and five VNF CSARs:
To represent nested NS cases, we will choose another use case.
The following diagram depicts how SDC
The NSD references the VNFD of a constituent VNFs.
tosca.nodes.nfv.VNF:
derived_from: tosca.nodes.Root
description: The generic abstract type from which all VNF specific abstract node types shall be derived to form, together with other node types, the TOSCA service template(s) representing the VNFD
tosca.nodes.nfv.VNF: derived_from: tosca.nodes.Root description: The generic abstract type from which all VNF specific node types shall be derived to form, together with other node types, the TOSCA service template(s) representing the VNFD | |||
Id | Type | Cardinality | Description |
---|---|---|---|
descriptor_id | String #UUID | 1 | Identifier for the VNFD |
descriptor_version | String | 1 | Identifies the version of the VNFD |
provider | String | 1 | provider of the VNF and of the VNFD |
product_name | String | 1 | name to identify the VNF product. Invariant for the VNF Product lifetime |
software_version | String | 1 | Software version of the VNF |
product_info_name | String | 0..1 | Human readable name of the VNF Product |
product_info_description | String | 0..1 | Human readable name for the VNF product |
vnfm_info | list of String | 1..n | Identifies VNFM(s) compatible with the VNF |
localization_languages | list of String | 0..n | Information about localization languages of the VNF |
lcm_operations_configuration | tosca.datatypes.nfv.VnfLcmOperationsConfiguration | 0..n | Describes the configuration parameters for the VNF LCM operations |
monitoring_parameters | list of tosca.datatypes.nfv.VnfMonitoringParameter | 0..n | Describes monitoring parameters applicable to the VNF. |
flavour_id | String | 1 | Identifier of the Deployment Flavour within the VNFD |
flavour_description | String | 1 | Human readable description of the DF |
vnf_profile | tosca.datatypes.nfv.VnfProfile | 0..1 | Describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF |
mciop_profile | list of tosca.datatypes.nfv.MciopProfile | 0..n | Describes additional instantiation data for the MCIOPs used in this deployment |
attributes: scale_status: type: map # key: aspectId description: Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. entry_schema: type: tosca.datatypes.nfv.ScaleInfo | |||
requirements: - virtual_link: capability: tosca.capabilities.nfv.VirtualLinkable relationship: tosca.relationships.nfv.VirtualLinksTo occurrences: [ 0, 1 ] # Additional requirements shall be defined in the VNF specific node type (deriving from tosca.nodes.nfv.VNF) corresponding to NS virtual links that need to connect to VnfExtCps | |||
interfaces: Vnflcm: type: tosca.interfaces.nfv.Vnflcm # VnfIndicator: # type: tosca.interfaces.nfv.VnfIndicator # derived types are expected to introduce Vnf Indicator interfaces # with their type derived from tosca.interfaces.nfv.VnfIndicator | |||
tosca.nodes.nfv.Vdu.osContainer: derived_from: tosca.nodes.Root description: Describes the container compute part of a VDU which is a construct supporting the description of the deployment and operational behavior of a VNFC | |||
Id | Type | Cardinality | Description |
---|---|---|---|
name | String | 1 | Human readable name of the VDU |
description | String | 1 | Human readable description of the VDU |
nfvi_constraints | map of String | 0..n | Describes constraints on the NFVI for the VNFC instance(s) created from this VDU. This property is reserved for future use in the present document. |
monitoring_parameters | list of tosca.datatypes.nfv.VnfcMonitoringParameter | 0..n | Describes monitoring parameters applicable to a VNFC instantiated from this VDU |
#configurable_properties | tosca.datatypes.nfv.VnfcConfigurableProperties | 0..1 | # derived types are expected to introduce configurable_properties with its type derived from tosca.datatypes.nfv.VnfcConfigurableProperties |
vdu_profile | tosca.datatypes.nfv.VduProfile | 1 | Defines additional instantiation data for the Vdu.OsContainer node |
sw_image_data | tosca.datatypes.nfv.SwImageData | 1 | Defines information related to a SwImage artifact used by this Vdu.OsContainer node |
boot_data | tosca.datatypes.nfv.BootData | 0..1 | Contains the information used to customize a container compute resource at boot time. The bootData may contain variable parts that are replaced by deployment specific values before being sent |
capabilities: virtual_compute: type: tosca.capabilities.nfv.VirtualCompute occurrences: [ 1, 1 ] virtual_binding: type: tosca.capabilities.nfv.VirtualBindable occurrences: [ 1, UNBOUNDED ] | |||
requirements: - virtual_storage: capability: tosca.capabilities.nfv.VirtualStorage relationship: tosca.relationships.nfv.AttachesTo occurrences: [ 0, UNBOUNDED ] | |||
tosca.datatypes.nfv.MciopProfile: derived_from: tosca.datatypes.Root description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF. | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
mciopId | String | 1 | Identifies the MCIOP in the VNF package. | |
deploymentOrder | Integer | 0..1 | greater_or_equal: 0 | Indicates the order in which this MCIOP shall be deployed in relation to other MCIOPs. A lower value specifies an earlier deployment. null is allowed |
# affinityOrAntiAffinityGroupId | list of String | 0..n | References the affinity or anti-affinity groups(s) the MCIOP belongs to. | |
associatedVdu | list of String | 0..n | List of VDUs which are associated to this MCIOP and which are deployed using this MCIOP | |
tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: derived_from: tosca.datatypes.Root description: represents information that affect the invocation of the InstantiateVnf operation. | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
description | String | 0..1 | Description of VnfInstantiateOperationConfiguration | |
tosca.datatypes.nfv.VnfMonitoringParameter: | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
name | String | 1 | Human readable name of the monitoring parameter | |
performance_metric | String | 1 | - valid_values: [ v_cpu_usage_mean_vnf, v_cpu_usage_peak_vnf, | Identifies the performance metric, according to ETSI GS NFV-IFA 027. |
collection_period | scalar-unit.time | 0..1 | - greater_than: 0 s | Describes the recommended periodicity at which to collect the performance information. |
tosca.datatypes.nfv.VnfProfile: | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
instantiation_level | String | 0..1 | Identifier of the instantiation level of the VNF DF to be used for instantiation. If not present, the default instantiation level as declared in the VNFD shall be used | |
min_number_of_instances | Integer | 1 | - greater_or_equal: 0 | Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. |
max_number_of_instances | Integer | 1 | - greater_or_equal: 0 | Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. |
tosca.datatypes.nfv.SwImageData: derived_from: tosca.datatypes.Root description: describes information related to a software image artifact | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
name | String | 1 | Name of this software image | |
version | String | 1 | Version of this software image | |
provider | String | 1 | Provider of this software image | |
checksum | tosca.datatypes.nfv.ChecksumData | 1 | Checksum of the software image file | |
container_format | String | 1 | - valid_values: [ aki, ami, ari, bare, docker, ova, ovf ] | The container format describes the container file format in which software image is provided |
disk_format | String | 1 | - valid_values: [ aki, ami, ari, iso, qcow2, raw, vdi, vhd, vhdx, vmdk ] | The disk format of a software image is the format of the underlying disk image |
min_disk | scalar-unit.size # Number | 1 | - greater_or_equal: 0 B | The minimal disk size requirement for this software image |
min_ram | scalar-unit.size # Number | 0..1 | - greater_or_equal: 0 B | The minimal RAM requirement for this software image |
size | scalar-unit.size # Number | 1 | The size of this software image | |
operating_system | String | 0..1 | Identifies the operating system used in the software image | |
supported_virtualisation_environments | list of String | 0..n | Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image |
tosca.datatypes.nfv.BootData: derived_from: tosca.datatypes.Root description: describes the information used to customize a virtualised or containerized compute resource at boot time. | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
vim_specific_properties | tosca.datatypes.nfv.BootDataVimSpecificProperties | 0..1 | Properties used for selecting VIM or CISM specific capabilities when setting the boot data. | |
kvp_data | tosca.datatypes.nfv.KvpData | 0..1 | A set of key-value pairs for configuring a virtual or container compute resource. | |
content_or_file_data | tosca.datatypes.nfv.ContentOrFileData | 0..1 | A string content or a file for configuring a virtual or container compute resource. |
tosca.datatypes.nfv.BootDataVimSpecificProperties: derived_from: tosca.datatypes.Root description: describes the VIM specific information used for selecting VIM specific capabilities when setting the boot data. | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
vim_type | String | 1 | Discriminator for the different types of the VIM or CISM information. | |
properties | map of String | 0..n | Properties used for selecting VIM or CISM specific capabilities when setting the boot data |
tosca.datatypes.nfv.KvpData: derived_from: tosca.datatypes.Root description: describes a set of key-value pairs information used to customize a virtualised or containerized compute resource at boot time by using only key-value pairs data. | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
data | map of String | 0..n | A map of strings that contains a set of key-value pairs that describes the information for configuring the virtualised or containerized compute resource. |
tosca.datatypes.nfv.ContentOrFileData: derived_from: tosca.datatypes.Root description: describes a string content or a file information used to customize a virtualised or containerized compute resource at boot time by using string content or file. | ||||
Id | Type | Cardinality | Constraints | Description |
---|---|---|---|---|
data | map of String | 0..n | A map of strings that contains a set of key-value pairs that carries the dynamic deployment values which used to replace the corresponding variable parts in the file as identify by a URL as described in source_path. Shall be present if "source_path" is present and shall be absent otherwise.. | |
content | String | 0..1 | The string information used to customize a virtualised or containerized compute resource at boot time. | |
source_path | String | 0..1 | The URL to a file contained in the VNF package used to customize a virtualised or containerized compute resource. The content shall comply with IETF RFC 3986 [8]. | |
destination_path | String | 0..1 | The URL address when inject a file into the virtualised or containerized compute resource. The content shall comply with IETF RFC 3986 [8]. |
The following depicts the VNFD information element.
SapD fulfills the following information element.
ETSI packages will be distributed from SDC to the ETSI Catalog Manager for other ONAP runtime components such as SO (SOL003/SOL005 Adapter) and VF-C.
ETSI Catalog Manager will interface with the SDC directly, without a help from ONAP SO.
The following diagram depicts the ETSI package distribution.
@startuml participant OSS_BSS participant SDC participant ONAP_ETSI_Catalog_Mgr participant SO_NFVO participant SOL003_Adapter participant SOL005_Adapter participant VNFM participant VFC participant Ext_NFVO autonumber OSS_BSS -> SDC : Vendor SOL004/SOL007 package onboarding,\nincluding SOL001 SDC --> SDC : onboard SOL004/SOL007 package and put the vendor package\ninto the ONBOARD_PACKAGE directory ONAP_ETSI_Catalog_Mgr -> SDC : register for SDC notification SDC -> ONAP_ETSI_Catalog_Mgr : send a notification for SDC CSAR with the original vendor CSAR/Zip ONAP_ETSI_Catalog_Mgr -> SDC : query the SDC CSAR with the SDC CSAR id ONAP_ETSI_Catalog_Mgr --> ONAP_ETSI_Catalog_Mgr : extract SOL004/Sol007 package CSAR/Zip from the SDC CSAR \nand store it group NS PACKAGE TO SO_NFVO ONAP_ETSI_Catalog_Mgr -> SO_NFVO : send a notification to SO_NFVO SO_NFVO -> ONAP_ETSI_Catalog_Mgr : query for a NS package end group VNF PACKAGE TO SVNFM ONAP_ETSI_Catalog_Mgr -> SOL003_Adapter : send a notification to SOL003_Adapter SOL003_Adapter -> VNFM : send a notification VNFM -> SOL003_Adapter : query for a VNF package SOL003_Adapter -> ONAP_ETSI_Catalog_Mgr : query for a VNF package ONAP_ETSI_Catalog_Mgr -> SOL003_Adapter : send a VNF package SOL003_Adapter -> VNFM : sends a VNF package end group NS/VNF/PNF PACKAGE TO Ext NFVO ONAP_ETSI_Catalog_Mgr -> SOL005_Adapter : send a notification to SOL005_Adapter SOL005_Adapter -> Ext_NFVO : send a notification Ext_NFVO -> SOL005_Adapter : query for a VNF/PNF/NS package SOL005_Adapter -> ONAP_ETSI_Catalog_Mgr : query for a VNF/PNF/NS package ONAP_ETSI_Catalog_Mgr -> SOL005_Adapter : send a VNF/PNF/NS package SOL005_Adapter -> Ext_NFVO : sends a VNF/PNF/NS package end group NS/VNF/PNF PACKAGE TO VFC ONAP_ETSI_Catalog_Mgr -> SOL005_Adapter : send a notification to SOL005_Adapter SOL005_Adapter -> VFC : send a notification VFC -> SOL005_Adapter : query for a VNF/PNF/NS package SOL005_Adapter -> ONAP_ETSI_Catalog_Mgr : query for a VNF/PNF/NS package ONAP_ETSI_Catalog_Mgr -> SOL005_Adapter : send a VNF/PNF/NS package SOL005_Adapter -> VFC : sends a VNF/PNF/NS package end @enduml |
Among the SOL004/SOL007 VNF package security options, the SDC supports the option2 as depicted below. In the option 2, there are two ways to zip the VNF packages, and SDC supports both.
SDC validates the VNF packages based on the embedded signature and certificate by leveraging CA.
A VNF package uses the signature and certificate to ensure package integrity and validity. A CSAR file is digitally signed with the VNF provider private key. During the VNF package onboarding to SDC, SDC validates the package and then does the following:
The following diagram depicts SOL001 Mapping to SDC AID DM.
Note: AAI impacts are under discussion.
The following is a presentation slide that summarizes the Mapping.
Note:
The following is being implemented for the Guilin release:
The following mapping will be implemented in the Honolulu release:
ONAP Service CSAR
|-- Artifacts
|-- ETSI_PACKAGE
|-- etsi nsd csar
|-- <VF 1>
|-- Deployment
|-- ETSI_PACKAGE
|-- etsi vnf package
...
|-- <VF n>
|-- Deployment
|-- ETSI_PACKAGE
|-- etsi vnf package
The following summarizes the mapping between two models:
SOL001 Data Model | SDC AID DM | Comments | Release |
---|---|---|---|
N/A | org.openecomp.resource.abstracts.nodes.service | represents OSS Service models | |
tosca.nodes.nfv.NS | tosca.nodes.nfv.NS | NS; use of SOL001 as SDC AID DM NS | Guilin |
tosca.nodes.nfv.NsVirtualLink | tosca.nodes.nfv.NsVirtualLink | NS VirtualLink; use of SOL001 as SDC AID DM VL | Guilin |
tosca.nodes.nfv.Vnf | org.openecomp.resource.abstract.nodes.ETSI.VNF | VNF | Plan for Honolulu |
tosca.nodes.nfv.vdu | org.openecomp.resource.abstract.nodes.ETSI.VFC | VDU and SDC VFC | Plan for Honolulu |
tosca.nodes.nfv.VirtualLink | org.openecomp.resources.vl | VNF VL | Plan for Honolulu |
tosca.nodes.nfv.VduCp | org.openecomp.resources.cp | VDU CP | Plan for Honolulu |
N/A | org.openecomp.resource.allottedResource | allotted resource; could not find any from SOL001 | |
tosca.nodes.nfv.Pnf | org.openecomp.resource.abstract.nodes.ETSI.PNF | PNF | Plan for Honolulu (PNF support is under discussion for Honolulu |
SDC: nfv-types | SDC: heat-types | ||||||
ETSI NFV IE | SDC Descriptor / SOL001 | TOSCA Type | Derived from | SDC Descriptor | TOSCA Type | Derived from | |
---|---|---|---|---|---|---|---|
NSD | nodes.yml / SOL001 | tosca.nodes.nfv.NS | tosca.nodes.Root | Generic_Service.yml | org.openecomp.resource.abstract.nodes.service (use it for both E2E (OSS Service) and NS) | tosca.nodes.Root | |
NSD.yml | org.openecomp.resource.vfc.NSD | tosca.nodes.Root | N/A | ||||
SapD | SOL001 | tosca.nodes.nfv.Sap | tosca.nodes.Root | ||||
NsVirtualLinkDesc | SOL001 | tosca.nodes.nfv.NsVirtualLink (there is tosca.nodes.nfv.VnfVirtualLink) | tosca.nodes.Root | vl.yml | org.openecomp.resource.vl.VL | tosca.nodes.network.Network | |
extVl.yml | org.openecomp.resource.vl.extVL | tosca.nodes.Root | |||||
internalVl.yml | org.openecomp.resource.vl.internalVL | tosca.nodes.network.Network | |||||
extZteVL.yml | tosca.nodes.nfv.ext.zte.VL | tosca.nodes.Root | |||||
Pnfd | tosca.nodes.nfv.PNF | tosca.nodes.Root | Generic_PNF.yml | org.openecomp.resource.abstract.nodes.PNF | tosca.nodes.Root | ||
Vnfd | VNF.yml | tosca.nodes.nfv.VNF | tosca.nodes.Root | Generic_VF.yml | org.openecomp.resource.abstract.nodes.VF | tosca.nodes.Root | |
Vnffgd | tosca.groups.nfv.VNFFG | tosca.groups.Root | forwardingPath.yml(?) | org.openecomp.nodes.ForwardingPath | tosca.nodes.Root | ||
A benefit of mapping an onboarded ETSI NS to the internal representation of an ONAP Service is that the ETSI NS can access the standard ONAP runtime functionality implemented or planned for support of ONAP Services.
SOL001 NS (tosca.nodes.nfv.NS) - Chosen |
| |||||
---|---|---|---|---|---|---|
name | required | type | ||||
descriptor_id | yes | string | ||||
designer | yes | string | ||||
version | yes | string | ||||
name | yes | string | ||||
invariant_id | yes | string | ||||
flavor_id | yes | string | ||||
ns_profile | no | tosca.datatypes.nfv.NsProfile |
<tosca.datatypes.nfv.NsProfile>
SDC TOSCA repository: /catalog-be/src/main/resources/import/tosca/nfv-types/NSD/
<nodes.yml: org.openecomp.resource.vfc.NSD>
org.openecomp.resource.vfc.NSD:
derived_from: tosca.nodes.Root
description: ECOMP Allotted Resource base type all other allotted resources node types derive from
properties:
nsd_id:
type: string
required: true
description: ID of the NSD
nsd_designer:
type: string
required: true
description: Designer of the NSD
nsd_version:
type: string
required: true
description: Version of the NSD
nsd_name:
type: string
required: true
description: Name of the NSD
providing_service_uuid:
type: string
required: true
description: The depending service uuid in order to map the allotted resource to the specific service version
providing_service_invariant_uuid:
type: string
required: true
description: The depending service invariant uuid in order to map the allotted resource to the specific service version
providing_service_name:
type: string
required: true
description: The depending service name in order to map the allotted resource to the specific service version
requirements:
- virtualLink:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
capabilities:
virtual_linkable:
type: tosca.capabilities.network.Linkable
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 | ||||||
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 |
There are two options. For now, we chose the option A. The option B is under discussion.
Define a new data type based on the org.openecomp.resource.abstract.nodes.VF with ETSI SOL001 VNF data type attributes.
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 |
<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)
| ||||
Define a new data type based on the tosca.nodes.nfv.VNF with SDC AID DM VNF data type attributes.
| ||
---|---|---|
SOL001 VDU mapping to/from VNF SDC AID DM VFC
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 | |||
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 |
tosca_definitions_version: tosca_simple_yaml_1_3
description:
imports:
data_types:
node_types:
topology_template:
inputs:
node_templates:
VNF
substitution_mappings:
capabilities:
requirements:
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 | 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> | |||
The following is a summary of initial input from Gil Bullard (AT&T).
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.
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 |
<tosca.nodes.nfv.NsVirtualLink>
<tosca.datatypes.nfv.NsVlProfile>
<tosca.datatypes.nfv.ConnectivityType>
<tosca.datatypes.nfv.LinkBitrateRequirements>
<tosca.datatypes.nfv.NsVirtualLinkQos>
<tosca.datatypes.nfv.ServiceAvailability>
<tosca.nodes.nfv.ext.zte.VL>
tosca.nodes.nfv.ext.zte.VL | ||
---|---|---|
name | required | type |
segmentation_id | false | string |
network_name | false | string |
is_predefined | false | boolean |
mtu | false | integer |
dns_nameservers | false | list |
physical_network | false | string |
dhcp_enabled | false | boolean |
network_id | false | string |
host_routes | false | list |
ip_version | false | integer |
vendor | false | string |
name | false | string |
start_ip | false | string |
vlan_transparent | false | boolean |
cidr | false | string |
gateway_ip | false | string |
network_type | false | string |
end_ip | false | string |
location_info | false | tosca.datatypes.nfv.ext.LocationInfo |
tosca.nodes.nfv.ext.zte.VL:
derived_from: tosca.nodes.Root
description: Ext ZTE VL
properties:
segmentation_id:
type: string
required: false
network_name:
type: string
required: false
is_predefined:
type: boolean
required: false
mtu:
type: integer
required: false
dns_nameservers:
type: list
required: false
entry_schema:
type: string
physical_network:
type: string
required: false
dhcp_enabled:
type: boolean
required: false
network_id:
type: string
required: false
host_routes:
type: list
required: false
entry_schema:
type: tosca.datatypes.nfv.ext.HostRouteInfo
ip_version:
type: integer
required: false
vendor:
type: string
required: false
name:
type: string
required: false
start_ip:
type: string
required: false
vlan_transparent:
type: boolean
required: false
cidr:
type: string
required: false
gateway_ip:
type: string
required: false
network_type:
type: string
required: false
end_ip:
type: string
required: false
location_info:
type: tosca.datatypes.nfv.ext.LocationInfo
required: false
capabilities:
virtual_linkable:
type: tosca.capabilities.nfv.VirtualLinkable
occurrences:
- 1
- UNBOUNDED
valid_source_types: [
]