Update VNFRQTS-572
[vnfrqts/requirements.git] / docs / Chapter5 / Tosca.rst
index 7a04899..be24fcd 100644 (file)
    limitations under the License.
 
 
-ONAP TOSCA VNFD Requirements
------------------------------
+ONAP TOSCA VNFD or PNFD Requirements
+------------------------------------
 
 
 Introduction
 ^^^^^^^^^^^^
 
-The following sub-clauses describe the numbered requirements
-for VNF Descriptor (VNFD) or in other words the VNF Service Template
-based on the most updated draft of ETSI NFV-SOL001 standard for VNF
-Descriptor. The ETSI standard specifies a NFV specific data model using
-TOSCA/YAML data model constructs specified in TOSCA Simple Profile in
-YAML v.1.2.
+The following sub-clauses describe the numbered requirements for VNF
+Descriptor (VNFD) and PNF Descriptor (PNFD) or in other words the VNF/PNF
+Service Template based on the most updated draft of ETSI NFV-SOL001 standard
+for VNF/PNF Descriptor. The ETSI standard specifies a NFV specific data
+model using TOSCA/YAML data model constructs specified in TOSCA Simple
+Profile in YAML v.1.2.
 
-The requirements for TOSCA/CSAR based VNF package are described as well
+The requirements for TOSCA/CSAR based VNF/PNF package are described as well
 and they are based on ETSI NFV-SOL004 standard.
 
 References
 ^^^^^^^^^^^^^^^^^^
 
-  1. ETSI GS NFV-SOL001 draft v.0.10.0
+  1. ETSI GS NFV-SOL001 v.2.5.1
   2. TOSCA SIMPLE Profile in YAML v.1.2
-  3. ETSI GS NFV-SOL004 v.2.5.1
+  3. ETSI GS NFV-SOL004 v.2.6.1 + NFV CR NFVSOL(18)000746r3.
 
 Intended Audience
 ^^^^^^^^^^^^^^^^^^
@@ -58,24 +58,24 @@ associated with this format.
 Overview
 ^^^^^^^^^^^^^^^^
 
-The document includes three charters to help the VNF providers to use the
-VNF model design tools and understand the VNF package structure and VNF
-TOSCA templates.
+The document includes three charters to help the VNF or PNF providers to
+use the VNF or PNF model design tools and understand the VNF or PNF package
+structure and VNF or PNF TOSCA templates.
 
-In the ONAP, VNF Package and VNFD template can be designed by manually
-or via model designer tools. VNF model designer tools can provide the
-GUI and CLI tools for the VNF provider to develop the VNF Package and VNFD
-template.
+In the ONAP, VNF or PNF Package and VNFD or PNFD template can be designed by
+manually or via model designer tools. VNF or PNF model designer tools can
+provide the GUI and CLI tools for the VNF or PNF provider to develop the
+VNF or PNF Package and VNFD or PNFD template.
 
-The VNF package structure is align to the NFV TOSCA protocol, and
-supports CSAR
+The VNF or PNF package structure is align to the NFV TOSCA protocol,
+and supports CSAR
 
-The VNFD and VNF package are all align to the NFV TOSCA protocol, which
-supports multiple TOSCA template yaml files, and also supports
-self-defined node or other extensions.
+The VNFD or PNFD and VNF or PNF package are all align to the NFV TOSCA
+protocol, which supports multiple TOSCA template yaml files, and also
+supports self-defined node or other extensions.
 
-VNF CSAR Package
-^^^^^^^^^^^^^^^^^^^^
+VNF or PNF CSAR Package
+^^^^^^^^^^^^^^^^^^^^^^
 
 CSAR Overview
 ~~~~~~~~~~~~~~~~
@@ -97,27 +97,36 @@ VNF Package Structure and Format
 
 .. req::
     :id: R-51347
-    :target: VNF
+    :target: VNF or PNF
     :keyword: MUST
     :introduced: casablanca
+    :updated: dublin
 
-    The VNF package **MUST** be arranged as a CSAR archive as specified in
-    TOSCA Simple Profile in YAML 1.2.
+    The VNF or PNF CSAR package **MUST** be arranged as a CSAR archive as
+    specified in TOSCA Simple Profile in YAML 1.2.
 
 
 .. req::
     :id: R-87234
-    :target: VNF
-    :keyword: MAY
+    :target: VNF or PNF
+    :keyword: MUST
     :introduced: casablanca
+    :updated: dublin
 
-    The VNF package provided by a VNF vendor **MAY** be either with
-    TOSCA-Metadata directory (CSAR Option 1) or without TOSCA-Metadata
-    directory (CSAR Option 2) as specified in ETSI GS NFV-SOL004. On-boarding
-    entity (ONAP SDC) must support both options.
+    The VNF or PNF package provided by a VNF or PNF vendor **MUST** be with
+    TOSCA-Metadata directory (CSAR Option 1) as specified in
+    ETSI GS NFV-SOL004.
+
+    **Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2
+    will be considered in future ONAP releases.
+
+.. req::
+    :id: R-506221
+    :target: VNF or PNF CSAR PACKAGE
+    :keyword: MUST
+    :introduced: dublin
 
-    **Note:** SDC supports only the CSAR Option 1 in Casablanca. The Option 2
-    will be considered in future ONAP releases,
+    The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension.
 
 
 VNF Package Contents
@@ -125,30 +134,28 @@ VNF Package Contents
 
 .. req::
     :id: R-10087
-    :target: VNF
+    :target: VNF or PNF CSAR PACKAGE
     :keyword: MUST
     :introduced: casablanca
+    :updated: dublin
 
-    The VNF package **MUST** contain all standard artifacts as specified in
-    ETSI GS NFV-SOL004 including Manifest file, VNFD (or Main TOSCA/YAML
-    based Service Template) and other optional artifacts. CSAR Manifest
-    file as per SOL004 - for example ROOT\\ **MainServiceTemplate.mf**
+    The VNF or PNF CSAR package **MUST** include all artifacts required by
+    ETSI GS NFV-SOL004 including Manifest file, VNFD or PNFD (or Main
+    TOSCA/YAML based Service Template) and other optional artifacts. CSAR
+    Manifest file as per SOL004 - for example ROOT\\ **MainServiceTemplate.mf**
 
 .. req::
     :id: R-01123
-    :target: VNF
+    :target: VNF or PNF
     :keyword: MUST
     :introduced: casablanca
+    :updated: dublin
 
-    The VNF package Manifest file **MUST** contain: VNF package meta-data, a
-    list of all artifacts (both internal and external) entry's including
-    their respected URI's, an algorithm to calculate a digest and a digest
-    result calculated on the content of each artifacts, as specified in
-    ETSI GS NFV-SOL004. The VNF Package MUST include VNF Identification
-    Data to uniquely identify the resource for a given VNF provider. The
-    identification data must include: an identifier for the VNF, the name
-    of the VNF as was given by the VNF provider, VNF description, VNF
-    provider, and version.
+    The VNF or PNF package Manifest file **MUST** contain: VNF or PNF package
+    meta-data, a list of all artifacts (both internal and external) entry's
+    including their respected URI's, an algorithm to calculate a digest and
+    a digest result calculated on the content of each artifacts, as specified
+    in ETSI GS NFV-SOL004.
 
 .. req::
     :id: R-21322
@@ -182,16 +189,161 @@ VNF Package Contents
     :keyword: MUST
     :introduced: casablanca
 
-    The VNF provider MUST enumerate all of the open source licenses
+    The VNF provider **MUST** enumerate all of the open source licenses
     their VNF(s) incorporate. CSAR License directory as per ETSI SOL004.
 
     for example ROOT\\Licenses\\ **License_term.txt**
 
+.. req::
+    :id: R-293901
+    :target: VNF or PNF CSAR PACKAGE
+    :keyword: MUST
+    :introduced: dublin
 
-VNF Package Authenticity
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    The VNF or PNF CSAR PACKAGE with TOSCA-Metadata **MUST** include following
+    additional keywords pointing to TOSCA files:
+    
+      - ETSI-Entry-Manifest
+
+      - ETSI-Entry-Change-Log
+
+    Note: For a CSAR containing a TOSCA-Metadata directory, which includes
+    the TOSCA.meta metadata file. The TOSCA.meta metadata file includes block_0
+    with the Entry-Definitions keyword pointing to a TOSCA definitions YAML
+    file used as entry for parsing the contents of the overall CSAR archive.
+
+.. req::
+    :id: R-146092
+    :target: VNF or PNF TOSCA PACKAGE
+    :keyword: MUST
+    :introduced: dublin
+
+    The VNF or PNF TOSCA CSAR package Manifest file **MUST** contain: non-mano
+    artifact set with following ONAP public tag
+
+      - onap_ves_events: contains VES registration files
+
+      - onap_pm_dictionary: contains the PM dictionary files
+
+      - onap_yang_modules: contains Yang module files for configurations
+
+      - onap_ansible_playbooks: contains any ansible_playbooks
+
+      - onap_others: contains any other non_MANO artifacts, e.g. informational
+        documents
+
+.. req::
+    :id: R-221914
+    :target: VNF or PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The VNF or PNF package **MUST** contain a a human-readable change log text
+    file. The Change Log file keeps a history describing any changes in the VNF
+    or PNF package. The Change Log file is kept up to date continuously from
+    the creation of the CSAR package.
+
+.. req::
+    :id: R-57019
+    :target: PNF CSAR PACKAGE
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNF TOSCA CSAR PACKAGE Manifest file **MUST** start with the PNF
+    package metadata in the form of a name-value pairs. Each pair shall appear
+    on a different line. The name is specified as following:
+
+      - pnfd_provider
+
+      - pnfd_name
+
+      - pnfd_release_date_time
+
+      - pnfd_archive_version
+
+.. req::
+    :id: R-795126
+    :target: VNF CSAR PACKAGE
+    :keyword: MUST
+    :introduced: dublin
+
+    The VNF TOSCA CSAR package Manifest file **MUST** start with the VNF
+    package metadata in the form of a name-value pairs. Each pair shall appear
+    on a different line. The name is specified as following:
+
+      - vnf_provider_id
+
+      - vnf_product_name
+
+      - vnf_release_date_time
+
+      - vnf_package_version
+
+
+VNF or PNF Package Authenticity and Integrity
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+VNF or PNF CSAR package shall support a method for authenticity and integrity
+assurance. According to ETSI SOL004 the onboarding package shall be secured.
+ETSI SOL004 provides two options:
+
+Option 1 - One Digest for each components of the VNF or PNF package. The table
+of hashes is included in the manifest file, which is signed with the VNF or PNF
+provider private key. A signing certificate including the provider’s public key
+shall be included in the package.
+
+Option 2 - The complete CSAR file shall be digitally signed with the provider
+private key. The provider delivers one zip file consisting of the CSAR file, a
+signature file and a certificate file that includes the VNF provider public
+key.
+
+*Dublin release note*
+
+    - VNFSDK pre-onboarding validation procedure:
+
+      - Option 1: specified in ETSI SOL004 is supported.
+
+      - Option 2: Will be supported in the future releases.
+
+    - SDC onboarding procedure:
+
+      - Option 1: specified in ETSI SOL004 is supported.
 
