Files
tacker-specs/specs/wallaby/support-change-external-VNF-connectivity-operation.rst
Yasufumi Ogawa af542c4418 Remove sphinxcontrib-*diag
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
2024-12-04 09:01:41 +00:00

17 KiB
Raw Permalink Blame History

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.

image

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 403
    Information 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 404
    Information 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 4xx
    The 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


  1. https://www.etsi.org/technologies-clusters/technologies/NFV↩︎

  2. 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)↩︎

  3. 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)↩︎

  4. 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)↩︎

  5. 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)↩︎

  6. https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎

  7. https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎

  8. 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)↩︎

  9. 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)↩︎

  10. https://docs.openstack.org/api-ref/nfv-orchestration/v1/index.html#virtualized-network-function-lifecycle-management-interface-vnf-lcm↩︎

  11. https://specs.openstack.org/openstack/tacker-specs/specs/wallaby/support-fundamental-vnf-lcm-based-on-ETSI-NFV.html↩︎

  12. 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)↩︎

  13. https://specs.openstack.org/openstack/tacker-specs/specs/victoria/support-sol003-vnfm-operations.html↩︎

  14. https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎

  15. https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf (Chapter 6: Error reporting)↩︎