VF-C(Virtual Function Controller)

As part of the integration between OpenECOMP and OPEN-O, this proposed project VF-C leverages ETSI NFV MANO architecture and information model as a reference, and implements full life cycle management and FCAPS of VNF and NS.

This document is aimed to give the users some brief introductions on VF-C from different aspects. The users could find useful information, e.g. the architecuture, the APIs and the installation steps, etc. as well as the release notes of VF-C in this document.

ONAP VF-C

image0

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

image1

VF-C as one controller in ONAP includes two components NFV-O and GVNFM.

  • NFVO component

    • compliant with ETSI NFV MANO architecture and information model,

    • providing resource orchestration and full life cycle management and FCAPS for NS,

    • providing standard south bound interface to VNFMs,

    • providing north bound interface to SO, to take part in fulfilling the orchestration and operation of end2end service,

    • providing interface and work with DCAE and Policy for Close Loop Automation.

  • GVNFM component

    • compliant with ETSI NFV MANO architecture and information model

    • providing full life cycle management and FCAPS for VNFs which do not require a vendor VNFM,

    • providing interface and work with NFV-O component, to take part in fulfilling the LCM and FCAPS management of NS,

    • providing interface and work with DCAE and Policy for Close Loop Automation.

VF-C Architecture

VF-C Internal Component

image0

This shows all VF-C components, each component is a standalone microservice, these microservice including:

  • nslcm is the core component, mainly responsible for network service management.

  • catalog is used to package management, including NS/VNF/PNF package management.

  • Resource Manager is used to manage the instance created by VF-C and also responsible for resource granting.

  • SVNFM Driver, now VF-C has three specific vendor VNFM drivers, including nokia/huawei/zte driver, each driver is a microservice.

  • GVNFM Driver, now has two generic VNFM driver, including gvnfm driver and juju driver.

  • SFC Driver, it migrates from Open-O seed code and now hasn’t been used in any use case in ONAP.

  • Wfengine-mgrservice provides the workflow management service. Now it has been integrated with activiti workflow and provides the unified interface to external components.

  • Wfengine-activiti, it is as the activiti work flow microservice.

  • Multivim-proxy provides the multivim indirect mode proxy which can forward virtual resource requests to multivim and does some resource checking.

  • EMS Driver is used for VNF performance and alarm data collection and reports to DCAE VES collector.

  • GVNFM includes three micorservices: vnflcm, vnfmgr and vnfres and the core is vnflcm which is responsible for VNF life cycle management.

  • DB, provides database services for each VF-C component.

Note:
  1. SFC Driver migrated from Open-O seed code and now hasn’t been used in any usecase in ONAP. This component is deprecated from Guilin Release.

  2. Resource Management is used to do the resource granting, but now VF-C has been integrated with OOF, this component is deprecated from Guilin Release.

  3. DB provides the stand-alone database microservice in casablanca release, but now VF-C leverages OOM shared MariaDB-Gelera cluster. This repo still has redis to be used by VF-C component.

  4. Catalog has been migrated to Modeling project since Frankfurt Release.

  5. Wfengine-mgrservice & Wfengine-activiti are deprecated from Guilin Release since VF-C uses build-in workflow process.

  6. Multivim-proxy & EMS Driver & nokia driver & juju driver are deprecated from Guilin Release since they are no longer used or maintained.

VF-C External Dependency

image1

As you can see in this picture, VF-C has many dependencies with other projects, such as SO, Policy, A&AI, DCAE, Multi-cloud and so on.

  • NFVO 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.

  • GVNFM 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.

  • VF-C provides VNFM driver interfaces, vendor can implement these to integrate with VF-C. Now, VF-C has integrated with three vendor VNFM, including ZTE, Huawe, Nokia.

  • In addition, VF-C also provides interface to Policy and works with DCAE for Close Loop Automation.

  • In Casablanca release, VF-C is also integrated with OOF to do the resource homing and placement.

VF-C Usecase and Workflow

VF-C support VoLTE use case, vCPE use case in the first three releases and support CCVPN use case in Dublin release.

Taking VoLTE as an example to describe the VF-C internal workflow:

  1. VF-C Instantiate

image2

The workflow:

  • SO send request to LCM to deploy vIMS+vEPC network service.

  • LCM talk with Resource Manager and then A&AI to create NS instances in A&AI inventory.

  • LCM get NSD from VF-C catalog.

  • LCM parse the NS model via TOSCA parser to decompose NS to VNFs and recognize the relationship between VNFs.

  • LCM init workflow context and execute NS instantiation.

  • Workflow will invoke LCM to instantiate VLs between VNFs.

  • LCM talk with Multi-VIM to create virtual network connections between VNFs if needed.

  • LCM talk with Resource manager to create related virtual link instances to A&AI inventory(Not included in R1).

  • When VL is created ,workflow will invoke LCM to instantiate VNFs.

  • LCM send request to S-VNFM Driver and work with S-VNFM to deploy each VNFs.

  • Aligned with ETSI specs work flow, VNFM need to send granting resource request to LCM,LCM transfer this request to Resource manager and then response the granting result and related VIM information(such as url/username/password etc) to VNFM.

  • VNFM call VIM API to deploy VNF into VIM.

  • VNFM send notification to LCM to notify the changes of virtual resources, including VDU/VL/CP/VNFC etc.

  • LCM talk to Resource manager to create/update related records in A&AI inventory

2.VF-C Terminate

image3

The workflow:

  • SO talk with VF-C to request deletion of vIMS/vEPC network services

  • Lcm work with Resource Manager to check all vIMS/vEPC instances in A&AI

  • LCM invoke workflow to delete NS instance

  • First, workflow will execute deleting VNFs by invoking LCM

  • LCM talk with S-VNFM Driver to request deletion of VNFs and related resources

  • Aligned with ETSI specs work flow, VNFM will delete/release virtual resources with the granting to LCM

  • LCM transfer the grant request to Resource Manager and then response the granting result and related VIM information(such as url/username/password etc) to VNFM.

  • VNFM delete VNFs and related resources and notify the changes(releasing) of virtual resources to LCM

  • Lcm talk with Resource Manager to update/delete related resource instances in A&AI inventory

  • When above work finish, workflow will delete VLs

  • LCM talk with Multi-VIM to request deletion of virtual network connected to VNFs

  • Multi-VIM delete related virtual network resources, such as network, sub-network and port etc.

  • LCM talk with Resource Manager to update/delete related VL resource instances in A&AI inventory(Not included in R1)

  • LCM talk with Resource Manager to update/delete related NS instances in A&AI inventory

  1. VF-C Healing

image4

The workflow:

  • EMS Driver collects VNF service level FCAPS in real-time or period.

  • EMS Driver will transfer VNF service level FCAPS metrics to DCAE with VES data format.

  • Data filtering/cleaning inside DCAE, DCAE can send related events to data bus. Holmes can keep track of the events published to data bus and do the alarm correlation analysis based on the imported rules then Holmes send the result and root cause to the event bus.

  • Policy engine subscribe related topic on event bus. After receiving auto-healing triggering events, matching the events with exist rules.

  • Policy invoke VF-C APIs to do the action of auto-healing once matching events with healing rules.

  • LCM talk with VNFM driver to restart VNF and receive the changes of virtual resources.

  • LCM talk with Resource Manager to update/create related instance information to A&AI inventory according to the changes of resources.

If you would like to know more details about vCPE, you can refer https://wiki.onap.org/display/DW/vCPE+with+Tosca+VNF+Test+Guide

VF-C Offered APIs

Now VF-C provides the NS life cycle management APIs to UUI,SO,Policy and package management APIs to UUI. For VNFM vendor, VF-C also provides the VNFM integration APIs, they can reference these APIs to implement their VNFMDriver to integrate with VF-C and ONAP.

image0

NFVO provided interfaces:

  • Network Service LCM interface

    Provides Network Service LCM interface(NS instantiate/scale/heal/terminate/query/…)

  • VNF Operation Granting interface

    Provides VNF Operation Granting interface and make granting decision

  • NS package management interface

    Provides runtime NS package management interface

  • VNF package management interface

    Provides runtime VNF package management interface

GVNFM provided interfaces:

  • VNF LCM interface

    Provides the VNF LCM interface(VNF instantiate/terminate/query/…)

More interface defination can be found in the following part.

VFC Northbound API

Network services lifecycle management APIs

In Dublin release, VF-C provides SOL005 compliant APIs as follows

api/nslcm/v1/ns_instances
api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)
api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/instantiate
api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/update
api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/scale
api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/heal
api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/terminate
api/nslcm/v1/ns_lcm_op_occs/(?P<lcmopoccid>[0-9a-zA-Z_-]+)
api/nslcm/v1/subscriptions
api/nslcm/v1/ns_lcm_op_occs

But for the previous APIs, we still keep in Dublin, but the following APIs will be deprecated in the future release

    api/nslcm/v1/ns
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/instantiate
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/terminate
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/postdeal
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/scale
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/heal
api/nslcm/v1/ns/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/update

More APIs defination and reference can be found in the following page:

NSLCM API

To view API documentation in the interactive swagger UI, you can download the following api json file and paste the content into the swagger tool: https://editor.swagger.io

  1. All NSLCM APIs, including the SOL005 compliant APIs and the previous version APIs

NSLCM_API_Specification.json

Error

Unable to process URL: NSLCM_API_Specification_v1.json. Please check that the URL is a valid Swagger api-docs URL and it is accesible

  1. If you are only interested in the SOL005 compliant APIs, you can download the following file

NSLCM_SOL005_API_Specification.json

  1. The previous version APIs can be downloaded from the following

NSLCM_Previous_API_Specification.json

VNFM Integration APIs

VNFM Driver Integration Related APIs, these APIs are mainly provided for Vendor, if you want to integrate with VF-C and ONAP, you can reference these APIs to implement your VNFMDriver These integration APIs includ two part:

  • The VNF life cycle management APIs for the VNFMDriver should be implemented

  • The NFVO APIs for the VNFMDri1 will be request, like grant APIs

