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

VNF
===

.. note::
   * This section is used to describe Virtual Network Function software

   * This section is typically provided: as additional detail on use cases,
     to illustrate end to end platform architecture, and to describe
     compliance with ONAP VNF requirements.

   * The VNF Heading above should be replaced with the VNF NAME

   * This note must be removed after content has been added.

Version
-------

User Documentation
------------------

Source
------

ONAP VNF Requirements Compliance
--------------------------------