-Will be added in future releases.
+      - Option 2: Will be supported in the future releases.
+
+.. req::
+    :id: R-787965
+    :target: VNF or PNF CSAR PACKAGE
+    :keyword: MUST
+    :introduced: dublin
+
+    If the VNF or PNF CSAR Package utilizes Option 2 for package security, then
+    the complete CSAR file **MUST** be digitally signed with the VNF or PNF
+    provider private key. The VNF or PNF provider delivers one zip file
+    consisting of the CSAR file, a signature file and a certificate file that
+    includes the VNF or PNF provider public key. The certificate may also be
+    included in the signature container, if the signature format allows that.
+    The VNF or PNF provider creates a zip file consisting of the CSAR file with
+    .csar extension, signature and certificate files. The signature and
+    certificate files must be siblings of the CSAR file with extensions .cms
+    and .cert respectively.
+
+
+.. req::
+    :id: R-130206
+    :target: VNF or PNF CSAR PACKAGE
+    :keyword: MUST
+    :introduced: dublin
+
+    If the VNF or PNF CSAR Package utilizes Option 2 for package security, then
+    the complete CSAR file **MUST** contain a Digest (a.k.a. hash) for each of
+    the components of the VNF or PNF package. The table of hashes is included
+    in the package manifest file, which is signed with the VNF or PNF provider
+    private key. In addition, the VNF or PNF provider MUST include a signing
+    certificate that includes the VNF or PNF provider public key, following a
+    TOSCA pre-defined naming convention and located either at the root of the
+    archive or in a predefined location specified by the TOSCA.meta file with
+    the corresponding entry named "ETSI-Entry-Certificate".
 
 
 VNF Package ONAP Extensions
@@ -454,18 +606,76 @@ TOSCA PNF Descriptor
 General
 ~~~~~~~~~~
 
+.. req::
+    :id: R-24632
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNF Descriptor (PNFD) provided by PNF vendor **MUST** comply with
+    TOSCA/YAML based Service template for PNF descriptor specified in ETSI
+    NFV-SOL001.
+
+
+.. req::
+    :id: R-998862
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNFD provided by a PNF vendor **MUST** comply with the following TOSCA
+    Types as specified in ETSI NFV-SOL001 standard:
+
+      - tosca.nodes.nfv.PNF
+
+      - tosca.nodes.nfv.PnfExtCp
+
 
 Data Types
 ~~~~~~~~~~~~~~
 
+.. req::
+    :id: R-484843
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNFD provided by a PNF vendor **MUST** comply with the following Data
+    Types as specified in ETSI NFV-SOL001 standard:
+
+      - tosca.datatypes.nfv.CpProtocolData
+
+      - tosca.datatypes.nfv.AddressData
+
+      - tosca.datatypes.nfv.L2AddressData
+
+      - tosca.datatypes.nfv.L3AddressData
+
+      - tosca.datatypes.nfv.LocationInfo
+
+      - tosca.datatypes.nfv.CivicAddressElement
+
 
 Artifact Types
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
+No artifact type is currently supported in ONAP.
+
 
 Capability Types
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
+.. req::
+    :id: R-177937
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNFD provided by a PNF vendor **MUST** comply with the following
+    Capabilities Types as specified in ETSI NFV-SOL001 standard:
+
+      - tosca.datatypes.nfv.VirtualLinkable
+
 
 Requirements Types
 ~~~~~~~~~~~~~~~~~~~~~~~~
@@ -474,22 +684,63 @@ Requirements Types
 Relationship Types
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
+.. req::
+    :id: R-64064
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNFD provided by a PNF vendor **MUST** comply with the following
+    Relationship Types as specified in ETSI NFV-SOL001 standard:
+    
+      - tosca.datatypes.nfv.VirtualLinksTo
+
 
 Interface Types
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
+No interface type is currently supported in ONAP.
+
 
 Node Types
 ~~~~~~~~~~~~~~
 
+.. req::
+    :id: R-535009
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNFD provided by a PNF vendor **MUST** comply with the following Node
+    Types as specified in ETSI NFV-SOL001 standard:
+
+      - tosca.nodes.nfv.PNF
+
+      - tosca.nodes.nfv.PnfExtCp
+
+      - tosca.nodes.nfv.Cp
+
+
 
 Group Types
 ~~~~~~~~~~~~~~
 
+No group type is currently supported in ONAP.
+
 
 Policy Types
 ~~~~~~~~~~~~~~
 
+.. req::
+    :id: R-596064
+    :target: PNF
+    :keyword: MUST
+    :introduced: dublin
+
+    The PNFD provided by a PNF vendor **MUST** comply with the following Policy
+    Types as specified in ETSI NFV-SOL001 standard:
+
+      - tosca.datatypes.nfv.SecurityGroupRule
 
 
 +--------------------------------------------------------------------+