VNFM Driver API

VNFM Driver API V0.1

1. Scope

The scope of the present document is to describe the VNFM driver integrated related API specification. Some content has been updated, about the API Swagger definition, you can find here ‘VNFM driver development related API<https://gerrit.onap.org/r/gitweb?p=vfc/nfvo/lcm.git;a=blob;f=lcm/swagger/vfc.vnfdriver.swagger.json;h=fc35adbdc75df1307ca2c43a11bfb472da2a27c6;hb=HEAD>’

2. Terms, Definitions and Abbreviations

For the purposes of the present document, the following abbreviations apply:

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 hw-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

Ext Virtual LinkData

References to external virtual links to connect the VNF to.

additionalParam

M

0..N

Object

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 is 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

Type of the 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":"openstack",
        "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]

vnfInstanceId

M

1

String

VNF instance identifier.

{
  "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 Termination Timeout

M

0..1

Time Duration

The time interval (second) to wait for the VNF to be taken out of service during graceful termination, before shutting down the VNF and releasing the resources. If not given, it is expected that the VNFM waits for the successful taking out of service of the VNF, no matter how long it takes, before shutting down the VNF and releasing the resources (see note).

Minimum timeout or timeout range are specified by the VNF Provider (e.g. defined in the VNFD or communicated by other means).

Not relevant in case of forceful termination.

{
  "vnfInstanceId":"1",
  "terminationType":"graceful",
  "gracefulTerminationTimeout":"60"
}

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).

VnfInfo Table

Attribute

Qualifier

Cardinality

Content

Description

vnfInstanceId

M

1

String

VNF instance identifier.

vnfInstanceName

M

o..1

String

VNF instance name.

vnfInstance Description

M

o..1

String

Human-readable description of the VNF instance.

vnfdId

M

1

String

Identifier of the VNFD on which the VNF instance is based.

vnfPackageId

M

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 HistoryList

M

o..N

ArrayList<>

History Response Messages from the requested responseId to lastest one. Including fields: vnfStatus, statusDescription, errorCode, progress, responseId

{
  "jobId" : "1234566",
  "responseDescriptor" : {
    "progress" : "40",
    "status" : "proccessing",
    "statusDescription" : "OMC VMs are decommissioned in VIM",
    "errorCode" : null,
    "responseId" : "42",
    "responseHistoryList" : [{
      "progress" : "40",
      "status" : "proccessing",
      "statusDescription" : "OMC VMs are decommissioned in VIM",
      "errorCode" : null,
      "responseId" : "1"
    }, {
      "progress" : "41",
      "status" : "proccessing",
      "statusDescription" : "OMC VMs are decommissioned in VIM",
      "errorCode" : null,
      "responseId" : "2"
    }
  ]
 }
}
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

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 Param

M

1

KeyValuePair

Additional parameters passed by the NFVO 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 machine.

{
  "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"
}
4. Interfaces provided by VFC to integrate with VNFM driver
4.1 VNF Lifecycle Operation Granting Interface

IF Definition

Description

URI

http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf

Operation

POST

Direction

VNFMDriver -> NSLCM

4.1.1 Request

{
  "vnfInstanceId": "string",
  "vnfDescriptorId": "string",
  "lifecycleOperation": "Terminal",
  "jobId": "string",
  "addResource": [
    {
      "type": "string",
      "resourceDefinitionId": "string",
      "vdu": "string"
    }
  ],
  "removeResource": [
    {
      "type": "string",
      "resourceDefinitionId": "string",
      "vdu": "string"
    }
  ],
  "additionalParam": {}
}

4.1.2 Response

{
  "vim": {
    "vimInfoId": "string",
    "vimId": "string",
    "interfaceInfo": {
      "vimType": "string",
      "apiVersion": "string",
      "protocolType": "string"
    },
    "accessInfo": {
      "tenant": "string",
      "username": "string",
      "password": "string"
    },
    "interfaceEndpoint": "string"
  }
}
4.2 VNF LCM Notification Interface

IF Definition

Description

URI

http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/ {vnfInstanceId}/Notify

Operation

POST

Direction

VNFMDriver -> NSLCM

4.2.1 Request

{
  "status": "result",
  "vnfInstanceId": "string",
  "operation": "Terminal",
  "jobId": "string",
  "affectedVnfc": [
    {
      "vnfcInstanceId": "string",
      "vduId": "string",
      "changeType": "added",
      "vimid": "string",
      "vmid": "string",
      "vmname": "string"
    }
  ],
  "affectedCp": [
    {
      "virtualLinkInstanceId": "string",
      "cpinstanceid": "string",
      "cpdid": "string",
      "ownerType": "string",
      "ownerId": "string",
      "changeType": "added",
      "portResource": {
        "vimid": "string",
        "resourceid": "string",
        "resourceName": "string",
        "tenant": "string",
        "ipAddress": "string",
        "macAddress": "string",
        "instId": "string"
      }
    }
  ],
  "affectedVl": [
    {
      "vlInstanceId": "string",
      "vldid": "string",
      "changeType": "added",
      "networkResource": {
        "resourceType": "network",
        "resourceId": "string"
      }
    }
  ],
  "affectedVirtualStorage": [
    {}
  ]
}

4.2.2 Response

N/A

4.3 Query VNFM Register Info Interface

IF Definition

Description

URI

http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid}

Operation

GET

Direction

VNFMDriver -> NSLCM

4.3.1 Request N/A

4.3.2 Response

{
  "vnfmId": "string",
  "name": "string",
  "type": "string",
  "url": "string",
  "userName": "string",
  "password": "string",
  "vimId": "string",
  "vendor": "string",
  "version": "string",
  "description": "string",
  "certificateUrl": "string",
  "createTime": "string"
}
4.4 Query VIM Register Info Interface

IF Definition

Description

URI

http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid}

Operation

GET

Direction

VNFMDriver -> NSLCM

4.4.1 Request N/A

4.4.2 Response

Parameter

Qualifier

Cardinality

Content

Description

vimId

M

1

string

The identifier of the VIM

name

M

1

string

The name of the VIM

type

M

1

string

The type of the VIM

url

M

1

string

The access URL of the VIM

userName

M

1

string

The user name of the VIM

password

M

1

string

The password of the VIM

vendor

M

1

string

The vendor of the VIM

version

M

1

version

The version of the VIM

description

O

1

description

The description of the VIM

sslCacert

O

1

Identifier

The collection of trusted certificates towards the VIM.

sslInsecure

O

1

Identifier

Whether to verify VIM’s certificate.

status

O

1

Identifier

The status of external system

{
  "vimId": "string",
  "name": "string",
  "type": "string",
  "url": "string",
  "userName": "string",
  "password": "string",
  "vendor": "string",
  "version": "string",
  "description": "string",
  "createTime": "string",
  "sslCacert": "string",
  "sslInsecure": "string",
  "status": "string"
}

GVNFM Northbound & Southbound APIs

VF-C provides the Generic VFNM , it can be as the GVNFM reference implementaton. Now the Northbound APIs of GVNFM has been compete with SOL003 and it now can be integrate with VF-C NFVO. In tosca-based vCPE use case, the GVNFM function have been verified in Casablanca release.

GVNFM Northbound & Southbound APIs for VNF Integration

VNF LCM API

GVNFM Northbound & Southbound APIs V0.1

1 Scope

The scope of the this document is to describe the GVNFM exposed API specification over Or-Vnfm reference point and Ve-Vnfm-vnf reference point. Some content has been updated, about the API Swagger definition, you can find here ‘GVNFM_LCM_APIs<https://gerrit.onap.org/r/gitweb?p=vfc/gvnfm/vnflcm.git;a=blob;f=lcm/lcm/swagger/swagger.json;h=f098d282927d3535f5e9e6950f26b9171e04d30c;hb=HEAD>’.

2 Terms, Definitions and Abbreviations

For the purpose 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 GVNFM (Or-Vnfm)

Interfaces use RESTful API and the format is as follows: http(s)://[hostname][:port]/api/vnflcm/v1/[……]

image0

{apiRoot} is http(s)://[hostname][:port]/api

3.1 Create VNF Identifier

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

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

3.3.1 Request

Parameter

Qualifier

Cardinality

Content

Description

flavourId

M

1

IdentifierInV nfd

Identifier of the VNF deployment flavour to be instantiated.

instantiation LevelId

O

0..1

IdentifierInVnfd

Identifier of the instantiation 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 inks

O

0..N

ExtManaged VirtualLinkData

Information about internal VLs that are managed by other entities than the VNFM.

Reserved

localization Language

O

0..1

String

Localization language of the VNF to be instantiated can be 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 Id

CM

0..1

Identifier

Identifies the entity responsible for the management of this resource. 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:

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

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 Termination Timeout

O

0..1

Integer

This attribute is only applicable in case of graceful 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

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

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

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 Response Descriptor

Including:responseId,progress,statusstatusDescription

,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 ta

O

0..N

VnfConfiguration

Correspond to the vnfcConfigurationData in the input information elements of the SetInitialConfiguration operation if it has.

{

“vnfConfigurationData”: {

“cp”: [

{

“cpId”: “cp-1”, “cpdId”: “cpd-a”, “cpAddress”: [

{

“addresses”: [

{

“addressType”: “MAC”, “l2AddressData”: “00:f3:43:20:a2:a3”

}, {

“addressType”: “IP”, “l3AddressData”: {

“iPAddressType”: “IPv4”, “iPAddress”: “192.168.104.2”

}

}

],

“useDynamicAddress”: “FALSE”

}

]

}

], “vnfSpecificData”: {

“autoScalable”: “FALSE”, “autoHealable”: “FALSE”, …

}

},

“vnfcConfigurationData”: {

“vnfcId”: “vnfc-1”, “cp”: [

{

“cpId”: “cp-11”, “cpdId”: “cpd-1a”, “cpAddress”: [

{

“addresses”: [

{

“addressType”: “MAC”, “l2AddressData”: “00:f3:43:21:a2:a3”

}, {

“addressType”: “IP”, “l3AddressData”: {

“iPAddressType”: “IPv4”, “iPAddress”: “192.168.105.2”

}

}

],

“useDynamicAddress”: “FALSE”

}

]

}

],

“vnfcSpecificData”: {…}

}

}

