As suggested open openstack-discuss ML[1], some sphinxcontrib packages have not been updated for several years and might going to be maintained anymore. In tacker-specs repo, many diagrams are compiled with sphinxcontrib-seqdiag and sphinxcontrib-nwdiag. This update is to drop using the packages and add image files instead. The embedded source codes are remained as separated files and named as "*.diag". In addition, it includes two updates other than that. * usage of the dropped diagram support described in the `specs/template.rst` is also removed because it's no longer supported. * Upgrade the version of `pillow` to the latest 11.0.0 since installation is failed if the version is old. [1] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/message/4IID4UEXY4PJJGBTMFMTRYLKJIN4GOQ6/ Change-Id: I8cede6de0770b68a9984617643aa4aa81e47ba5c
17 KiB
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 Framework1 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 0022 and SOL 0033. 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 SOL0024 and SOL0035.
- Name: Change external VNF connectivity
Description: Change the external connectivity of a VNF instance
Method type: POST
URL for the resource: /vnflcm/v1/vnf_instances/{vnfInstanceId}/change_ext_conn
Request: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 of6 Error 4xx/5xx Error: Any common error response code as defined in clause 6.4 of ETSI GS NFV-SOL 0137 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 SOL0028 and SOL0039. Details of APIs implemented in previous versions are described in NFV Orchestration API v1.010.
- Name: List VNF Instances
Description: Request list of all existing VNF instances
Method type: GET
URL for the resource: /vnflcm/v1/vnf_instances
Response:Data type Cardinality Response Codes Description VnfInstance 0..N Success: 200
Error: 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 VNF
Description: Request existing VNF instance resource by its id
Method type: GET
URL 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: 200
Error: 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 occurrence
Description: Request individual VNF lifecycle management operation occurrence by its id
Method type: GET
URL 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 200
Error 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 of11.
- Name: Notification endpoint
Description: Send notifications related to VNF lifecycle changes
Method type: POST
URL 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 SOL00312. Details of APIs implemented in previous versions are described in Tacker Victoria specifications13.
- Name: Grants
Description: Obtain permission from the NFVO to perform a particular VNF lifecycle operation
Method type: POST
URL for the resource: /grant/v1/grants
Request: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 of14 Error 4xx/5xx Error: Any common error response code as defined in clause 6.4 of ETSI GS NFV-SOL 01315 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.
References
https://www.etsi.org/technologies-clusters/technologies/NFV↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_nfv-sol003v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_nfv-sol003v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_nfv-sol003v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://docs.openstack.org/api-ref/nfv-orchestration/v1/index.html#virtualized-network-function-lifecycle-management-interface-vnf-lcm↩︎
https://specs.openstack.org/openstack/tacker-specs/specs/wallaby/support-fundamental-vnf-lcm-based-on-ETSI-NFV.html↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_nfv-sol003v020601p.pdf (Chapter 5: VNF Lifecycle Management interface)↩︎
https://specs.openstack.org/openstack/tacker-specs/specs/victoria/support-sol003-vnfm-operations.html↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎
