diff options
author | yangyan <yangyanyj@chinamobile.com> | 2017-11-01 12:20:49 +0800 |
---|---|---|
committer | yangyan <yangyanyj@chinamobile.com> | 2017-11-01 12:21:27 +0800 |
commit | ad8793f9b4a4de8fe8aa37c80d6746403631528f (patch) | |
tree | c830abb339bb9231a64e3f0c3c5ed6b82171e68f /docs/platform | |
parent | 8ef8e0696d5e9598012363f780d722f90e9d06e2 (diff) |
Update VF-C doc
Add VF-C release note
Update VF-C component installation document
Issue-ID: VFC-574
Change-Id: I8d422e341d785c8d817e53ad5a24412e50933a64
Signed-off-by: yangyan <yangyanyj@chinamobile.com>
Diffstat (limited to 'docs/platform')
-rw-r--r-- | docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst | 1086 | ||||
-rw-r--r-- | docs/platform/APIs/NSLCM_API/index.rst | 7 | ||||
-rw-r--r-- | docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst | 1684 | ||||
-rw-r--r-- | docs/platform/APIs/VNFLCM_API/VNFM_API.png | bin | 0 -> 53033 bytes | |||
-rw-r--r-- | docs/platform/APIs/VNFLCM_API/index.rst | 7 | ||||
-rw-r--r-- | docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst | 633 | ||||
-rw-r--r-- | docs/platform/APIs/VNFMDriver_API/index.rst | 7 | ||||
-rw-r--r-- | docs/platform/APIs/index.rst | 43 | ||||
-rw-r--r-- | docs/platform/architecture.rst | 25 | ||||
-rw-r--r-- | docs/platform/components.png | bin | 0 -> 6381 bytes | |||
-rw-r--r-- | docs/platform/delivery.rst | 27 | ||||
-rw-r--r-- | docs/platform/index.rst | 24 | ||||
-rw-r--r-- | docs/platform/installation.rst | 163 | ||||
-rw-r--r-- | docs/platform/logging.rst | 14 | ||||
-rw-r--r-- | docs/platform/offeredapis.rst | 43 | ||||
-rw-r--r-- | docs/platform/vfc-arc.png | bin | 0 -> 71929 bytes |
16 files changed, 3763 insertions, 0 deletions
diff --git a/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst new file mode 100644 index 00000000..bada11e7 --- /dev/null +++ b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst @@ -0,0 +1,1086 @@ +
+
+NS LCM API
+==========
+
+ {
+ "swagger": "2.0",
+
+ "info": {
+
+ "version": "1.0.0",
+
+ "title": "ONAP VFC Network Service Lifecycle Management API",
+
+ "description": "VFC Network Service Lifecycle Management Rest API.",
+
+ "contact": {
+
+ "name": "ONAP VFC team",
+
+ "email": "onap-discuss@lists.onap.org",
+
+ "url": "https://gerrit.onap.org/r/#/admin/projects/vfc/nfvo/lcm"
+
+ }
+
+ },
+
+ "basePath": "/api/nslcm/v1",
+
+ "schemes": [
+
+ "http",
+ "https"
+
+ ],
+
+ "consumes": [
+
+ "application/json"
+
+ ],
+ "produces": [
+
+ "application/json"
+
+ ],
+ "paths": {
+
+ "/ns": {
+
+ "post": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+ "summary": "ns create",
+
+ "description": "ns create",
+
+ "operationId": "ns_create",
+
+ "parameters": [
+
+ {
+
+ "in": "body",
+
+ "name": "NSCreateRequest",
+
+ "description": "NS Instance Create Request",
+
+ "required": true,
+
+ "schema": {
+
+ "$ref": "#/definitions/NsCreateRequest"
+
+ }
+
+ }
+
+ ],
+
+ "responses": {
+
+ "200": {
+
+ "description": "successful operation",
+
+ "schema": {
+
+ "$ref": "#/definitions/NsCreateResponse"
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "get": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+
+ "summary": "ns get",
+
+ "description": "ns get",
+
+ "operationId": "ns_get",
+
+ "parameters": [],
+
+ "responses": {
+
+ "200": {
+
+ "description": "successful operation",
+
+ "schema": {
+
+ "$ref": "#/definitions/NsInfo"
+
+ }
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "/ns/{nsInstanceId}/Instantiate": {
+
+ "post": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+
+ "summary": "ns Instantiate",
+
+ "description": "ns Instantiate",
+
+ "operationId": "ns_Instantiate",
+
+ "parameters": [
+
+ {
+ "required": true,
+
+ "type": "string",
+
+ "description": "",
+
+ "name": "nsInstanceId",
+
+ "in": "path"
+
+ },
+ {
+
+ "in": "body",
+
+ "name": "NSInstantiateRequest",
+
+ "description": "NS Instantiate Request Body",
+
+ "required": true,
+
+ "schema": {
+
+ "$ref": "#/definitions/NsInstantiateRequest"
+
+ }
+
+ }
+
+ ],
+
+ "responses": {
+
+ "200": {
+
+ "description": "",
+
+ "schema": {
+
+ "$ref": "#/definitions/JobInfo"
+
+ }
+
+ },
+
+ "201": {
+
+ "description": "Invalid Request"
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "/ns/{nsInstanceId}/scale": {
+
+ "post": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+
+ "summary": "ns scale",
+
+ "description": "ns scale",
+
+ "operationId": "ns_scale",
+
+ "parameters": [
+
+ {
+
+ "required": true,
+
+ "type": "string",
+
+ "description": "",
+
+ "name": "nsInstanceId",
+
+ "in": "path"
+
+ },
+
+ {
+
+ "in": "body",
+
+ "name": "ScaleNSRequest",
+
+ "description": "Scale NS Request Body",
+
+ "required": true,
+
+ "schema": {
+
+ "$ref": "#/definitions/NsScaleRequest"
+
+ }
+
+ }
+
+ ],
+
+ "responses": {
+
+ "200": {
+
+ "description": "",
+
+ "schema": {
+
+ "$ref": "#/definitions/JobInfo"
+
+ }
+
+ },
+
+ "201": {
+
+ "description": "Invalid Request"
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "/ns/{ns_instance_id}/heal": {
+
+ "post": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+
+ "summary": "ns heal",
+
+ "description": "ns heal",
+
+ "operationId": "ns_heal",
+
+ "parameters": [
+
+ {
+ "required": true,
+
+ "type": "string",
+
+ "description": "Identifier of the NS instance.",
+
+ "name": "ns_instance_id",
+
+ "in": "path"
+
+ },
+
+ {
+
+ "in": "body",
+
+ "name": "healVnfData",
+
+ "description": "healVnfData",
+
+ "required": true,
+
+ "schema": {
+
+ "$ref": "#/definitions/NsHealRequest"
+
+ }
+
+ }
+
+ ],
+
+ "responses": {
+
+ "202": {
+
+ "description": "",
+
+ "schema": {
+
+ "$ref": "#/definitions/JobInfo"
+
+ }
+
+ },
+
+ "500": {
+
+ "description": "the url is invalid"
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "/ns/{ns_instance_id}/terminate": {
+
+ "post": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+
+ "summary": "ns terminate",
+
+ "description": "ns terminate",
+
+ "operationId": "ns_terminate",
+
+ "parameters": [
+
+ {
+
+ "required": true,
+
+ "type": "string",
+
+ "description": "Identifier of the NS instance.",
+
+ "name": "ns_instance_id",
+
+ "in": "path"
+
+ },
+
+ {
+ "in": "body",
+
+ "name": "NsTerminateRequest",
+
+ "description": "NsTerminateRequest",
+
+ "required": true,
+
+ "schema": {
+
+ "$ref": "#/definitions/NsTerminateRequest"
+
+ }
+
+ }
+
+ ],
+
+ "responses": {
+
+ "202": {
+
+ "description": "",
+
+ "schema": {
+
+ "$ref": "#/definitions/JobInfo"
+
+ }
+
+ },
+
+ "500": {
+
+ "description": "the url is invalid"
+
+ }
+
+ }
+
+ }
+
+ },
+ "/ns/{ns_instance_id}": {
+
+ "delete": {
+
+ "tags": [
+
+ "ns"
+
+ ],
+
+ "summary": "ns delete",
+
+ "description": "ns delete",
+
+ "operationId": "ns_delete",
+
+ "parameters": [
+
+ {
+ "required": true,
+
+ "type": "string",
+
+ "description": "Identifier of the NS instance.",
+
+ "name": "ns_instance_id",
+
+ "in": "path"
+
+ }
+
+ ],
+
+ "responses": {
+
+ "204": {
+
+ "description": "The NS instance resource and the associated NS identifier were deleted successfully."
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "/jobs/{jobId}": {
+
+ "post": {
+
+ "tags": [
+
+ "job"
+
+ ],
+
+ "summary": "jobstatus",
+
+ "description": "",
+
+ "operationId": "jobstatus",
+
+ "parameters": [
+
+ {
+ "required": true,
+
+ "type": "string",
+
+ "description": "",
+
+ "name": "jobId",
+
+ "in": "path"
+
+ },
+
+ {
+
+ "in": "body",
+
+ "name": "body",
+
+ "description": "request param",
+
+ "required": true,
+
+ "schema": {
+
+ "$ref": "#/definitions/JobProgressRequest"
+
+ }
+
+ }
+
+ ],
+
+ "responses": {
+
+ "202": {
+
+ "description": ""
+
+ }
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "definitions": {
+
+ "NsCreateRequest": {
+
+ "type": "object",
+
+ "properties": {
+
+ "context":{
+
+ "type": "object",
+
+ "properties": {
+
+ "globalCustomerId":{
+
+ "type": "string",
+ "description": "the global customer id"
+
+ },
+
+ "serviceType":{
+ "type": "string",
+
+ "description": "service type"
+
+ }
+
+ }
+
+ },
+
+ "csarId": {
+
+ "type": "string",
+
+ "description": "the NS package ID"
+
+ },
+
+ "nsName": {
+
+ "type": "string"
+
+ },
+
+ "description": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "NsCreateResponse": {
+
+ "type": "object",
+
+ "properties": {
+
+ "nsInstanceId": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+ "NsInstantiateRequest": {
+
+ "type": "object",
+
+ "properties": {
+
+ "LocationConstraints": {
+
+ "type": "array",
+
+ "items": {
+
+ "$ref": "#/definitions/LocationConstraint"
+
+ }
+
+ },
+
+ "additionalParamForNs": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "LocationConstraint": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vnfProfileId": {
+
+ "type": "string"
+
+ },
+ "locationConstraints": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vimid": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "NsScaleRequest": {
+
+ "type": "object",
+
+ "properties": {
+
+ "scaleType": {
+
+ "type": "string"
+
+ },
+
+ "scaleNsByStepsData": {
+
+ "$ref": "#/definitions/NsScaleByStepsData"
+
+ }
+
+ }
+
+ },
+
+ "NsScaleByStepsData": {
+
+ "type": "object",
+
+ "properties": {
+
+ "scalingDirection": {
+
+ "type": "string"
+
+ },
+
+ "aspectId": {
+
+ "type": "string"
+
+ },
+
+ "numberOfSteps": {
+
+ "type": "integer"
+
+ }
+
+ }
+
+ },
+
+ "NsHealRequest": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vnfInstanceId": {
+
+ "type": "string"
+
+ },
+
+ "cause": {
+
+ "type": "string"
+
+ },
+
+ "additionalParams": {
+
+ "type": "object",
+
+ "properties": {
+
+ "action": {
+
+ "type": "string"
+
+ },
+
+ "actionvminfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vmid": {
+
+ "type": "string"
+
+ },
+
+ "vmname": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "NsTerminateRequest": {
+
+ "type": "object",
+
+ "properties": {
+
+ "terminationType": {
+
+ "type": "string"
+
+ },
+
+ "gracefulTerminationTimeout": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "JobInfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "jobId": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "JobProgressRequest": {
+
+ "type": "object",
+
+ "properties": {
+
+ "progress": {
+
+ "type": "string"
+
+ },
+
+ "desc": {
+
+ "type": "string"
+
+ },
+
+ "errcode": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "NsInfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "nsInstanceId": {
+
+ "type": "string"
+
+ },
+
+ "nsName": {
+
+ "type": "string"
+
+ },
+
+ "description": {
+
+ "type": "string"
+
+ },
+
+ "nsdId": {
+
+ "type": "string"
+
+ },
+
+ "vnfInfo": {
+
+ "type": "array",
+
+ "items": {
+
+ "$ref": "#/definitions/vnfInfo"
+
+ }
+
+ },
+
+ "vlInfo": {
+
+ "type": "array",
+
+ "items": {
+
+ "$ref": "#/definitions/vlInfo"
+
+ }
+
+ },
+
+ "vnffgInfo": {
+
+ "type": "array",
+
+ "items": {
+
+ "$ref": "#/definitions/vnffgInfo"
+
+ }
+
+ },
+
+ "nsState": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "vnfInfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vnfInstanceId": {
+
+ "type": "string"
+
+ },
+
+ "vnfInstanceName": {
+
+ "type": "string"
+
+ },
+
+ "vnfdId": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+
+ "vlInfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vlInstanceId": {
+
+ "type": "string"
+
+ },
+
+ "vlInstanceName": {
+
+ "type": "string"
+
+ },
+
+ "vldId": {
+
+ "type": "string"
+
+ },
+
+ "relatedCpInstanceId": {
+
+ "type": "array",
+
+ "items": {
+
+ "$ref": "#/definitions/cpInfo"
+
+ }
+
+ }
+
+ }
+
+ },
+
+ "cpInfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "cpInstanceId": {
+
+ "type": "string"
+
+ },
+
+ "cpInstanceName": {
+
+ "type": "string"
+
+ },
+
+ "cpdId": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ },
+ "vnffgInfo": {
+
+ "type": "object",
+
+ "properties": {
+
+ "vnffgInstanceId": {
+
+ "type": "string"
+
+ },
+
+ "vnfId": {
+
+ "type": "string"
+
+ },
+ "pnfId": {
+
+ "type": "string"
+
+ },
+
+ "virtualLinkId": {
+
+ "type": "string"
+
+ },
+
+ "cpId": {
+
+ "type": "string"
+
+ },
+
+ "nfp": {
+
+ "type": "string"
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
\ No newline at end of file diff --git a/docs/platform/APIs/NSLCM_API/index.rst b/docs/platform/APIs/NSLCM_API/index.rst new file mode 100644 index 00000000..ffbf0756 --- /dev/null +++ b/docs/platform/APIs/NSLCM_API/index.rst @@ -0,0 +1,7 @@ +NSLCM API
+---------
+
+.. toctree::
+ :titlesonly:
+
+.. literalinclude:: NSLCM_API_Specification_v0.1.rst
\ No newline at end of file diff --git a/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst b/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst new file mode 100644 index 00000000..c6db4326 --- /dev/null +++ b/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst @@ -0,0 +1,1684 @@ +.. contents::
+ :depth: 3
+..
+
+ **VNFM API**
+ **V0.1**
+
+**1 Scope**
+=============
+
+ The scope of the present document is to describe the VNFM exposed
+ API specification over Or-Vnfm Reference Point.
+
+**2 Terms, Definitions and Abbreviations**
+===========================================
+
+ For the purposes of the present document, the following
+ abbreviations apply:
+
++------------------------+-----------------------------------------------------+
+| **Abbreviation** | |
++========================+=====================================================+
+| NFVO | Network Functions Virtualization Orchestrator |
++------------------------+-----------------------------------------------------+
+| VNFM | Virtual Network Function Manager |
++------------------------+-----------------------------------------------------+
+| VNF | Virtual Network Function |
++------------------------+-----------------------------------------------------+
+
+Table 2-1 abbreviations
+
+**3. Interfaces provided by VNFM** (Or-Vnfm/Ve-Vnfm-vnf)
+==========================================================
+
+ Interfaces use RESTful API and the format is as follows:
+ http(s)://[hostname][:port]/gvnfmapi/lcm/v1/[……]
+
+|image0|
+
+
+ **{apiRoot} is** http(s)://[hostname][:port]/gvnfmapi
+
+**3.1 Create VNF Identifier**
+-----------------------------
+
++---------------------+--------------------------------------------------------------+
+| If Definition | Description |
++=====================+==============================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances |
++---------------------+--------------------------------------------------------------+
+| Operation | POST |
++---------------------+--------------------------------------------------------------+
+| Direction | NFVO->VNFMLCM |
++---------------------+--------------------------------------------------------------+
+
+**3.1.1 Request**
+
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++===========================+=============+===============+==================+=====================================================================================+
+| vnfdId | M | 1 | Identifier | Identifier that identifies the VNFD which defines the VNF instance to be created. |
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+
+| vnfInstanceName | M | 1 | String | Human-readable name of the VNF instance to be created. |
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+
+| vnfInstanceDescription | O | 0..1 | String | Human-readable description of the VNF instance to be created. |
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+
+
+ {
+ "vnfdId": "zte\_vFW\_51610",
+ "vnfInstanceName": "vFW\_01",
+ "vnfInstanceDescription": " vFW in Nanjing TIC Edge"
+
+ }
+
+**3.1.2 Response**
+
++-----------------+-------------+---------------+------------------+-----------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=================+=============+===============+==================+=========================================+
+| vnfInstanceId | M | 1 | Identifier | VNF instance identifier just created. |
++-----------------+-------------+---------------+------------------+-----------------------------------------+
+
+ {
+ "vnfInstanceId": "1"
+
+ }
+
+**3.1.3 Response Code**
+
++-----------+-----------------------+-----------------------------------------------------------+
+| Code | Meaning | Description |
++===========+=======================+===========================================================+
+| 201 | Created | A VNF Instance identifier was created successfully. |
++-----------+-----------------------+-----------------------------------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+-----------------------------------------------------------+
+
+**3.2 Delete VNF Identifier**
+-----------------------------
+
++---------------------+------------------------------------------------------------------------------+
+| If Definition | Description |
++=====================+==============================================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances/{vnfInstanceId} |
++---------------------+------------------------------------------------------------------------------+
+| Operation | DELETE |
++---------------------+------------------------------------------------------------------------------+
+| Direction | NFVO->VNFMLCM |
++---------------------+------------------------------------------------------------------------------+
+
+**3.2.1 Request**
+
++-------------+-------------+---------------+---------------+---------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=============+=============+===============+===============+===============+
+| n/a | | | | |
++-------------+-------------+---------------+---------------+---------------+
+
+**3.2.2 Response**
+
++-------------+-------------+---------------+---------------+---------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=============+=============+===============+===============+===============+
+| n/a | | | | |
++-------------+-------------+---------------+---------------+---------------+
+
+**3.2.3 Response Code**
+
++--------+-----------+-------------------+
+| Code | Meaning | Description |
++--------+-----------+-------------------+
+
++-----------+-----------------------+----------------------------------------------------------------------------------------------+
+| 204 | No Content | The VNF instance resource and the associated VNF identifier were deleted successfully. |
++===========+=======================+==============================================================================================+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+----------------------------------------------------------------------------------------------+
+
+**3.3 Instantiate VNF**
+-----------------------
+
++---------------------+-------------------------------------------------------------------------------------------+
+| If Definition | Description |
++=====================+===========================================================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf_instances/{vnfInstanceId}/instantiate |
++---------------------+-------------------------------------------------------------------------------------------+
+| Operation | POST |
++---------------------+-------------------------------------------------------------------------------------------+
+| Direction | NFVO->VNFMLCM |
++---------------------+-------------------------------------------------------------------------------------------+
+
+3.3.1 **Request**
+
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+===========+=============+=====================+===============================================================+
+| flavourId | M | 1 | IdentifierInV nfd | Identifier of the VNF deployment flavour to be instantiated. |
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+| instantiation | O | 0..1 | IdentifierInVnfd | Identifier of the instantiation |
+| LevelId | | | | level of the deployment |
+| | | | | flavour to be instantiated. If |
+| | | | | not present, the default |
+| | | | | instantiation level as |
+| | | | | declared in the VNFD is |
+| | | | | instantiated. |
+| | | | | |
+| | | | | Reserved |
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+| extVirtualLinks | O | 0..N | ExtVirtualLin kData | Information about external VLs to connect the VNF to. |
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+| extManagedVirtualL | O | 0..N | ExtManaged | Information about internal |
+| inks | | | VirtualLinkData | VLs that are managed by |
+| | | | | other entities than the VNFM. |
+| | | | | |
+| | | | | Reserved |
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+| localization | O | 0..1 | String | Localization language of the VNF to be instantiated can be |
+| Language | | | | declared in the VNFD. The value shall comply with the format |
+| | | | | defined in IETF RFC 5646 [6]. |
+| | | | | |
+| | | | | Reserved |
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+| additionalParams | O | 0..N | KeyValuePair | Additional input parameters for the instantiation process, |
+| | | | | specific to the VNF being instantiated. |
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+
+
+**ExtVirtualLinkData:**
+
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinality | Content | Description |
++==================+===========+=============+=================+==================================================================================+
+| vlInstanceId | O | 0..1 | Identifier | 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. |
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+
+| resourceProvider | CM | 0..1 | Identifier | Identifies the entity responsible for the management of this resource. |
+| Id | | | | This attribute shall be present if |
+| | | | | VNF-related resource management in indirect mode is applicable. |
+| | | | | |
+| | | | | Reserved |
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+
+| resourceId | M | 1 | IdentifierInVim | The identifier of the resource in the scope of the VIM or the resource provider. |
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+
+| extCps | M | 1..N | VnfExtCpData | External CPs of the VNF to be connected to this external VL. |
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+
+
+ **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. |
++-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| interface | M | 1 | String | Information about the interface endpoint. An example is a URL. |
+| Endpoint | | | | Token, etc. |
++-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+
+
+ **interfaceInfo:**
+
++------------------+---------------+--------------------------------------+
+| **Key Define** | **Content** | **Description** |
++==================+===============+======================================+
+| vimType | String | The type of the VIM. |
++------------------+---------------+--------------------------------------+
+| apiVersion | String | The Version of the api of the VIM. |
++------------------+---------------+--------------------------------------+
+| protocolType | String | http https |
++------------------+---------------+--------------------------------------+
+
+ **accessInfo:**
+
++------------------+---------------+--------------------------+
+| **Key Define** | **Content** | **Description** |
++==================+===============+==========================+
+| tenant | String | Tenant Name of tenant |
++------------------+---------------+--------------------------+
+| username | String | Username for login |
++------------------+---------------+--------------------------+
+| password | String | Password of login user |
++------------------+---------------+--------------------------+
+
+ **VnfExtCpData:**
+
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+
+| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** |
++========================+=====================+=======================+====================+===========================================================+
+| cpdId | M | 1 | IdentifierInVnfd | The identifier of the CPD in the VNFD. |
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+
+| addresses | O | 0..N | NetworkAddress | List of (fixed) network addresses that |
+| | | | | need to be configured on the CP. This attribute shall |
+| | | | | be present if fixed addresses need to be configured. |
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+
+| numDynamicAddre sses | O | 0..1 | Integer | Number of network addresses to be assigned dynamically. |
+| | | | | This attribute shall be present if dynamic |
+| | | | | addresses need to be configured. |
+| | | | | Reserved |
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+
+
+ **NetworkAddress:**
+
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+
+| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** |
++=================+=====================+=======================+===================+===============================================================================================================+
+| addressType | M | 1 | Enum | Describes the type of the address to be assigned to the CP instantiated from the parent CPD. |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - MAC |
+| | | | | |
+| | | | | - IP |
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+
+| l2AddressData | CM | 0..1 | String | Provides the information on the MAC addresses to be assigned to the CP(s) instantiated from the parent CPD. |
+| | | | | |
+| | | | | Shall be present when the addressType is MAC address. |
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+
+| l3AddressData | CM | 0..1 | L3AddressData | Provides the information on the IP addresses to be assigned to the CP instantiated from the parent CPD. |
+| | | | | |
+| | | | | Shall be present when the addressType is IP address. |
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+
+
+ **L3AddressData:**
+
++-----------------+---------------------+-----------------------+-------------------+-----------------------+
+| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** |
++=================+=====================+=======================+===================+=======================+
+| iPAddressType | M | 1 | ENUM | IP address type. |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - IPv4 |
+| | | | | |
+| | | | | - IPv6 |
++-----------------+---------------------+-----------------------+-------------------+-----------------------+
+| iPAddress | M | 1 | String | IP address |
++-----------------+---------------------+-----------------------+-------------------+-----------------------+
+
+ {
+
+ "flavourId": "flavour\_1",
+ "instantiationLevelId":"instantiationLevel\_1",
+ "extVirtualLinks": [
+
+ { "vlInstanceId": "1",
+ "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/"
+
+ },
+ "resourceId": "1246",
+ "extCps": [
+
+ {
+ "cpdId": "11", "addresses": [
+
+ {
+ "addressType": "MAC",
+ "l2AddressData": "00:f3:43:20:a2:a3"
+
+ },
+ {
+
+ "addressType": "IP",
+ "l3AddressData": {
+
+ "iPAddressType": "IPv4",
+ "iPAddress": "192.168.104.2"
+
+ }
+
+ }
+
+ ],
+ "numDynamicAddresses": 0
+
+ },
+
+ ...
+
+ ]
+
+ }
+
+ ],
+
+ "localizationLanguage": "en\_US", "additionalParams": {...}
+
+ }
+
+
+**3.3.2 Response**
+
++-------------+-------------+---------------+------------------+---------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=============+=============+===============+==================+=========================================================+
+| vnfLcOpId | M | 1 | Identifier | Identifier of the VNF lifecycle operation occurrence. |
++-------------+-------------+---------------+------------------+---------------------------------------------------------+
+
+ {
+
+ "vnfLcOpId": "1"
+
+ }
+
+ **3.3.3 Response Code**
+
++-----------+-----------------------+------------------------------------------------------------------------------------------+
+| Code | Meaning | Description |
++===========+=======================+==========================================================================================+
+| 202 | Accepted | The request is accepted for processing, but the processing has not been completed. |
++-----------+-----------------------+------------------------------------------------------------------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+------------------------------------------------------------------------------------------+
+
+**3.4 Terminate VNF**
+---------------------
+
++---------------------+-----------------------------------------------------------------------------------------+
+| If Definition | Description |
++=====================+=========================================================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances/{vnfInstanceId}/term inate |
++---------------------+-----------------------------------------------------------------------------------------+
+| Operation | POST |
++---------------------+-----------------------------------------------------------------------------------------+
+| Direction | NFVO->VNFMLCM |
++---------------------+-----------------------------------------------------------------------------------------+
+
+**3.4.1 Request**
+
++-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++===================+=============+===============+===============+=========================================================================+
+| terminationType | M | 1 | Enum | Indicates whether forceful or graceful termination is requested. |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - FORCEFUL: The VNFM |
+| | | | | will shut down the VNF and release the resources immediately |
+| | | | | after accepting the request. |
+| | | | | - GRACEFUL: The VNFM |
+| | | | | |
+| | | | | will first arrange to take the VNF out of service after accepting |
+| | | | | the request. Once the operation is successful or once the timer |
+| | | | | value specified in the |
+| | | | | |
+| | | | | “gracefulTerminationTime out” attribute expires, the VNFM will shut |
+| | | | | down the VNF and release the resources. |
++-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+
+| graceful | O | 0..1 | Integer | This attribute is only |
+| Termination | | | | applicable in case of graceful |
+| Timeout | | | | termination. It defines the |
+| | | | | time to wait for the VNF to be |
+| | | | | taken out of service before |
+| | | | | shutting down the VNF and |
+| | | | | releasing the resources. |
+| | | | | The unit is seconds. |
+| | | | | If not given and the |
+| | | | | "terminationType" |
+| | | | | attribute is set to |
+| | | | | "GRACEFUL", 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. |
++-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+
+
+ {
+ "terminationType": "GRACEFUL",
+ "gracefulTerminationTimeout": 120
+
+ }
+
+**3.4.2 Response**
+
++-------------+-------------+---------------+------------------+---------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=============+=============+===============+==================+=========================================================+
+| vnfLcOpId | M | 1 | Identifier | Identifier of the VNF lifecycle operation occurrence. |
++-------------+-------------+---------------+------------------+---------------------------------------------------------+
+
+ {
+ "vnfLcOpId": "2"
+
+ }
+
+**3.4.3 Response Code**
+
++-----------+-----------------------+------------------------------------------------------------------------------------------+
+| Code | Meaning | Description |
++===========+=======================+==========================================================================================+
+| 202 | Accepted | The request is accepted for processing, but the processing has not been completed. |
++-----------+-----------------------+------------------------------------------------------------------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+------------------------------------------------------------------------------------------+
+
+**3.5 Query multiple VNF**
+---------------------------
++---------------------+--------------------------------------------------------------+
+| If Definition | Description |
++=====================+==============================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances |
++---------------------+--------------------------------------------------------------+
+| Operation | GET |
++---------------------+--------------------------------------------------------------+
+| Direction | NFVO->VNFMLCM |
++---------------------+--------------------------------------------------------------+
+
+**3.5.1 Request**
+
++-------------+-------------+---------------+---------------+---------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=============+=============+===============+===============+===============+
+| n/a | | | | |
++-------------+-------------+---------------+---------------+---------------+
+
+**3.5.2 Response**
+
++--------------------+-------------+---------------+------------------------+--------------------------------------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+=============+===============+========================+======================================================================================+
+| vnfInstanceInfos | M | 0..N | VnfInstanceI nfo | Returned if information about zero or more VNF instances was queried successfully. |
++--------------------+-------------+---------------+------------------------+--------------------------------------------------------------------------------------+
++--------------------+-------------+---------------+------------------------+--------------------------------------------------------------------------------------+
+
+ **VnfInstanceInfo:**
+
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier|Cardinality | Content | Description |
++==================================+==========+============+============================+=======================================================================================================================================================+
+| vnfInstanceId | M | 1 | Identifier | VNF instance identifier. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfInstanceName | M | 1 | String | VNF instance name. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfInstanceDescr iption | M | 1 | String | Human-readable description of the VNF instance. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| onboardedVnfPk gInfoId | M | 1 | Identifier | Identifier of information held by the NFVO about the specific VNF Package on which the VNF is based. This identifier was allocated by the NFVO. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfdId | M | 1 | Identifier | Identifier of the VNFD on which the VNF instance is based. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfdVersion | M | 1 | Identifier | Identifies the version of the VNFD. The value is copied from the VNFD. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfSoftwareVersi on | M | 1 | String | Software version of the VNF. |
+| | | | | |
+| | | | | The value is copied from the VNFD. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfProvider | M | 1 | String | Name of the person or company providing the VNF. |
+| | | | | |
+| | | | | The value is copied from the VNFD. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfProductName | M | 1 | String | Name to identify the VNF Product. The value is copied from the VNFD. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vnfConfigurableP roperties | O | 0..N | KeyValuePair | Current values of the configurable properties of the VNF instance. |
+| | | | | |
+| | | | | Configurable properties as declared in the VNFD. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| instantiationState | M | 1 | Enum | The instantiation state of the VNF. |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - NOT\_INSTANTIATED: The VNF |
+| | | | | |
+| | | | | instance is terminated or not instantiated. |
+| | | | | |
+| | | | | - INSTANTIATED: The VNF instance is instantiated. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| instantiatedVnfInf o | CM | 0..1 | InstantiatedVnf Info | Information specific to an instantiated VNF instance. |
+| | | | | |
+| | | | | This attribute shall be present if the instantiateState attribute value is INSTANTIATED. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| metadata | O | 0..N | KeyValuePair | Additional metadata describing the VNF instance. |
+| | | | | |
+| | | | | This attribute can be modified with the Modify VNF information operation. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| extensions | O | 0..N | KeyValuePair | VNF-specific attributes. |
+| | | | | |
+| | | | | This attribute can be modified with the Modify VNF information operation. |
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+ **InstantiatedVnfInfo:**
+
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinality| Content | Description |
++==============================+===========+============+==============================+========================================================================================================================+
+| flavourId | M | 1 | IdentifierInVnfd | Identifier of the VNF deployment flavour to be instantiated. |
+| | | | | |
+| | | | | Reserved |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| vnfState | M | 1 | ENUM | State of the VNF instance. |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - STARTED: The VNF instance is up and running. |
+| | | | | |
+| | | | | - STOPPED: The VNF instance has been shut down. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| scaleStatus | O | 0..N | ScaleInfo | Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled |
+| | | | | |
+| | | | | w.r.t. that aspect. |
+| | | | | |
+| | | | | This attribute shall be present if the VNF supports scaling. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| extCpInfo | O | 0..N | CpInfo | Information about the external CPs exposed by the VNF instance. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| extVirtualLink | O | 0..N | ExtVirtualLinkI nfo | Information about the external VLs the VNF instance is connected to. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| extManagedVirtu alLink | O | 0..N | extManagedVir tualLinkInfo | Information about the externally-managed internal VLs of the VNF instance. |
+| | | | | |
+| | | | | Reserved |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| monitoringParam eters | O | 0..N | MonitoringPar ameter | Active monitoring parameters. |
+| | | | | |
+| | | | | Reserved |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| localizationLangu age | O | 0..1 | String | Localization language of the VNF to be instantiated. |
+| | | | | |
+| | | | | The value shall comply with the format defined in IETF RFC 5646 [6]. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| vimInfo | CM | 0..N | VimInfo | Information about VIM(s) managing resources for the VNF instance. |
+| | | | | |
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| vnfcResourceInfo | CM | 0..N | VnfcResourceI nfo | Information about the virtualised compute and storage resource(s) used by the VNFCs of the VNF instance. |
+| | | | | |
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| virtualLinkResourceInfo | CM | 0..N | VirtualLinkRes ourceInfo | Information about the virtualised network resource(s) used by the VLs of the VNF instance. |
+| | | | | |
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+| virtualStorageResourceInfo | CM | 0..N | VirtualStorage ResourceInfo | Information about the virtualised storage resource(s) used as storage for the VNF instance. |
+| | | | | |
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+
+
+**ScaleInfo:**
+
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++==================+=============+====================+====================+=====================================================================================================================================+
+| aspectId | M | 1 | IdentifierInVnfd | Identifier of the scaling aspect. |
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+| scaleLevel | M | 1 | Integer | Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD. |
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+
+ **CpInfo:**
+
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++====================+=============+====================+====================+==================================================================+
+| cpInstanceId | M | 1 | Identifier | Identifier of the CP instance. |
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+
+| cpdId | M | 1 | IdentifierInVnfd | Identifier of the CPD, in the VNFD. |
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+
+| addresses | O | 0..N | NetworkAddre ss | List of network addresses that have been configured on the CP. |
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+
+
+ **ExtVirtualLinkInfo:**
+
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++========================+=============+====================+===================+=================================================+
+| extVirtualLinkId | M | 1 | Identifier | Identifier of the external VL. |
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+
+| resourceHandle | M | 1 | ResourceHand le | Identifier of the resource realizing this VL. |
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+
+| linkPorts | O | 0..N | VnfLinkPort | Link ports of this VL. |
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+
+
+ **ResourceHandle:**
+
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinality| Content | Description |
++=====================+============+============+===================+========================================================================================================+
+| vimId | CM | 0..1 | Identifier | Identifier of the VimInfo information element defining the VIM who manages the resource. |
+| | | | | |
+| | | | | This attribute shall be present if |
+| | | | | |
+| | | | | VNF-related resource management in direct mode is applicable. |
+| | | | | |
+| | | | | The value refers to a vimInfo item in the VnfInstance. |
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+
+| resourceProviderId | CM | 0..1 | Identifier | Identifier of the entity responsible for the management of the resource. |
+| | | | | |
+| | | | | This attribute shall be present when VNF-related resource management in indirect mode is applicable. |
+| | | | | |
+| | | | | Reserved |
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+
+| resourceId | M | 1 | IdentifierInVim | Identifier of the resource in the scope of the VIM or the resource provider. |
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+
+
+ **VnfLinkPort:**
+
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++======================+=============+====================+===================+================================================================================================+
+| resourceHandle | M | 1 | ResourceHand le | Identifier of the virtualised network resource realizing this link port. |
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+
+| cpInstanceId | M | 1 | IdentifierInVnf | External CP of the VNF to be connected to this link port. |
+| | | | | |
+| | | | | There shall be at most one link port associated with any external connection point instance. |
+| | | | | |
+| | | | | The value refers to an extCpInfo item in the VnfInstance. |
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+
+
+ **VnfcResourceInfo:**
+
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinality| Content | Description |
++=======================+============+============+====================+=====================================================================================================================+
+| vnfcInstanceId | M | 1 | IdentifierInVnf | Identifier of this VNFC instance. |
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| vduId | M | 1 | IdentifierInVnfd | Reference to the applicable Vdu information element in the VNFD. |
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| computeResourc e | M | 1 | ResourceHand le | Reference to the VirtualCompute resource. |
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| storageResourceI ds | M | 1..N | IdentifierInVnf | Reference(s) to the VirtualStorage resource(s). |
+| | | | | |
+| | | | | The value refers to a VirtualStorageResourceInfo item in the VnfInstance. |
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| reservationId | O | 0..1 | Identifier | The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists. |
+| | | | | |
+| | | | | Reserved |
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+
+ **VirtualStorageResourceInfo:**
+
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++=================================+=============+====================+====================+=====================================================================================================================+
+| virtualStorageInst anceId | M | 1 | IdentifierInVnf | Identifier of this virtual storage resource instance. |
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| virtualStorageDe scId | M | 1 | IdentifierInVnfd | Identifier of the VirtualStorageDesc in the VNFD. |
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| storageResource | M | 1 | ResourceHand le | Reference to the VirtualStorage resource. |
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| reservationId | M | 0..1 | Identifier | The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists. |
+| | | | | |
+| | | | | Reserved |
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+
+ **VirtualLinkResourceInfo:**
+
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinality | Content | Description |
++==============================+===========+==============+====================+=====================================================================================================================+
+| virtualLinkInstanceId | M | 1 | IdentifierInVnf | Identifier of this VL instance. |
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| virtualLinkDescId | M | 1 | IdentifierInVnfd | Identifier of the Virtual Link Descriptor (VLD) in the VNFD. |
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| networkResource | M | 1 | ResourceHand le | Reference to the VirtualNetwork resource. |
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+| reservationId | M | 0..1 | Identifier | The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists. |
+| | | | | |
+| | | | | Reserved |
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+
+
+ [
+
+ {
+
+ "vnfInstanceId": "1",
+ "vnfInstanceName": "vFW\_01",
+ "vnfInstanceDescription": "vFW in Nanjing TIC Edge",
+ "onboardedVnfPkgInfoId": "1",
+ "vnfdId": "zte\_vFW\_51610",
+ "vnfdVersion": "V1.0",
+ "vnfSoftwareVersion": "V1.0",
+ "vnfProvider": "ZTE",
+ "vnfProductName": "vFW",
+ "vnfConfigurableProperties": {...},
+ "instantiationState": "INSTANTIATED",
+ "instantiatedVnfInfo": {
+
+ "flavourId": "1",
+ "vnfState": "STARTED",
+ "scaleStatus": [
+
+ {
+ "aspectId": "aspect1",
+ "scaleLevel": 1
+
+ }
+
+ ],
+
+ "extCpInfo": [
+
+ {
+ "cpInstanceId": "1",
+ "cpdId": "1", "addresses": [
+
+ {
+ "addressType": "MAC",
+ "l2AddressData": "00:f3:43:20:a2:a3"
+
+ },
+
+ {
+ "addressType": "IP",
+ "l3AddressData": {
+
+ "iPAddressType": "IPv4",
+ "address": "192.168.104.2"
+
+ }
+
+ }
+
+ ]
+
+ }
+
+ ],
+ "extVirtualLink": [
+
+ {
+ "extVirtualLinkId": "extvl1",
+ "resourceHandle": {
+
+ "vimId": "1",
+ "resourceId": "1111"
+
+ },
+
+ "linkPorts": [
+
+ {
+ "resourceHandle":
+
+ {
+ "vimId": "1",
+ "resourceId": "2121"
+
+ },
+
+ "cpInstanceId": "1"
+
+ }
+
+ ]
+
+ }
+
+ ],
+
+ "monitoringParameters": {...},
+ "localizationLanguage": "en\_US",
+ "vimInfo": [
+
+ {
+ "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/"
+
+ }
+
+ ],
+ "vnfcResourceInfo": [
+
+ {
+ "vnfcInstanceId": "vm1",
+ "vduId": "vdu1",
+ "computeResource": {
+
+ "vimId": "1",
+ "resourceId": "3333"
+
+ },
+
+ "storageResourceIds": [ "storage1"
+ ]
+
+ }
+
+ ],
+
+ "virtualLinkResourceInfo": [
+
+ {
+ "virtualLinkInstanceId": "vl01",
+ "virtualLinkDescId": "vl01",
+ "networkResource": {
+
+ "vimId": "1",
+ "resourceId": "4444"
+
+ }
+
+ }
+
+ ],
+ "virtualStorageResourceInfo": [
+
+ {
+ "virtualStorageInstanceId": "storage1",
+ "virtualStorageDescId":"storage1",
+ "storageResource": {
+
+ "vimId": "1",
+ "resourceId": "555"
+
+ }
+
+ }
+
+ ]
+
+ },
+ "metadata": {...},
+ "extensions": {...}
+
+ }
+
+]
+
+**3.5.3 Response Code**
+
++-----------+-----------------------+----------------------------------+
+| Code | Meaning | Description |
++===========+=======================+==================================+
+| 200 | Ok | The request has succeeded. |
++-----------+-----------------------+----------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+----------------------------------+
+
+**3.6 Query single VNF**
+------------------------
++---------------------+------------------------------------------------------------------------------+
+| If Definition | Description |
++=====================+==============================================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf_instances/{vnfInstanceId} |
++---------------------+------------------------------------------------------------------------------+
+| Operation | GET |
++---------------------+------------------------------------------------------------------------------+
+| Direction | NFVO->VNFMLCM |
++---------------------+------------------------------------------------------------------------------+
+
+**3.6.1 Request**
+
++-------------+-------------+---------------+---------------+---------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++=============+=============+===============+===============+===============+
+| n/a | | | | |
++-------------+-------------+---------------+---------------+---------------+
+
+**3.6.2 Response**
+
++-------------------+-------------+---------------+------------------------+---------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++===================+=============+===============+========================+=======================================+
+| vnfInstanceInfo | M | 1 | VnfInstanceI nfo | The information of the VNF instance |
++-------------------+-------------+---------------+------------------------+---------------------------------------+
++-------------------+-------------+---------------+------------------------+---------------------------------------+
+
+**3.6.3 Response Code**
+
++-----------+-----------------------+----------------------------------+
+| Code | Meaning | Description |
++===========+=======================+==================================+
+| 200 | Ok | The request has succeeded. |
++-----------+-----------------------+----------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+----------------------------------+
+
+ {
+
+ "vnfInstanceId": "1",
+ "vnfInstanceName": "vFW\_01",
+ "vnfInstanceDescription": "vFW in Nanjing TIC Edge",
+ "onboardedVnfPkgInfoId": "1",
+ "vnfdId": "zte\_vFW\_51610",
+ "vnfdVersion": "V1.0",
+ "vnfSoftwareVersion": "V1.0",
+ "vnfProvider": "ZTE",
+ "vnfProductName": "vFW",
+ "vnfConfigurableProperties": {...},
+ "instantiationState": "INSTANTIATED",
+ "instantiatedVnfInfo": {
+ "flavourId": "1",
+ "vnfState": "STARTED",
+ "scaleStatus": [
+
+ {
+ "aspectId": "aspect1",
+ "scaleLevel": 1
+
+ }
+
+ ],
+
+ "extCpInfo": [
+
+ {
+ "cpInstanceId": "1",
+ "cpdId": "1", "addresses": [
+
+ {
+ "addressType": "MAC",
+ "l2AddressData": "00:f3:43:20:a2:a3"
+
+ },
+
+ {
+ "addressType": "IP",
+ "l3AddressData": {
+
+ "iPAddressType": "IPv4",
+ "address": "192.168.104.2"
+
+ }
+
+ }
+
+ ]
+
+ }
+
+ ],
+
+ "extVirtualLink": [
+
+ {
+ "extVirtualLinkId": "extvl1",
+ "resourceHandle": {
+
+ "vimId": "1",
+ "resourceId": "1111"
+
+ },
+
+ "linkPorts": [
+
+ {
+ "resourceHandle":
+
+ {
+ "vimId": "1",
+ "resourceId": "2121"
+
+ },
+ "cpInstanceId": "1"
+
+ }
+
+ ]
+
+ }
+
+ ],
+
+ "monitoringParameters": {...},
+ "localizationLanguage": "en\_US",
+ "vimInfo": [
+
+ {
+ "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/"
+
+ }
+
+ ],
+
+ "vnfcResourceInfo": [
+
+ {
+ "vnfcInstanceId": "vm1",
+ "vduId": "vdu1",
+ "computeResource": {
+
+ "vimId": "1",
+ "resourceId": "3333"
+
+ },
+
+ "storageResourceIds": [ "storage1"
+ ]
+
+ }
+
+ ],
+
+ "virtualLinkResourceInfo": [
+
+ {
+ "virtualLinkInstanceId": "vl01",
+ "virtualLinkDescId": "vl01",
+ "networkResource": {
+
+ "vimId": "1",
+ "resourceId": "4444"
+
+ }
+
+ }
+
+ ],
+
+ "virtualStorageResourceInfo": [
+
+ {
+ "virtualStorageInstanceId": "storage1",
+ "virtualStorageDescId": "storage1",
+ "storageResource": {
+
+ "vimId": "1",
+ "resourceId": "555"
+
+ }
+
+ }
+
+ ]
+
+ },
+ "metadata": {...},
+ "extensions": {...}
+
+ }
+
+**3.7 Get Operation Status**
+------------------------------
++---------------------+-------------------------------------------------------------------------------------------------+
+| If Definition | Description |
++=====================+=================================================================================================+
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_lc\_ops/{vnfLcOpId}&response Id={responseId} |
++---------------------+-------------------------------------------------------------------------------------------------+
+| Operation | GET |
++---------------------+-------------------------------------------------------------------------------------------------+
+| Direction | NFVO->GVNFM |
++---------------------+-------------------------------------------------------------------------------------------------+
+
+**3.7.1 Request**
+
+ None
+
+**3.7.2 Response**
+
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+=============+===============+===========+==================================================================================+
+| vnfLcOpId | M | 1 | String | Identifier of a VNF lifecycle operation occurrence |
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+
+| vnfInstanceId | M | 1 | String | Identifier of the VNF instance to which the operation applies |
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+
+| lcmOperationType | M | 1 | ENUM | Type of the actual LCM operation represented by this lcm operation occurrence. |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - INSTANTIATE:the |
+| | | | | |
+| | | | | Instantiate VNF LCM operation. |
+| | | | | |
+| | | | | - SCALE: the Scale VNF LCM operation. |
+| | | | | |
+| | | | | - SCALE\_TO\_LEVEL: the |
+| | | | | |
+| | | | | Scale VNF to Level LCM operation. |
+| | | | | |
+| | | | | - CHANGE\_FLAVOUR: |
+| | | | | |
+| | | | | the Change VNF Flavour LCM operation. |
+| | | | | |
+| | | | | - TERMINATE: the |
+| | | | | |
+| | | | | Terminate VNF LCM operation. |
+| | | | | |
+| | | | | - HEAL: the Heal VNF LCM operation. |
+| | | | | |
+| | | | | - OPERATE: the Operate VNF LCM operation. |
+| | | | | |
+| | | | | - CHANGE\_EXT\_VLS: the |
+| | | | | |
+| | | | | Change VNF external VLs LCM operation. (Reserved) |
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+
+| startTime | M | 1 | String | Date-time of the start of the operation. |
+| | | | | |
+| | | | | Representation: String formatted according to RFC 3339 [13] |
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+
+| responseDescriptor | M | 1 | VnfLcOp | Including:responseId,progress,statusstatusDescription |
+| | | | Response | |
+| | | | Descriptor| ,errorCode,responseHistoryList |
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+
+
+ **VnfLcOpResponseDescriptor:**
+
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++===========================+=================+====================+===============+===========================================================+
+| responseId | M | 1 | Integer | Response Identifier |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| progress | M | 1 | Integer | progress (1-100) |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| lcmOperationStatus | M | 1 | ENUM | Status of a VNF lifecycle operation occurrence |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - STARTING: The operation is starting.. |
+| | | | | |
+| | | | | - PROCESSING: The operation is |
+| | | | | currently in execution. |
+| | | | | |
+| | | | | - COMPLETED: The operation has completed successfully. |
+| | | | | |
+| | | | | - FAILED: The operation has failed and it cannot be |
+| | | | | retried or rolled back, as it is determined |
+| | | | | that such action won't succeed. |
+| | | | | - FAILED\_TEMP: The operation has failed and execution |
+| | | | | has stopped, but the execution of the |
+| | | | | operation is not considered to be closed. |
+| | | | | |
+| | | | | (Reserved) |
+| | | | | |
+| | | | | - ROLLING\_BACK: The operation is currently being rolled |
+| | | | | back. (Reserved) |
+| | | | | |
+| | | | | - ROLLED\_BACK: The state of the VNF prior to the |
+| | | | | original operation invocation has been |
+| | | | | |
+| | | | | restored as closely as possible. (Reserved) |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| statusDescripti on | O | 0..1 | String | Status Description of a VNF lifecycle operation |
+| | | | | occurrence |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| errorCode | O | 0..1 | Integer | Errorcode |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| responseHistor yList | O | 0..N | VnfLcOpDetail | History Response Messages from the requested |
+| | | | | responseId to lastest one. |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+
+ **VnfLcOpDetail:**
+
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++===========================+=================+====================+===============+===========================================================+
+| responseId | M | 1 | Integer | Response Identifier |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| progress | M | 1 | Integer | progress (1-100) |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| lcmOperationS tatus | M | 1 | ENUM | Status of a VNF lifecycle operation occurrence |
+| | | | | |
+| | | | | Permitted values: |
+| | | | | |
+| | | | | - STARTING: The operation is starting.. |
+| | | | | |
+| | | | | - PROCESSING: The operation is currently in execution. |
+| | | | | |
+| | | | | - COMPLETED: The operation has completed successfully. |
+| | | | | |
+| | | | | - FAILED: The operation has failed and it |
+| | | | | cannot be retried or rolled back, as it is |
+| | | | | determined that such action won't succeed. |
+| | | | | |
+| | | | | |
+| | | | | - FAILED\_TEMP: The operation has failed and execution |
+| | | | | has stopped, but the execution of the operation |
+| | | | | is not considered to be closed. (Reserved) |
+| | | | | |
+| | | | | - ROLLING\_BACK: The operation is currently being |
+| | | | | rolled back. (Reserved) |
+| | | | | |
+| | | | | |
+| | | | | - ROLLED\_BACK: The state of the VNF prior to the |
+| | | | | original operation invocation has been restored |
+| | | | | as closely as possible. (Reserved) |
+| | | | | |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| statusDescription | O | 0..1 | String | Status Description of a VNF lifecycle operation occurrence|
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+| errorCode | O | 0..1 | Integer | Errorcode |
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+
+
+ {
+
+ "vnfLcOpId": "1234566",
+
+ "vnfInstanceId": "1",
+ "lcmOperationType": "INSTANTIATE",
+
+ "startTime": "2017-01-01T12:00:27.87+00:20",
+
+ "responseDescriptor": {
+
+ "responseId": 3,
+ "progress": 40,
+ "lcmOperationStatus": "PROCESSING",
+ "statusDescription": "OMC VMs are decommissioned in VIM",
+ "errorCode": null,
+ "responseHistoryList": [
+
+ {
+ "responseId": 1,
+ "progress": 40,
+ "lcmOperationStatus": "PROCESSING",
+ "statusDescription": "OMC VMs are decommissioned in VIM",
+ "errorCode": null
+
+ },
+ {
+
+ "responseId": 2,
+ "progress": 41,
+ "lcmOperationStatus": "PROCESSING",
+ "statusDescription": "OMC VMs are decommissioned in VIM",
+ "errorCode": null
+
+ }
+
+ ]
+
+ }
+
+ }
+
+**3.7.3 Response Code**
+
++-----------+-----------------------+----------------------------------+
+| Code | Meaning | Description |
++===========+=======================+==================================+
+| 200 | Ok | The request has succeeded. |
++-----------+-----------------------+----------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+----------------------------------+
+
+**4.Interfaces provided by VNF**\ (Ve-Vnfm-vnf)
+===============================================
+
+**4.1 Set Initial Configuration**
+---------------------------------
+
++---------------------+---------------------------------------------+
+| If Definition | Description |
++=====================+=============================================+
+| URI | http(s)://[hostname][:port]/configuration |
++---------------------+---------------------------------------------+
+| Operation | POST |
++---------------------+---------------------------------------------+
+| Direction | VNFM->VNF |
++---------------------+---------------------------------------------+
+
+ **4.1.1Request**
+
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+
+| 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 | VnfConfigur ation | Configuration data for the VNF instance. |
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+
+| vnfcConfigurationData | O | 0..N | VnfcConfigu ration | Configuration data for VNFC instances. |
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+
+
+**VnfConfiguration:**
+
++-----------------------+-----------------+--------------------+----------------------------------+------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | Content | Description |
++=======================+=================+====================+==================================+==============================================================================+
+| cp | O | 0..N | CpConfiguratio n | External CPs |
++-----------------------+-----------------+--------------------+----------------------------------+------------------------------------------------------------------------------+
+| vnfSpecificData | O | 0..1 | VnfConfigurabl eProperties | Configuration object containing values of VNF configurable properties. |
++-----------------------+-----------------+--------------------+----------------------------------+------------------------------------------------------------------------------+
+
+**CpConfiguration:**
+
++-----------------+-------------+--------------------+--------------+-------------------------------------------------------------------------------------------------------+
+| Attribute | Qualifier | Cardinalit y | 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 | Cardinalit y | Content | Description |
++==========================+=============+====================+===================+===============================================================================================================================================+
+| address | M | 0..N | NetworkAddre ss | 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 | Cardinalit y | Content | Description |
++========================+=============+====================+====================+========================================================================================+
+| vnfcId | M | 1 | Identifier | Uniquely identifies a VNFC instance within the namespace of a specific VNF instance. |
++------------------------+-------------+--------------------+--------------------+----------------------------------------------------------------------------------------+
+| cp | O | 0..N | CpConfiguratio n | 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": {}
+
+ }
+
+ }
+
+
+ **4.1.2 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. |
++-----------------------+-------------+---------------+-------------------+---------------------------------+
+| vnfcConfigurationDa | O | 0..N | VnfConfiguration | Correspond to the |
+| ta | | | | 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": {…}
+
+ }
+
+ }
+
+ **4.1.3Response Code**
+
++-----------+-----------------------+-----------------------------------------------------------+
+| Code | Meaning | Description |
++===========+=======================+===========================================================+
+| 201 | Created | A VNF Instance identifier was created successfully. |
++-----------+-----------------------+-----------------------------------------------------------+
+| 4xx/5xx | <name from RFC7231> | <description> |
++-----------+-----------------------+-----------------------------------------------------------+
+
+.. |image0| image:: VNFM_API.png
+ :width: 5.07047in
+ :height: 5.6320
\ No newline at end of file diff --git a/docs/platform/APIs/VNFLCM_API/VNFM_API.png b/docs/platform/APIs/VNFLCM_API/VNFM_API.png Binary files differnew file mode 100644 index 00000000..b267abc2 --- /dev/null +++ b/docs/platform/APIs/VNFLCM_API/VNFM_API.png diff --git a/docs/platform/APIs/VNFLCM_API/index.rst b/docs/platform/APIs/VNFLCM_API/index.rst new file mode 100644 index 00000000..1e679b15 --- /dev/null +++ b/docs/platform/APIs/VNFLCM_API/index.rst @@ -0,0 +1,7 @@ +VNF LCM API
+------------
+
+.. toctree::
+ :titlesonly:
+
+ VNFLCM_API
diff --git a/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst b/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst new file mode 100644 index 00000000..f7a9c67e --- /dev/null +++ b/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst @@ -0,0 +1,633 @@ +.. contents::
+ :depth: 3
+..
+
+**VNFM Driver API**
+**V0.1**
+
+**1. Scope**
+==============
+The scope of the present document is to describe the VNFM Driver exposed API specification.
+
+**2. Terms, Definitions and Abbreviations**
+=============================================
+
+For the purposes of the present document, the following abbreviations apply:
+
++-------------+-----------------------------------------------+
+|Abbreviation | |
++-------------+-----------------------------------------------+
+|NFVO |Network Functions Virtualization Orchestrator |
++-------------+-----------------------------------------------+
+|VNFM |Virtual Network Function Manager |
++-------------+-----------------------------------------------+
+|VNF |Virtual Network Function |
++-------------+-----------------------------------------------+
+
+Table 2-1 abbreviations
+
+
+**3. Interfaces provided by VNFM Driver**
+===========================================
+
+Interfaces use RESTful API and the format is as follows:
+http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……]
+R1 vnfmtype:
+zte-vnfm
+fw-vnfm
+juju
+
+**3.1 Instantiate VNF**
+------------------------
+
++--------------+--------------------------------------------------------------+
+|If Definition | Description |
++==============+==============================================================+
+|URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs |
++--------------+--------------------------------------------------------------+
+|Operation | POST |
++--------------+--------------------------------------------------------------+
+|Direction | NSLCM->VNFMDriver |
++--------------+--------------------------------------------------------------+
+
+**3.1.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 | String | References to external |
+| | | | | virtual links to connect the |
+| | | | | VNF to. |
++-----------------------+------------+-------------+----------+------------------------------+
+| additionalParam | M | 0..N | String |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 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":{
+
+ ……
+ }
+
+}
+
+
+**3.1.2 Response**
+
++--------------+------------+-------------+-----------+-------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++==============+============+=============+===========+===============================+
+| jobId | M | 1 | Identifier| Tenant Name of tenant |
+| | | | | operation occurrence. |
+| | | | | |
+| | | | | [lifecycleOperationOccurren |
+| | | | | ceId] |
++--------------+------------+-------------+-----------+-------------------------------+
+| password | M | 1 | String | Password of login user |
++--------------+------------+-------------+-----------+-------------------------------+
+
+{
+ "jobId":"1",
+ "vnfInstanceId":"1"
+
+}
+
+**3.2 Terminate VNF**
+-----------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ |
+| | {vnfInstanceId}/terminate |
++---------------+------------------------------------------------------------------+
+| Operation | POST |
++---------------+------------------------------------------------------------------+
+| Direction | NSLCM->VNFMDriver |
++---------------+------------------------------------------------------------------+
+
+**3.2.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. |
++-----------------+------------+-------------+-----------+----------------------------------+
+| graceful | M | 0..1 | Time | The time interval (second) to |
+| Termination | | | Duration | wait for the VNF to be taken out |
+| Timeout | | | | 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"
+
+}
+
+**3.2.2 Response**
+
++--------------+------------+-------------+-----------+--------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++==============+============+=============+===========+================================+
+| jobId | M | 1 | Identifier| Identifier of the VNF lifecycle|
+| | | | | operation occurrence. |
+| | | | | |
+| | | | | [lifecycleOperationOccurren |
+| | | | | ceId] |
++--------------+------------+-------------+-----------+--------------------------------+
+
+{
+ "jobId":"1"
+
+}
+
+
+**3.3 Query VNF**
+------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ |
+| | {vnfInstanceId} |
++---------------+------------------------------------------------------------------+
+| Operation | GET |
++---------------+------------------------------------------------------------------+
+| Direction | NSLCM->VNFMDriver |
++---------------+------------------------------------------------------------------+
+
+**3.3.1 Request**
+
+VNF filter: vnfInstanceId via url [R1]
+
+**3.3.2 Response**
+
++--------------+------------+-------------+-----------+---------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++==============+============+=============+===========+=================================+
+| vnfInfo | M | o..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 | o..1 | String | VNF instance name. See note. |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfInstance | M | o..1 | String | Human-readable description of |
+| Description | | | | the VNF instance. |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfdId | M | 1 | String | Identifier of the VNFD on which |
+| | | | | the VNF instance is based. |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfPackageId | M | o..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",
+
+ }
+
+}
+
+**3.4 Get operation status**
+-----------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/{vnfmtype} |
+| | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId } |
++---------------+------------------------------------------------------------------+
+| Operation | GET |
++---------------+------------------------------------------------------------------+
+| Direction | NSLCM->VNFMDriver |
++---------------+------------------------------------------------------------------+
+
+**3.4.1 Request**
+
+ None
+
+**3.4.2 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 |
++--------------------+------------+-------------+-------------+---------------------------------+
+| response | M | o..N | ArrayList<> | History Response Messages |
+| HistoryList | | | | 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"
+
+ }
+
+ ]
+
+ }
+
+}
+
+**3.5 Scale VNF**
+------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ |
+| | {vnfInstanceId}/scale |
++---------------+------------------------------------------------------------------+
+| Operation | POST |
++---------------+------------------------------------------------------------------+
+| Direction | NSLCM->VNFMDriver |
++---------------+------------------------------------------------------------------+
+
+**3.5.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 |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| numberOfSteps | M | 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 |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| additional | M | 1 |KeyValuePair | Additional parameters passed by the NFVO |
+| Param | | | | as input to the scaling proccess, specific |
+| | | | | to the VNF being scaled. |
+| | | | | Reserved |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| NOTE 1: ETSI GS NFV-IFA 010 [2] 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":{
+
+ ……
+
+ }
+
+}
+
+**3.5.2 Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+============+=============+=============+=================================+
+| jobId | M | 1 | String | The identifier of the VNF |
+| | | | | lifecycle operation occurrence. |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+{
+ "jobId":"1"
+
+}
+
+**3.6 Heal VNF**
+------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs |
+| | {vnfInstanceId}/heal |
++---------------+------------------------------------------------------------------+
+| Operation | POST |
++---------------+------------------------------------------------------------------+
+| Direction | NSLCM->VNFMDriver |
++---------------+------------------------------------------------------------------+
+
+**3.6.1 Request**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+============+=============+=============+=================================+
+| action | M | 1 | String | Indicates the action to be done |
+| | | | | upon the given virtual machine. |
+| | | | | Only "vmReset" is supported |
+| | | | | currently. |
++--------------------+------------+-------------+-------------+---------------------------------+
+| affectedvm | M | 1 | AffectedVm | Defines the information of |
+| | | | | virtual machines. |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+**AffectedVm**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+============+=============+=============+=================================+
+| vimid | M | 1 | String | Defines the UUID of virtual |
+| | | | | machine. |
++--------------------+------------+-------------+-------------+---------------------------------+
+| vduid | M | 1 | String | Defines the id of vdu. |
++--------------------+------------+-------------+-------------+---------------------------------+
+| vmname | M | 1 | | Defines the name of virtual |
+| | | | | machines. |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+{
+ "action": "vmReset",
+ "affectedvm":
+ {
+
+ "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",
+ "vduid": "vdu_100",
+ "vmname": "ZTE_SSS_111_PP_2_L"
+
+ },
+
+}
+
+**3.6.2 Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+============+=============+=============+=================================+
+| jobId | M | 1 | Identifier | The identifier of the VNF |
+| | | | | healing operation occurrence. |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+{
+ "jobId":"1"
+
+}
diff --git a/docs/platform/APIs/VNFMDriver_API/index.rst b/docs/platform/APIs/VNFMDriver_API/index.rst new file mode 100644 index 00000000..cf017587 --- /dev/null +++ b/docs/platform/APIs/VNFMDriver_API/index.rst @@ -0,0 +1,7 @@ +VNFM Driver API
+---------------
+
+.. toctree::
+ :titlesonly:
+
+ VNFM_Driver_API
\ No newline at end of file diff --git a/docs/platform/APIs/index.rst b/docs/platform/APIs/index.rst new file mode 100644 index 00000000..b05bede2 --- /dev/null +++ b/docs/platform/APIs/index.rst @@ -0,0 +1,43 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +VF-C Offered APIs +================= +List VF-C APIs offered. + + +NS LCM API +---------- + +Network services lifecycle management APIs + + +.. toctree:: + :maxdepth: 1 + + NSLCM_API/index + + +VNFM Driver API +--------------- + +VNFM Driver component northbound APIs + +.. toctree:: + :maxdepth: 1 + + VNFMDriver_API/index + + + +VNF LCM API +----------- + +VNF lifecycle management APIs + +.. toctree:: + :maxdepth: 1 + + VNFLCM_API/index + diff --git a/docs/platform/architecture.rst b/docs/platform/architecture.rst new file mode 100644 index 00000000..dc7ef09b --- /dev/null +++ b/docs/platform/architecture.rst @@ -0,0 +1,25 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +VF-C Architecture +----------------- +Following is the VF-C architecture. + + +|image0| + +.. |image0| image:: vfc-arc.png + :width: 5.97047in + :height: 5.63208in + + +VF-C as one controller in ONAP includes two components NFV-O and GVNFM. + +For NFV-O, it provides north bound interface to SO to take part in fulfilling the orchestration and operation of end2end service.and provides standard south bound interface to VNFMs. + +For GVNFM, it provides LCM for VNFs which do not require a vendor VNFM and works with NFV-O component to take part in fulfilling the LCM of NS. + +In addition, VF-C provides interface to Policy and works with DCAE for Close Loop Automation. + +As you can see in this picture,VF-C has many dependencies with other projects,such as SO,Policy,A&AI,SDC,DCAE,Multi-cloud and so on.
\ No newline at end of file diff --git a/docs/platform/components.png b/docs/platform/components.png Binary files differnew file mode 100644 index 00000000..253e63bf --- /dev/null +++ b/docs/platform/components.png diff --git a/docs/platform/delivery.rst b/docs/platform/delivery.rst new file mode 100644 index 00000000..1a6ab3b4 --- /dev/null +++ b/docs/platform/delivery.rst @@ -0,0 +1,27 @@ +VF-C Delivery +------------- +VF-C includs the following components in R1. + +|image0| + +.. |image0| image:: components.png + :width: 5.97047in + :height: 5.63208in + +VF-C incloudes several components in ONAP R1. + +Catalog is used to store the package distributed by SDC, it is a runtime catalog. + +Workflow include two micro service, one is workflow manage service and the other is workflow-activiti engine serivce, this two service will onboard workflow to workflow engine and parse workflow. + + +For NS lifecyle manager,it mainly completes the NS lifecycle management,such as NS Instantiation/termination and auto-healing. + +For Resource manager, it will communicate with NS lifecycle manager to update intance date to A&AI. + +In VF-C southbound, it includs Gvnfmdriver and SVNFM driver which will interact with GVNFM and Vendor VNFM respectively to execute VNF lifecycle management, +VF-C provides vnfm driver northbound api,then Vendor can implement this APIs to integrate with VF-C. + +For the EMS driver,it can collect VNF lay’s Fcaps data from Vendor EMS, and then translate and put these data to DCAE Vescollector + + diff --git a/docs/platform/index.rst b/docs/platform/index.rst new file mode 100644 index 00000000..8311287b --- /dev/null +++ b/docs/platform/index.rst @@ -0,0 +1,24 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +.. _vfc_index: + +ONAP VF-C +========= + +As part of the integration between OpenECOMP and OPEN-O, VF-C leverages ETSI NFV MANO architecture and information model as a reference, and implements life cycle management and FCAPS of VNF and NS. + +* support NS and VNF lifecycle management based on the ONAP tosca and yang data model and workflow +* support integration with multi VNFMs via drivers, which include vendors VNFM and generic VNFM +* support integration with multi VNFs via generic VNFM, which does not provide VNFM function +* support integration with multi VIMS via Multi-VIM, which include the opensource and commercial VIMs +* support microservice architecture and model driven resource orchestration and management + + +.. toctree:: + :maxdepth: 1 + + architecture.rst + delivery.rst + APIs/index + installation.rst diff --git a/docs/platform/installation.rst b/docs/platform/installation.rst new file mode 100644 index 00000000..486ce151 --- /dev/null +++ b/docs/platform/installation.rst @@ -0,0 +1,163 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +VF-C Installation +----------------- +Describe the environment and steps to install VF-C components. + + +Environment ++++++++++++ +VF-C components can run as docker, docker service should be installed before install VF-C components. + +The following scripts show the docker service install commands in centos7. + +:: + + yum install docker + systemctl enable docker.service + systemctl start docker.service + +Steps ++++++ + +- Install MSB components. + +VF-C components need to register to MSB when starting, so MSB components should be installed first, you can ref the following link to install MSB. + +http://onap.readthedocs.io/en/latest/submodules/msb/apigateway.git/docs/platform/installation.html + +Note: In the following steps, we use ${MSB_IP} as the IP of msb_apigateway component. + +- Install vfc-nfvo-lcm component. + +:: + + docker run -d --name vfc-nslcm -v /var/lib/mysql -p 8403:8403 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/nslcm + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/nslcm/v1/swagger.json + +- Install vfc-nfvo-wfengine components. + +Totally, there are two docker images should be installed before you can use the workflow normally, \ +one is wfengine-activiti for manage the original activiti service, the other is for manage engine service. + + +1. Pull related docker images + +:: + + docker pull $NEXUS_DOCKER_REPO/onap/vfc/wfengine-activiti:$DOCKER_IMAGE_VERSION + docker pull $NEXUS_DOCKER_REPO/onap/vfc/wfengine-mgrservice:$DOCKER_IMAGE_VERSION + +2. Run the two docker images + +The first container is wfengine-activiti,there are some parameters should be injected into container. \ +OPENPALETTE_MSB_IP represents msb server address and OPENPALETTE_MSB_PORT is the relative port, \ +SERVICE_IP represents the docker run environment server address. + +:: + + docker run -i -t -d --name vfc_wfengine_activiti -p 8804:8080 -e SERVICE_IP=$OPENO_IP -e SERVICE_PORT=8804 + -e OPENPALETTE_MSB_IP=$OPENO_IP -e OPENPALETTE_MSB_PORT=80 $NEXUS_DOCKER_REPO/onap/vfc/wfengine-activiti:$DOCKER_IMAGE_VERSION + + docker run -i -t -d --name vfc_wfengine_mgrservice -p 8805:10550 -e SERVICE_IP=$OPENO_IP -e SERVICE_PORT=8805 + -e OPENPALETTE_MSB_IP=$OPENO_IP -e OPENPALETTE_MSB_PORT=80 $NEXUS_DOCKER_REPO/onap/vfc/wfengine-mgrservice:$DOCKER_IMAGE_VERSION + +- Install vfc-nfvo-catalog component. + +:: + + docker run -d --name vfc-catalog -v /var/lib/mysql -p 8806:8806 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/catalog + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/catalog/v1/swagger.json + +- Install vfc-nfvo-resmanagement component. + +:: + + docker run -d --name vfc-resmanagement -p 8480:8480 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/resmanagement + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/resmgr/v1/swagger.json + +- Install vfc-nfvo-sfcdriver component. + +:: + + docker run -d --name vfc-ztesdncdriver -p 8411:8411 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/ztesdncdriver + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/ztesdncdriver/v1/swagger + +- Install vfc-nfvo-emsdriver component. + +:: + + docker run -d --name vfc-emsdriver -p 8206:8206 -e MSB_ADDR=${MSB_IP}:80 -e VES_ADDR=${VES_COLLECTOR_IP}:8080 -e VES_AUTHINFO="":"" nexus3.onap.org:10001/onap/vfc/emsdriver + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/emsdriver/v1/swagger.json + +- Install vfc-gvnfm components. + +:: + + docker run -d --name vfc-vnflcm -v /var/lib/mysql -p 8801:8801 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/vnflcm + docker run -d --name vfc-vnfmgr -v /var/lib/mysql -p 8803:8803 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/vnfmgr + docker run -d --name vfc-vnfres -v /var/lib/mysql -p 8802:8802 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/vnfres + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/vnflcm/v1/swagger.json + curl http://${MSB_IP}:80/api/vnfmgr/v1/swagger.json + curl http://${MSB_IP}:80/api/vnfres/v1/swagger.json + +- Install vfc-gvnfmdriver components. + +:: + + docker run -d --name vfc-gvnfmdriver -p 8484:8484 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/gvnfmdriver + docker run -d --name vfc-jujudriver -p 8483:8483 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/jujudriver + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/gvnfmdriver/v1/swagger.json + curl http://${MSB_IP}:80/api/jujuvnfmdriver/v1/swagger.json + +- Install vfc-svnfmdriver components. + +:: + + docker run -d --name vfc-ztevmanagerdriver -p 8410:8410 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/ztevmanagerdriver + docker run -d --name vfc-svnfm-huawei -p 8482:8482 -p 8443:8443 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei + docker run -d --name vfc-svnfm-nokia -p 8486:8486 -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia + +For testing, we can use curl command to access the swagger api. + +:: + + curl http://${MSB_IP}:80/api/ztevmanagerdriver/v1/swagger.json + curl http://${MSB_IP}:80/api/huaweivnfmdriver/v1/swagger.json + curl http://${MSB_IP}:80/api/nokiavnfmdriver/v1/swagger.json diff --git a/docs/platform/logging.rst b/docs/platform/logging.rst new file mode 100644 index 00000000..8d480e28 --- /dev/null +++ b/docs/platform/logging.rst @@ -0,0 +1,14 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +Logging & Diagnostic Information +-------------------------------- +Description of how to interact with and diagnose problems with the components +as delivered. + +Where to Access Information ++++++++++++++++++++++++++++ + + +Error / Warning Messages +++++++++++++++++++++++++ diff --git a/docs/platform/offeredapis.rst b/docs/platform/offeredapis.rst new file mode 100644 index 00000000..79af6645 --- /dev/null +++ b/docs/platform/offeredapis.rst @@ -0,0 +1,43 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +VF-C Offered APIs +================= +List VF-C APIs offered. + + +NS LCM API +---------- + +Network services lifecycle management APIs + + +.. toctree:: + :maxdepth: 1 + + APIs/NSLCM_API/index + + +VNFM Driver API +--------------- + +VNFM Driver component northbound APIs + +.. toctree:: + :maxdepth: 1 + + APIs/VNFMDriver_API/index + + + +VNF LCM API +----------- + +VNF lifecycle management APIs + +.. toctree:: + :maxdepth: 1 + + APIs/VNFLCM_API/index + diff --git a/docs/platform/vfc-arc.png b/docs/platform/vfc-arc.png Binary files differnew file mode 100644 index 00000000..561488b2 --- /dev/null +++ b/docs/platform/vfc-arc.png |