4.1.3Response Code

Code

Meaning

Description

201

Created

A VNF Instance identifier was created successfully.

4xx/5xx

<name from RFC7231>

<description>

To view API documentation in the interactive swagger UI, you can download the following api json file and paste the content into the swagger tool: https://editor.swagger.io

  1. All VNFLCM APIs, including the SOL005 compliant APIs and the previous version APIs

VNFLCM_API_Specification.json

Consumed APIs

References to APIs offered by other components

NFVO consumed interfaces:

  • VNF LCM Interface from Generic VNFM controller, SVNFM

  • Inventory Service Interface from Available and Active Inventory

  • Generic VIM Interface from Multi-cloud

  • Data report Interface from DCAE

  • Tosca parser Interface from Modeling

  • Service registration and discovery from MSB

  • Homing Request Interface from Optimization Framework

GVNFM consumed interfaces:

  • Inventory Interface from A&AI

  • Tosca parser Interface from Modeling

  • Generic VIM Interface from Multi-cloud

  • Service registration and discovery from MSB

VF-C Delivery

VF-C includes the following components in R1.

image0

VF-C includes several components in ONAP R1.

  • Workflow includes two micro service: workflow manage service and workflow-activity engine service, this two services will onboard workflow to workflow engine and parse workflow.

  • For NS Lifecycle 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 instance data to A&AI.

  • In VF-C southbound, it includes 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

For the Amsterdam release, VF-C includes the following components:

NFVO
  • vfc-nfvo-lcm

  • vfc-nfvo-catalog

  • vfc-nfvo-resmgr

  • vfc-nfvo-driver-emsdriver

  • vfc-nfvo-driver-gvnfm-gvnfmadapter

  • vfc-nfvo-driver-gvnfm-jujudriver

  • vfc-nfvo-driver-svnfm-ztedriver

  • vfc-nfvo-driver-svnfm-huaweidriver

  • vfc-nfvo-driver-svnfm-nokiadriver

  • vfc-nfvo-driver-sfc-ztesfcdriver

GVNFM
  • vfc-gvnfm-vnflcm

  • vfc-gvnfm-vnfmgr

  • vfc-gvnfm-vnfres

Workflow
  • workflow-engine-mgr-service

  • activity-extension

Since the Guilin release, VF-C includes the following components:

NFVO
  • vfc-nfvo-lcm

  • vfc-nfvo-driver-gvnfm-gvnfmadapter

  • vfc-nfvo-driver-svnfm-ztedriver

  • vfc-nfvo-driver-svnfm-huaweidriver

GVNFM
  • vfc-gvnfm-vnflcm

  • vfc-gvnfm-vnfmgr

  • vfc-gvnfm-vnfres

Note:

The following components have been removed from Guilin release:
  • vfc-nfvo-catalog

  • vfc-nfvo-resmgr

  • vfc-nfvo-driver-emsdriver

  • vfc-nfvo-driver-gvnfm-jujudriver

  • vfc-nfvo-driver-svnfm-nokiadriver

  • vfc-nfvo-driver-sfc-ztesfcdriver

  • workflow-engine-mgr-service

  • activity-extension

You can use the old version of them if needed.

Logging & Diagnostic Information

VF-C logs are kept inside the docker containers: /var/log/onap/vfc/nslcm/runtime_nslcm.log You can get the log when the dockers start.

Where to Access Information

Use kubectl commands to get the log.

# get the vfc-nslcm pod name
kubectl -n onap get pod | grep -i vfc
kubectl -n onap logs dev-vfc-nslcm-6dd99f94f4-vxdkc -c vfc-nslcm

Or:

kubectl -n onap exec -it dev-vfc-nslcm-6dd99f94f4-vxdkc -c vfc-nslcm -- bash
cd /var/log/onap/vfc/nslcm/
tail -f runtime_nslcm.log

VF-C Installation and User Guide

VFC Installation over OOM

VFC Installation over OOM

VFC Installation over OOM V0.1

1 Scope

This is a guide to help developer or tester to try to install VF-C over OOM

2 Component & function
Repos:

Now VF-C have the following repos in https://gerrit.onap.org/r/admin/repos/q/filter:vfc

URL

Method

Description

vfc/nfvo/lcm

NS life cycle management

vfc/nfvo/driver/vnfm/svnfm

Specific VNFM drivers

vfc/nfvo/driver/vnfm/gvnfm

Generic VNFM drivers

vfc/nfvo/db

Stand-alone database microservice, provides the database service for each VF-C component

vfc/nfvo/driver/ems

VNF fcaps collect

Deprecated

vfc/nfvo/driver/sfc

SFC Driver

Deprecated

vfc/nfvo/resmanagement

NS Resource Management

Deprecated

vfc/nfvo/wfengine

Work flow engine

Deprecated

vfc/nfvo/multivimproxy

Multi-vim proxy provides the multivim indirect mode proxy

Deprecated

vfc/gvnfm/vnflcm

Generic VNFM VNF LCM

vfc/gvnfm/vnfmgr

Generic VNFM VNF Mgr

vfc/gvnfm/vnfres

Generic VNFM VNF Resource Management

VF-C Docker Images:
nexus3.onap.org:10001/onap/vfc/nslcm
nexus3.onap.org:10001/onap/vfc/db
nexus3.onap.org:10001/onap/vfc/gvnfmdriver
nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei
nexus3.onap.org:10001/onap/vfc/ztevnfmdriver
nexus3.onap.org:10001/onap/vfc/vnflcm
nexus3.onap.org:10001/onap/vfc/vnfmgr
nexus3.onap.org:10001/onap/vfc/vnfres

Deprecated from Guilin Release:

nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia
nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2
nexus3.onap.org:10001/onap/vfc/emsdriver
nexus3.onap.org:10001/onap/vfc/jujudriver
nexus3.onap.org:10001/onap/vfc/multivimproxy
nexus3.onap.org:10001/onap/vfc/resmanagement
nexus3.onap.org:10001/onap/vfc/wfengine-activiti
nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice
nexus3.onap.org:10001/onap/vfc/ztesdncdriver
3 VF-C Deployment

For initialization of docker there are 2 deployment options currently used in ONAP: - using heat template - using OOM

From Casablanca release, OOM is the recommended way, so here mainly give the steps for OOM based deployment

For OOM deployment you can refer to the below links:

  1. First ensure VF-C is marked true against field enabled in the oom/kubernetes/onap/values.yaml for successful deployment.

vfc:
        enabled: true
vid:
        enabled: true
vnfsdk:
        enabled: true
vvp:
        enabled: false
  1. Upgrade Images in OOM charts

Ensure the component version is right, you should check the respective component image version in VF-C charts. If you need update the version, please modify values.yaml

eg.

oom/kubernetes/vfc/charts/vfc-nslcm/values.yaml

#################################################################
# Application configuration defaults.
#################################################################
# application image
flavor: small

repository: nexus3.onap.org:10001
image: onap/vfc/nslcm:1.4.1
pullPolicy: Always
  1. Rebuild all repos in helm

Every time you change the charts, you need to rebuild all repos to ensure the change can take effect.

Step1: Build vfc repo

cd oom/kubernetes
make vfc

Step2: Build ONAP repo

cd oom/kubernetes
make onap(here can also execute make all)

Step3: Delete the release already deployed

cd oom/kubernetes
helm delete dev-vfc --purge

Step4: Deploy the new pods

cd oom/kubernetes
helm install local/vfc --namespace onap --name dev-vfc

Now VF-C will be upgraded with the new image version

You will see all the pods are running

dev-vfc-generic-vnfm-driver-6fcf454665-6pmfv       2/2     Running            0          11d
dev-vfc-huawei-vnfm-driver-6f6c465c76-ktpch        2/2     Running            0          11d
dev-vfc-mariadb-0                                  2/2     Running            0          11d
dev-vfc-mariadb-1                                  2/2     Running            2          11d
dev-vfc-mariadb-2                                  2/2     Running            0          11d
dev-vfc-nslcm-6dd99f94f4-vxdkc                     2/2     Running            0          11d
dev-vfc-redis-5d7d494fdf-crv8c                     1/1     Running            0          11d
dev-vfc-vnflcm-5497c66465-f5mh7                    2/2     Running            0          11d
dev-vfc-vnfmgr-5459b488d9-6vg75                    2/2     Running            0          11d
dev-vfc-vnfres-5577d674cf-g9fz7                    2/2     Running            0          11d
dev-vfc-zte-vnfm-driver-6685b74f95-r5phc           2/2     Running            2          11d
4 VF-C health check

When VF-C pods are up, if you want to check the service status, you can visit the following APIs in K8S cluster to check. These swagger API will also show the APIs VF-C provided.

Component Name

health check API

vfc/nfvo/lcm

http://ClusterIP:8403/api/nslcm/v1/swagger.yaml

vfc/gvnfm/vnflcm

http://ClusterIP:8801/api/vnflcm/v1/swagger.yaml

vfc/gvnfm/vnfmgr

http://ClusterIP:8803/api/vnfmgr/v1/swagger.yaml

vfc/gvnfm/vnfres

http://ClusterIP:8802/api/vnfres/v1/swagger.yaml

Here are only a few components as an example.

Take vnflcm as an example, you can visit the API as follow:

