diff options
author | guanwenyao <guanwenyao@chinamobile.com> | 2017-08-08 15:21:35 +0800 |
---|---|---|
committer | guanwenyao <guanwenyao@chinamobile.com> | 2017-08-08 15:21:58 +0800 |
commit | 73be7afbed93a74e02ab46b80baaf823ea55942f (patch) | |
tree | a2b853ec5450073502651fae473e49ca00718603 | |
parent | 917598a93f9d06b01fc8bbf9d47ffb6861a00ffb (diff) |
seed docs from OpenO
Issue-id:VNFRQTS-19
Change-Id: I45e67ab1a9683adcff5453721c6be7d262bbae75
Signed-off-by: guanwenyao <guanwenyao@chinamobile.com>
19 files changed, 3293 insertions, 0 deletions
diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/VNF Management Requirements for OpenO 4-27-2017 clean.docx b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/VNF Management Requirements for OpenO 4-27-2017 clean.docx Binary files differnew file mode 100644 index 0000000..d6df7b4 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/VNF Management Requirements for OpenO 4-27-2017 clean.docx diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/VNF_Management_Requirements_for_OpenO_4_27_2017_clean.rst b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/VNF_Management_Requirements_for_OpenO_4_27_2017_clean.rst new file mode 100644 index 0000000..7aa5dd2 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/VNF_Management_Requirements_for_OpenO_4_27_2017_clean.rst @@ -0,0 +1,1041 @@ +.. contents:: + :depth: 3 +.. + +\ **VNF Management Requirements for OpenO** + +** +** + +** +** + +Introduction +============ + +This document is **NF Management Requirements for OPEN-O**, which +describes the requirements for how VNFs interact and utilize OPEN-O. + +OPEN-O is a platform that enables telecommunications and cable operators +to effectively deliver end-to-end services across Network Functions +Virtualization (NFV) Infrastructure, as well as Software Defined Network +(SDN) and legacy network services. + +OPEN-O provide two ways to Manage VNFs, one is managed directly by gvnfm +that is already a component in OPEN-O, the other is managed by providing +a svnfm to manage special VNFs. When providing a svnfm, a svnfm adaptor +must be implemented the interfaces between nfvo and svnfm. + +OPEN-O Model Design Framework provides the ability to design NFV +resources including NF and NS. The vendor must provide VNF and NS +packages that include a rich set of recipes, management and functional +interfaces, policies, configuration parameters, and infrastructure +requirements that can be utilized by the OPEN-O Model Design module to +onboard and catalog these resources. + +The current VNF Package Requirement is based on a subset of the +Requirements contained in the ETSI Document: ETSI GS NFV-MAN 001 v1.1.1 +and GS NFV IFA011 V0.3.0 (2015-10) - Network Functions Virtualization +(NFV), Management and Orchestration, VNF Packaging Specification. + +1. .. rubric:: GVNFM Scenario + :name: gvnfm-scenario + + 1. \ **VNF Develop Steps** + +Aid to help the VNF vendor to fasten the integration with the GVNFM, the +OpenO provides the VNF SDK tools, and the documents. In this charter, +the develop steps for VNF vendors will be introduced. + +First, using the VNF SDK tools to design the VNF with TOSCA model and +output the VNF TOSCA package. The VNF package can be validated, and +tested. + +Second, the VNF vendor should provide the VNF Rest API to integrate with +the GVNFM if needed. The VNF Rest API is aligned to the ETSI IFA +document. + +Third, the TOSCA model supports the EPA feature. + +Note: + +1. The scripts to extend capacity to satisfy some special requirements. + In the R2, the scripts is not implemented fully, and will be provided + in the next release. + +2. The monitoring and scale policy also be provide the next release. + + 1. \ **VNF Rest api** + +The VNF must provide a rest api to support initial configuration over +HTTP(s). + +1. \ **Set Initial Configuration** + ++-----------------+---------------------------------------------+ +| If Definition | Description | ++=================+=============================================+ +| URI | http(s)://[hostname][:port]/configuration | ++-----------------+---------------------------------------------+ +| Operation | POST | ++-----------------+---------------------------------------------+ +| Direction | VNFM->VNF | ++-----------------+---------------------------------------------+ + +1. **Request** + ++-------------------------+-------------+---------------+---------------------+------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=========================+=============+===============+=====================+==============================================================================+ +| vnfInstanceId | M | 1 | Identifier | Identifier of the VNF instance which the VNF to set initial configuration. | ++-------------------------+-------------+---------------+---------------------+------------------------------------------------------------------------------+ +| vnfConfigurationData | O | 0..1 | VnfConfiguration | Configuration data for the VNF instance. | ++-------------------------+-------------+---------------+---------------------+------------------------------------------------------------------------------+ +| vnfcConfigurationData | O | 0..N | VnfcConfiguration | Configuration data for VNFC instances. | ++-------------------------+-------------+---------------+---------------------+------------------------------------------------------------------------------+ + +**VnfConfiguration:** + ++-------------------+-------------+---------------+-----------------------------+---------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++===================+=============+===============+=============================+=============================================+ +| cp | O | 0..N | CpConfiguration | External CPs | ++-------------------+-------------+---------------+-----------------------------+---------------------------------------------+ +| vnfSpecificData | O | 0..1 | VnfConfigurableProperties | Configuration object containing values of | +| | | | | | +| | | | | VNF configurable properties. | ++-------------------+-------------+---------------+-----------------------------+---------------------------------------------+ + +\ **CpConfiguration:** + ++-------------+-------------+---------------+--------------+-----------------------------------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++=============+=============+===============+==============+=============================================================================+ +| cpId | M | 1 | Identifier | Uniquely identifies a CP instance within the | +| | | | | | +| | | | | namespace of a specific VNF instance or | +| | | | | | +| | | | | VNFC instance. | ++-------------+-------------+---------------+--------------+-----------------------------------------------------------------------------+ +| cpdId | M | 1 | Identifier | Uniquely identifies a type of CP instance within the namespace of a VNFD. | ++-------------+-------------+---------------+--------------+-----------------------------------------------------------------------------+ +| cpAddress | M | 1..N | CpAddress | Address and Port assigned to the CP. | ++-------------+-------------+---------------+--------------+-----------------------------------------------------------------------------+ + +** +** + +**CpAddress:** + ++---------------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++=====================+=============+===============+==================+=====================================================================================================+ +| address | M | 0..N | NetworkAddress | The address assigned to the CP instance | +| | | | | | +| | | | | (e.g. IP address, MAC address, etc.). It shall be provided for configuring a fixed address. | ++---------------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------------------------+ +| useDynamicAddress | M | 0..1 | ENUM | It determines whether an address shall be | +| | | | | | +| | | | | assigned dynamically. It shall be provided if a dynamic address needs to be configured on the CP. | +| | | | | | +| | | | | A cardinality of "0" indicates that no dynamic address needs to be configured on the CP. | +| | | | | | +| | | | | Permitted values: | +| | | | | | +| | | | | - TRUE | +| | | | | | +| | | | | - FALSE | ++---------------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------------------------+ +| port | M | 0..1 | Not specified | The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.). | +| | | | | | +| | | | | Reserved | ++---------------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------------------------+ + +** +** + +**VnfConfigurableProperties:** + ++----------------+-------------+---------------+-----------+-----------------------------------------------------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++================+=============+===============+===========+===============================================================================================+ +| autoScalable | O | 0..1 | ENUM | It permits to enable (TRUE) / disable (FALSE) the auto-scaling functionality. | +| | | | | | +| | | | | A cardinality of "0" indicates that configuring this present VNF property is not supported. | +| | | | | | +| | | | | Permitted values: | +| | | | | | +| | | | | - TRUE | +| | | | | | +| | | | | - FALSE | ++----------------+-------------+---------------+-----------+-----------------------------------------------------------------------------------------------+ +| autoHealable | O | 0..1 | ENUM | It permits to enable (TRUE) / disable (FALSE) the auto-healing functionality. | +| | | | | | +| | | | | A cardinality of "0" indicates that configuring this present VNF property is not supported. | +| | | | | | +| | | | | Permitted values: | +| | | | | | +| | | | | - TRUE | +| | | | | | +| | | | | - FALSE | ++----------------+-------------+---------------+-----------+-----------------------------------------------------------------------------------------------+ ++----------------+-------------+---------------+-----------+-----------------------------------------------------------------------------------------------+ + +**VnfcConfiguration:** + ++--------------------+-------------+---------------+-------------------+----------------------------------------------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++====================+=============+===============+===================+========================================================================================+ +| vnfcId | M | 1 | Identifier | Uniquely identifies a VNFC instance within the namespace of a specific VNF instance. | ++--------------------+-------------+---------------+-------------------+----------------------------------------------------------------------------------------+ +| cp | O | 0..N | CpConfiguration | Internal CPs. | ++--------------------+-------------+---------------+-------------------+----------------------------------------------------------------------------------------+ +| vnfcSpecificData | O | 0..1 | KeyValuePair | Configuration object containing values of VNFC configurable properties | ++--------------------+-------------+---------------+-------------------+----------------------------------------------------------------------------------------+ + +{ + +"vnfInstanceId": "1", + +"vnfConfigurationData": { + +"cp": [ + +{ + +"cpId": "cp-1", + +"cpdId": "cpd-a", + +"cpAddress": [ + +{ + +"addresses": [ + +{ + +"addressType": "MAC", + +"l2AddressData": "00:f3:43:20:a2:a3" + +}, + +{ + +"addressType": "IP", + +"l3AddressData": { + +"iPAddressType": "IPv4", + +"iPAddress": "192.168.104.2" + +} + +} + +], + +"useDynamicAddress": "FALSE" + +} + +] + +} + +], + +"vnfSpecificData": { + +"autoScalable": "FALSE", + +"autoHealable": "FALSE" + +} + +}, + +"vnfcConfigurationData": { + +"vnfcId": "vnfc-1", + +"cp": [ + +{ + +"cpId": "cp-11", + +"cpdId": "cpd-1a", + +"cpAddress": [ + +{ + +"addresses": [ + +{ + +"addressType": "MAC", + +"l2AddressData": "00:f3:43:21:a2:a3" + +}, + +{ + +"addressType": "IP", + +"l3AddressData": { + +"iPAddressType": "IPv4", + +"iPAddress": "192.168.105.2" + +} + +} + +], + +"useDynamicAddress": "FALSE" + +} + +] + +} + +], + +"vnfcSpecificData": {} + +} + +} + +1. **Response** + ++-------------------------+-------------+---------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=========================+=============+===============+=====================+=================================================================================================================================+ +| vnfConfigurationData | O | 0..1 | VnfConfiguration | Correspond to the vnfConfigurationData in the input information elements of the SetInitialConfiguration operation if it has. | ++-------------------------+-------------+---------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------+ +| vnfcConfigurationData | O | 0..N | VnfcConfiguration | Correspond to the vnfcConfigurationData in the input information elements of the SetInitialConfiguration operation if it has. | ++-------------------------+-------------+---------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------+ + +{ + +"vnfConfigurationData": { + +"cp": [ + +{ + +"cpId": "cp-1", + +"cpdId": "cpd-a", + +"cpAddress": [ + +{ + +"addresses": [ + +{ + +"addressType": "MAC", + +"l2AddressData": "00:f3:43:20:a2:a3" + +}, + +{ + +"addressType": "IP", + +"l3AddressData": { + +"iPAddressType": "IPv4", + +"iPAddress": "192.168.104.2" + +} + +} + +], + +"useDynamicAddress": "FALSE" + +} + +] + +} + +], + +"vnfSpecificData": { + +"autoScalable": "FALSE", + +"autoHealable": "FALSE", + +… + +} + +}, + +"vnfcConfigurationData": { + +"vnfcId": "vnfc-1", + +"cp": [ + +{ + +"cpId": "cp-11", + +"cpdId": "cpd-1a", + +"cpAddress": [ + +{ + +"addresses": [ + +{ + +"addressType": "MAC", + +"l2AddressData": "00:f3:43:21:a2:a3" + +}, + +{ + +"addressType": "IP", + +"l3AddressData": { + +"iPAddressType": "IPv4", + +"iPAddress": "192.168.105.2" + +} + +} + +], + +"useDynamicAddress": "FALSE" + +} + +] + +} + +], + +"vnfcSpecificData": {…} + +} + +} + +1. \ **Response Code** + ++-----------+-----------------------+-------------------------------------------------------+ +| Code | Meaning | Description | ++===========+=======================+=======================================================+ +| 201 | Created | A VNF Instance identifier was created successfully. | ++-----------+-----------------------+-------------------------------------------------------+ +| 4xx/5xx | <name from RFC7231> | <description> | ++-----------+-----------------------+-------------------------------------------------------+ + +1. .. rubric:: SVNFM Scenario + :name: svnfm-scenario + + 1. \ **VNFM Driver Develop Steps** + +Aid to help the VNF vendor to fasten the integration with the NFVO via +Special VNFM, the OpenO provides the documents. In this charter, the +develop steps for VNF vendors will be introduced. + +First, using the VNF SDK tools to design the VNF with TOSCA model and +output the VNF TOSCA package. The VNF package can be validated, and +tested. + +Second, the VNF vendor should provide SVNFM Driver in the OpenO, which +is a micro service and in duty of translation interface from NFVO to +SVNFM. The interface of NFVO is aligned to the ETSI IFA interfaces and +can be gotten in the charter 5.5. The interface of SVNFM is provided by +the VNF vendor self. + +1. \ **Create SVNFM Adaptor Mircoservice** + +Some vnfs are managed by special vnfm, before add svnfm to openo, a +svnfm adaptor must be added to openo to adapter the interface of nfvo +and svnfm. + +A svnfm adaptor is a micro service with unique name and an appointed +port, when started up, it must be auto registered to MSB(Micro server +bus),following describes an example rest of register to MSB: + +POST /openoapi/microservices/v1/services + + { + + "serviceName": "catalog", + + "version": "v1", + + "url": "/openoapi/catalog/v1", + + "protocol": "REST", + + "visualRange": "1", + + "nodes": [ + + { + + "ip": "10.74.56.36", + + "port": "8988", + + "ttl": 0 + + } + + ] + + } + + A svnfm + +1. \ **Interfaces provided by SVNFM Driver**\ + +Interfaces use RESTful API and the format is as follows: + +http(s)://[hostname][:port]/openoapi/{vnfmtype}/v1/{vnfm\_id}/[……] + +**R1 vnfmtype:** + +**zte-vnfm** + +**fw-vnfm** + +**juju** + +1. \ **Instantiate VNF** + ++-----------------+--------------------------------------------------------------------+ +| If Definition | Description | ++=================+====================================================================+ +| URI | http(s)://[hostname][:port]/openoapi/{vnfmtype}/v1/{vnfmid}/vnfs | ++-----------------+--------------------------------------------------------------------+ +| Operation | POST | ++-----------------+--------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++-----------------+--------------------------------------------------------------------+ + +1. \ **Request** + ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++==========================+=============+===============+======================+===========================================================================================================================+ +| vnfInstanceName | M | 1 | String | Human-readable name of the VNF instance to be created. | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| vnfPackageId | M | 1 | String | VNF packageId | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| vnfDescriptorId | M | 1 | String | Information sufficient to identify the VNF Descriptor which defines the VNF to be created. | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| flavourId | M | 0..1 | String | Reserved | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| vnfInstanceDescription | M | 0..1 | String | Human-readable description of the VNF instance to be created. | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| extVirtualLink | M | 0..N | ExtVirtualLinkData | References to external virtual links to connect the VNF to. | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ +| additionalParam | M | 0..N | KeyValuePair | Additional parameters passed by the NFVO as input to the instantiation process, specific to the VNF being instantiated. | ++--------------------------+-------------+---------------+----------------------+---------------------------------------------------------------------------------------------------------------------------+ + +**ExtVirtualLinkData:** + ++----------------+-------------+---------------+-----------+------------------------------------------------------------------------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++================+=============+===============+===========+==================================================================================================================+ +| vlInstanceId | M | 0..1 | String | Identifier of the VL instance. | ++----------------+-------------+---------------+-----------+------------------------------------------------------------------------------------------------------------------+ +| vim | CM | 0..1 | VimInfo | Information about the VIM that manages this resource. | +| | | | | | +| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. | ++----------------+-------------+---------------+-----------+------------------------------------------------------------------------------------------------------------------+ +| networkId | M | 1 | String | The network UUID of VIM | ++----------------+-------------+---------------+-----------+------------------------------------------------------------------------------------------------------------------+ +| cpdId | M | 0..1 | String | Identifier of the external CPD in VNFD | ++----------------+-------------+---------------+-----------+------------------------------------------------------------------------------------------------------------------+ + +** +** + +**VimInfo:** + ++---------------------+---------------------+-----------------------+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=====================+=====================+=======================+====================+==========================================================================================================================================================+ +| vimInfoId | M | 1 | Identifier | The identifier of this VimInfo instance, for the purpose of referencing it from other information elements. | ++---------------------+---------------------+-----------------------+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimId | M | 1 | Identifier | The identifier of the VIM. | ++---------------------+---------------------+-----------------------+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| interfaceInfo | M | 0..N | KeyValuePair | Information about the interface to the VIM, including VIM provider type, API version, and protocol type. | ++---------------------+---------------------+-----------------------+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| accessInfo | M | 0..N | KeyValuePair | Authentication credentials for accessing the VIM. Examples may include those to support different authentication schemes, e.g., OAuth, Token, etc. | ++---------------------+---------------------+-----------------------+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| interfaceEndpoint | M | 1 | String | Information about the interface endpoint. An example is a URL. | ++---------------------+---------------------+-----------------------+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ + +**interfaceInfo:** + ++----------------+-------------+---------------+-----------+---------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++================+=============+===============+===========+===============+ +| vimType | M | 1 | String | vim | ++----------------+-------------+---------------+-----------+---------------+ +| apiVersion | M | 1 | String | | ++----------------+-------------+---------------+-----------+---------------+ +| protocolType | M | 1 | String | http | +| | | | | | +| | | | | https | ++----------------+-------------+---------------+-----------+---------------+ + +**accessInfo:** + ++-------------+-------------+---------------+-----------+--------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++=============+=============+===============+===========+==========================+ +| tenant | M | 1 | String | Tenant Name of tenant | ++-------------+-------------+---------------+-----------+--------------------------+ +| username | M | 1 | String | Username for login | ++-------------+-------------+---------------+-----------+--------------------------+ +| password | M | 1 | String | Password of login user | ++-------------+-------------+---------------+-----------+--------------------------+ + +{ + + “vnfInstanceName”:”vFW”, + + “vnfPackageId”:”1”, + + “vnfDescriptorId”:”1”, + + “vnfInstanceDescription”:”vFW\_1”, + + “extVirtualLinkLink”:[ + + { + + ”vlInstanceId”:”1”, + + “resourceId”:”1246”, + + ” cpdId”:”11111”, + + ”vim”: + +{ + + “vimInfoId”:”1”, + + “vimid”:”1”, + + “interfaceInfo”:{ + + "vimType":”vim”, + + "apiVersion":”v2”, + + "protocolType":”http” + + } + + “accessInfo”:{ + + "tenant":”tenant\_vCPE”, + + "username":”vCPE”, + + "password":”vCPE\_321” + + } + + “interfaceEndpoint”:”http://10.43.21.105:80/” + +} + + } + + ] + + “additionalParam”:{ + + …… + + } + +} + +1. \ **Response** + ++-----------------+-------------+---------------+--------------+---------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=================+=============+===============+==============+=========================================================+ +| jobId | M | 1 | Identifier | Identifier of the VNF lifecycle operation occurrence. | +| | | | | | +| | | | | [lifecycleOperationOccurrenceId**]** | ++-----------------+-------------+---------------+--------------+---------------------------------------------------------+ +| vnfInstanceId | M | 1 | Identifier | Identifier of the VNF instance. | ++-----------------+-------------+---------------+--------------+---------------------------------------------------------+ + +{ + + “jobId”:”1”, + + “vnfInstanceId”:”1” + +} + +1. \ **Terminate VNF** + ++-----------------+----------------------------------------------------------------------------------------------+ +| IF Definition | Description | ++=================+==============================================================================================+ +| URI | http(s)://[hostname][:port]/openoapi/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/terminate | ++-----------------+----------------------------------------------------------------------------------------------+ +| Operation | POST | ++-----------------+----------------------------------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++-----------------+----------------------------------------------------------------------------------------------+ + +1. \ **Request** + ++------------------------------+-------------+---------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++==============================+=============+===============+================+===========================================================================================================================================================================================================================================================================================================+ +| terminationType | M | 1 | Enum | Signals whether forceful or graceful termination is requested. | +| | | | | | +| | | | | In case of forceful termination, the VNF is shut down immediately, and resources are released. Note that if the VNF is still in service, this may adversely impact network service, and therefore, operator policies apply to determine if forceful termination is allowed in the particular situation. | +| | | | | | +| | | | | In case of graceful termination, the VNFM first arranges to take the VNF out of service (by means out of scope of the present specification, e.g. involving interaction with EM, if required). Once this was successful, or after a timeout, the VNFM shuts down the VNF and releases the resources. | ++------------------------------+-------------+---------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| gracefulTerminationTimeout | M | 0..1 | TimeDuration | The time interval (second) to wait for the VNF to be taken out of service during graceful termination, before shutting down the VNF and releasing the resources. | +| | | | | | +| | | | | If not given, it is expected that the VNFM waits for the successful taking out of service of the VNF, no matter how long it takes, before shutting down the VNF and releasing the resources (see note). | +| | | | | | +| | | | | Minimum timeout or timeout range are specified by the VNF Provider (e.g. defined in the VNFD or communicated by other means). | +| | | | | | +| | | | | Not relevant in case of forceful termination. | ++------------------------------+-------------+---------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +{ + + “vnfInstanceId”:”1”, + + “terminationType”:”graceful”, + + “gracefulTerminationTimeout”:”60” + +} + +1. \ **Response** + ++-------------+-------------+---------------+--------------+---------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=============+=============+===============+==============+=========================================================+ +| jobId | M | 1 | Identifier | Identifier of the VNF lifecycle operation occurrence. | +| | | | | | +| | | | | [lifecycleOperationOccurrenceId**]** | ++-------------+-------------+---------------+--------------+---------------------------------------------------------+ + +{ + + “jobId”:”1” + +} + +1. \ **Query VNF** + ++-----------------+------------------------------------------------------------------------------------+ +| IF Definition | Description | ++=================+====================================================================================+ +| URI | http(s)://[hostname][:port]/openoapi/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId} | ++-----------------+------------------------------------------------------------------------------------+ +| Operation | GET | ++-----------------+------------------------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++-----------------+------------------------------------------------------------------------------------+ + +1. \ **Request** + +VNF filter: vnfInstanceId via url [R1] + +1. \ **Response** + ++-------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=============+=============+===============+===========+=======================================================================================================================================+ +| vnfInfo | M | 0..N | VnfInfo | The information items about the selected VNF instance(s) that are returned. | +| | | | | | +| | | | | If attributeSelector is present, only the attributes listed in attributeSelector will be returned for the selected VNF instance(s). | +| | | | | | +| | | | | See note. | ++-------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------+ + +**VnfInfo Table** + ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++==========================+=============+===============+===========+=============================================================================================+ +| vnfInstanceId | M | 1 | String | VNF instance identifier. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfInstanceName | M | 0..1 | String | VNF instance name. See note. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfInstanceDescription | M | 0..1 | String | Human-readable description of the VNF instance. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfdId | M | 1 | String | Identifier of the VNFD on which the VNF instance is based. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfPackageId | M | 0..1 | String | Identifier of the VNF Package used to manage the lifecycle of the VNF instance. See note. | +| | | | | | +| | | | | Shall be present for an instantiated VNF instance. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| version | M | 1 | String | Version of the VNF. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfProvider | M | 1 | String | Name of the person or company providing the VNF. | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfType | M | 1 | String | VNF Application Type | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ +| vnfStatus | M | 1 | Enum | The instantiation state of the VNF. Possible values: | +| | | | | | +| | | | | INACTIVE (Vnf is terminated or not instantiated ), | +| | | | | | +| | | | | ACTIVE (Vnf is instantiated). | +| | | | | | +| | | | | [instantiationState] | ++--------------------------+-------------+---------------+-----------+---------------------------------------------------------------------------------------------+ + +{ + + “vnfInfo”: + + { + + "nfInstanceId":”1”, + + "vnfInstanceName":”vFW”, + + "vnfInstanceDescription":”vFW in Nanjing TIC Edge”, + + "vnfdId":”1”, + + "vnfPackageId":”1”, + + "version":”V1.1”, + + "vnfProvider":”ZTE”, + + "vnfType":”vFW”, + + "vnfStatus":” ACTIVE”, + +} + +} + +1. \ **Get operation status** + ++-----------------+-------------------------------------------------------------------------------------------------------+ +| IF Definition | Description | ++=================+=======================================================================================================+ +| URI | http(s)://[hostname][:port]/openoapi/{vnfmtype} /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId } | ++-----------------+-------------------------------------------------------------------------------------------------------+ +| Operation | GET | ++-----------------+-------------------------------------------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++-----------------+-------------------------------------------------------------------------------------------------------+ + +1. \ **Request** + +None + +1. \ **Response** + ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=======================+=============+===============+===============+======================================================================================+ +| jobId | M | 1 | String | Job ID | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| responseDescriptor | M | 1 | - | Including: | +| | | | | | +| | | | | vnfStatus,statusDescription,errorCode,progress、responseHistoryList、responseId | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| status | M | 1 | String | JOB status | +| | | | | | +| | | | | started | +| | | | | | +| | | | | processing | +| | | | | | +| | | | | finished | +| | | | | | +| | | | | error | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| progress | M | 1 | Integer | progress (1-100) | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| statusDescription | M | 1 | String | Progress Description | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| errorCode | M | 1 | Integer | Errorcode | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| responseId | M | 1 | Integer | Response Identifier | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ +| responseHistoryList | M | 0..n | ArrayList<> | History Response Messages from the requested responseId to lastest one. | +| | | | | | +| | | | | Including fields: | +| | | | | | +| | | | | vnfStatus, | +| | | | | | +| | | | | statusDescription, | +| | | | | | +| | | | | errorCode, | +| | | | | | +| | | | | progress, | +| | | | | | +| | | | | responseId | ++-----------------------+-------------+---------------+---------------+--------------------------------------------------------------------------------------+ + +{ + +"jobId" : "1234566", + +"responseDescriptor" : { + +"progress" : "40", + +"status" : "proccessing", + +"statusDescription" : "OMC VMs are decommissioned in VIM", + +"errorCode" : null, + +"responseId" : "42", + +"responseHistoryList" : [{ + +"progress" : "40", + +"status" : "proccessing", + +"statusDescription" : "OMC VMs are decommissioned in VIM", + +"errorCode" : null, + +"responseId" : "1" + +}, { + +"progress" : "41", + +"status" : "proccessing", + +"statusDescription" : "OMC VMs are decommissioned in VIM", + +"errorCode" : null, + +"responseId" : "2" + +} + +] + +} + +} + +1. \ **Scale VNF** + ++-----------------+------------------------------------------------------------------------------------------+ +| If Definition | Description | ++=================+==========================================================================================+ +| URI | http(s)://[hostname][:port]/openoapi/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/scale | ++-----------------+------------------------------------------------------------------------------------------+ +| Operation | POST | ++-----------------+------------------------------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++-----------------+------------------------------------------------------------------------------------------+ + +** +** + +1. **Request** + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++===========================================================================================================================================================================================================================================================================================+=============+===============+================+===============================================================================================================================================================================================================+ +| type | M | 1 | Enum | Defines the type of the scale operation requested (scale out, scale in). The set of types actually supported depends on the capabilities of the VNF being managed, as declared in the VNFD. See note 1. | ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| aspectId | M | 1 | Identifier | Identifies the aspect of the VNF that is requested to be scaled, as declared in the VNFD. | ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| numberOfSteps | M | 0..1 | Integer | Number of scaling steps to be executed as part of this ScaleVnf operation. It shall be a positive number. | +| | | | | | +| | | | | Defaults to 1. | +| | | | | | +| | | | | The VNF Provider defines in the VNFD whether or not a particular VNF supports performing more than one step at a time. Such a property in the VNFD applies for all instances of a particular VNF. | +| | | | | | +| | | | | See note 2. | ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| additionalParam | M | 0..N | KeyValuePair | Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled. | +| | | | | | +| | | | | **Reserved** | ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NOTE 1: ETSI GS NFV-IFA 010 `[2] <#_bookmark7>`__ specifies that the lifecycle management operations that expand or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical scaling (scale up, scale down) is not supported in the present document. | +| | +| SCALE\_IN designates scaling in. | +| | +| SCALE\_OUT 1 designates scaling out. | +| | +| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling aspect. | ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +{ + + “vnfInstanceId”:”5”, + + “type”:” SCALE\_OUT”, + + “aspectId”:”101”, + + “numberOfSteps”:”1”, + + “additionalParam”:{ + + …… + + } + +} + +1. **Response** + ++-------------+-------------+---------------+--------------+-------------------------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=============+=============+===============+==============+=============================================================+ +| jobId | M | 1 | Identifier | The identifier of the VNF lifecycle operation occurrence. | ++-------------+-------------+---------------+--------------+-------------------------------------------------------------+ + +{ + + “jobId”:”1” + +} diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/index.rst b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/index.rst new file mode 100644 index 0000000..4b09c53 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_Mgmt_Requirements_for_OpenO/index.rst @@ -0,0 +1,7 @@ +VNF Mgmt Requirements for OpenO +---------------------------------------- + +.. toctree:: + :maxdepth: 2 + + VNF_Management_Requirements_for_OpenO_4_27_2017_clean
\ No newline at end of file diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF TOSCA Template Requirements for OpenO 4-27-2017 clean.docx b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF TOSCA Template Requirements for OpenO 4-27-2017 clean.docx Binary files differnew file mode 100644 index 0000000..463150a --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF TOSCA Template Requirements for OpenO 4-27-2017 clean.docx diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_DeploymentFlavor_Design.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_DeploymentFlavor_Design.jpg Binary files differnew file mode 100644 index 0000000..3010315 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_DeploymentFlavor_Design.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Design_Scale_Param.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Design_Scale_Param.jpg Binary files differnew file mode 100644 index 0000000..78e8dc0 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Design_Scale_Param.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Image_Artifact_To_Node.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Image_Artifact_To_Node.jpg Binary files differnew file mode 100644 index 0000000..101f285 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Image_Artifact_To_Node.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Image_Artifacts.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Image_Artifacts.jpg Binary files differnew file mode 100644 index 0000000..4f2216d --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Image_Artifacts.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Nested_Orchestration_01.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Nested_Orchestration_01.jpg Binary files differnew file mode 100644 index 0000000..14a62f7 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Nested_Orchestration_01.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Nested_Orchestration_02.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Nested_Orchestration_02.jpg Binary files differnew file mode 100644 index 0000000..c7f0084 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Nested_Orchestration_02.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Node_VDU_Compute_Artifact.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Node_VDU_Compute_Artifact.jpg Binary files differnew file mode 100644 index 0000000..d873e02 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Node_VDU_Compute_Artifact.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Package_Structure.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Package_Structure.jpg Binary files differnew file mode 100644 index 0000000..1e6030c --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Package_Structure.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Param_Definition.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Param_Definition.jpg Binary files differnew file mode 100644 index 0000000..241b0d3 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Param_Definition.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Service_Template.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Service_Template.jpg Binary files differnew file mode 100644 index 0000000..2adee89 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Service_Template.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Template_Requirements_for_OpenO_4_27_2017_clean.rst b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Template_Requirements_for_OpenO_4_27_2017_clean.rst new file mode 100644 index 0000000..2bc2d9c --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_Template_Requirements_for_OpenO_4_27_2017_clean.rst @@ -0,0 +1,2236 @@ +.. contents:: + :depth: 3 +.. + +Introduction +============ + +This reference document is the ***VNF TOSCA Template Requirements for +OpenO***, which provides recommendations and standards for building VNF +TOSCA templates compatible with OpenO– initial implementations of +Network Cloud. It has the following features: + +1. VNF TOSCA template designer supports GUI and CLI. + +2. VNF TOSCA template is aligned to the newest TOSCA protocol, “Working + Draft 04-Revision 06”. + +3. VNF TOSCA template supports EPA features, such as NUMA, Hyper + Threading, SRIOV, etc. + + 1. .. rubric:: Intended Audience + :name: intended-audience + +This document is intended for persons developing VNF TOSCA templates +that will be orchestrated by OpenO. + +Scope +------ + +OpenO implementations of Network Cloud supports TOSCA Templates, also +referred to as TOSCA in this document. + +OpenO 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 vendors to use the +VNF model design tools and understand the VNF package structure and VNF +TOSCA templates. + +In the OPENO, 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 vendor to develop the VNF Package and VNFD +template. + +The VNF 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. + +VNF TOSCA Designer +================== + +Specifications +-------------- + +Model design follows the following specifications: + +TOSCA-v1.0: + +http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.html + +TOSCA-Simple-Profile-YAML-v1.1: + +http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.1/TOSCA-Simple-Profile-YAML-v1.1.html + +tosca-nfv-v1.0-wd04-rev06. + +1. .. rubric:: Model Design + :name: model-design + + 1. .. rubric:: Component Design + :name: component-design + +Components used in service orchestration as the basic unit of NF/NS +service template. + +NF Component Design +~~~~~~~~~~~~~~~~~~~ + +Follows specification tosca-nfv-v1.0-wd04-rev06, defined the components +in NF orchestration, including +VDU.Compute、VirtualStorage、Cpd、VduCpd、VnfVirtualLinkDesc、VnfExtCpd +etc. Currently, these components packaged and distributed with designer +as basic components of NFV. + +NS Component Design +~~~~~~~~~~~~~~~~~~~ + +Follows specification tosca-nfv-v1.0-wd04-rev06, defined the components +in NS orchestration. Including +Cpd、VnfVirtualLinkDesc、VNF、PNF、FP、VNFFG、NS etc. Currently, these +components packaged and distributed with designer as basic components of +NFV. + +Component Nesting Design +~~~~~~~~~~~~~~~~~~~~~~~~ + +An orchestrated NF/NS service template can be mapped to a component with +the keyword “substitution\_mappings”. This component can be used in the +orchestration of other NS. + +Nested orchestration diagram shows as follows: + +|image0| |image1| + +1. Requirement Mapping + +2. Capability Mapping + +3. Property Mapping + +The input parameters in service template can be mapped to the property +in component automatically. + +Component Customizing +~~~~~~~~~~~~~~~~~~~~~ + +There are mainly two ways to customize component: Mapping and +inheritance. + +1. Mapping + +Map an orchestrated service template to a component. For detail in 1.1.3 +Component Nesting Design. + +1. Inheritance + +Define a customized component by inheriting a component which already +existed. The new component will inherit all the content from the parent +component, including: Property/Requirement/Capability etc. And also new +customized attribute Property/Requirement/Capability can be added. + +1. .. rubric:: Relationship Type Design + :name: relationship-type-design + + 1. .. rubric:: Basic Relationship Type + :name: basic-relationship-type + +Basic relationship type defined follows the specification +TOSCA-Simple-Profile-YAML-v1.1. Including +DependsOn、HostedOn、ConnectsTo、AttachesTo etc. Basic relationship type +was packaged and distributed with the designer. + +NFV Relationship Type +~~~~~~~~~~~~~~~~~~~~~ + +Follows the specification tosca-nfv-v1.0-wd04-rev06 to define the NFV +relationship type, Including VirtualBindsTo、VirtualLinksTo、ForwardsTo +etc. NFV relationship types can be packaged and distributed with the +model designer in NFV domain. + +Customize Relationship Type +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Customize relationship type was supported. + +Customized relationship type can inherit with an existing relationship +type. + +The properties and operations of relationship can be defined. And the +target node types which linked to can also be defined. + +1. .. rubric:: Data Type Definition + :name: data-type-definition + + 1. .. rubric:: Basic Data Type + :name: basic-data-type + +The system provides the definition of basic data type. Including: +string、integer、float、boolean、timestamp. Follow the specification +TOSCA-Simple-Profile-YAML-v1.1. + +List and map are supported. + +NFV Data Type +~~~~~~~~~~~~~ + +Data type of NFV domain defined according to tosca-nfv-v1.0-wd04-rev06. +Including +L2AddressData、L3AddressData、AddressData、VirtualNetworkInterfaceRequirements、ConnectivityType、RequestedAdditionalCapability、VirtualMemory、VirtualCpu、VirtualCpuPinning +etc. + +NFV data type can be packaged and distributed with the model designer in +NFV domain. + +Customize Data Type +~~~~~~~~~~~~~~~~~~~ + +Support to defining custom data type with the basic data type and +list/map. + +Support nesting of custom data types, that is, defining new data types +with existing custom data types. + +1. .. rubric:: Topology Design + :name: topology-design + + 1. .. rubric:: Node Design + :name: node-design + +To design the contents of the service template components and TOPO +structure through the component drag and drop. + +1. NF Node Design + +Drag a component instance from the NF component library to the topology +view. + +A component represents an NF logical module of the service. For example, +VDU.Compute represents the calculation module, Cpd represents virtual +port, VirtualStorage represents virtual storage unit. + +1. NS Node Design + +Drag a component instance from the NS component library to the topology +view. + +A component represents an NS logical module of the service. For example, +VNF represents virtualized network function module, PNF represents +physical network module (eg. physical network element). + +Relationship Design +~~~~~~~~~~~~~~~~~~~ + +Drag a connection from one component to another to represent the +relationship between the components. + +The type of relationship is represented by the type of connection, for +example: DependsOn、HostedOn、ConnectsTo、VirtualBindsTo、VirtualLinksTo +etc. + +Property Orchestration +~~~~~~~~~~~~~~~~~~~~~~ + +You can set properties for components and relationships for use by an +instantiated deployment. + +1. .. rubric:: Workflow Design + :name: workflow-design + + 1. .. rubric:: BNPM4TOSCA Workflow Designer + :name: bnpm4tosca-workflow-designer + + Embed BNPM4TOSCA workflow designer is provided, you can design BNPM + workflow. + +Workflow design interface shows as follows: + +|image2| + +Service Template Operation Design +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Service template operations include: create, start, stop, delete, etc. +You can define the operations of the service template and associated +operations with specified workflows. + +|image3| + +Policy Design +~~~~~~~~~~~~~ + + Embed Drools-based policy designer is provided. + +SFC Design +~~~~~~~~~~ + + Provide a SFC graphical design interface, support to design business + service chain. + +Deployment Flavor Design +~~~~~~~~~~~~~~~~~~~~~~~~ + + Support to design the deployment flavor of a VDU, shows as follows: + +|image4| + + Supports to design the scale parameters of a VDU, shows as follows: + +|image5| + +Parameter Design +~~~~~~~~~~~~~~~~ + +If an Entity property value is not determined at the design time +(including: node template, relationship template, etc), and need to +entered at the deployment phase dynamically. So the values need to +abstract as the service template input parameters. + +Parameter Definition +^^^^^^^^^^^^^^^^^^^^ + +Support input parameter definition, show as follow: + +|image6| + +Parameter Mapping +^^^^^^^^^^^^^^^^^ + +Map input parameters to properties of nodes or relationships with the +“get\_input” function, according to the TOSCA-Simple-Profile-YAML-v1.1 +specification. + +Support the mapping of simple parameters, complex parameters, and +properties of a complex parameter. + +Artifact Design +~~~~~~~~~~~~~~~ + +Artifact mainly includes scripts, images, software packages and other +materials which may be used in the deploy phase. + +Script Artifacts +^^^^^^^^^^^^^^^^ + +The script files are typically bound to the service template and +uploaded to the ‘Scripts’ directory of the service template. + +At the same time, you can create an artifact to associate the script +file with a specific node. + +Image Artifacts +^^^^^^^^^^^^^^^ + +Images can be bound to a service template and uploaded to the +‘SoftwareImages’ directory. Or they can be uploaded to a separate images +server. + +|image7| + +At the same time, you can create an artifact to associate the image file +with a specific node. Show as follow: + +|image8| + +Software package artifacts +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The software package is typically the software version provided by the +device vendor. Software packages can be bound to a service template or +they can be uploaded to a separate software packages server. + +At the same time, you can create an artifact to associate the software +package with a specific node. + +Design Package +-------------- + +Following the TOSCA-Simple-Profile-YAML-v1.1 specification, the design +output is packaged in the CSAR (TOSCA Cloud Service Archive) format. + +Design output includes: model description file, workflow description +file, policy description file, tosca.meta, manifest file, artifact file +(including: scripts, images, software packages, etc.) and so on. + +Suggested package structure is as follows: + ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| Folder Name | Required | Description | ++==================+============+====================================================================================================================================+ +| TOSCA-Metadata | Yes | Used to define the basic properties of the VNF package, and the Entry-Definitions file. | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| Definitions | Yes | Yaml or xml format TOSCA definition file, the document on the artifact file reference is relative to the CSAR package root path. | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| Plans | No | VNF lifecycle implementation of the workflow. | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| Policies | No | Policy description files. | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| Scripts | No | Script files | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| SoftwareImages | No | Host software image files | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ +| AppSoftwares | No | Application software files | ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ ++------------------+------------+------------------------------------------------------------------------------------------------------------------------------------+ + +tosca.meta +~~~~~~~~~~ + +tosca.meta defined as a basic information of service template, it is a +manifest file. + +Tosca.meta example: + ++--------------------------------------------------+ +| TOSCA-Meta-File-Version: 1.0 | +| | +| CSAR-Version: 1.1 | +| | +| Created-By: OASIS TOSCA TC | +| | +| Entry-Definitions: definitions/tosca\_elk.yaml | ++--------------------------------------------------+ + +Model Description Files +~~~~~~~~~~~~~~~~~~~~~~~ + +The model description files includes: component definition files, +relationship type definition files, data type definition files, TOPO +description files and so on. + +The model description files will be packaged into the ‘Definitions’ +directory of the CSAR package. + +Workflow Description Files +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Workflow description files is the output files of the Workflow +designer. + +The workflow description files will be packaged into the ‘Plans’ +directory of the CSAR package. + +Policy Description Files +~~~~~~~~~~~~~~~~~~~~~~~~ + +Policy description files is the output files of the Policy Designer. + +The policy description files will be packaged into the ‘Policies’ +directory of the CSAR package. + +1. .. rubric:: Artifacts + :name: artifacts + + 1. .. rubric:: Script Artifacts + :name: script-artifacts-1 + +Script files are usually packaged directly into the ‘Scripts’ directory +of the CSAR package. + +Image Artifacts +^^^^^^^^^^^^^^^ + +The images bound to the service template are packaged directly into the +‘SoftwareImages’ directory of the CSAR package. + +Software Package Artifacts +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The software packages bound to the service template are packaged +directly into the ‘AppSoftwares’ directory of the CSAR package. + +1. .. rubric:: Design Verification + :name: design-verification + + 1. .. rubric:: Grammar Check + :name: grammar-check + +Yaml/xml syntax check, tosca syntax check, data type validation and so +on. + +Tosca Model Verification +~~~~~~~~~~~~~~~~~~~~~~~~ + +Type check, relationship check, requirement check, artifact check, +constraint check, etc. + +CSAR Package Checking +~~~~~~~~~~~~~~~~~~~~~ + +CSAR packet structure verification and packet integrity checking. + +Design Publishing +----------------- + +CSAR package can be published to the catalog for the instantiation use, +after it has been verified. + +1. .. rubric:: Archive Management + :name: archive-management + + 1. .. rubric:: Design Repository + :name: design-repository + +In the design phase, the service template is stored in the design +repository. + +The service templates in the design repository can be modified at any +time. + +Release Repository +~~~~~~~~~~~~~~~~~~ + +After the service template design is completed, you can publish it to +the release repository through a publish process. + +And, the service template can be instantiated and deployed only after it +has been published. + +The service templates in the release repository cannot be modified +again. + +Onboard +~~~~~~~ + +Before the deployment of the service template, you need to perform the +Onboard operation. + +The main work of the onboard operation includes: + +1. Upload the image and package to VNFM and VIM. + +2. Distribute the workflow description file to the workflow execution + engine. + +3. Distribute the policy description file to the policy execution + engine. + +VNF Package + +This section defines VNF package as well as its overall structure. A VNF +package shall be a CSAR(Cloud Service Archive), which is a zip file in +compliance to TOSCA, including at least one csar.meta file, one +checksum.lst file, one directory for TOSCA-Metadata, one directory for +*Definitions* and one directory for images. The directories for *Plans*, +*scripts*, xml files etc. are optional. + +|image9| + +TOSCA-Metadata Directory +------------------------ + +This directory contains TOSCA.metadata file. A TOSCA meta file consists +of name/value pairs. The name-part of a name/value pair is followed by a +colon, followed by a blank, followed by the value-part of the name/value +pair. The name MUST NOT contain a colon. Values that represent binary +data MUST be base64 encoded. Values that extend beyond one line can be +spread over multiple lines if each subsequent line starts with at least +one space. Such spaces are then collapsed when the value string is read. + +#. <name>: <value> + +Each name/value pair is in a separate line. A list of related name/value +pairs, i.e. a list of consecutive name/value pairs describing a +particular file in a CSAR, is called a *block*. Blocks are separated by +an empty line. The first block, called *block\_0*, is metadata about the +CSAR itself. All other blocks represent metadata of files in the CSAR. + +The structure of block\_0 in the TOSCA meta file is as follows: + +#. TOSCA-Meta-File-Version: digit.digit + +#. CSAR-Version: digit.digit + +#. Created-By: string + +#. Entry-Definitions: string ? + +The name/value pairs are as follows: + +- TOSCA-Meta-File-Version: This is the version number of the TOSCA meta + file format. The value MUST be “1.0” in the current version of the + TOSCA specification. + +- CSAR-Version: This is the version number of the CSAR specification. + The value MUST be “1.0” in the current version of the TOSCA + specification. + +- Created-By: The person or vendor, respectively, who created the CSAR. + +- | Entry-Definitions: This OPTIONAL name/value pair references a TOSCA + Definitions file from the Definitions directory of the CSAR that + SHOULD be used as entry point for processing the contents of the + CSAR. + | Note, that a CSAR may contain multiple Definitions files. One + reason for this is completeness, e.g. a Service Template defined in + one of the Definitions files could refer to Node Types defined in + another Definitions file that might be included in the Definitions + directory to avoid importing it from external locations. The + Entry-Definitions name/value pair is a hint to allow optimized + processing of the set of files in the Definitions directory. + +The first line of a block (other than block\_0) MUST be a name/value +pair that has the name “Name” and the value of which is the path-name of +the file described. The second line MUST be a name/value pair that has +the name “Content-Type” describing the type of the file described; the +format is that of a MIME type with type/subtype structure. The other +name/value pairs that consecutively follow are file-type specific. + +#. Name: <path-name\_1> + +#. Content-Type: type\_1/subtype\_1 + +#. <name\_11>: <value\_11> + +#. <name\_12>: <value\_12> + +#. ... + +#. <name\_1n>: <value\_1n> + +#. +#. ... + +#. +#. Name: <path-name\_k> + +#. Content-Type: type\_k/subtype\_k + +#. <name\_k1>: <value\_k1> + +#. <name\_k2>: <value\_k2> + +#. ... + +#. <name\_km>: <value\_km> + +The name/value pairs are as follows: + +- | Name: The pathname or pathname pattern of the file(s) or resources + described within the actual CSAR. + | Note, that the file located at this location MAY basically contain + a reference to an external file. Such a reference is given by a URI + that is of one of the URL schemes “file”, “http”, or “https”. + +- Content-Type: The type of the file described. This type is a MIME + type complying with the type/subtype structure. Vendor defined + subtypes SHOULD start as usual with the string “vnd.”. + +Note that later directives override earlier directives. This allows for +specifying global default directives that can be specialized by later +directories in the TOSCA meta file. + +Definitions Directory +--------------------- + +This directory contains all TOSCA yaml files including definitions of +Node, Relationship, Capabilities, Artifacts, and Requirements etc. as +components of VNF package. + +SwImages Directory +------------------ + +Image files of VNF are stored in this directory. + +Check Sum List File +------------------- + +The file of checksum.lst records the MD5(RFC 1321) value of each file +when building csar package in order to double check whether those files +were destroyed when users unzip the zip file. A checksum.lst file +consists of name/value pairs. The name-part of a name/value pair is +followed by a colon, followed by a blank, followed by the value-part of +the name/value pair. Here is an example as follows. + +#. Definitions/openovnf\_\_vOpenNAT.yaml:00a5d15b350b90b75f11c33d4c7a0218 + +#. Swimages/xenial-snat.qcow2:481f62ed11aa6e240482974feb1dcab6 + + 1. .. rubric:: Csar Metadata File + :name: csar-metadata-file + +A VNF package, which is a csar zip file shall contain one csar.meta +file. A csar Meta file consists of name/value pairs. The name-part of a +name/value pair is followed by a colon, followed by a blank, followed by +the value-part of the name/value pair. The name MUST NOT contain a +colon. Values that represent binary data MUST be base64 encoded. Values +that extend beyond one line can be spread over multiple lines if each +subsequent line starts with at least one space. Such spaces are then +collapsed when the value string is read. + +#. <name>: <value> + +Generally, this file includes basic information about this VNF package +including type, version and provider, etc. Here is an example as +follows. + +#. Type:NFAR + +#. Version:1.0.0 + +#. Provider: ZTE + +NFV TOSCA Template +================== + +TOSCA templates supported by OPENO must follow the requirements +enumerated in this section. + +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. The major elements defining a service +are depicted in Figure 1. + +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. + +Reuse and Derivation of TOSCA Definitions + +|image10| + +Figure 1: Structural Elements of a 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. + +VNF Descriptor Template +----------------------- + +The VNF Descriptor (VNFD) describes the topology of the VNF by means of +ETSI NFV IFA011 [IFA011] terms such as VDUs, Connection Points, Virtual +Links, External Connection Points, Scaling Aspects, Instantiation Levels +and Deployment Flavours. + +The VNFD (VNF Descriptor) is read by both the NFVO and the VNFM. It +represents the contract & interface of a VNF and ensures the +interoperability across the NFV functional blocks. + +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 (Vld) + and VNF External Connection Point Descriptors (VnfExternalCpd); + +- VNF deployment aspects: they are described in one or more deployment + flavours, including instantiation levels, supported LCM operations, + VNF LCM operation configuration parameters, placement constraints + (affinity / antiaffinity), minimum and maximum VDU instance numbers, + and scaling aspect for horizontal scaling. + +The following table defines the TOSCA Type “derived from” values that +SHALL be used when using the TOSCA Simple Profile for NFV version 1.0 +specification [TOSCA-Simple-Profile-NFV-v1.0] for NFV VNFD. + ++-----------------------------------------+---------------------------------------+-----------------------+ +| **ETSI NFV Element** | **TOSCA VNFD** | **Derived from** | +| | | | +| **[IFA011]** | **[TOSCA-Simple-Profile-NFV-v1.0]** | | ++=========================================+=======================================+=======================+ +| VNF | tosca.nodes.nfv.VNF | tosca.nodes.Root | ++-----------------------------------------+---------------------------------------+-----------------------+ +| VDU | tosca.nodes.nfv.VDU | tosca.nodes.Root | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Cpd (Connection Point) | tosca.nodes.nfv.Cpd | tosca.nodes.Root | ++-----------------------------------------+---------------------------------------+-----------------------+ +| VduCpd (internal connection point) | tosca.nodes.nfv.VduCpd | tosca.nodes.nfv.Cpd | ++-----------------------------------------+---------------------------------------+-----------------------+ +| VnfVirtualLinkDesc (Virtual Link) | tosca.nodes.nfv.VnfVirtualLinkDesc | tosca.nodes.Root | ++-----------------------------------------+---------------------------------------+-----------------------+ +| VnfExtCpd (External Connection Point) | tosca.nodes.nfv.VnfExtCpd | tosca.nodes.Root | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Virtual Storage | | | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Virtual Compute | | | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Software Image | | | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Deployment Flavour | | | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Scaling Aspect | | | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Element Group | | | ++-----------------------------------------+---------------------------------------+-----------------------+ +| Instantiation Level | | | ++-----------------------------------------+---------------------------------------+-----------------------+ + ++--------------------------------------------------------------------+ +| +--------------------------------------------------------------+ | +| | 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 | | +| +--------------------------------------------------------------+ | ++====================================================================+ ++--------------------------------------------------------------------+ + +EPA Requirements +---------------- + +1. SR-IOV Passthrought + +Definitions of SRIOV\_Port are necessary if VDU supports SR-IOV. Here is +an example. + ++------------------------------------------------+ +| 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 | ++------------------------------------------------+ + +1. 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. + ++----------------------------------+ +| node\_templates: | +| | +| vdu\_vNat: | +| | +| Hugepages: | +| | +| attributes: | +| | +| tosca\_name: Huge\_pages\_demo | +| | +| properties: | +| | +| mem\_page\_size:large | ++==================================+ ++----------------------------------+ + +1. 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. + ++-------------------------------------------------+ +| 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" | ++-------------------------------------------------+ + +1. 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. + ++-------------------------------------------------------------+ +| 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" | ++-------------------------------------------------------------+ + +1. 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. + ++------------------------------------------------------+ +| 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 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++---------------------------+-----------------------------------------+ +| **Shorthand Name** | VirtualCompute | ++===========================+=========================================+ +| **Type Qualified Name** | tosca: VirtualCompute | ++---------------------------+-----------------------------------------+ +| **Type URI** | tosca.capabilities.nfv.VirtualCompute | ++---------------------------+-----------------------------------------+ +| **derived from** | tosca.nodes.Root | ++---------------------------+-----------------------------------------+ + +Properties +^^^^^^^^^^ + ++-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++=====================================+============+=====================================================+===============+=========================================================+ +| request\_additional\_capabilities | No | tosca.datatypes.nfv.RequestedAdditionalCapability | | Describes additional capability for a particular VDU. | ++-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ +| virtual\_memory | yes | tosca.datatypes.nfv.VirtualMemory | | Describes virtual memory of the virtualized compute | ++-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ +| virtual\_cpu | yes | tosca.datatypes.nfv.VirtualCpu | | Describes virtual CPU(s) of the virtualized compute. | ++-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ ++-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ +| name | yes | | | | ++-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ + +Definition +^^^^^^^^^^ + ++-----------------------------------------------------------+ +| tosca.capabilities.nfv.VirtualCompute: | +| | +| derived\_from: tosca.capabilities.Root | +| | +| properties: | +| | +| requested\_additional\_capabilities: | +| | +| type: map | +| | +| entry\_schema: | +| | +| type: tosca.datatypes.nfv.RequestedAdditionalCapability | +| | +| required: false | +| | +| virtual\_memory: | +| | +| type: tosca.datatypes.nfv.VirtualMemory | +| | +| required: true | +| | +| virtual\_cpu: | +| | +| type: tosca.datatypes.nfv.VirtualCpu | +| | +| required: true | ++-----------------------------------------------------------+ + +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 | ++-----------------------+-------------------------------+ + +Properties +^^^^^^^^^^ + ++----------------------------+------------+---------------------------------------------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++============================+============+=========================================================+===============+============================================================================================================================================================================================================================================================================================================+ +| name | yes | string | | Human readable name of the Vdu | ++----------------------------+------------+---------------------------------------------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| description | yes | string | | Human readable description of the Vdu | ++----------------------------+------------+---------------------------------------------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| boot\_order | no | list of string | | The key indicates the boot index (lowest index defines highest boot priority). The Value references a descriptor from which a valid boot device is created e.g. VirtualStorageDescriptor from which a VirtualStorage instance is created. | +| | | | | | +| | | | | If no boot order is defined the default boot order defined in the VIM or NFVI shall be used. | ++----------------------------+------------+---------------------------------------------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| nfvi\_constraints | no | list of string | | Describes constraints on the NFVI for the VNFC instance(s) created from this Vdu. For example, aspects of a secure hosting environment for the VNFC instance that involve additional entities or processes. More software images can be attached to the virtualization container using virtual\_storage. | ++----------------------------+------------+---------------------------------------------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| configurable\_properties | yes | map of tosca.datatypes.nfv.VnfcConfigurableProperties | | Describes the configurable properties of all VNFC instances based on this VDU. | ++----------------------------+------------+---------------------------------------------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Attributes +^^^^^^^^^^ + +None + +Requirements +^^^^^^^^^^^^ + ++--------------------+------------+--------------------------------------+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++====================+============+======================================+===============+==============================================================================================================================================================+ +| virtual\_storage | no | tosca.nodes.nfv.VDU.VirtualStorage | | Describes storage requirements for a virtual\_storage instance attached to the virtualization container created from virtual\_compute defined for this vdu | ++--------------------+------------+--------------------------------------+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Capabilities +^^^^^^^^^^^^ + ++-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ +| Name | Type | Constraints | Description | ++=========================+=================================================+===============+=====================================================================================================+ +| virtual\_compute | tosca.capabilities.nfv.VirtualCompute | | Describes virtual compute resources capabilities. | ++-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ +| monitoring\_parameter | tosca.capabilities.nfv.Metric | None | Monitoring parameter, which can be tracked for a VNFC based on this VDU | +| | | | | +| | | | Examples include: memory-consumption, CPU-utilisation, bandwidth-consumption, VNFC downtime, etc. | ++-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ +| Virtual\_binding | tosca.capabilities.nfv.VirtualBindable | | Defines ability of VirtualBindable | +| | | | | +| | editor note: need to create a capability type | | | ++-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ + +Definition +^^^^^^^^^^ + ++-----------------------------------------------------------------------------------------------------+ +| 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* <#DEFN_TYPE_CAPABILITIES_CONTAINER>`__ | +| | +| valid\_source\_types: [`*tosca.nodes.SoftwareComponent* <#DEFN_TYPE_NODES_SOFTWARE_COMPONENT>`__] | +| | +| 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* <#DEFN_TYPE_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 +^^^^^^^^ + ++-----------+------------+-------------------------------+---------------+-------------------------------------------------------------------------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++===========+============+===============================+===============+=========================================================================================================================+ +| SwImage | Yes | tosca.artifacts.nfv.SwImage | | Describes the software image which is directly loaded on the virtualization container realizing this virtual storage. | ++-----------+------------+-------------------------------+---------------+-------------------------------------------------------------------------------------------------------------------------+ + +|image11| + +tosca.nodes.nfv.Cpd +~~~~~~~~~~~~~~~~~~~ + +The TOSCA Cpd node represents network connectivity to a compute resource +or a VL as defined by [ETSI GS NFV-IFA 011]. This is an abstract type +used as parent for the various Cpd types. + ++-----------------------+-----------------------+ +| Shorthand Name | Cpd | ++=======================+=======================+ +| Type Qualified Name | tosca:Cpd | ++-----------------------+-----------------------+ +| Type URI | tosca.nodes.nfv.Cpd | ++-----------------------+-----------------------+ + +Properties +^^^^^^^^^^ + ++-------------------+------------+------------------+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++===================+============+==================+===============================================================+=======================================================================================================================================+ +| layer\_protocol | yes | string | Valid values: Ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire | Identifies which protocol the connection point uses for connectivity purposes | ++-------------------+------------+------------------+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ +| role | no | string | Editor’s note: valid values: [ root, leaf ] | Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS. | +| | | | | | +| | | | | For example a VNF with a tree flow pattern within the VNF will have legal cpRoles of ROOT and LEAF | ++-------------------+------------+------------------+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ +| description | no | string | | Provides human-readable information on the purpose of the connection point (e.g. connection point for control plane traffic). | ++-------------------+------------+------------------+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ +| address\_data | no | AddressData [] | | Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor. | ++-------------------+------------+------------------+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ + +Attributes +^^^^^^^^^^ + ++--------+------------+--------+---------------+---------------+ +| Name | Required | Type | Constraints | Description | ++========+============+========+===============+===============+ ++--------+------------+--------+---------------+---------------+ + +Requirements +^^^^^^^^^^^^ + +None + +Capabilities +^^^^^^^^^^^^ + +None + +Definition +^^^^^^^^^^ + ++----------------------------------------------------------------------+ +| tosca.nodes.nfv.Cpd: | +| | +| derived\_from: tosca.nodes.Root | +| | +| properties: | +| | +| layer\_protocol: | +| | +| type:string | +| | +| constraints: | +| | +| - valid\_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo\_wire ] | +| | +| required:true | +| | +| role: #Name in ETSI NFV IFA011 v0.7.3 cpRole | +| | +| type:string | +| | +| constraints: | +| | +| - valid\_values: [ root, leaf ] | +| | +| required:flase | +| | +| description: | +| | +| type: string | +| | +| required: false | +| | +| address\_data: | +| | +| type: list | +| | +| entry\_schema: | +| | +| type: tosca.datatype.nfv.AddressData | +| | +| required:false | ++----------------------------------------------------------------------+ + +Additional Requirement +^^^^^^^^^^^^^^^^^^^^^^ + +None. + +tosca.nodes.nfv.VduCpd +~~~~~~~~~~~~~~~~~~~~~~ + +The TOSCA node VduCpd represents a type of TOSCA Cpd node and describes +network connectivity between a VNFC instance (based on this VDU) and an +internal VL as defined by [ETSI GS NFV-IFA 011]. + ++-----------------------+--------------------------+ +| Shorthand Name | VduCpd | ++=======================+==========================+ +| Type Qualified Name | tosca: VduCpd | ++-----------------------+--------------------------+ +| Type URI | tosca.nodes.nfv.VduCpd | ++-----------------------+--------------------------+ + +Properties +^^^^^^^^^^ + ++---------------------------------------------+------------+------------------------------------------+---------------+-------------------------------------------------------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++=============================================+============+==========================================+===============+=======================================================================================================+ +| bitrate\_requirement | no | integer | | Bitrate requirement on this connection point. | ++---------------------------------------------+------------+------------------------------------------+---------------+-------------------------------------------------------------------------------------------------------+ +| virtual\_network\_interface\_requirements | no | VirtualNetworkInterfaceRequirements [] | | Specifies requirements on a virtual network interface realising the CPs instantiated from this CPD. | ++---------------------------------------------+------------+------------------------------------------+---------------+-------------------------------------------------------------------------------------------------------+ + +Attributes +^^^^^^^^^^ + +None + +Requirements +^^^^^^^^^^^^ + ++--------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ +| Name | Required | Type | Constraints | Description | ++====================+============+==========================================+===============+==========================================================+ +| virtual\_binding | yes | tosca.capabilities.nfv.VirtualBindable | | Describe the requirement for binding with VDU | ++--------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ +| virtual\_link | no | tosca.capabilities.nfv.VirtualLinkable | | Describes the requirements for linking to virtual link | ++--------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ + +Definition +^^^^^^^^^^ + ++----------------------------------------------------------------+ +| tosca.nodes.nfv.VduCpd: | +| | +| derived\_from: tosca.nodes.nfv.Cpd | +| | +| properties: | +| | +| bitrate\_requirement: | +| | +| type: integer | +| | +| required:false | +| | +| virtual\_network\_interface\_requirements | +| | +| type: list | +| | +| entry\_schema: | +| | +| type: VirtualNetworkInterfaceRequirements | +| | +| required:false | +| | +| requirements: | +| | +| - virtual\_link: | +| | +| capability: tosca.capabilities.nfv.VirtualLinkable | +| | +| relationship: tosca.relationships.nfv.VirtualLinksTo | +| | +| node: tosca.nodes.nfv.VnfVirtualLinkDesc - virtual\_binding: | +| | +| capability: tosca.capabilities.nfv.VirtualBindable | +| | +| relationship: tosca.relationships.nfv.VirtualBindsTo | +| | +| node: tosca.nodes.nfv.VDU | ++----------------------------------------------------------------+ + +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\_format | yes | string | | The container 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-unit.size | | The minimal disk size requirement for this software image. | ++------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ +| min\_ram | no | scalar-unit.size | | The minimal RAM requirement for this software image. | ++------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ +| Size | yes | scalar-unit.size | | The size of this software image | ++------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ +| sw\_image | yes | string | | A reference to the actual software image within VNF Package, or url. | ++------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ +| operating\_system | no | string | | Identifies the operating system used in the software image. | ++------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ +| supported \_virtualization\_enviroment | no | list | | Identifies the virtualization environments (e.g. hypervisor) compatible with this software image | ++------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ + +Definition +^^^^^^^^^^ + ++-----------------------------------------------------+ +| 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 | ++-----------------------------------------------------+ + +vNAT Example +------------ + +openovnf\_\_vOpenNAT.yaml +~~~~~~~~~~~~~~~~~~~~~~~~~ + ++-------------------------------------------------------------+ +| imports: | +| | +| - openonfv\_\_tosca.capabilities.Scalable.yaml | +| | +| - openonfv\_\_tosca.capabilities.nfv.Metric.yaml | +| | +| - openonfv\_\_tosca.capabilities.network.Bindable.yaml | +| | +| - openonfv\_\_tosca.capabilities.Attachment.yaml | +| | +| - openonfv\_\_tosca.capabilities.nfv.VirtualBindable.yaml | +| | +| - openonfv\_\_tosca.requirements.nfv.VirtualStorage.yaml | +| | +| - openonfv\_\_tosca.nodes.nfv.VDU.VirtualStorage.yaml | +| | +| - openonfv\_\_tosca.relationships.nfv.VirtualBindsTo.yaml | +| | +| - openonfv\_\_tosca.nodes.nfv.VDU.Compute.yaml | +| | +| - openonfv\_\_tosca.artifacts.nfv.SwImage.yaml | +| | +| - openonfv\_\_tosca.capabilities.nfv.VirtualCompute.yaml | +| | +| - openonfv\_\_tosca.capabilities.Container.yaml | +| | +| - openonfv\_\_tosca.capabilities.nfv.VirtualStorage.yaml | +| | +| - openonfv\_\_tosca.requirements.nfv.VirtualBinding.yaml | +| | +| - openovnf\_\_tosca.nodes.nfv.VNF.vOpenNAT.yaml | +| | +| - openonfv\_\_tosca.capabilities.Endpoint.Admin.yaml | +| | +| - openonfv\_\_tosca.capabilities.OperatingSystem.yaml | +| | +| - openonfv\_\_tosca.nodes.nfv.VduCpd.yaml | +| | +| - openonfv\_\_tosca.relationships.nfv.VDU.AttachedTo.yaml | +| | +| metadata: | +| | +| vnfProductName: openNAT | +| | +| vnfdVersion: 1.0.0 | +| | +| vnfProvider: intel | +| | +| vnfmInfo: GVNFM | +| | +| csarVersion: 1.0.0 | +| | +| vnfdId: openNAT-1.0 | +| | +| csarProvider: intel | +| | +| vnfProductInfoDescription: openNAT | +| | +| version: 1.0.0 | +| | +| csarType: NFAR | +| | +| vendor: intel | +| | +| localizationLanguage: '[english, chinese]' | +| | +| id: openNAT-1.0 | +| | +| defaultLocalizationLanguage: english | +| | +| vnfProductInfoName: openNAT | +| | +| vnfSoftwareVersion: 1.0.0 | +| | +| topology\_template: | +| | +| node\_templates: | +| | +| vdu\_vNat: | +| | +| artifacts: | +| | +| vNatVNFImage: | +| | +| file: /swimages/xenial-snat.qcow2 | +| | +| type: tosca.artifacts.nfv.SwImage | +| | +| properties: | +| | +| name: vNatVNFImage | +| | +| version: "1.0" | +| | +| checksum: "5000" | +| | +| container\_format: bare | +| | +| disk\_format: qcow2 | +| | +| min\_disk: 10 GB | +| | +| min\_ram: 1 GB | +| | +| size: 10 GB | +| | +| sw\_image: /swimages/xenial-snat.qcow2 | +| | +| operating\_system: unbantu | +| | +| attributes: | +| | +| tosca\_name: 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" | +| | +| 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" | +| | +| ovs\_dpdk: | +| | +| support\_mandatory: true | +| | +| requested\_additional\_capability\_name: ovs\_dpdk | +| | +| target\_performance\_parameters: | +| | +| sw:ovs\_dpdk: "true" | +| | +| virtual\_cpu: | +| | +| cpu\_architecture: X86 | +| | +| num\_virtual\_cpu: 2 | +| | +| properties: | +| | +| configurable\_properties: | +| | +| test: | +| | +| additional\_vnfc\_configurable\_properties: | +| | +| aaa: 1 | +| | +| name: vNat | +| | +| descrption: the virtual machine of vNat | +| | +| boot\_order: | +| | +| - vNAT\_Storage | +| | +| requirements: | +| | +| - virtual\_storage: | +| | +| capability: virtual\_storage | +| | +| node: vNAT\_Storage | +| | +| relationship: | +| | +| properties: | +| | +| location: /mnt/volume\_0 | +| | +| type: tosca.relationships.nfv.VDU.AttachedTo | +| | +| - local\_storage: | +| | +| node: tosca.nodes.Root | +| | +| type: tosca.nodes.nfv.VDU.Compute | +| | +| 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 | +| | +| vNAT\_Storage: | +| | +| attributes: | +| | +| tosca\_name: vNAT\_Storage | +| | +| properties: | +| | +| id: vNAT\_Storage | +| | +| size\_of\_storage: 10 GB | +| | +| rdma\_enabled: false | +| | +| type\_of\_storage: volume | +| | +| type: tosca.nodes.nfv.VDU.VirtualStorage | +| | +| substitution\_mappings: | +| | +| requirements: | +| | +| sriov\_plane: | +| | +| - SRIOV\_Port | +| | +| - virtual\_link | +| | +| node\_type: tosca.nodes.nfv.VNF.vOpenNAT | +| | +| tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0 | ++-------------------------------------------------------------+ + +openonfv\_\_tosca.nodes.nfv.VDU.VirtualStorage.yaml +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++------------------------------------------------------------+ +| imports: | +| | +| - openonfv\_\_tosca.capabilities.nfv.VirtualStorage.yaml | +| | +| node\_types: | +| | +| tosca.nodes.nfv.VDU.VirtualStorage: | +| | +| capabilities: | +| | +| virtual\_storage: | +| | +| type: tosca.capabilities.nfv.VirtualStorage | +| | +| derived\_from: tosca.nodes.Root | +| | +| properties: | +| | +| id: | +| | +| type: string | +| | +| size\_of\_storage: | +| | +| type: string | +| | +| rdma\_enabled: | +| | +| required: false | +| | +| type: boolean | +| | +| type\_of\_storage: | +| | +| type: string | +| | +| tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0 | ++------------------------------------------------------------+ + +openonfv\_\_tosca.nodes.nfv.VduCpd.yaml +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++-----------------------------------------------------------------+ +| data\_types: | +| | +| tosca.datatypes.nfv.L3AddressData: | +| | +| properties: | +| | +| number\_of\_ip\_address: | +| | +| required: false | +| | +| type: integer | +| | +| ip\_address\_assignment: | +| | +| type: boolean | +| | +| ip\_address\_type: | +| | +| constraints: | +| | +| - valid\_values: | +| | +| - ipv4 | +| | +| - ipv6 | +| | +| required: false | +| | +| type: string | +| | +| floating\_ip\_activated: | +| | +| type: string | +| | +| tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: | +| | +| properties: | +| | +| name: | +| | +| required: false | +| | +| type: string | +| | +| support\_mandatory: | +| | +| type: boolean | +| | +| description: | +| | +| required: false | +| | +| type: string | +| | +| requirement: | +| | +| entry\_schema: | +| | +| type: string | +| | +| type: map | +| | +| tosca.datatype.nfv.AddressData: | +| | +| properties: | +| | +| address\_type: | +| | +| constraints: | +| | +| - valid\_values: | +| | +| - mac\_address | +| | +| - ip\_address | +| | +| type: string | +| | +| l2\_address\_data: | +| | +| required: false | +| | +| type: tosca.datatypes.nfv.L2AddressData | +| | +| l3\_address\_data: | +| | +| required: false | +| | +| type: tosca.datatypes.nfv.L3AddressData | +| | +| tosca.datatypes.nfv.L2AddressData: {} | +| | +| imports: | +| | +| - openonfv\_\_tosca.requirements.nfv.VirtualBinding.yaml | +| | +| - openonfv\_\_tosca.requirements.nfv.VirtualBinding.yaml | +| | +| node\_types: | +| | +| tosca.nodes.nfv.VduCpd: | +| | +| derived\_from: tosca.nodes.Root | +| | +| properties: | +| | +| virtual\_network\_interface\_requirements: | +| | +| entry\_schema: | +| | +| type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements | +| | +| required: false | +| | +| type: list | +| | +| role: | +| | +| constraints: | +| | +| - valid\_values: | +| | +| - root | +| | +| - leaf | +| | +| required: false | +| | +| type: string | +| | +| bitrate\_requirement: | +| | +| required: false | +| | +| type: integer | +| | +| description: | +| | +| required: false | +| | +| type: string | +| | +| layer\_protocol: | +| | +| constraints: | +| | +| - valid\_values: | +| | +| - ethernet | +| | +| - mpls | +| | +| - odu2 | +| | +| - ipv4 | +| | +| - ipv6 | +| | +| - pseudo\_wire | +| | +| type: string | +| | +| address\_data: | +| | +| entry\_schema: | +| | +| type: tosca.datatype.nfv.AddressData | +| | +| required: false | +| | +| type: list | +| | +| requirements: | +| | +| - virtual\_binding: | +| | +| capability: tosca.capabilities.nfv.VirtualBindable | +| | +| occurrences: | +| | +| - 0 | +| | +| - UNBOUNDED | +| | +| - virtual\_link: | +| | +| capability: tosca.capabilities.nfv.VirtualBindable | +| | +| occurrences: | +| | +| - 0 | +| | +| - UNBOUNDED | +| | +| tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0 | ++-----------------------------------------------------------------+ + +.. |image0| image:: VNF_TOSCA_Nested_Orchestration_01.jpg + :width: 2.55486in + :height: 1.71806in +.. |image1| image:: VNF_TOSCA_Nested_Orchestration_02.jpg + :width: 2.67292in + :height: 1.66389in +.. |image2| image:: VNF_TOSCA_WorkFlow_Design_Interface.jpg + :width: 4.80000in + :height: 2.68194in +.. |image3| image:: VNF_TOSCA_WorkFlow_Service_Template_Design.jpg + :width: 5.76806in + :height: 1.42778in +.. |image4| image:: VNF_TOSCA_DeploymentFlavor_Design.jpg + :width: 3.23376in + :height: 2.95276in +.. |image5| image:: VNF_TOSCA_Design_Scale_Param.jpg + :width: 3.26357in + :height: 2.75591in +.. |image6| image:: VNF_TOSCA_Param_Definition.jpg + :width: 3.33333in + :height: 2.82500in +.. |image7| image:: VNF_TOSCA_Image_Artifacts.jpg + :width: 3.54862in + :height: 3.54331in +.. |image8| image:: VNF_TOSCA_Image_Artifact_To_Node.jpg + :width: 3.36667in + :height: 4.44167in +.. |image9| image:: VNF_TOSCA_Package_Structure.jpg + :width: 4.95799in + :height: 4.59130in +.. |image10| image:: VNF_TOSCA_Service_Template.jpg + :width: 5.76806in + :height: 4.67161in +.. |image11| image:: VNF_TOSCA_Node_VDU_Compute_Artifact.jpg + :width: 5.40470in + :height: 2.46099in diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_WorkFlow_Design_Interface.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_WorkFlow_Design_Interface.jpg Binary files differnew file mode 100644 index 0000000..95fe1bb --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_WorkFlow_Design_Interface.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_WorkFlow_Service_Template_Design.jpg b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_WorkFlow_Service_Template_Design.jpg Binary files differnew file mode 100644 index 0000000..e7f5f08 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/VNF_TOSCA_WorkFlow_Service_Template_Design.jpg diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/index.rst b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/index.rst new file mode 100644 index 0000000..6254742 --- /dev/null +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/VNF_TOSCA_Templates_for_OpenO/index.rst @@ -0,0 +1,7 @@ +VNF TOSCA Templates for OpenO +----------------------------------- + +.. toctree:: + :maxdepth: 2 + + VNF_TOSCA_Template_Requirements_for_OpenO_4_27_2017_clean
\ No newline at end of file diff --git a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/index.rst b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/index.rst index 8179d26..2296174 100644 --- a/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/index.rst +++ b/docs/all_vnfrqts_seed_docs/openO/inital_seed_openO/index.rst @@ -4,3 +4,5 @@ Inital Open-O Seed Documentation .. toctree:: :titlesonly: + VNF_Mgmt_Requirements_for_OpenO/index + VNF_TOSCA_Templates_for_OpenO/index
\ No newline at end of file |