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
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
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
Contents
VF-C Internal Component
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:
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.
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.
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.
Catalog has been migrated to Modeling project since Frankfurt Release.
Wfengine-mgrservice & Wfengine-activiti are deprecated from Guilin Release since VF-C uses build-in workflow process.
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
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.
VoLTE usecase information can be found : https://wiki.onap.org/pages/viewpage.action?pageId=6593603
vCPE usecase information can be found : https://wiki.onap.org/pages/viewpage.action?pageId=3246168
CCVPN usecase information can be found : https://wiki.onap.org/pages/viewpage.action?pageId=45296665
Taking VoLTE as an example to describe the VF-C internal workflow:
VF-C Instantiate
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
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
VF-C Healing
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
Contents
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.
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
All NSLCM APIs, including the SOL005 compliant APIs and the previous version APIs
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
If you are only interested in the SOL005 compliant APIs, you can download the following file
NSLCM_SOL005_API_Specification.json
The previous version APIs can be downloaded from the following
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
Contents
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
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.
|
vnfInstanceId |
M |
1 |
String |
VNF instance identifier. |
{
"jobId":"1",
"vnfInstanceId":"1"
}
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.
|
{
"jobId":"1"
}
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",
}
}
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"
}
]
}
}
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 |
|
{
"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"
}
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
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"
}
}
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
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"
}
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
Contents
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/[……]
{apiRoot} is http(s)://[hostname][:port]/api
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.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.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:
|
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:
|
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.1 Request
Parameter |
Qualifier |
Cardinality |
Content |
Description |
---|---|---|---|---|
terminationType |
M |
1 |
Enum |
Indicates whether forceful or graceful termination is requested. Permitted values:
|
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.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 |
|
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:
|
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.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.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:
|
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 |
|
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 |
|
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)
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:
|
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:
|
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:
|
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
All VNFLCM APIs, including the SOL005 compliant APIs and the previous version APIs
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.
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
Contents
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
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 |
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:
https://docs.onap.org/projects/onap-oom/en/latest/oom_user_guide.html#oom-user-guide
https://docs.onap.org/projects/onap-oom/en/latest/oom_quickstart_guide.html#oom-quickstart-guide
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
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
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 |
|
vfc/gvnfm/vnflcm |
|
vfc/gvnfm/vnfmgr |
|
vfc/gvnfm/vnfres |
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
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
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.
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.
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
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
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
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
Before we instantiate a service, we need to register vim and vnfm which is used to deploy vnfs.
- Note:
type should be gvnfmdriver which is the same with gvnfmdriver microservice.
url is the msb-iag NodeIp:port.
vim corresponds to cloudowner_cloudregionid which registered in step1.
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.
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:
172.30.3.104:30280 is the node IP and exposed port where the msb-iag pod is located.
userDefinedData is the key value pair which defined for the vnf package we created
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:
38037a12-a0d4-4aa4-ac50-cd6b05ce0b24 is the vnf_pkg_id which we get from the first step.
-F is used to specify the local vnf package file
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:
userDefinedData is the key value pair which defined for the ns package we created
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:
-F is used to specify the local ns package file
Currently VF-C GVNFM support NS create/Instantiate/terminate/delete/heal.
VF-C R3 healing only suport restart a vm of an VNF.
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:
globalCustomerId and serviceType is defined in A&AI.
csar Id is the NS package id which is consistent with the catalog ns package id.
nsName is the NS name
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:
f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.
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 .
before instantiate, you should create one volumntype which called root.
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:
f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.
“vnfInstanceId”: “044b705c-e44d-4733-ab64-987f46d9b567” is the VNF instanceId, we can get this from A&AI or VF-C DB.
action only support restartvm in Casablanca release.
actionvminfo only supports to include one vm , vmid is the vmid which is the same with the vmid in cloud.
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:
f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.
terminateType supports FORCEFUL and GRACEFULLc. gracefulTerminationTimeout is the wait time before execute terminate.
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:
f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create
VFC-Test Cli Command Guide
Reference manual:
Note:
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))
You should go to the pod of the CLI environment in the corresponding test environment to execute the command action steps
Contents
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
Packages upgrades in direct dependencies, such as PyYAML & httplib2
Remove Python 2.7 from docker image of huawei vnfm driver
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
Refactor logging to remove dependency on onaplogging component
Update to Python 3.8
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:
Improve instance storage function
Remove components which are no longer used or maintained.
Maturity Enhancement:
Update to Java 11
Optimize docker image
Update dependency lib
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:
Migrate VF-C catalog to Modeling etsicatalog
Using the common database (MariaDB) and encrypting the database password.
Remove the root permission and change the user of VFC project to ONAP.
Add the function of auto register MSB switch for startup project.
Increase the communication access form between components through the HTTPS encrypted access form of MSB.
SOL005 compliance NS instantiation, query and termination commands have been added to cli.
Maturity Enhancement:
Enhance the security of database access
Enhance the stability of instantiation process and improve efficiency and productivity.
Improve the stability of instance termination process and deletion process, and improve the success rate of subscription record deletion.
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:
Upgrade component environments from Python 2 to Python 3 and upgrade package dependencies to stable versions
Good connectivity and stability of information transmission between nslcm drivers and vnflcm
Solving Layer_protocol Protocol Protocol Supporting Uniformity and Increasing Compatibility
Standard Alignment-SOL005 Alignment
Maturity Enhancement:
Increase read and write stability of AAI interaction
Enhance the stability of vnflcm and nslcm message subscription notification function
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:
Upgrade Multicloud API to support consistent identification of cloud region functional requirement
OOF Integration Optimization.Optimize the methodology for VNF(vdu) placement, add the process for placement with selected candidates(VIM)
Align VNFD SOL2.5.1 and model multi-version support
Standard Alignment-SOL005 Alignment
Maturity Enhancement:
Mysql DB migrate to OOM shared MariaDB Galera Cluster
Configuration inject automatically
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
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
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