ubuntu@oom-mr01-rancher:~$ kubectl -n onap get svc|grep vnflcm
vfc-vnflcm                         ClusterIP      10.43.71.4      <none>                                 8801/TCP                                                      87d
ubuntu@oom-mr01-rancher:~$ curl http://10.43.71.4:8801/api/vnflcm/v1/swagger.json
{"swagger": "2.0", "info": {"title": "vnflcm API", "description": "\n\nThe `swagger-ui` view can be found [here](/api/vnflcm/v1/swagger).\n
The `ReDoc` view can be found [here](/api/vnflcm/v1/redoc).\nThe swagger YAML document can be found [here](/api/vnflcm/v1/swagger.yaml).\n
The swagger JSON document can be found [here](/api/vnflcm/v1/swagger.json)."........

Because VF-C expose service by ClusterIP, so that you can only visit the APIs in K8S cluster.

If you want to visit VF-C APIs outside of K8S cluster, you can visit these APIs via MSB, because all VF-C APIs have been registered to MSB.

You can execute the following steps:

ubuntu@oom-mr01-rancher:~$ kubectl -n onap get pod -o wide|grep msb-iag
dev-msb-msb-iag-6fbb5b4dbd-pxs8z                              2/2       Running            4          28d       10.42.72.222    mr01-node1   <none>
ubuntu@oom-mr01-rancher:~$ cat /etc/hosts |grep mr01-node1
172.60.2.39   mr01-node1
ubuntu@oom-mr01-rancher:~$ kubectl -n onap get svc|grep msb-iag
msb-iag                            NodePort       10.43.213.250   <none>                                 80:30280/TCP,443:30283/TCP                                    87d
ubuntu@oom-mr01-rancher:~$ curl http://172.60.2.39:30280/api/vnflcm/v1/swagger.json
{"swagger": "2.0", "info": {"title": "vnflcm API", "description": "\n\nThe `swagger-ui` view can be found [here](/api/vnflcm/v1/swagger).\n
The `ReDoc` view can be found [here](/api/vnflcm/v1/redoc).\nThe swagger YAML document can be found [here](/api/vnflcm/v1/swagger.yaml).\n
The swagger JSON document can be found [here](/api/vnflcm/v1/swagger.json)."........

You can visit the http://172.60.2.39:30280/api/vnflcm/v1/swagger.json in the browser

5 Debug and Testing in running Pod

When you are doing the testing and would like to replace some new file like binary or some script and want to check the new result.

Take vfc-nslcm pod as an example:

kubectl -n onap edit deployment dev-vfc-nslcm

spec:
  containers:
  - args:
    - -c
    - MYSQL_AUTH=${MYSQL_ROOT_USER}:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh
    command:
    - sh
    env:
    - name: MSB_HOST
      value: https://msb-iag:443
    - name: SSL_ENABLED
      value: "false"
    - name: MYSQL_ADDR
      value: vfc-mariadb:3306
    - name: MYSQL_ROOT_USER
      value: root
    - name: MYSQL_ROOT_PASSWORD
      valueFrom:
        secretKeyRef:
          key: password
          name: dev-vfc-db-root-pass
    - name: REDIS_HOST
      value: vfc-redis
    - name: REDIS_PORT
      value: "6379"
    - name: REG_TO_MSB_WHEN_START
      value: "false"
    image: 192.168.235.22:10001/onap/vfc/nslcm:1.4.1
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 3
      initialDelaySeconds: 120
      periodSeconds: 10
      successThreshold: 1
      tcpSocket:
        port: 8403
      timeoutSeconds: 1
    name: vfc-nslcm
    ports:
    - containerPort: 8403
      protocol: TCP
    readinessProbe:

Then you can replace the value into the pod.

6 Kubectl basic command

Basic operation of kubernests cluster(Take the namespace of onap in linux client as an example)

  • Check the cluster node

kubectl  get node
  • Check cluster namespace

kubectl  get ns
  • View the pod information and the pod on which the node is located, under the namespace specified (for example, namespace on onap)

kubectl get pod -o wide -n onap
  • Connected to the docker in pod

Check the docker's name , return two dockers' name after execution, -c specifie the docker that needed ti go in.

kubectl -n onap get pod dev-vfc-nslcm-68cb7c9878-v4kt2 -o jsonpath={.spec.containers[*].name}

kubectl -n onap exec -it dev-vfc-nslcm-68cb7c9878-v4kt2 -c vfc-nslcm /bin/bash
  • Copy files (take the catalog example). When the data copy is lost after the pod is restarted or migrated, the multi-copy pod copy operation only exists for the current pod

Copy from local to dockers in pod

kubectl -n onap cp copy_test.sh  dev-vfc-nslcm-68cb7c9878-v4kt2: -c vfc-nslcm

Copy pod's content to local machine

kubectl -n onap cp dev-vfc-nslcm-68cb7c9878-v4kt2:copy_test.sh -c vfc-nslcm /tmp/copy_test.sh
  • Remote command (to see the current path of the container as an example)

kubectl -n onap exec -it dev-vfc-nslcm-68cb7c9878-v4kt2 -c vfc-nslcm pwd
  • View pod basic information and logs (no -c parameter added for single container pod)

kubectl -n onap describe pod dev-vfc-nslcm-68cb7c9878-v4kt2

kubectl -n onap logs dev-vfc-nslcm-68cb7c9878-v4kt2 -c vfc-nslcm
  • Check the service listening port and manually expose the port, which is commonly used for testing, such as nginx under test namespace

1>Build namespace

    kubectl create namespace test

2>create pod with 3 replication

    kubectl run nginx --image=nginx --replicas=3 -n test

3>Pod exposed ports for nginx (target port, source port target-port)

    kubectl expose deployment nginx --port=88 --target-port=80 --type=LoadBalancer -n test

    or

    kubectl expose deployment nginx --port=88 --target-port=80 --type=NodePort -n test

4> Check svc(ports that pod exposed , The cluster internally accesses this pod via port 88., external access to the cluster using floatingip+30531)

    kubectl get svc -n test

    NAME      TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
    nginx     LoadBalancer   10.43.45.186   10.0.0.3      88:30531/TCP   3m

    NAME      TYPE           CLUSTER-IP     EXTERNAL-IP              PORT(S)                    AGE
    nginx     NodePort       10.43.45.186                               88:30531/TCP   3m


    Nodes within the CLUSTER can be accessed via cluster-ip +88 port
    Outside the cluster, it is accessible via either EXTERNAL IP or the Floating IP+30531, which is the node name of the pod
    The floatingip corresponding to the node name can be viewed in the /etc/hosts of the rancher machine or in the documentation
  • Modify the container image and pod strategy (deployment, statefulset), the completion of modification will trigger the rolling update

1>To determine whether the pod is a stateful application (efullset) or a stateful application (deployment)

    kubectl  -n onap describe  pod dev-vfc-nslcm-68cb7c9878-v4kt2 |grep Controlled

2>Stateless application deployment

    kubectl  -n onap get deploy |grep  nslcm

    kubectl -n onap edit deploy  dev-vfc-nslcm-68cb7c9878-v4kt2

3>Stateful application statefulset

    kubectl  -n onap get statefulset |grep cassandra

    kubectl -n onap edit statefulset dev-aai-cassandra
  • Restart pod(After removing the pod, deployment will recreate a same pod and randomly assign it to any node.)

kubectl -n onap delete pod dev-vfc-nslcm-68cb7c9878-v4kt2 -c vfc-nslcm
  • View the virtual machine where the portal-app resides in order to add host resolution

10.0.0.13 corresponding Floating IP is 172.30.3.36

kubectl -n onap get svc  |grep portal-app

portal-app                 LoadBalancer   10.43.181.163   10.0.0.13     8989:30215/TCP,8403:30213/TCP,8010:30214/TCP,8443:30225/TCP
  • Pod expansion and shrinkage

    pod expansion:

    kubectl scale deployment nginx --replicas=3
    

    pod shrinkage:

    kubectl scale deployment nginx --replicas=1
    

NS LCM Guide Using VF-C

NS LCM Guide Using VF-C
NS LCM Guide Using VF-C

VF-C supports vCPE use case in R3, all VNFs are deployed through VF-C GVNFM . This page describes how to use VF-C to instantiate NS

Before you try, please prepare two csar file:

  • VNF csar

  • NS csar

If you don’t have any csar, you can download the simple csar from https://wiki.onap.org/display/DW/VF-C+User+Guide

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

If you want to try VF-C, the small project set should include: VF-C , Multicloud, MSB, A&AI.

VF-C components need to register to MSB when starting, so MSB components should be installed first,you can refer 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.

  1. Install vfc-nfvo-db component

docker run -d -p 3306:3306 -p 6379:6379 --name vfc-db -v /var/lib/mysql nexus3.onap.org:10001/onap/vfc/db
we use  ${VFC_DB_IP} as the IP of vfc-db component.
  1. Install vfc-nfvo-lcm component.

docker run -d -p 8403:8403 --name vfc-nslcm -e MSB_ADDR=${MSB_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306
nexus3.onap.org:10001/onap/vfc/nslcm
  1. Install modeling-etsicatalog component.

docker run -d -p 8806:8806 --name vfc-etsicatalog -e MSB_ADDR=${MSB_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/catalog
  1. Install vfc-nfvo-gvnfmdriver component.

docker run -d -p 8484:8484 --name vfc-gvnfmdriver -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/gvnfmdriver
  1. Install vfc-gvnfm-vnflcm component.

docker run -d -p 8801:8801 --name vfc-vnflcm -e MSB_ADDR=${MSB_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/vnflcm
ESR Registration

Before we instantiate a service, we need to register vim and vnfm which is used to deploy vnfs.

1.VIM Registration

image1

  1. GVNFM Registration

For VF-C, because we use GVNFM to deploy vnfs , so you can register GVNFM in esr gui as follows:

image2

Note:
  1. type should be gvnfmdriver which is the same with gvnfmdriver microservice.

  2. url is the msb-iag NodeIp:port.

  3. vim corresponds to cloudowner_cloudregionid which registered in step1.

Package Onboarding

VF-C R3 support VNF/PNF/NS csar package upload from local csar file. VNF/PNF csar package should be uploaded first, then NS csar package can be uploaded. Before onboarding a package, should create one record first.

  1. Create VNF package record in catalog DB

curl -X POST \

http://172.30.3.104:30280/api/vnfpkgm/v1/vnf_packages \

-H 'Postman-Token: f9c45dea-b7bb-4acd-89e1-b9b1c3d70d8a' \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'userDefinedData= "key2": "value2"'
Note:
  1. 172.30.3.104:30280 is the node IP and exposed port where the msb-iag pod is located.

  2. userDefinedData is the key value pair which defined for the vnf package we created

  1. Upload VNF package to VF-C catalog

curl -X PUT \
http://172.30.3.104:30280/api/vnfpkgm/v1/vnf_packages/38037a12-a0d4-4aa4-ac50-cd6b05ce0b24/package_content \
-H 'Postman-Token: 88ada218-86fd-4cd7-a06e-cc462f5df651' \
-H 'cache-control: no-cache'
-H 'accept: application/json' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'file=@C:\ONAP\Integration\R3\vCPE\vnf-vsn.csar'
Note:
  1. 38037a12-a0d4-4aa4-ac50-cd6b05ce0b24 is the vnf_pkg_id which we get from the first step.

  2. -F is used to specify the local vnf package file

  1. Create NS package record in catalog DB

curl -X POST \

http://172.30.3.104:30280/api/nsd/v1/ns_descriptors \
-H 'Postman-Token: 71b11910-1708-471c-84bb-5b0dd8d214a2' \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'userDefinedData= "key1": "value1"'
Note:
  1. userDefinedData is the key value pair which defined for the ns package we created

  1. Upload NS package to VF-C catalog

curl -X PUT \
http://172.30.3.104:30280/api/nsd/v1/ns_descriptors/79ca81ec-10e0-44e4-bc85-ba968f345711/nsd_content \
-H 'Postman-Token: f16e4a54-a514-4878-b307-9b80c630166e' \
-H 'cache-control: no-cache'
-H 'accept: application/json' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'file=@C:\ONAP\Integration\R3\vCPE\ns.csar'
Note:
  1. -F is used to specify the local ns package file

NS Life Cycle Management

Currently VF-C GVNFM support NS create/Instantiate/terminate/delete/heal.

VF-C R3 healing only suport restart a vm of an VNF.

  1. NS Create

curl -X POST \
http://172.30.3.104:30280/api/nslcm/v1/ns \
-H 'Postman-Token: 27e2c576-2d9b-4753-a6b0-6262a4a7ec86' \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
     "context": {
              "globalCustomerId": "global-customer-id-test1",
              "serviceType": "service-type-test1"
      },
      "csarId": "79ca81ec-10e0-44e4-bc85-ba968f345711",
      "nsName": "ns_vsn",
      "description": "description"
      }'
Note:
  1. globalCustomerId and serviceType is defined in A&AI.

  2. csar Id is the NS package id which is consistent with the catalog ns package id.

  3. nsName is the NS name

  1. NS Instantiate

 curl -X POST \
http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/instantiate \
-H 'Postman-Token: 2a9542b2-3364-4a40-8513-45e10b8ca2ce' \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
  -d '{
       "additionalParamForNs": {
              "sdnControllerId": "2"
       },
       "locationConstraints": [{
              "vnfProfileId": "45711f40-3f43-415b-bb45-46e5c6940735",
              "locationConstraints": {
                    "vimId": "CPE-DC_RegionOne"
              }
              }]
       }'
Note:
  1. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.

  2. locationConstraints is an array which contains all the vnfs included under NS locationConstraints is used to define the VIM( cloudOwner_cloudRegionId) that the VNF will be deployed vnfProfileId is the vnf descriptor id which defined in NS template under node_templates .

image3

  1. before instantiate, you should create one volumntype which called root.

  1. NS Heal

curl -X PUT \
 http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/heal \
-H 'Content-Type: application/json' \
-H 'Postman-Token: f18754b8-ed68-43b0-ae55-b8b8780e5c6a' \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-d '{   "vnfInstanceId": "044b705c-e44d-4733-ab64-987f46d9b567",
                  "cause": "restartvm",
                  "additionalParams": {
                                                      "action": "restartvm",
                                                       "actionvminfo": {
                                                       "vmid": "1623cd25-ae6f-4880-8132-15914367e47b",
                                                       "vduid": "",
                                                        "vmname": "1623cd25-ae6f-4880-8132-15914367e47b"
      }}
      }'
Note:
  1. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.

  2. “vnfInstanceId”: “044b705c-e44d-4733-ab64-987f46d9b567” is the VNF instanceId, we can get this from A&AI or VF-C DB.

  3. action only support restartvm in Casablanca release.

  4. actionvminfo only supports to include one vm , vmid is the vmid which is the same with the vmid in cloud.

  1. NS Terminate

curl -X POST \
http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/terminate \
-H 'Postman-Token: 5190e46f-f612-432a-90d8-161ea67778b2' \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d 'gracefulTerminationTimeout: 600,
\terminationType: FORCEFUL'
Note:
  1. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.

  2. terminateType supports FORCEFUL and GRACEFULLc. gracefulTerminationTimeout is the wait time before execute terminate.

  1. NS delete

curl -X DELETE \
http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec \
-H 'Postman-Token: 62b35de6-1785-40ed-8026-06d73f9770d8' \
-H 'cache-control: no-cache'
Note:
  1. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create

VFC-Test Cli Command Guide

Reference manual:

  1. https://onap.readthedocs.io/en/dublin/submodules/cli.git/docs/cmd_help_onap_dublin.html

  2. https://git.onap.org/cli/tree/products/onap-dublin

Note:

  1. The config. JSON included in the folder is a data guarantee for the example in the guidance manual, which will be converted into Python recognizable object body through the json. load method. Use “parameters” to receive the converted results. (parameters = json. load (config))

  2. You should go to the pod of the CLI environment in the corresponding test environment to execute the command action steps

Create cloud complex

More Cli command defination and reference can be found in the following page:

Cli cloud complex Command Guide
1. complex-create
usage: oclip complex-create
Create a cloud complex in Onap
Options:
[-V | --verify] [-f | --format] [-h | --help]
[-t | --no-title] [-j | --street2] [-v | --version]
[-r | --physical-location-type] [-s | --long] [-lt | --latitude]
[-x | --physical-location-id] [-y | --data-center-code] [-a | --no-auth]
[-l | --region] [-p | --host-password] [-m | --host-url]
[-C | --no-catalog] [-i | --street1] [-lo | --longitude]
[-d | --debug] [-S | --state] [-la | --lata]
[-D | --context] [-g | --city] [-w | --postal-code]
[-z | --complex-name] [-k | --country] [-o | --elevation]
[-u | --host-username] [-q | --identity-url]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip complex-create -j {} -r {} -x {} -y {} -lt {} -l {} -i {} -lo {} \
                     -S {} -la {} -g {} -w {} -z {} -k {} -o {} -q {} -m {} -u {} -p {}".format(parameters["street2"], \
                      parameters["physical_location"], parameters["complex_name"], \
                      parameters["data_center_code"], parameters["latitude"], parameters["region"], \
                      parameters["street1"], parameters["longitude"], parameters["state"], \
                      parameters["lata"], parameters["city"], parameters["postal-code"], \
                      parameters["complex_name"], parameters["country"], parameters["elevation"], \
                      parameters["identity_url"], parameters["aai_url"], parameters["aai_username"], \
                      parameters["aai_password"])
2. complex-list
usage: oclip complex-list
List the configured complexes
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-u | --host-username] [-a | --no-auth]
[-p | --host-password]
For example:
"oclip complex-list -m {} -u {} -p {}".format(parameters["aai_url"], parameters["aai_username"], \
                      parameters["aai_password"])
3. complex-delete
usage: oclip complex-delete
Delete a complex from Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-y | --resource-version]
[-s | --long] [-D | --context] [-x | --complex-name]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
For example:
oclip complex-delete -m https://159.138.61.203:30233 -u AAI -p AAI -x clli1 -y 1568444028429
Note:
complex-name and resource-version is the result returned after executing the complex-list command(command 2)

Register all clouds

More Cli command defination and reference can be found in the following page:

Cli Regist Clouds Command Guide
1. Register-all-clouds
usage: oclip cloud-create
Create a cloud region in Onap
Options:
[-e | --esr-id] [-V | --verify] [-f | --format]
[-h | --help] [-t | --no-title] [-v | --version]
[-c | --cloud-domain] [-s | --long] [-b | --user-name]
[-r | --owner-type] [-S | --sriov-automation] [-I | --extra-info]
[-x | --cloud-owner] [-Q | --system-type] [-y | --region-name]
[-j | --password] [-a | --no-auth] [-w | --cloud-region-version]
[-p | --host-password] [-m | --host-url] [-C | --no-catalog]
[-i | --identity-url] [-d | --debug] [-g | --cloud-zone]
[-l | --default-tenant] [-url | --service-url] [-n | --complex-name]
[-q | --cloud-type] [-D | --context] [-z | --ssl-insecure]
[-k | --system-status] [-u | --host-username]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip cloud-create -e {} -b {} -I {{\\\\\\"openstack-region-id\\\\\\":\\\\\\"{}\\\\\\"}} \
-x {} -y {} -j {} -w {} -l {} -url {} -n {} -q {} -r {} -Q {} -i {} -g {} -z {} -k {} -c {} -m {} -u {} -p {}'.format(
  values.get("esr-system-info-id"), values.get("user-name"), cloud_region, parameters["cloud-owner"], \
  cloud_region, values.get("password"), values.get("cloud-region-version"), values.get("default-tenant"), \
  values.get("service-url"), parameters["complex_name"], values.get("cloud-type"), parameters["owner-defined-type"], \
  values.get("system-type"), values.get("identity-url"), parameters["cloud-zone"], values.get("ssl-insecure"), \
  values.get("system-status"), values.get("cloud-domain"), parameters["aai_url"], parameters["aai_username"], \
  parameters["aai_password"])
2. cloud list
usage: oclip cloud-list
List the configured clouds and Onap service subscriptions
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-u | --host-username] [-a | --no-auth]
[-p | --host-password]
For example:
"oclip cloud-list -m {} -u {} -p {}".format(parameters["aai_url"], parameters["aai_username"], \
                      parameters["aai_password"])
