Support ETSI NFV-SOL based change external VNF connectivity operation¶
https://blueprints.launchpad.net/tacker/+spec/support-change-external-connectivity
This specification describes the interface of change external VNF connectivity based on ETSI NFV-SOL specification.
ETSI specifications within the NFV Architecture Framework [1] describe the main aspects of NFV development and usage based on the industry needs, feedback from SDN/NFV vendors and telecom operators. These specifications include the REST API and data model architecture which is used by NFV users and developers in related products.
Problem description¶
Support of key ETSI NFV specifications will significantly reduce efforts for Tacker integration into telecom production networks and also will simplify further development and support of future standards. In the former release, Tacker has not supported interface of change external VNF connectivity as defined in ETSI NFV SOL 002 [2] and SOL 003 [3]. Tacker should support more APIs and attributes to compliant ETSI NFV SOL specification and expand a wide range of use cases.
- Examples of possible use cases are below.
switching the network caused by subscriber movement
switching the network on the EPC side caused by the introduction of new features
changing the network based on VIP changes for containers
Proposed change¶
- The operation provided through a new API in this specification is below.
- support an additional API:
Change external VNF connectivity (POST)
Along with the addition of the Change external VNF connectivity API, the existing LCM APIs also support new related attributes.
This operation allows the client to change the external connectivity of a VNF instance.
Disconnect the external CPs that are connected to a particular external VL, and connect them to a different external VL.
Change the connectivity parameters of the existing external CPs, including changing addresses.
- On this specification, the cases below are supported.
change the port
VNFM supports to change port/network.
change parameters
VNFM also supports to change ip address/mac address/allowed_address_pair.
The cases if the ports are used as trunk-parent-port or trunk-sub-port are unsupported(create/delete/connect/disconnect/change).
The operations provided through additional attributes in this specification are below.
- support additional attributes:
Grants (POST)
As part of Change external VNF connectivity , VNFM sends Grant Request as part of this specification. When applicable, the NFVO can reserve resources based on the VNFM’s virtualized resources request.
For the above management Change external VNF connectivity supports the Granting interface.
VNF instances (GET)
Individual VNF instances (GET)
As part of Change External VNF connectivity, these APIs set _link(changeExtConn) parameter.
Notification endpoint (POST)
VNFM support to send Notification endpoint of Change External VNF Connectivity.
Alternatives¶
None
Data model impact¶
None
REST API impact¶
A) Support new APIs¶
The following REST API will be added. These attributes are based on ETSI NFV SOL002 [2] and SOL003 [3].
- Name: Change external VNF connectivityDescription: Change the external connectivity of a VNF instanceMethod type: POSTURL for the resource: /vnflcm/v1/vnf_instances/{vnfInstanceId}/change_ext_connRequest:
Data type
Cardinality
Description
ChangeExtVnfConnectivityRequest
1
Parameters for the Change external VNF connectivity.
Attribute name
Data type
Cardinality
Supported in Wallaby
extVirtualLinks
ExtVirtualLinkData
1..N
Yes
>id
Identifier
1
Yes
>vimConnectionId
Identifier
0..1
Yes
>resourceProviderId
Identifier
0..1
No
>resourceId
IdentifierInVim
1
Yes
>extCps
VnfExtCpData
1..N
Yes
>extLinkPorts
ExtLinkPortData
0..N
Yes
vimConnectionInfo
VimConnectionInfo
0..N
Yes
>id
Identifier
1
Yes
>vimId
Identifier
0..1
Yes
>vimType
String
1
Yes
>interfaceInfo
KeyValuePairs
0..1
Yes
>accessInfo
KeyValuePairs
0..1
Yes
>extra
KeyValuePairs
0..1
No
additionalParams
KeyValuePairs
0..1
Yes
Response:Data type
Cardinality
Response Codes
Description
n/a
n/a
Success 202
The request has been accepted for processing.
ProblemDetails
1
Error 409
Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
ProblemDetails
See clause 6.4 of [4]
Error 4xx/5xx
Error: Any common error response code as defined in clause 6.4 of ETSI GS NFV-SOL 013 [4] may be returned.
B) Support new attributes of implemented APIs¶
The following attributes of REST APIs will be added. These attributes are based on ETSI NFV SOL002 [2] and SOL003 [3]. Details of APIs implemented in previous versions are described in NFV Orchestration API v1.0 [5].
- Name: List VNF InstancesDescription: Request list of all existing VNF instancesMethod type: GETURL for the resource: /vnflcm/v1/vnf_instancesResponse:
Data type
Cardinality
Response Codes
Description
VnfInstance
0..N
Success: 200Error: 401 403Information about zero or more VNF instances was queried successfully.
Attribute name
Data type
Cardinality
Supported in Wallaby
_links
Structure (inlined)
1
Yes
>changeExtConn
Link
0..1
Yes
- Name: Query VNFDescription: Request existing VNF instance resource by its idMethod type: GETURL for the resource: /vnflcm/v1/vnf_instances/{vnfInstanceId}Resource URI variables for this resource:
Name
Description
vnfInstanceId
Identifier of the VNF instance.
Response:Data type
Cardinality
Response Codes
Description
VnfInstance
1
Success: 200Error: 401 403 404Information about an individual VNF instance was queried successfully.
Attribute name
Data type
Cardinality
Supported in Wallaby
_links
Structure (inlined)
1
Yes
>changeExtConn
Link
0..1
Yes
- Name: Query VNF occurrenceDescription: Request individual VNF lifecycle management operation occurrence by its idMethod type: GETURL for the resource: /vnflcm/v1/vnf_lcm_op_occs/{vnfLcmOpOccId}Resource URI variables for this resource::
Name
Description
vnfLcmOpOccId
Identifier of a VNF lifecycle management operation occurrence.
Response:Data type
Cardinality
Response Codes
Description
VnfLcmOpOcc
1
Success 200Error 4xxThe operation has completed successfully.
Attribute name
Data type
Cardinality
Supported in Wallaby
changedExtConnectivity
ExtVirtualLinkInfo
0..N
Yes
Note
VnfLcmOpOcc.changedExtConnectivity referred in “Proposed change 2) Flow of VNF LCM operation occurrence (GET)” is based on the spec of [7].
- Name: Notification endpointDescription: Send notifications related to VNF lifecycle changesMethod type: POSTURL for the resource: The resource URI is provided by the client when creating the subscription.Request:
Data type
Cardinality
Description
VnfLcmOperationOccurrenceNotification
1
A notification about lifecycle changes triggered by a VNF LCM operation occurrence.
VnfIdentifierCreationNotification
1
A notification about the creation of a VNF identifier and the related individual VNF instance resource.
VnfIdentifierDeletionNotification
1
A notification about the deletion of a VNF identifier and the related individual VNF instance resource.
Attribute name
Data type
Cardinality
Supported in Wallaby
changedExtConnectivity
ExtVirtualLinkInfo
0..N
Yes
Security impact¶
None
Notifications impact¶
This specification enhances an API related to notification for VNF lifecycle management.
Other end user impact¶
Add a new OSC command in python-tackerclient to invoke change external VNF connectivity.
Performance Impact¶
None
Other deployer impact¶
The previously created VNFs will not be allowed to be managed using the newly introduced APIs.
Developer impact¶
Tacker-VNFM calls the following API as a client. The following attributes related to the Change external VNF connectivity API will be added. These attributes are based on ETSI NFV SOL003 [3]. Details of APIs implemented in previous versions are described in Tacker Victoria specifications [6].
- Name: GrantsDescription: Obtain permission from the NFVO to perform a particular VNF lifecycle operationMethod type: POSTURL for the resource: /grant/v1/grantsRequest:
Data type
Cardinality
Description
GrantRequest
1
Parameters for the Grants.
Attribute name
Data type
Cardinality
Supported in Wallaby
instantiationLevelId
Identifier
0..1
Yes
updateResources
ResourceDefinition
0..N
Yes
>id
IdentifierLocal
1
Yes
>type
Enum (inlined)
1
Yes
>vduId
dentifierInVnfd
0..1
Yes
>resourceTemplateId
dentifierInVnfd
1
Yes
>resource
ResourceHandle
0..1
Yes
additionalParams
KeyValuePairs
0..1
Yes
Response:Data type
Cardinality
Response Codes
Description
Grant
1
Success 201
The grant has been created successfully (synchronous mode).
n/a
n/a
Success 202
The request has been accepted for processing, and it is expected to take some time to create the grant (asynchronous mode).
ProblemDetails
1
Error 403
Error: The grant has been rejected.
ProblemDetails
See clause 6.4 of [4]
Error 4xx/5xx
Error: Any common error response code as defined in clause 6.4 of ETSI GS NFV-SOL 013 [4] may be returned.
Attribute name
Data type
Cardinality
Supported in Wallaby
updateResources
GrantInfo
0..N
Yes
>resourceDefinitionId
IdentifierLocal
1
Yes
extVirtualLinks
ExtVirtualLinkData
0..N
Yes
>id
Identifier
1
Yes
>vimConnectionId
Identifier
0..1
Yes
>resourceId
IdentifierInVim
1
Yes
>extCps
VnfExtCpData
1..N
Yes
>extLinkPorts
ExtLinkPortData
0..N
Yes
extManagedVirtualLinks
ExtManagedVirtualLinkData
0..N
Yes
>id
Identifier
1
Yes
>virtualLinkDescId
IdentifierInVnfd
1
Yes
>vimConnectionId
Identifier
0..1
Yes
>resourceID
IdentifierInVim
1
Yes
Implementation¶
Assignee(s)¶
- Primary assignee:
Kentaro Ogawa <kentaro.ogawa.dr@hco.ntt.co.jp>
- Other contributors:
Makoto Hamada <makoto.hamada.xu@hco.ntt.co.jp>
Work Items¶
Add a new REST API and supported attributes to Tacker-server.
Make changes in python-tackerclient to add new OSC commands for calling an API of change external VNF connectivity.
Add new unit and functional tests.
Change API Tacker documentation.
Dependencies¶
None
Testing¶
Unit and functional test cases will be added for VNF lifecycle management of VNF instances.
Documentation Impact¶
Complete user guide will be added to explain how to invoke VNF lifecycle management of VNF instances with examples.