diff options
author | 2019-08-14 17:38:12 +0000 | |
---|---|---|
committer | 2019-08-14 17:38:12 +0000 | |
commit | d7a5abf31ad90fef5b046bc545b72a84fec449cf (patch) | |
tree | 2ae1450495f783bdc5b8b3f5ebb7c91949c08e23 /docs | |
parent | 8b0063f50363fc701c8230b5871c2931bd93d663 (diff) |
VNFRQTS - TOSCA documentation break down
Issue-ID: VNFRQTS-656
Signed-off-by: Hagop Bozawglanian <hagop.bozawglanian@att.com>
Change-Id: Ice35725a1c597507e8f2762d7b1af8cbb8fd7466
Diffstat (limited to 'docs')
-rw-r--r-- | docs/Chapter5/Tosca.rst | 1377 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/Image1.png (renamed from docs/Image1.png) | bin | 113795 -> 113795 bytes | |||
-rw-r--r-- | docs/Chapter5/Tosca/Image2.png (renamed from docs/Image2.png) | bin | 50746 -> 50746 bytes | |||
-rwxr-xr-x | docs/Chapter5/Tosca/LCM_config.csv (renamed from docs/Chapter5/LCM_config.csv) | 0 | ||||
-rwxr-xr-x | docs/Chapter5/Tosca/NFV_data_type.csv (renamed from docs/Chapter5/NFV_data_type.csv) | 0 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/ONAP HPA Requirements.rst | 240 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/ONAP NFV Tosca.rst | 422 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/ONAP Tosca Overview.rst | 105 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/ONAP Tosca PNF Descriptor.rst | 143 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/ONAP Tosca VNF Descriptor.rst | 252 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/ONAP VNF or PNF CSAR Package.rst | 275 | ||||
-rwxr-xr-x | docs/Chapter5/Tosca/TOSCA_descriptor.csv (renamed from docs/Chapter5/TOSCA_descriptor.csv) | 0 | ||||
-rw-r--r-- | docs/Chapter5/Tosca/index.rst | 17 | ||||
-rw-r--r-- | docs/Chapter5/index.rst | 2 |
14 files changed, 1455 insertions, 1378 deletions
diff --git a/docs/Chapter5/Tosca.rst b/docs/Chapter5/Tosca.rst deleted file mode 100644 index 8d20774..0000000 --- a/docs/Chapter5/Tosca.rst +++ /dev/null @@ -1,1377 +0,0 @@ -.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. - -.. Licensed under the Creative Commons License, Attribution 4.0 Intl. - (the "License"); you may not use this documentation except in compliance - with the License. You may obtain a copy of the License at - -.. https://creativecommons.org/licenses/by/4.0/ - -.. Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - -ONAP TOSCA VNFD or PNFD Requirements ------------------------------------- - - -Introduction -^^^^^^^^^^^^ - -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/PNF package are described as well -and they are based on ETSI NFV-SOL004 standard. - -References -^^^^^^^^^^^^^^^^^^ - - 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.6.1 + NFV CR NFVSOL(18)000746r3. - -Intended Audience -^^^^^^^^^^^^^^^^^^ - -This document is intended for developers of VNF TOSCA templates that -will be orchestrated by ONAP. The document is also applicable for -creating RFP’s with the list of required TOSCA/YAML features -supported by VNF provider. - -Scope -^^^^^^^^^^^^^^^^ - -ONAP implementations of Network Cloud supports TOSCA Templates, also -referred to as TOSCA in this document. - -ONAP requires the TOSCA Templates to follow a specific format. This -document provides the mandatory, recommended, and optional requirements -associated with this format. - -Overview -^^^^^^^^^^^^^^^^ - -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 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 or PNF package structure is align to the NFV TOSCA protocol, -and supports CSAR - -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 or PNF CSAR Package -^^^^^^^^^^^^^^^^^^^^^^^^ - -CSAR Overview -~~~~~~~~~~~~~~~~ - -TOSCA YAML CSAR file is an archive file using the ZIP file format whose -structure complies with the TOSCA Simple Profile YAML v1.2 Specification. -The CSAR file may have one of the two following structures: - - - CSAR containing a TOSCA-Metadata directory, which includes the TOSCA.meta - metadata file providing an entry information for processing a CSAR file. - - - CSAR containing a single yaml (.yml or .yaml) file at the root of the - archive. The yaml file is a TOSCA definition template that contains a - metadata section with template_name and template_version metadata. This - file is the CSAR Entry-Definitions file. - -VNF Package Structure and Format -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. req:: - :id: R-51347 - :target: VNF or PNF - :keyword: MUST - :introduced: casablanca - :updated: dublin - - 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 or PNF - :keyword: MUST - :introduced: casablanca - :updated: dublin - - 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 - - The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension. - - -VNF Package Contents -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. req:: - :id: R-10087 - :target: VNF or PNF CSAR PACKAGE - :keyword: MUST - :introduced: casablanca - :updated: dublin - - 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. - -.. req:: - :id: R-01123 - :target: VNF or PNF - :keyword: MUST - :introduced: casablanca - :updated: dublin - - 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 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The VNF provider **MUST** provide their testing scripts to support - testing as specified in ETSI NFV-SOL004 - Testing directory in CSAR - -.. req:: - :id: R-40820 - :target: VNF or PNF TOSCA PACKAGE - :keyword: MUST - :introduced: casablanca - :updated: dublin - - The VNF or PNF TOSCA PACKAGE **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 - - 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 - - If one or more non-MANO artifact(s) is included in the VNF or PNF TOSCA CSAR - package, the Manifest file in this CSAR package **MUST** contain: non-MANO - artifact set which MAY contain 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: Will be supported in the future releases. - - Option 2: specified in ETSI SOL004 is supported. - -.. 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 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. TOACA data type extension tosca.datatypes.nfv.injectFile is used for vCPE - use case. -2. ONAP extensions for VNF package that is currently proposed for Dublin - release is VES extension described below. - -TOSCA Introduction -^^^^^^^^^^^^^^^^^^^ - -TOSCA defines a Meta model for defining IT services. This Meta model -defines both the structure of a service as well as how to manage it. A -Topology Template (also referred to as the topology model of a service) -defines the structure of a service. Plans define the process models that -are used to create and terminate a service as well as to manage a -service during its whole lifetime. - -A Topology Template consists of a set of Node Templates and Relationship -Templates that together define the topology model of a service as a (not -necessarily connected) directed graph. A node in this graph is -represented by a *Node Template*. A Node Template specifies the -occurrence of a Node Type as a component of a service. A *Node Type* -defines the properties of such a component (via *Node Type Properties*) -and the operations (via *Interfaces*) available to manipulate the -component. Node Types are defined separately for reuse purposes and a -Node Template references a Node Type and adds usage constraints, such as -how many times the component can occur. - -|image1| - -Figure 1: Structural Elements of Service Template and their Relations - -TOSCA Modeling Principles & Data Model -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This section describing TOSCA modeling principles and data model for -NFV, which shall be based on [TOSCA-1.0] and [TOSCA-Simple-Profile-YAML -V1.0], or new type based on ETSI NFV requirements, etc. - -TOSCA VNF Descriptor -^^^^^^^^^^^^^^^^^^^^^^^^^ - -General -~~~~~~~~~~ - -.. req:: - :id: R-35854 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The VNF Descriptor (VNFD) provided by VNF vendor **MUST** comply with - TOSCA/YAML based Service template for VNF descriptor specified in - ETSI NFV-SOL001. - - **Note**: As the ETSI NFV-SOL001 is work in progress the below tables - summarizes the TOSCA definitions agreed to be part of current version - of NFV profile and that VNFD MUST comply with in ONAP Release 2+ - Requirements. - - -.. req:: - :id: R-65486 - :target: VNF - :keyword: MUST - :introduced: casablanca - :updated: dublin - - The VNFD **MUST** comply with ETSI GS NFV-SOL001 specification endorsing - the above mentioned NFV Profile and maintaining the gaps with the - requirements specified in ETSI GS NFV-IFA011 standard. - - -.. req:: - :id: R-17852 - :target: VNF - :keyword: MAY - :introduced: casablanca - - The VNFD **MAY** include TOSCA/YAML definitions that are not part of - NFV Profile. If provided, these definitions MUST comply with TOSCA - Simple Profile in YAML v.1.2. - -.. req:: - :id: R-46527 - :target: VNF - :keyword: MUST - :introduced: casablanca - - A VNFD is a deployment template which describes a VNF in terms of - deployment and operational behavior requirements. It contains - virtualized resources (nodes) requirements as well as connectivity - and interfaces requirements and **MUST** comply with info elements - specified in ETSI GS NFV-IFA 011. The main parts of the VNFD are - the following: - - - VNF topology: it is modeled in a cloud agnostic way using virtualized - containers and their connectivity. Virtual Deployment Units (VDU) - describe the capabilities of the virtualized containers, such as - virtual CPU, RAM, disks; their connectivity is modeled with VDU - Connection Point Descriptors (VduCpd), Virtual Link Descriptors - (VnfVld) and VNF External Connection Point Descriptors - (VnfExternalCpd); - - - VNF deployment aspects: they are described in one or more - deployment flavours, including configurable parameters, instantiation - levels, placement constraints (affinity / antiaffinity), minimum and - maximum VDU instance numbers. Horizontal scaling is modeled with - scaling aspects and the respective scaling levels in the deployment - flavours; - - **Note**: The deployment aspects (deployment flavour etc.) are postponed - for future ONAP releases. - - - VNF lifecycle management (LCM) operations: describes the LCM operations - supported per deployment flavour, and their input parameters; - Note, thatthe actual LCM implementation resides in a different layer, - namely referring to additional template artifacts. - -.. req:: - :id: R-15837 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The following table defines the major TOSCA Types specified in - ETSI NFV-SOL001 standard draft. The VNFD provided by a VNF vendor - **MUST** comply with the below definitions: - - -.. csv-table:: **TOSCA Definition** - :file: TOSCA_descriptor.csv - :header-rows: 1 - :align: center - :widths: auto - -Data Types -~~~~~~~~~~~~ - -.. req:: - :id: R-54356 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The below table includes the data types used by NFV node and is based - on TOSCA/YAML constructs specified in draft GS NFV-SOL 001. The node - data definitions/attributes used in VNFD **MUST** comply with the below - table. - -.. csv-table:: **NFV Data Types** - :file: NFV_data_type.csv - :header-rows: 1 - :align: center - :widths: auto - -.. req:: - :id: R-54876 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The below table describes the data types used for LCM configuration - and is based on TOSCA constructs specified in draft GS NFV-SOL 001. - The LCM configuration data elements used in VNFD **MUST** comply - with the below table. - -.. csv-table:: **LCM Configuration** - :file: LCM_config.csv - :header-rows: 1 - :align: center - :widths: auto - -Artifact Types -~~~~~~~~~~~~~~~~~~~~~~~~ - -No artifact type is currently supported in ONAP. - -Capability Types -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. req:: - :id: R-67895 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The VNFD provided by VNF vendor may use the below described TOSCA - capabilities. An on-boarding entity (ONAP SDC) **MUST** support them. - - **tosca.capabilities.nfv.VirtualBindable** - - A node type that includes the VirtualBindable capability indicates - that it can be pointed by **tosca.relationships.nfv.VirtualBindsTo** - relationship type. - - **tosca.capabilities.nfv.VirtualLinkable** - - A node type that includes the VirtualLinkable capability indicates - that it can be pointed by **tosca.relationships.nfv.VirtualLinksTo** - relationship. - - **tosca.capabilities.nfv.ExtVirtualLinkable** - - A node type that includes the ExtVirtualLinkable capability - indicates that it can be pointed by - **tosca.relationships.nfv.VirtualLinksTo** relationship. - - **Note**: This capability type is used in Casablanca how it does - not exist in the last SOL001 draft - - **tosca.capabilities.nfv.VirtualCompute** and - **tosca.capabilities.nfv.VirtualStorage** includes flavours of VDU - - -Relationship Types -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. req:: - :id: R-95321 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The VNFD provided by VNF vendor may use the below described TOSCA - relationships. An on-boarding entity (ONAP SDC) **MUST** support them. - - **tosca.relationships.nfv.VirtualBindsTo** - - This relationship type represents an association relationship between - VDU and CP node types. - - **tosca.relationships.nfv.VirtualLinksTo** - - This relationship type represents an association relationship between - the VduCpd's and VirtualLinkDesc node types. - - -Interface Types -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. req:: - :id: R-32155 - :target: VNF - :keyword: MUST - :introduced: casablanca - - The VNFD provided by VNF vendor may use the below described TOSCA - interface types. An on-boarding entity (ONAP SDC) **MUST** support them. - - **tosca.interfaces.nfv.vnf.lifecycle.Nfv** supports LCM operations - -+--------------------------------------------------------------------+ -| +--------------------------------------------------------------+ | -| | tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0 | | -| | | | -| | description: VNFD TOSCA file demo | | -| | | | -| | imports: | | -| | | | -| | - TOSCA\_definition\_nfv\_1\_0.yaml | | -| | | | -| | - TOSCA\_definition\_nfv\_ext\_1\_0.yaml | | -| | | | -| | | **node\_types: | | -| | tosca.nodes.nfv.VNF.vOpenNAT: | | -| | derived\_from:** tosca.nodes.nfv.VNF | | -| | | **requirements: | | -| | **- **sriov\_plane: | | -| | capability:** tosca.capabilities.nfv.VirtualLinkable | | -| | | **node:** tosca.nodes.nfv.VnfVirtualLinkDesc | | -| | | **relationship:** tosca.relationships.nfv.VirtualLinksTo | | -| +--------------------------------------------------------------+ | -+====================================================================+ -+--------------------------------------------------------------------+ - - - -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. - - -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 -~~~~~~~~~~~~~~~~~~~~~~~~ - - -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 - - -HPA Requirements -^^^^^^^^^^^^^^^^^^ - -1. SR-IOV Passthrought - -Definitions of SRIOV\_Port are necessary if VDU supports SR-IOV. Here is -an example. - -.. code-block:: yaml - - node\_templates: - - vdu\_vNat: - - SRIOV\_Port: - - attributes: - - tosca\_name: SRIOV\_Port - - properties: - - virtual\_network\_interface\_requirements: - - - name: sriov - - support\_mandatory: false - - description: sriov - - requirement: - - SRIOV: true - - role: root - - description: sriov port - - layer\_protocol: ipv4 - - requirements: - - - virtual\_binding: - - capability: virtual\_binding - - node: vdu\_vNat - - relationship: - - type: tosca.relationships.nfv.VirtualBindsTo - - - virtual\_link: - - node: tosca.nodes.Root - - type: tosca.nodes.nfv.VduCpd - - substitution\_mappings: - - requirements: - - sriov\_plane: - - - SRIOV\_Port - - - virtual\_link - - node\_type: tosca.nodes.nfv.VNF.vOpenNAT - - -2. Hugepages - -Definitions of mem\_page\_size as one property shall be added to -Properties and set the value to large if one VDU node supports -huagepages. Here is an example. - -.. code-block:: yaml - - node\_templates: - - vdu\_vNat: - - Hugepages: - - attributes: - - tosca\_name: Huge\_pages\_demo - - properties: - - mem\_page\_size:large - - -3. NUMA (CPU/Mem) - -Likewise, we shall add definitions of numa to -requested\_additional\_capabilities if we wand VUD nodes to support -NUMA. Here is an example. - -.. code-block:: yaml - - topology\_template: - - node\_templates: - - vdu\_vNat: - - capabilities: - - virtual\_compute: - - properties: - - virtual\_memory: - - numa\_enabled: true - - virtual\_mem\_size: 2 GB - - requested\_additional\_capabilities: - - numa: - - support\_mandatory: true - - requested\_additional\_capability\_name: numa - - target\_performance\_parameters: - - hw:numa\_nodes: "2" - - hw:numa\_cpus.0: "0,1" - - hw:numa\_mem.0: "1024" - - hw:numa\_cpus.1: "2,3,4,5" - - hw:numa\_mem.1: "1024" - - -4. Hyper-Theading - -Definitions of Hyper-Theading are necessary as one of -requested\_additional\_capabilities of one VUD node if that node -supports Hyper-Theading. Here is an example. - -.. code-block:: yaml - - topology\_template: - - node\_templates: - - vdu\_vNat: - - capabilities: - - virtual\_compute: - - properties: - - virtual\_memory: - - numa\_enabled: true - - virtual\_mem\_size: 2 GB - - requested\_additional\_capabilities: - - hyper\_threading: - - support\_mandatory: true - - requested\_additional\_capability\_name: hyper\_threading - - target\_performance\_parameters: - - hw:cpu\_sockets : "2" - - hw:cpu\_threads : "2" - - hw:cpu\_cores : "2" - - hw:cpu\_threads\_policy: "isolate" - - -5. OVS+DPDK - -Definitions of ovs\_dpdk are necessary as one of -requested\_additional\_capabilities of one VUD node if that node -supports dpdk. Here is an example. - -.. code-block:: yaml - - topology\_template: - - node\_templates: - - vdu\_vNat: - - capabilities: - - virtual\_compute: - - properties: - - virtual\_memory: - - numa\_enabled: true - - virtual\_mem\_size: 2 GB - - requested\_additional\_capabilities: - - ovs\_dpdk: - - support\_mandatory: true - - requested\_additional\_capability\_name: ovs\_dpdk - - target\_performance\_parameters: - - sw:ovs\_dpdk: "true" - - - - -NFV TOSCA Type Definition -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -tosca.capabilites.nfv.VirtualCompute -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This capability is used with the properties specified in ETSI SOL001 draft. - -tosca.nodes.nfv.VDU.Compute -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The NFV Virtualization Deployment Unit (VDU) compute node type -represents a VDU entity which it describes the deployment and -operational behavior of a VNF component (VNFC), as defined by **[ETSI -NFV IFA011].** - -+-----------------------+-------------------------------+ -| Shorthand Name | VDU.Compute | -+=======================+===============================+ -| Type Qualified Name | tosca:VDU.Compute | -+-----------------------+-------------------------------+ -| Type URI | tosca.nodes.nfv.VDU.Compute | -+-----------------------+-------------------------------+ -| derived\_from | tosca.nodes.Compute | -+-----------------------+-------------------------------+ - - - -Attributes -++++++++++++ - -None - - -Capabilities -++++++++++++++ - -+------------+--------------------+------------+------------------------------+ -| Name | Type | Constraints| Description | -+============+====================+============+==============================+ -| virtual\ | tosca.\ | | Describes virtual compute | -| _compute | capabilities.nfv.\ | | resources capabilities. | -| | VirtualCompute | | | -+------------+--------------------+------------+------------------------------+ -| monitoring\| tosca.\ | None | Monitoring parameter, which | -| _parameter | capabilities.nfv.\ | | can be tracked for a VNFC | -| | Metric | | based on this VDU | -| | | | | -| | | | Examples include: | -| | | | memory-consumption, | -| | | | CPU-utilisation, | -| | | | bandwidth-consumption, VNFC | -| | | | downtime, etc. | -+------------+--------------------+------------+------------------------------+ -| Virtual\ | tosca.\ | | Defines ability of | -| _binding | capabilities.nfv.\ | | VirtualBindable | -| | VirtualBindable | | | -| | | | | -| | editor note: need | | | -| | to create a | | | -| | capability type | | | -+------------+--------------------+------------+------------------------------+ - - - -Definition -++++++++++++ - -.. code-block:: yaml - - tosca.nodes.nfv.VDU.Compute: - - derived\_from: tosca.nodes.Compute - - properties: - - name: - - type: string - - required: true - - description: - - type: string - - required: true - - boot\_order: - - type: list # explicit index (boot index) not necessary, contrary to IFA011 - - entry\_schema: - - type: string - - required: false - - nfvi\_constraints: - - type: list - - entry\_schema: - - type: string - - required: false - - configurable\_properties: - - type: map - - entry\_schema: - - type: tosca.datatypes.nfv.VnfcConfigurableProperties - - required: true - - attributes: - - private\_address: - - status: deprecated - - public\_address: - - status: deprecated - - networks: - - status: deprecated - - ports: - - status: deprecated - - capabilities: - - virtual\_compute: - - type: tosca.capabilities.nfv.VirtualCompute - - virtual\_binding: - - type: tosca.capabilities.nfv.VirtualBindable - - #monitoring\_parameter: - - # modeled as ad hoc (named) capabilities in VDU node template - - # for example: - - #capabilities: - - # cpu\_load: tosca.capabilities.nfv.Metric - - # memory\_usage: tosca.capabilities.nfv.Metric - - host: #Editor note: FFS. How this capabilities should be used in NFV Profile| - - type: *tosca.capabilities.Container* - - valid\_source\_types: - [*tosca.nodes.SoftwareComponent*] - - occurrences: [0,UNBOUNDED] - - endpoint: - - occurrences: [0,0] - - os: - - occurrences: [0,0] - - scalable: - #Editor note: FFS. How this capabilities should be used in NFV Profile - - type: *tosca.capabilities.Scalable* - - binding: - - occurrences: [0,UNBOUND] - - requirements: - - - virtual\_storage: - - capability: tosca.capabilities.nfv.VirtualStorage - - relationship: tosca.relationships.nfv.VDU.AttachedTo - - node: tosca.nodes.nfv.VDU.VirtualStorage - - occurences: [ 0, UNBOUNDED ] - - - local\_storage: #For NFV Profile, this requirement is deprecated. - - occurrences: [0,0] - - artifacts: - - - sw\_image: - - file: - - type: tosca.artifacts.nfv.SwImage - - -Artifact -++++++++++ - -Note: currently not supported. - -+--------+---------+----------------+------------+------------------------+ -| Name | Required| Type | Constraints| Description | -+========+=========+================+============+========================+ -| SwImage| Yes | tosca.\ | | Describes the software | -| | | artifacts.nfv.\| | image which is directly| -| | | SwImage | | realizing this virtual | -| | | | | storage | -+--------+---------+----------------+------------+------------------------+ - - -|image2| - - - -tosca.nodes.nfv.VDU.VirtualStorage -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The NFV VirtualStorage node type represents a virtual storage entity -which it describes the deployment and operational behavior of a virtual -storage resources, as defined by **[ETSI NFV IFA011].** - -**[editor note]** open issue: should NFV profile use the current storage -model as described in YAML 1.1. Pending on Shitao proposal (see -NFVIFA(17)000110 discussion paper) - -**[editor note]** new relationship type as suggested in Matt -presentation. Slide 8. With specific rules of "valid\_target\_type" - -+---------------------------+--------------------------------------+ -| **Shorthand Name** | VirtualStorage | -+===========================+======================================+ -| **Type Qualified Name** | tosca: VirtualStorage | -+---------------------------+--------------------------------------+ -| **Type URI** | tosca.nodes.nfv.VDU.VirtualStorage | -+---------------------------+--------------------------------------+ -| **derived\_from** | tosca.nodes.Root | -+---------------------------+--------------------------------------+ - -tosca.artifacts.nfv.SwImage -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+---------------------------+------------------------------------+ -| **Shorthand Name** | SwImage | -+===========================+====================================+ -| **Type Qualified Name** | tosca:SwImage | -+---------------------------+------------------------------------+ -| **Type URI** | tosca.artifacts.nfv.SwImage | -+---------------------------+------------------------------------+ -| **derived\_from** | tosca.artifacts.Deployment.Image | -+---------------------------+------------------------------------+ - -Properties -++++++++++++ - -+-----------------+---------+----------+------------+-------------------------+ -| Name | Required| Type | Constraints| Description | -+=================+=========+==========+============+=========================+ -| name | yes | string | | Name of this software | -| | | | | image | -+-----------------+---------+----------+------------+-------------------------+ -| version | yes | string | | Version of this software| -| | | | | image | -+-----------------+---------+----------+------------+-------------------------+ -| checksum | yes | string | | Checksum of the software| -| | | | | image file | -+-----------------+---------+----------+------------+-------------------------+ -| container\ | yes | string | | The container format | -| _format | | | | describes the container | -| | | | | file format in which | -| | | | | software image is | -| | | | | provided. | -+-----------------+---------+----------+------------+-------------------------+ -| disk\_format | yes | string | | The disk format of a | -| | | | | software image is the | -| | | | | format of the underlying| -| | | | | disk image | -+-----------------+---------+----------+------------+-------------------------+ -| min\_disk | yes | scalar-\ | | The minimal disk size | -| | | unit.size| | requirement for this | -| | | | | software image. | -+-----------------+---------+----------+------------+-------------------------+ -| min\_ram | no | scalar-\ | | The minimal RAM | -| | | unit.size| | requirement for this | -| | | | | software image. | -+-----------------+---------+----------+------------+-------------------------+ -| Size | yes | scalar-\ | | The size of this | -| | | unit.size| | software image | -+-----------------+---------+----------+------------+-------------------------+ -| sw\_image | yes | string | | A reference to the | -| | | | | actual software image | -| | | | | within VNF Package, or | -| | | | | url. | -+-----------------+---------+----------+------------+-------------------------+ -| operating\ | no | string | | Identifies the operating| -| _system | | | | system used in the | -| | | | | software image. | -+-----------------+---------+----------+------------+-------------------------+ -| supported\ | no | list | | Identifies the | -| _virtualization\| | | | virtualization | -| _enviroment | | | | environments (e.g. | -| | | | | hypervisor) compatible | -| | | | | with this software image| -+-----------------+---------+----------+------------+-------------------------+ - - -Definition -+++++++++++ - -.. code-block:: yaml - - tosca.artifacts.nfv.SwImage: - - derived\_from: tosca.artifacts.Deployment.Image - - properties or metadata: - - #id: - - # node name - - name: - - type: string - - required: true - - version: - - type: string - - required: true - - checksum: - - type: string - - required: true - - container\_format: - - type: string - - required: true - - disk\_format: - - type: string - - required: true - - min\_disk: - - type: scalar-unit.size # Number - - required: true - - min\_ram: - - type: scalar-unit.size # Number - - required: false - - size: - - type: scalar-unit.size # Number - - required: true - - sw\_image: - - type: string - - required: true - - operating\_system: - - type: string - - required: false - - supported\_virtualisation\_environments: - - type: list - - entry\_schema: - - type: string - - required: false - - -.. |image1| image:: ../Image1.png - :width: 5.76806in - :height: 4.67161in - -.. |image2| image:: ../Image2.png - :width: 5.40486in - :height: 2.46042in diff --git a/docs/Image1.png b/docs/Chapter5/Tosca/Image1.png Binary files differindex b671b19..b671b19 100644 --- a/docs/Image1.png +++ b/docs/Chapter5/Tosca/Image1.png diff --git a/docs/Image2.png b/docs/Chapter5/Tosca/Image2.png Binary files differindex 65b9c8c..65b9c8c 100644 --- a/docs/Image2.png +++ b/docs/Chapter5/Tosca/Image2.png diff --git a/docs/Chapter5/LCM_config.csv b/docs/Chapter5/Tosca/LCM_config.csv index 5fdcebc..5fdcebc 100755 --- a/docs/Chapter5/LCM_config.csv +++ b/docs/Chapter5/Tosca/LCM_config.csv diff --git a/docs/Chapter5/NFV_data_type.csv b/docs/Chapter5/Tosca/NFV_data_type.csv index a8a42c6..a8a42c6 100755 --- a/docs/Chapter5/NFV_data_type.csv +++ b/docs/Chapter5/Tosca/NFV_data_type.csv diff --git a/docs/Chapter5/Tosca/ONAP HPA Requirements.rst b/docs/Chapter5/Tosca/ONAP HPA Requirements.rst new file mode 100644 index 0000000..d73bc6f --- /dev/null +++ b/docs/Chapter5/Tosca/ONAP HPA Requirements.rst @@ -0,0 +1,240 @@ +.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. + +.. Licensed under the Creative Commons License, Attribution 4.0 Intl. + (the "License"); you may not use this documentation except in compliance + with the License. You may obtain a copy of the License at + +.. https://creativecommons.org/licenses/by/4.0/ + +.. Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +HPA Requirements +----------------- + +1. SR-IOV Passthrought + +Definitions of SRIOV_Port are necessary if VDU supports SR-IOV. Here is +an example. + +.. code-block:: yaml + + node_templates: + + vdu_vNat: + + SRIOV_Port: + + attributes: + + tosca_name: SRIOV_Port + + properties: + + virtual_network_interface_requirements: + + - name: sriov + + support_mandatory: false + + description: sriov + + requirement: + + SRIOV: true + + role: root + + description: sriov port + + layer_protocol: ipv4 + + requirements: + + - virtual_binding: + + capability: virtual_binding + + node: vdu_vNat + + relationship: + + type: tosca.relationships.nfv.VirtualBindsTo + + - virtual_link: + + node: tosca.nodes.Root + + type: tosca.nodes.nfv.VduCpd + + substitution_mappings: + + requirements: + + sriov_plane: + + - SRIOV_Port + + - virtual_link + + node_type: tosca.nodes.nfv.VNF.vOpenNAT + + +2. Hugepages + +Definitions of mem_page_size as one property shall be added to +Properties and set the value to large if one VDU node supports +huagepages. Here is an example. + +.. code-block:: yaml + + node_templates: + + vdu_vNat: + + Hugepages: + + attributes: + + tosca_name: Huge_pages_demo + + properties: + + mem_page_size:large + + +3. NUMA (CPU/Mem) + +Likewise, we shall add definitions of numa to +requested_additional_capabilities if we wand VUD nodes to support +NUMA. Here is an example. + +.. code-block:: yaml + + topology_template: + + node_templates: + + vdu_vNat: + + capabilities: + + virtual_compute: + + properties: + + virtual_memory: + + numa_enabled: true + + virtual_mem_size: 2 GB + + requested_additional_capabilities: + + numa: + + support_mandatory: true + + requested_additional_capability_name: numa + + target_performance_parameters: + + hw:numa_nodes: "2" + + hw:numa_cpus.0: "0,1" + + hw:numa_mem.0: "1024" + + hw:numa_cpus.1: "2,3,4,5" + + hw:numa_mem.1: "1024" + + +4. Hyper-Theading + +Definitions of Hyper-Theading are necessary as one of +requested_additional_capabilities of one VUD node if that node +supports Hyper-Theading. Here is an example. + +.. code-block:: yaml + + topology_template: + + node_templates: + + vdu_vNat: + + capabilities: + + virtual_compute: + + properties: + + virtual_memory: + + numa_enabled: true + + virtual_mem_size: 2 GB + + requested_additional_capabilities: + + hyper_threading: + + support_mandatory: true + + requested_additional_capability_name: hyper_threading + + target_performance_parameters: + + hw:cpu_sockets : "2" + + hw:cpu_threads : "2" + + hw:cpu_cores : "2" + + hw:cpu_threads_policy: "isolate" + + +5. OVS+DPDK + +Definitions of ovs_dpdk are necessary as one of +requested_additional_capabilities of one VUD node if that node +supports dpdk. Here is an example. + +.. code-block:: yaml + + topology_template: + + node_templates: + + vdu_vNat: + + capabilities: + + virtual_compute: + + properties: + + virtual_memory: + + numa_enabled: true + + virtual_mem_size: 2 GB + + requested_additional_capabilities: + + ovs_dpdk: + + support_mandatory: true + + requested_additional_capability_name: ovs_dpdk + + target_performance_parameters: + + sw:ovs_dpdk: "true" + + diff --git a/docs/Chapter5/Tosca/ONAP NFV Tosca.rst b/docs/Chapter5/Tosca/ONAP NFV Tosca.rst new file mode 100644 index 0000000..527b00f --- /dev/null +++ b/docs/Chapter5/Tosca/ONAP NFV Tosca.rst @@ -0,0 +1,422 @@ +.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. + +.. Licensed under the Creative Commons License, Attribution 4.0 Intl. + (the "License"); you may not use this documentation except in compliance + with the License. You may obtain a copy of the License at + +.. https://creativecommons.org/licenses/by/4.0/ + +.. Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +NFV TOSCA Type Definition +------------------------- + +tosca.capabilites.nfv.VirtualCompute +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This capability is used with the properties specified in ETSI SOL001 draft. + +tosca.nodes.nfv.VDU.Compute +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The NFV Virtualization Deployment Unit (VDU) compute node type +represents a VDU entity which it describes the deployment and +operational behavior of a VNF component (VNFC), as defined by **[ETSI +NFV IFA011].** + ++-----------------------+-------------------------------+ +| Shorthand Name | VDU.Compute | ++=======================+===============================+ +| Type Qualified Name | tosca:VDU.Compute | ++-----------------------+-------------------------------+ +| Type URI | tosca.nodes.nfv.VDU.Compute | ++-----------------------+-------------------------------+ +| derived_from | tosca.nodes.Compute | ++-----------------------+-------------------------------+ + + + +Attributes +~~~~~~~~~~ + +None + + +Capabilities +~~~~~~~~~~~~ + ++------------+--------------------+------------+------------------------------+ +| Name | Type | Constraints| Description | ++============+====================+============+==============================+ +| virtual\ | tosca.\ | | Describes virtual compute | +| _compute | capabilities.nfv.\ | | resources capabilities. | +| | VirtualCompute | | | ++------------+--------------------+------------+------------------------------+ +| monitoring\| tosca.\ | None | Monitoring parameter, which | +| _parameter | capabilities.nfv.\ | | can be tracked for a VNFC | +| | Metric | | based on this VDU | +| | | | | +| | | | Examples include: | +| | | | memory-consumption, | +| | | | CPU-utilisation, | +| | | | bandwidth-consumption, VNFC | +| | | | downtime, etc. | ++------------+--------------------+------------+------------------------------+ +| Virtual\ | tosca.\ | | Defines ability of | +| _binding | capabilities.nfv.\ | | VirtualBindable | +| | VirtualBindable | | | +| | | | | +| | editor note: need | | | +| | to create a | | | +| | capability type | | | ++------------+--------------------+------------+------------------------------+ + + + +Definition +~~~~~~~~~~ + +.. code-block:: yaml + + tosca.nodes.nfv.VDU.Compute: + + derived_from: tosca.nodes.Compute + + properties: + + name: + + type: string + + required: true + + description: + + type: string + + required: true + + boot_order: + + type: list # explicit index (boot index) not necessary, contrary to IFA011 + + entry_schema: + + type: string + + required: false + + nfvi_constraints: + + type: list + + entry_schema: + + type: string + + required: false + + configurable_properties: + + type: map + + entry_schema: + + type: tosca.datatypes.nfv.VnfcConfigurableProperties + + required: true + + attributes: + + private_address: + + status: deprecated + + public_address: + + status: deprecated + + networks: + + status: deprecated + + ports: + + status: deprecated + + capabilities: + + virtual_compute: + + type: tosca.capabilities.nfv.VirtualCompute + + virtual_binding: + + type: tosca.capabilities.nfv.VirtualBindable + + #monitoring_parameter: + + # modeled as ad hoc (named) capabilities in VDU node template + + # for example: + + #capabilities: + + # cpu_load: tosca.capabilities.nfv.Metric + + # memory_usage: tosca.capabilities.nfv.Metric + + host: #Editor note: FFS. How this capabilities should be used in NFV Profile| + + type: *tosca.capabilities.Container* + + valid_source_types: + [*tosca.nodes.SoftwareComponent*] + + occurrences: [0,UNBOUNDED] + + endpoint: + + occurrences: [0,0] + + os: + + occurrences: [0,0] + + scalable: + #Editor note: FFS. How this capabilities should be used in NFV Profile + + type: *tosca.capabilities.Scalable* + + binding: + + occurrences: [0,UNBOUND] + + requirements: + + - virtual_storage: + + capability: tosca.capabilities.nfv.VirtualStorage + + relationship: tosca.relationships.nfv.VDU.AttachedTo + + node: tosca.nodes.nfv.VDU.VirtualStorage + + occurences: [ 0, UNBOUNDED ] + + - local_storage: #For NFV Profile, this requirement is deprecated. + + occurrences: [0,0] + + artifacts: + + - sw_image: + + file: + + type: tosca.artifacts.nfv.SwImage + + +Artifact +~~~~~~~~~~ + +Note: currently not supported. + ++--------+---------+----------------+------------+------------------------+ +| Name | Required| Type | Constraints| Description | ++========+=========+================+============+========================+ +| SwImage| Yes | tosca.\ | | Describes the software | +| | | artifacts.nfv.\| | image which is directly| +| | | SwImage | | realizing this virtual | +| | | | | storage | ++--------+---------+----------------+------------+------------------------+ + + +|image2| + + + +tosca.nodes.nfv.VDU.VirtualStorage +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The NFV VirtualStorage node type represents a virtual storage entity +which it describes the deployment and operational behavior of a virtual +storage resources, as defined by **[ETSI NFV IFA011].** + +**[editor note]** open issue: should NFV profile use the current storage +model as described in YAML 1.1. Pending on Shitao proposal (see +NFVIFA(17)000110 discussion paper) + +**[editor note]** new relationship type as suggested in Matt +presentation. Slide 8. With specific rules of "valid_target_type" + ++---------------------------+--------------------------------------+ +| **Shorthand Name** | VirtualStorage | ++===========================+======================================+ +| **Type Qualified Name** | tosca: VirtualStorage | ++---------------------------+--------------------------------------+ +| **Type URI** | tosca.nodes.nfv.VDU.VirtualStorage | ++---------------------------+--------------------------------------+ +| **derived_from** | tosca.nodes.Root | ++---------------------------+--------------------------------------+ + +tosca.artifacts.nfv.SwImage +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ++---------------------------+------------------------------------+ +| **Shorthand Name** | SwImage | ++===========================+====================================+ +| **Type Qualified Name** | tosca:SwImage | ++---------------------------+------------------------------------+ +| **Type URI** | tosca.artifacts.nfv.SwImage | ++---------------------------+------------------------------------+ +| **derived_from** | tosca.artifacts.Deployment.Image | ++---------------------------+------------------------------------+ + +Properties +~~~~~~~~~~ + ++-----------------+---------+----------+------------+-------------------------+ +| Name | Required| Type | Constraints| Description | ++=================+=========+==========+============+=========================+ +| name | yes | string | | Name of this software | +| | | | | image | ++-----------------+---------+----------+------------+-------------------------+ +| version | yes | string | | Version of this software| +| | | | | image | ++-----------------+---------+----------+------------+-------------------------+ +| checksum | yes | string | | Checksum of the software| +| | | | | image file | ++-----------------+---------+----------+------------+-------------------------+ +| container\ | yes | string | | The container format | +| _format | | | | describes the container | +| | | | | file format in which | +| | | | | software image is | +| | | | | provided. | ++-----------------+---------+----------+------------+-------------------------+ +| disk\_format | yes | string | | The disk format of a | +| | | | | software image is the | +| | | | | format of the underlying| +| | | | | disk image | ++-----------------+---------+----------+------------+-------------------------+ +| min\_disk | yes | scalar-\ | | The minimal disk size | +| | | unit.size| | requirement for this | +| | | | | software image. | ++-----------------+---------+----------+------------+-------------------------+ +| min\_ram | no | scalar-\ | | The minimal RAM | +| | | unit.size| | requirement for this | +| | | | | software image. | ++-----------------+---------+----------+------------+-------------------------+ +| Size | yes | scalar-\ | | The size of this | +| | | unit.size| | software image | ++-----------------+---------+----------+------------+-------------------------+ +| sw\_image | yes | string | | A reference to the | +| | | | | actual software image | +| | | | | within VNF Package, or | +| | | | | url. | ++-----------------+---------+----------+------------+-------------------------+ +| operating\ | no | string | | Identifies the operating| +| _system | | | | system used in the | +| | | | | software image. | ++-----------------+---------+----------+------------+-------------------------+ +| supported\ | no | list | | Identifies the | +| _virtualization\| | | | virtualization | +| _enviroment | | | | environments (e.g. | +| | | | | hypervisor) compatible | +| | | | | with this software image| ++-----------------+---------+----------+------------+-------------------------+ + + +Definition +~~~~~~~~~~ + +.. code-block:: yaml + + tosca.artifacts.nfv.SwImage: + + derived_from: tosca.artifacts.Deployment.Image + + properties or metadata: + + #id: + + # node name + + name: + + type: string + + required: true + + version: + + type: string + + required: true + + checksum: + + type: string + + required: true + + container_format: + + type: string + + required: true + + disk_format: + + type: string + + required: true + + min_disk: + + type: scalar-unit.size # Number + + required: true + + min_ram: + + type: scalar-unit.size # Number + + required: false + + size: + + type: scalar-unit.size # Number + + required: true + + sw_image: + + type: string + + required: true + + operating_system: + + type: string + + required: false + + supported_virtualisation_environments: + + type: list + + entry_schema: + + type: string + + required: false + + + +.. |image2| image:: Image2.png + :scale: 100% diff --git a/docs/Chapter5/Tosca/ONAP Tosca Overview.rst b/docs/Chapter5/Tosca/ONAP Tosca Overview.rst new file mode 100644 index 0000000..892e502 --- /dev/null +++ b/docs/Chapter5/Tosca/ONAP Tosca Overview.rst @@ -0,0 +1,105 @@ +.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. + +.. Licensed under the Creative Commons License, Attribution 4.0 Intl. + (the "License"); you may not use this documentation except in compliance + with the License. You may obtain a copy of the License at + +.. https://creativecommons.org/licenses/by/4.0/ + +.. Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Introduction +------------ + +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/PNF package are described as well +and they are based on ETSI NFV-SOL004 standard. + +References +^^^^^^^^^^ + + 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.6.1 + NFV CR NFVSOL(18)000746r3. + +Intended Audience +^^^^^^^^^^^^^^^^^ + +This document is intended for developers of VNF TOSCA templates that +will be orchestrated by ONAP. The document is also applicable for +creating RFP’s with the list of required TOSCA/YAML features +supported by VNF provider. + +Scope +^^^^^ + +ONAP implementations of Network Cloud supports TOSCA Templates, also +referred to as TOSCA in this document. + +ONAP requires the TOSCA Templates to follow a specific format. This +document provides the mandatory, recommended, and optional requirements +associated with this format. + +Overview +^^^^^^^^ + +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 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 or PNF package structure is align to the NFV TOSCA protocol, +and supports CSAR + +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. + +TOSCA Introduction +^^^^^^^^^^^^^^^^^^^ + +TOSCA defines a Meta model for defining IT services. This Meta model +defines both the structure of a service as well as how to manage it. A +Topology Template (also referred to as the topology model of a service) +defines the structure of a service. Plans define the process models that +are used to create and terminate a service as well as to manage a +service during its whole lifetime. + +A Topology Template consists of a set of Node Templates and Relationship +Templates that together define the topology model of a service as a (not +necessarily connected) directed graph. A node in this graph is +represented by a *Node Template*. A Node Template specifies the +occurrence of a Node Type as a component of a service. A *Node Type* +defines the properties of such a component (via *Node Type Properties*) +and the operations (via *Interfaces*) available to manipulate the +component. Node Types are defined separately for reuse purposes and a +Node Template references a Node Type and adds usage constraints, such as +how many times the component can occur. + +|image1| + +Figure 1: Structural Elements of Service Template and their Relations + +TOSCA Modeling Principles & Data Model +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section describing TOSCA modeling principles and data model for +NFV, which shall be based on [TOSCA-1.0] and [TOSCA-Simple-Profile-YAML +V1.0], or new type based on ETSI NFV requirements, etc. + +.. |image1| image:: Image1.png + :scale: 100% diff --git a/docs/Chapter5/Tosca/ONAP Tosca PNF Descriptor.rst b/docs/Chapter5/Tosca/ONAP Tosca PNF Descriptor.rst new file mode 100644 index 0000000..ca5e677 --- /dev/null +++ b/docs/Chapter5/Tosca/ONAP Tosca PNF Descriptor.rst @@ -0,0 +1,143 @@ +.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. + +.. Licensed under the Creative Commons License, Attribution 4.0 Intl. + (the "License"); you may not use this documentation except in compliance + with the License. You may obtain a copy of the License at + +.. https://creativecommons.org/licenses/by/4.0/ + +.. Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +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. + + +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 +^^^^^^^^^^^^^^^^^^^^^ + + +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 diff --git a/docs/Chapter5/Tosca/ONAP Tosca VNF Descriptor.rst b/docs/Chapter5/Tosca/ONAP Tosca VNF Descriptor.rst new file mode 100644 index 0000000..d3c234d --- /dev/null +++ b/docs/Chapter5/Tosca/ONAP Tosca VNF Descriptor.rst @@ -0,0 +1,252 @@ +.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. + +.. Licensed under the Creative Commons License, Attribution 4.0 Intl. + (the "License"); you may not use this documentation except in compliance + with the License. You may obtain a copy of the License at + +.. https://creativecommons.org/licenses/by/4.0/ + +.. Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +TOSCA VNF Descriptor +-------------------- + +General +^^^^^^^ + +.. req:: + :id: R-35854 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The VNF Descriptor (VNFD) provided by VNF vendor **MUST** comply with + TOSCA/YAML based Service template for VNF descriptor specified in + ETSI NFV-SOL001. + + **Note**: As the ETSI NFV-SOL001 is work in progress the below tables + summarizes the TOSCA definitions agreed to be part of current version + of NFV profile and that VNFD MUST comply with in ONAP Release 2+ + Requirements. + + +.. req:: + :id: R-65486 + :target: VNF + :keyword: MUST + :introduced: casablanca + :updated: dublin + + The VNFD **MUST** comply with ETSI GS NFV-SOL001 specification endorsing + the above mentioned NFV Profile and maintaining the gaps with the + requirements specified in ETSI GS NFV-IFA011 standard. + + +.. req:: + :id: R-17852 + :target: VNF + :keyword: MAY + :introduced: casablanca + + The VNFD **MAY** include TOSCA/YAML definitions that are not part of + NFV Profile. If provided, these definitions MUST comply with TOSCA + Simple Profile in YAML v.1.2. + +.. req:: + :id: R-46527 + :target: VNF + :keyword: MUST + :introduced: casablanca + + A VNFD is a deployment template which describes a VNF in terms of + deployment and operational behavior requirements. It contains + virtualized resources (nodes) requirements as well as connectivity + and interfaces requirements and **MUST** comply with info elements + specified in ETSI GS NFV-IFA 011. The main parts of the VNFD are + the following: + + - VNF topology: it is modeled in a cloud agnostic way using virtualized + containers and their connectivity. Virtual Deployment Units (VDU) + describe the capabilities of the virtualized containers, such as + virtual CPU, RAM, disks; their connectivity is modeled with VDU + Connection Point Descriptors (VduCpd), Virtual Link Descriptors + (VnfVld) and VNF External Connection Point Descriptors + (VnfExternalCpd); + + - VNF deployment aspects: they are described in one or more + deployment flavours, including configurable parameters, instantiation + levels, placement constraints (affinity / antiaffinity), minimum and + maximum VDU instance numbers. Horizontal scaling is modeled with + scaling aspects and the respective scaling levels in the deployment + flavours; + + **Note**: The deployment aspects (deployment flavour etc.) are postponed + for future ONAP releases. + + - VNF lifecycle management (LCM) operations: describes the LCM operations + supported per deployment flavour, and their input parameters; + Note, thatthe actual LCM implementation resides in a different layer, + namely referring to additional template artifacts. + +.. req:: + :id: R-15837 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The following table defines the major TOSCA Types specified in + ETSI NFV-SOL001 standard draft. The VNFD provided by a VNF vendor + **MUST** comply with the below definitions: + + +.. csv-table:: **TOSCA Definition** + :file: TOSCA_descriptor.csv + :header-rows: 1 + :align: center + :widths: auto + +Data Types +^^^^^^^^^^ + +.. req:: + :id: R-54356 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The below table includes the data types used by NFV node and is based + on TOSCA/YAML constructs specified in draft GS NFV-SOL 001. The node + data definitions/attributes used in VNFD **MUST** comply with the below + table. + +.. csv-table:: **NFV Data Types** + :file: NFV_data_type.csv + :header-rows: 1 + :align: center + :widths: auto + +.. req:: + :id: R-54876 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The below table describes the data types used for LCM configuration + and is based on TOSCA constructs specified in draft GS NFV-SOL 001. + The LCM configuration data elements used in VNFD **MUST** comply + with the below table. + +.. csv-table:: **LCM Configuration** + :file: LCM_config.csv + :header-rows: 1 + :align: center + :widths: auto + +Artifact Types +^^^^^^^^^^^^^^ + +No artifact type is currently supported in ONAP. + +Capability Types +^^^^^^^^^^^^^^^^ + +.. req:: + :id: R-67895 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The VNFD provided by VNF vendor may use the below described TOSCA + capabilities. An on-boarding entity (ONAP SDC) **MUST** support them. + + **tosca.capabilities.nfv.VirtualBindable** + + A node type that includes the VirtualBindable capability indicates + that it can be pointed by **tosca.relationships.nfv.VirtualBindsTo** + relationship type. + + **tosca.capabilities.nfv.VirtualLinkable** + + A node type that includes the VirtualLinkable capability indicates + that it can be pointed by **tosca.relationships.nfv.VirtualLinksTo** + relationship. + + **tosca.capabilities.nfv.ExtVirtualLinkable** + + A node type that includes the ExtVirtualLinkable capability + indicates that it can be pointed by + **tosca.relationships.nfv.VirtualLinksTo** relationship. + + **Note**: This capability type is used in Casablanca how it does + not exist in the last SOL001 draft + + **tosca.capabilities.nfv.VirtualCompute** and + **tosca.capabilities.nfv.VirtualStorage** includes flavours of VDU + + +Relationship Types +^^^^^^^^^^^^^^^^^^ + +.. req:: + :id: R-95321 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The VNFD provided by VNF vendor may use the below described TOSCA + relationships. An on-boarding entity (ONAP SDC) **MUST** support them. + + **tosca.relationships.nfv.VirtualBindsTo** + + This relationship type represents an association relationship between + VDU and CP node types. + + **tosca.relationships.nfv.VirtualLinksTo** + + This relationship type represents an association relationship between + the VduCpd's and VirtualLinkDesc node types. + + +Interface Types +^^^^^^^^^^^^^^^ + +.. req:: + :id: R-32155 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The VNFD provided by VNF vendor may use the below described TOSCA + interface types. An on-boarding entity (ONAP SDC) **MUST** support them. + + **tosca.interfaces.nfv.vnf.lifecycle.Nfv** supports LCM operations + ++--------------------------------------------------------------------+ +| +--------------------------------------------------------------+ | +| | tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0 | | +| | | | +| | description: VNFD TOSCA file demo | | +| | | | +| | imports: | | +| | | | +| | - TOSCA\_definition\_nfv\_1\_0.yaml | | +| | | | +| | - TOSCA\_definition\_nfv\_ext\_1\_0.yaml | | +| | | | +| | | **node\_types: | | +| | tosca.nodes.nfv.VNF.vOpenNAT: | | +| | derived\_from:** tosca.nodes.nfv.VNF | | +| | | **requirements: | | +| | **- **sriov\_plane: | | +| | capability:** tosca.capabilities.nfv.VirtualLinkable | | +| | | **node:** tosca.nodes.nfv.VnfVirtualLinkDesc | | +| | | **relationship:** tosca.relationships.nfv.VirtualLinksTo | | +| +--------------------------------------------------------------+ | ++====================================================================+ ++--------------------------------------------------------------------+ + diff --git a/docs/Chapter5/Tosca/ONAP VNF or PNF CSAR Package.rst b/docs/Chapter5/Tosca/ONAP VNF or PNF CSAR Package.rst new file mode 100644 index 0000000..777c994 --- /dev/null +++ b/docs/Chapter5/Tosca/ONAP VNF or PNF CSAR Package.rst @@ -0,0 +1,275 @@ +.. Modifications Copyright © 2017-2018 AT&T Intellectual Property. + +.. Licensed under the Creative Commons License, Attribution 4.0 Intl. + (the "License"); you may not use this documentation except in compliance + with the License. You may obtain a copy of the License at + +.. https://creativecommons.org/licenses/by/4.0/ + +.. Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +VNF or PNF CSAR Package +------------------------ + +CSAR Overview +^^^^^^^^^^^^^ + +TOSCA YAML CSAR file is an archive file using the ZIP file format whose +structure complies with the TOSCA Simple Profile YAML v1.2 Specification. +The CSAR file may have one of the two following structures: + + - CSAR containing a TOSCA-Metadata directory, which includes the TOSCA.meta + metadata file providing an entry information for processing a CSAR file. + + - CSAR containing a single yaml (.yml or .yaml) file at the root of the + archive. The yaml file is a TOSCA definition template that contains a + metadata section with template_name and template_version metadata. This + file is the CSAR Entry-Definitions file. + +VNF Package Structure and Format +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. req:: + :id: R-51347 + :target: VNF or PNF + :keyword: MUST + :introduced: casablanca + :updated: dublin + + 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 or PNF + :keyword: MUST + :introduced: casablanca + :updated: dublin + + 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 + + The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension. + + +VNF Package Contents +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. req:: + :id: R-10087 + :target: VNF or PNF CSAR PACKAGE + :keyword: MUST + :introduced: casablanca + :updated: dublin + + 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. + +.. req:: + :id: R-01123 + :target: VNF or PNF + :keyword: MUST + :introduced: casablanca + :updated: dublin + + 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 + :target: VNF + :keyword: MUST + :introduced: casablanca + + The VNF provider **MUST** provide their testing scripts to support + testing as specified in ETSI NFV-SOL004 - Testing directory in CSAR + +.. req:: + :id: R-40820 + :target: VNF or PNF TOSCA PACKAGE + :keyword: MUST + :introduced: casablanca + :updated: dublin + + The VNF or PNF TOSCA PACKAGE **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 + + 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 + + If one or more non-MANO artifact(s) is included in the VNF or PNF TOSCA CSAR + package, the Manifest file in this CSAR package **MUST** contain: non-MANO + artifact set which MAY contain 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: Will be supported in the future releases. + - Option 2: specified in ETSI SOL004 is supported. + +.. 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 +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. TOACA data type extension tosca.datatypes.nfv.injectFile is used for vCPE + use case. +2. ONAP extensions for VNF package that is currently proposed for Dublin + release is VES extension described below. diff --git a/docs/Chapter5/TOSCA_descriptor.csv b/docs/Chapter5/Tosca/TOSCA_descriptor.csv index 99bed14..99bed14 100755 --- a/docs/Chapter5/TOSCA_descriptor.csv +++ b/docs/Chapter5/Tosca/TOSCA_descriptor.csv diff --git a/docs/Chapter5/Tosca/index.rst b/docs/Chapter5/Tosca/index.rst new file mode 100644 index 0000000..1248c66 --- /dev/null +++ b/docs/Chapter5/Tosca/index.rst @@ -0,0 +1,17 @@ +.. Licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017 AT&T Intellectual Property. All rights reserved. + + +ONAP TOSCA VNFD or PNFD Requirements +==================================== + +.. toctree:: + :maxdepth: 3 + + ONAP Tosca Overview.rst + ONAP VNF or PNF CSAR Package.rst + ONAP Tosca VNF Descriptor.rst + ONAP Tosca PNF Descriptor.rst + ONAP HPA Requirements.rst + ONAP NFV Tosca.rst diff --git a/docs/Chapter5/index.rst b/docs/Chapter5/index.rst index ff26053..d9026da 100644 --- a/docs/Chapter5/index.rst +++ b/docs/Chapter5/index.rst @@ -19,7 +19,7 @@ VNF and PNF Modeling Requirements .. toctree:: :maxdepth: 2 - Tosca + Tosca/index.rst Heat/index.rst VNFM-Driver-Development-Steps Creating-Vendor-Specific-VNFM-Adaptor-Microservices |