3. cloud delete
 usage: oclip cloud-delete
 Delete a cloud region from Onap
 Options:
 [-m | --host-url] [-C | --no-catalog] [-f | --format]
 [-h | --help] [-V | --verify] [-t | --no-title]
 [-d | --debug] [-v | --version] [-x | --cloud-name]
 [-z | --resource-version] [-s | --long] [-D | --context]
 [-y | --region-name] [-u | --host-username] [-a | --no-auth]
 [-p | --host-password]
 For example:
 oclip cloud-delete -m https://159.138.61.203:30233 -u AAI -p AAI -y admin-fd -z 1568466594680 -x CloudOwner
Note:
 region-name and resource-version and cloud-name is the result returned after executing the cloud-list command(command 2)

create service and customer

More Cli command defination and reference can be found in the following page:

Cli Create Service and Customer Command Guide
1. create-service-type
usage: oclip service-type-create
Add a service type in Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-x | --service-type]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-y | --service-type-id] [-s | --long] [-D | --context]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip service-type-create -x {} -m {} -u {} -p {}".format( parameters["service_name"], \
  parameters["aai_url"], parameters["aai_username"], parameters["aai_password"])
2. create-customer
usage: oclip customer-create
Create a customer in Onap
Options:
[-m | --host-url] [-y | --subscriber-name] [-C | --no-catalog]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-x | --customer-name] [-s | --long] [-D | --context]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip customer-create -x {} -y {} -m {} -u {} -p {}".format( parameters["customer_name"], \
parameters["subscriber_name"], parameters["aai_url"], parameters["aai_username"], parameters["aai_password"])
3. add-customer-subscription(subscription not exist)
usage: oclip customer-create
Create a customer in Onap
Options:
[-m | --host-url] [-y | --subscriber-name] [-C | --no-catalog]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-x | --customer-name] [-s | --long] [-D | --context]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip subscription-create -x {} -c {} -z {} -e {} -y {} -r {} -m {} -u {} -p {}".format(\
      parameters["customer_name"], cloud_region_values.get("tenant-id"), parameters["cloud-owner"], parameters["service_name"],\
      cloud_region_values.get("default-tenant"), cloud_region, parameters["aai_url"], parameters["aai_username"], parameters["aai_password"] )
