.. This work is licensed under a Creative Commons Attribution 4.0
   International License. http://creativecommons.org/licenses/by/4.0

.. _docs_usecases:

Verified Use Cases and Functional Requirements
----------------------------------------------

Description
~~~~~~~~~~~
This session includes use cases and functional requirements which have been verified in Frankfurt release by the Integration team:
    1. What has been implemented
    2. Step by step instruction on how to deploy them, including the links to download the related assets and resources
    3. Known issues and workaround

The final testing status can be found at `Frankfurt Release Integration Testing Status <https://wiki.onap.org/display/DW/2%3A+Frankfurt+Release+Integration+Testing+Status>`_

Use Cases
~~~~~~~~~
:ref:`vFirewall Use Case <docs_vfw>`

:ref:`VF Module Scale Out Use Case (vLoadBalancer/vDNS example) <docs_scaleout>`

:ref:`vCPE Use Case <docs_vcpe>`

:ref:`CCVPN (Cross Domain and Cross Layer VPN) Use Case <docs_ccvpn>`

:ref:`vFirewall/vDNS with HPA Use Case <docs_vfw_hpa>`

:ref:`vFirewall Traffic Distribution Use Case <docs_vfw_traffic>`

:ref:`BBS (Broadband Service) Use Case <docs_bbs>`

:ref:`vIPsec with HPA Use Case <docs_vipsec_hpa>`

:ref:`vFirewall/edgex with multicloud kubernetes plugin <docs_vfw_edgex_multicloud_k8s>`

:ref:`vFirewall CNF (Container Network Function) With CDS Use Case <docs_vFW_CNF_CDS>`

Functional Requirements
~~~~~~~~~~~~~~~~~~~~~~~
:ref:`5G - Real Time PM and High Volume Stream Data Collection <docs_realtime_pm>`

:ref:`5G - Bulk PM <docs_5g_bulk_pm>`

:ref:`5G - Configuration over NETCONF <docs_5G_Configuration_over_NETCONF>`

:ref:`5G - OOF and PCI <docs_5G_oof_pci>`

:ref:`5G - E2E Network Slicing <docs_E2E_network_slicing>`

:ref:`PNF Support - PNF Plug and Play <docs_5g_pnf_pnp>`

:ref:`PNF Support - PNF Software Upgrade <docs_5g_pnf_software_upgrade>`

:ref:`Change Management Flexible Designer and Orchestrator <docs_CM_flexible_designer_orchestrator>`

:ref:`Change Management Schedule Optimization <docs_CM_schedule_optimizer>`