4. add-customer-subscription(subscription existed)
usage: oclip subscription-cloud-add
Add a new cloud region to a customer subscription
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-x | --customer-name]
[-c | --cloud-tenant-id] [-s | --long] [-D | --context]
[-z | --cloud-owner] [-e | --service-type] [-u | --host-username]
[-a | --no-auth] [-y | --tenant-name] [-r | --cloud-region]
[-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip subscription-cloud-add -x {} -c {} -z {} -e {} -y {} -r {} -m {} -u {} -p {}".format(\
      parameters["customer_name"], cloud_region_values.get("tenant-id"), parameters["cloud-owner"], parameters["service_name"],\
      cloud_region_values.get("default-tenant"), cloud_region, parameters["aai_url"], parameters["aai_username"], parameters["aai_password"] )
5. service type list
usage: oclip service-type-list
List the service types configured in Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-u | --host-username] [-a | --no-auth]
[-p | --host-password]
For example:
"oclip service-type-list -m {} -u {} -p {}".format(parameters["aai_url"], parameters["aai_username"], \
                      parameters["aai_password"])
6. service type delete
usage: oclip service-type-delete
usage: oclip service-type-delete
Delete a service type from Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-y | --resource-version]
[-x | --service-type-id] [-s | --long] [-D | --context]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
For example:
oclip service-type-delete -m https://159.138.61.203:30233 -u AAI -p AAI -x baf23ae9-f890-4b92-b568-2a70f5c86993 -y 1568444204387
Note:
service-type-id and resource-version is the result returned after executing the service-type-list command(command 5)
7. customer list
usage: oclip customer-list
Lists the registered customers in Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-u | --host-username] [-a | --no-auth]
[-p | --host-password]
For example:
oclip customer-list -m {} -u {} -p {}".format(parameters["aai_url"], parameters["aai_username"], \
                      parameters["aai_password"])
8. customer delete
   usage: oclip customer-delete
   Delete a customer from Onap
   Options:
   [-m | --host-url] [-C | --no-catalog] [-f | --format]
   [-h | --help] [-V | --verify] [-t | --no-title]
   [-d | --debug] [-v | --version] [-y | --resource-version]
   [-s | --long] [-D | --context] [-x | --customer-id]
   [-u | --host-username] [-a | --no-auth] [-p | --host-password]
   For example:
   oclip customer-delete -m https://159.138.61.203:30233 -u AAI -p AAI -x customer2 -y 1568615567019
Note:
   customer-id and resource-version is the result returned after executing the customer-list command(command 7)

Register vnfm

More Cli command defination and reference can be found in the following page:

Cli Regist Vnfm Command Guide
1. Register-vnfm
usage: oclip vnfm-create
Register a VNFM in Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-e | --vendor] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-y | --vnfm-id] [-c | --type] [-x | --vim-id]
[-s | --long] [-D | --context] [-j | --password]
[-b | --name] [-i | --username] [-u | --host-username]
[-g | --url] [-a | --no-auth] [-q | --vnfm-version]
[-z | --certificate-url] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vnfm-create -b {} -c {} -e {} -v {} -g {} -x {} -i {} -j {} -q {} \
-m {} -u {} -p {}'.format(vnfm_key, values.get("type"), values.get("vendor"), \
  values.get("version"), values.get("url"), values.get("vim-id"), \
  values.get("user-name"), values.get("user-password"), values.get("vnfm-version"), \
  parameters["aai_url"], parameters["aai_username"], parameters["aai_password"])
2. vnfm list
usage: oclip vnfm-list
List the configured vnfm
Product: onap-dublin Service: aai Author: ONAP CLI Team onap-discuss@lists.onap.org
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-u | --host-username] [-a | --no-auth]
[-p | --host-password]
For example:
    "oclip vnfm-list -m {} -u {} -p {}".format(parameters["aai_url"], parameters["aai_username"], \
                      parameters["aai_password"])
3. vnfm-delete
usage: oclip vnfm-delete
Un-register a VNFM in Onap
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-y | --resource-version]
[-x | --vnfm-id] [-s | --long] [-D | --context]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
For example:
oclip vnfm-delete -m https://159.138.61.203:30233 -uAAI -p AAI -x 4839a0bc-60d1-4346-9c69-185d0962633b -y 1568450136276
Note:
vnfm-id and resource-version is the result returned after executing the vnfm-list command(command 2)

Create csar file(by sdc)

More Cli command defination and reference can be found in the following page:

Cli Create Csar Command Guide
1. create-vlm
usage: oclip vlm-create
Create License Model
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-y | --description]
[-s | --long] [-D | --context] [-x | --vendor-name]
[-u | --host-username] [-a | --no-auth] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip vlm-create -x {} -u {} -p {} -m {}".format(parameters["vendor-name"], \
  parameters["sdc_creator"], parameters["sdc_password"], parameters["sdc_onboarding_url"])
2. create-vsp
usage: oclip vsp-create
Create Vendor Software Product
Options:
[-m | --host-url] [-j | --vlm-feature-group-id] [-C | --no-catalog]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-o | --onboarding-method] [-e | --vlm-vendor] [-x | --vsp-name]
[-y | --vsp-description] [-s | --long] [-D | --context]
[-i | --vlm-agreement-id] [-c | --vlm-version] [-u | --host-username]
[-a | --no-auth] [-g | --vlm-id] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip vsp-create -j {} -o {} -e {} -x {} -y {} -i {} -c {} -g {} -u {} -p {} -m {}".format( in_list[0], \
      parameters["onboarding-method"], parameters["vendor-name" ], value.get("vsp-name"), value.get("vsp-desc"), in_list[1], \
      in_list[2], in_list[3], parameters["sdc_creator"], parameters["sdc_password"], parameters["sdc_onboarding_url"] )
3. create-vf-model
usage: oclip vf-model-create
Create Virtual function from Vendor Software Product
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-y | --description]
[-g | --vsp-version] [-x | --name] [-s | --long]
[-D | --context] [-z | --vendor-name] [-u | --host-username]
[-a | --no-auth] [-b | --vsp-id] [-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip vf-model-create -y {} -g {} -x {} -z {} -b {} -u {} -p {} -m {}".format(value.get("vf-description"), \
      value.get("vsp-version"), value.get("vf-name"), parameters["vendor-name"], vsp_dict[name], \
      parameters["sdc_creator"], parameters["sdc_password"], parameters["sdc_catalog_url"])
4. create-service-model
usage: oclip service-model-create
Create Service model in SDC
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-z | --project-code]
[-y | --description] [-e | --icon-id] [-c | --category-display-name]
[-s | --long] [-D | --context] [-x | --service-name]
[-u | --host-username] [-a | --no-auth] [-b | --category]
[-p | --host-password]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
"oclip service-model-create -z {} -y {} -e {} -x {} -c {} -b {} -u {} -p {} -m {} |grep ID".format(parameters["project-code"], \
parameters["service-model-desc"], parameters["icon-id"], parameters["service-model-name"], parameters["category-display"], \
parameters["category"],parameters["sdc_creator"], parameters["sdc_password"], parameters["sdc_catalog_url"])
5. vfc-catalog-onboard-vnf
usage: oclip vfc-catalog-onboard-vnf
vfc onboard vnf to catalog of vfc
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-c | --vnf-csar-uuid]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
oclip vfc-catalog-onboard-vnf - -c {}'.format(value.get("csar-id"))
6. vfc-catalog-onboard-ns
usage: oclip vfc-catalog-onboard-ns
vfc onboard ns to catalog of vfc
Options:
[-m | --host-url] [-c | --ns-csar-uuid] [-C | --no-catalog]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-s | --long] [-D | --context]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-catalog-onboard-ns -c {}'.format(parameters["ns"]["csar-id"])

Create csar file(by local)

More Cli command defination and reference can be found in the following page:

Cli cloud complex Command Guide
1. create-vnf-package
usage: vfc-catalog-create-vnf
vfc create vnf
Options:
[-m | -m | --host-url]
[-c | -user-key]
[-e | -user-value]
[-C | --no-catalog]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-s | --long] [-D | --context]
Error:
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-catalog-create-vnf -m {} -c {} -e {}'.format(parameters["vfc-url"], \
      vnf_values.get("key"), vnf_values.get("value"))
2. create-ns-package
usage: vfc-catalog-create-ns
vfc create ns
Options:
[-m | -m | --host-url]
[-c | -user-key]
[-e | -user-value]
[-C | --no-catalog]
[-f | --format] [-h | --help] [-V | --verify]
[-t | --no-title] [-d | --debug] [-v | --version]
[-s | --long] [-D | --context]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-catalog-create-ns -m {} -c {} -e {}'.format(parameters["vfc-url"], \
  ns.get("key"), ns.get("value"))

VFC part

More Cli command defination and reference can be found in the following page:

Cli VFC part Command Guide
1. VFC nslcm create
usage: oclip vfc-nslcm-create
vfc nslcm create ns
Options:
[-n | --ns-csar-name] [-m | --host-url] [-c | --ns-csar-uuid]
[-C | --no-catalog] [-f | --format] [-h | --help]
[-V | --verify] [-t | --no-title] [-d | --debug]
[-v | --version] [-s | --long] [-D | --context]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-nslcm-create -m {} -c {} -n {} -q {} -S {}'.format(parameters["vfc-url"], \
  csar_id, ns.get("name"), parameters["customer_name"], parameters["service_name"])
2. VFC nslcm instance
usage: oclip vfc-nslcm-instance
vfc nslcm instance ns
Options:
[[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-c | --location-constraints]
[-s | --long] [-D | --context] [-i | --ns-instance-id]
[-n | --sdn-controller-id]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-nslcm-instantiate -m {} -i {} -c {} -n {}'.format(parameters["vfc-url"], \
    ns_instance_id, parameters["location"], parameters["sdc-controller-id"])
3. VFC nslcm terminate
usage: oclip vfc-nslcm-terminate
vfc nslcm terminate ns
Options:
[[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-c | --location-constraints]
[-s | --long] [-D | --context] [-i | --ns-instance-id]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-nslcm-terminate -m {} -i {}'.format(parameters["vfc-url"], ns_instance_id)
4. VFC nslcm delete
usage: oclip vfc-nslcm-delete
vfc nslcm terminate ns
Options:
[[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-c | --location-constraints]
[-s | --long] [-D | --context] [-c | --ns-instance-id]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-nslcm-delete -m {} -c {}'.format(parameters["vfc-url"], ns_instance_id)
5. VFC nslcm get
usage: oclip vfc-nslcm-get
vfc nsclm get the status of creating ns
Options:
[-m | --host-url] [-C | --no-catalog] [-f | --format]
[-h | --help] [-V | --verify] [-t | --no-title]
[-d | --debug] [-v | --version] [-s | --long]
[-D | --context] [-c | --ns-instance-id]
Error:
On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>
For example:
'oclip vfc-nslcm-delete -m {} -c {}'.format(parameters["vfc-url"], ns_instance_id)

Administration

VF-C components have been dockerized, can use docker command to manage VF-C.

Processes

  • Process 1

  • Process 2

Actions

All actions performed on the VF-C components are docker-based.

  • Action X

  • Action Y

VF-C Release Notes

VF-C includes two main components, NFV-O and GVNFM, to implement life cycle management and FCAPS of VNF and NS. VF-C takes part in end to end service orchestration and close loop automation by working with SO, DCAE and Policy. VF-C also provides standard southbound interface to VNFMs and can integrate with multi vendor VNFMs via drivers.

Version: 1.4.6

Release Date

2022-04-13

Bug Fixes

  • Fix tox test loop in mvn-phase-script.sh

Released components:

NFVO
  • vfc-nfvo-lcm 1.4.6

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.4.4

  • vfc-nfvo-driver-svnfm-ztedriver 1.4.1

  • vfc-nfvo-driver-svnfm-huawei 1.4.1

  • vfc-nfvo-db 1.3.5

GVNFM
  • vfc-gvnfm-vnflcm 1.4.3

  • vfc-gvnfm-vnfmgr 1.4.2

  • vfc-gvnfm-vnfres 1.4.1

Version: 1.4.5

Release Date

2022-03-31

New Features

  • update Django version to 3.1.4

  • Update the vulnerable direct dependencies

  • Update Docker image to fix CSIT Failure

Released components:

NFVO
  • vfc-nfvo-lcm 1.4.5

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.4.4

  • vfc-nfvo-driver-svnfm-ztedriver 1.4.1

  • vfc-nfvo-driver-svnfm-huawei 1.4.1

  • vfc-nfvo-db 1.3.5

GVNFM
  • vfc-gvnfm-vnflcm 1.4.3

  • vfc-gvnfm-vnfmgr 1.4.2

  • vfc-gvnfm-vnfres 1.4.1

Version: 1.4.4

Release Date

2021-09-02

New Features

  1. Packages upgrades in direct dependencies, such as PyYAML & httplib2

  2. Remove Python 2.7 from docker image of huawei vnfm driver

  3. Optimize the docker image of VFC db

Released components:

NFVO
  • vfc-nfvo-lcm 1.4.4

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.4.2

  • vfc-nfvo-driver-svnfm-ztedriver 1.4.1

  • vfc-nfvo-driver-svnfm-huawei 1.4.1

  • vfc-nfvo-db 1.3.5

GVNFM
  • vfc-gvnfm-vnflcm 1.4.2

  • vfc-gvnfm-vnfmgr 1.4.1

  • vfc-gvnfm-vnfres 1.4.0

Version: 1.4.3

Release Date

2021-03-24

New Features

  1. Refactor logging to remove dependency on onaplogging component

  2. Update to Python 3.8

  3. Update documents

Released components:

NFVO
  • vfc-nfvo-lcm 1.4.2

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.4.1

  • vfc-nfvo-driver-svnfm-ztedriver 1.4.0

  • vfc-nfvo-driver-svnfm-huawei 1.3.9

  • vfc-nfvo-db 1.3.4

GVNFM
  • vfc-gvnfm-vnflcm 1.4.1

  • vfc-gvnfm-vnfmgr 1.4.0

  • vfc-gvnfm-vnfres 1.3.9

Version: 1.4.1

Release Date

2020-10-29

New Features

  • Functional Enhancement:

  1. Improve instance storage function

  2. Remove components which are no longer used or maintained.

  • Maturity Enhancement:

  1. Update to Java 11

  2. Optimize docker image

  3. Update dependency lib

  4. Increase code coverage

Released components:

NFVO
  • vfc-nfvo-lcm 1.4.1

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.4.0

  • vfc-nfvo-driver-svnfm-ztedriver 1.3.8

  • vfc-nfvo-driver-svnfm-huawei 1.3.8

  • vfc-nfvo-db 1.3.4

GVNFM
  • vfc-gvnfm-vnflcm 1.4.0

  • vfc-gvnfm-vnfmgr 1.3.9

  • vfc-gvnfm-vnfres 1.3.8

Known Issues

Though VFC itself has migrated to python 3, however, the deployment of VFC still has python 2.7 pods since it uses public mariadb image. Please refer to: https://jira.onap.org/browse/VFC-1740 for details.

Security Notes

NA

Quick Links:

Upgrade Notes

NA

Deprecation Notes

The following components are not in the scope of the Guilin release since they are no longer used or maintained.

  • vfc/nfvo/driver/ems

  • vfc/nfvo/multivimproxy

  • vfc/nfvo/driver/vnfm/gvnfm/juju

  • vfc/nfvo/driver/vnfm/svnfm/nokia

  • vfc/nfvo/wfengine

  • vfc/nfvo/driver/sfc

Other

NA

Version: 1.3.9

Release Date

2020-03-17

New Features

  • Functional Enhancement:

  1. Migrate VF-C catalog to Modeling etsicatalog

  2. Using the common database (MariaDB) and encrypting the database password.

  3. Remove the root permission and change the user of VFC project to ONAP.

  4. Add the function of auto register MSB switch for startup project.

  5. Increase the communication access form between components through the HTTPS encrypted access form of MSB.

  6. SOL005 compliance NS instantiation, query and termination commands have been added to cli.

  • Maturity Enhancement:

  1. Enhance the security of database access

  2. Enhance the stability of instantiation process and improve efficiency and productivity.

  3. Improve the stability of instance termination process and deletion process, and improve the success rate of subscription record deletion.

  4. Adapt to MSB https for microservice service registration and access.

Released components:

NFVO
  • vfc-nfvo-lcm 1.3.9

  • vfc-nfvo-resmanagement 1.3.1

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.3.9

  • vfc-nfvo-driver-gvnfm-juju 1.3.9

  • vfc-nfvo-driver-svnfm-ztedriver 1.3.6

  • vfc-nfvo-driver-svnfm-huawei 1.3.6

  • vfc-nfvo-driver-svnfm-Nokia2 1.3.6

  • vfc-nfvo-db 1.3.3

  • vfc-nfvo-sfc 1.3.1

  • vfc-nfvo-ems 1.3.1

  • vfc-nfvo-multivimproxy 1.3.1

  • vfc-nfvo-wfengine-mgrservice 1.3.3

  • vfc-nfvo-wfengine-activiti 1.3.3

GVNFM
  • vfc-gvnfm-vnflcm 1.3.9

  • vfc-gvnfm-vnfmgr 1.3.8

  • vfc-gvnfm-vnfres 1.3.7

Bug Fixes

  • Fix bug for duplication query and delete vserver and network in AAI resource during terminating ns.

  • Fix terminate ns API is unstable.

  • Fix bug for fail to delete subscription for vnfm during terminating ns.

  • Fix the bug for fail parse contextArray, initial it to [].

  • Fix the deduplication AAI resource issues.

  • Fix the bug of vim_id data type error when creating vnfs.

  • Fix the failure of parsing the acquired data format during SFC creation.

  • Fix the failure of blocking due to multithreading during instantiation.

Known Issues

Security Notes

NA

Quick Links:

Upgrade Notes

NA

Deprecation Notes

NA

Other

NA

Version: 1.3.4

Release Date

2019-08-20

New Features

  • Functional Enhancement:

  1. Upgrade component environments from Python 2 to Python 3 and upgrade package dependencies to stable versions

  2. Good connectivity and stability of information transmission between nslcm drivers and vnflcm

  3. Solving Layer_protocol Protocol Protocol Supporting Uniformity and Increasing Compatibility

  • Standard Alignment-SOL005 Alignment

  • Maturity Enhancement:

  1. Increase read and write stability of AAI interaction

  2. Enhance the stability of vnflcm and nslcm message subscription notification function

  3. Enhance the reliability of MSB registration information and message reading

Released components:

NFVO
  • vfc-nfvo-lcm 1.3.4

  • vfc-nfvo-catalog 1.3.4

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.3.5

  • vfc-nfvo-driver-svnfm-ztedriver 1.3.3

  • vfc-nfvo-db 1.3.1

GVNFM
  • vfc-gvnfm-vnflcm 1.3.4

  • vfc-gvnfm-vnfmgr 1.3.4

  • vfc-gvnfm-vnfres 1.3.4

Bug Fixes

  • Fix bug for failure in creating subscriptions for vnfm

  • Fix network name conflict problem when creating network writing to AAI

  • Fix bug for failure in creating ns vl to aai

  • Fix the bug for table NFVO_NSINST field status update incorrect

Known Issues

Security Notes

VFC code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The VFC open Critical security vulnerabilities and their risk assessment have been documented as part of the project.

Quick Links:

Upgrade Notes

NA

Deprecation Notes

NA

Other

NA

Version: 1.3.0

Release Date

2019-06-06

New Features

  • Functional Enhancement:

  1. Upgrade Multicloud API to support consistent identification of cloud region functional requirement

  2. OOF Integration Optimization.Optimize the methodology for VNF(vdu) placement, add the process for placement with selected candidates(VIM)

  3. Align VNFD SOL2.5.1 and model multi-version support

  • Standard Alignment-SOL005 Alignment

  • Maturity Enhancement:

  1. Mysql DB migrate to OOM shared MariaDB Galera Cluster

  2. Configuration inject automatically

  3. Add data persistent storage to avoid data loss due to pod restart

Released components:

NFVO
  • vfc-nfvo-lcm 1.3.2

  • vfc-nfvo-catalog 1.3.2

  • vfc-nfvo-resmgr 1.3.0

  • vfc-nfvo-driver-emsdriver 1.3.0

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.3.3

  • vfc-nfvo-driver-gvnfm-jujudriver 1.3.1

  • vfc-nfvo-driver-svnfm-ztedriver 1.3.1

  • vfc-nfvo-driver-svnfm-huaweidriver 1.3.0

  • vfc-nfvo-driver-svnfm-nokiav2driver 1.3.1

  • vfc-nfvo-driver-sfc-ztesfcdriver 1.3.1

  • vfc-nfvo-multivimproxy 1.3.0

  • vfc-nfvo-db 1.3.0

GVNFM
  • vfc-gvnfm-vnflcm 1.3.2

  • vfc-gvnfm-vnfmgr 1.3.2

  • vfc-gvnfm-vnfres 1.3.2

Workflow
  • workflow-engine-mgr-service 1.3.0

  • activiti-extension 1.3.0

Bug Fixes

Known Issues

  • VFC-1402 Lost connection to Mariadb server during query in vnflcm.

  • VFC-1411 The network can not be deleted in ns terminate.

Security Notes

VFC code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The VFC open Critical security vulnerabilities and their risk assessment have been documented as part of the project.

Quick Links:

Upgrade Notes

NA

Deprecation Notes

NA

Other

NA

Version: 1.2.0

Release Date

2018-11-30

New Features

  • NS Orchestration supports PNF:1.NSLCM supports NSD, composed of VNF, PNF, and VL;2.Catalog supports PNFD and updates NSD DM

  • Hardware Platform Awareness (HPA) Support:1.integrate with OOF;2.VF-C can parse R2+ TOSCA MODEL which includes HPA feature

  • Standard Alignment:SOL003 Alignment in GVNFM and Catalog

  • Standalone DB Microservice

Released components:

NFVO
  • vfc-nfvo-lcm 1.2.2

  • vfc-nfvo-catalog 1.2.2

  • vfc-nfvo-resmgr 1.2.1

  • vfc-nfvo-driver-emsdriver 1.2.1

  • vfc-nfvo-driver-gvnfm-gvnfmadapter 1.2.2

  • vfc-nfvo-driver-gvnfm-jujudriver 1.2.1

  • vfc-nfvo-driver-svnfm-ztedriver 1.2.1

  • vfc-nfvo-driver-svnfm-huaweidriver 1.2.1

  • vfc-nfvo-driver-svnfm-nokiav2driver 1.2.1

  • vfc-nfvo-driver-sfc-ztesfcdriver 1.2.0

  • vfc-nfvo-multivimproxy 1.2.1

  • vfc-nfvo-db 1.2.2

GVNFM
  • vfc-gvnfm-vnflcm 1.2.2

  • vfc-gvnfm-vnfmgr 1.2.1

  • vfc-gvnfm-vnfres 1.2.1

Workflow
  • workflow-engine-mgr-service

  • activiti-extension

Bug Fixes

Known Issues

  • VFC-896 vim-id in AAI is handled as a mandatory parameter

  • VFC-890 The hard coded SDC user and password in catalog & LCM is not present in SDC

  • VFC-891 The AAI credentials is hard coded in LCM

  • SDC-1897 - Parser exported CSAR with error OPEN (Will be fixed at Dublin),VFC could ignore that error. To ignore that error, we need either apply the patch at https://jira.opnfv.org/browse/PARSER-187 locally in nfv-toscaparser which VFC uses or wait for nfv-toscaparser got that fixed.

Security Notes

VFC code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The VFC open Critical security vulnerabilities and their risk assessment have been documented as part of the project.

Quick Links:

Upgrade Notes

NA

Deprecation Notes

NA

Other

NA

Version: 1.1.0

Release Date

2018-06-07

New Features

  • NS/VNF manual scaling supporting for VoLTE use case

  • VNF Integration, integration with VNF via GVNFM

  • S3P improvement

Released components:

NFVO
  • vfc-nfvo-lcm

  • vfc-nfvo-catalog

  • vfc-nfvo-resmgr

  • vfc-nfvo-driver-emsdriver

  • vfc-nfvo-driver-gvnfm-gvnfmadapter

  • vfc-nfvo-driver-gvnfm-jujudriver

  • vfc-nfvo-driver-svnfm-ztedriver

  • vfc-nfvo-driver-svnfm-huaweidriver

  • vfc-nfvo-driver-svnfm-nokiadriver

  • vfc-nfvo-driver-svnfm-nokiav2driver

  • vfc-nfvo-driver-sfc-ztesfcdriver

  • vfc-nfvo-multivimproxy

GVNFM
  • vfc-gvnfm-vnflcm

  • vfc-gvnfm-vnfmgr

  • vfc-gvnfm-vnfres

Workflow
  • workflow-engine-mgr-service

  • activiti-extension

Bug Fixes

This is the initial release

Known Issues

  • VFC-896 vim-id in AAI is handled as a mandatory parameter

  • VFC-890 The hard coded SDC user and password in catalog & LCM is not present in SDC

  • VFC-891 The AAI credentials is hard coded in LCM

Security Notes

VFC code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The VFC open Critical security vulnerabilities and their risk assessment have been documented as part of the project.

Quick Links:

Upgrade Notes

NA

Deprecation Notes

NA

Other

NA

Version: 1.0.0

Release Date

2017-11-16

New Features

  • NS lifecycle management, including NS instance creation, termination and healing

  • VNF lifecycle management, including VNF instance creation, termination and healing

  • VNF FCAPS, collecting FCAPS data from vendor EMS

  • VNFM Integration, integration with specific VNFMs of vendors to deploy commercial VNFs

  • VNF Integration, integration with VNF via GVNFM

Released components:

NFVO
  • vfc-nfvo-lcm

  • vfc-nfvo-catalog

  • vfc-nfvo-resmgr

  • vfc-nfvo-driver-emsdriver

  • vfc-nfvo-driver-gvnfm-gvnfmadapter

  • vfc-nfvo-driver-gvnfm-jujudriver

  • vfc-nfvo-driver-svnfm-ztedriver

  • vfc-nfvo-driver-svnfm-huaweidriver

  • vfc-nfvo-driver-svnfm-nokiadriver

  • vfc-nfvo-driver-sfc-ztesfcdriver

GVNFM
  • vfc-gvnfm-vnflcm

  • vfc-gvnfm-vnfmgr

  • vfc-gvnfm-vnfres

Workflow
  • workflow-engine-mgr-service

  • activiti-extension

Bug Fixes

This is the initial release

Known Issues

None

Security Issues

None

Upgrade Notes

This is the initial release

Deprecation Notes

This is the initial release

Other

NA


End of Release Notes