diff options
-rw-r--r-- | docs/etc/conf.py | 3 | ||||
-rw-r--r-- | docs/how-to-use-docs/documentation-example.rst | 86 | ||||
-rw-r--r-- | docs/how-to-use-docs/index.rst | 30 | ||||
-rw-r--r-- | docs/requirements/01-intro.rst | 24 | ||||
-rw-r--r-- | docs/requirements/02-use_cases.rst | 29 | ||||
-rw-r--r-- | docs/requirements/03-architecture.rst | 25 | ||||
-rw-r--r-- | docs/requirements/04-gaps.rst | 49 | ||||
-rw-r--r-- | docs/requirements/05-implementation.rst | 37 | ||||
-rw-r--r-- | docs/requirements/06-summary.rst | 6 | ||||
-rw-r--r-- | docs/requirements/99-references.rst | 14 | ||||
-rw-r--r-- | docs/requirements/glossary.rst | 26 | ||||
-rw-r--r-- | docs/requirements/index.rst | 15 |
12 files changed, 227 insertions, 117 deletions
diff --git a/docs/etc/conf.py b/docs/etc/conf.py index 0066035..ea550c3 100644 --- a/docs/etc/conf.py +++ b/docs/etc/conf.py @@ -17,6 +17,7 @@ source_suffix = '.rst' master_doc = 'index' pygments_style = 'sphinx' html_use_index = False +html_theme = 'sphinx_rtd_theme' pdf_documents = [('index', u'OPNFV', u'OPNFV Project', u'OPNFV')] pdf_fit_mode = "shrink" @@ -28,7 +29,7 @@ latex_elements = { 'printindex': '', } -project = u'OPNFV: Template documentation config' +project = u'ENFV: Edge NFV requirements project' copyright = u'%s, OPNFV' % datetime.date.today().year version = u'1.0.0' release = u'1.0.0' diff --git a/docs/how-to-use-docs/documentation-example.rst b/docs/how-to-use-docs/documentation-example.rst deleted file mode 100644 index afcf758..0000000 --- a/docs/how-to-use-docs/documentation-example.rst +++ /dev/null @@ -1,86 +0,0 @@ -.. two dots create a comment. please leave this logo at the top of each of your rst files. -.. image:: ../etc/opnfv-logo.png - :height: 40 - :width: 200 - :alt: OPNFV - :align: left -.. these two pipes are to seperate the logo from the first title -| -| -How to create documentation for your OPNFV project -================================================== - -this is the directory structure of the docs/ directory that can be found in the root of your project directory - -.. code-block:: bash - - ./etc - ./etc/opnfv-logo.png - ./etc/conf.py - ./how-to-use-docs - ./how-to-use-docs/documentation-example.rst - ./how-to-use-docs/index.rst - -To create your own documentation, Create any number of directories (depending on your need) and place in each of them an index.rst. -This index file must refence your other rst files. - -* Here is an example index.rst - -.. code-block:: bash - - Example Documentation table of contents - ======================================= - - Contents: - - .. toctree:: - :numbered: - :maxdepth: 4 - - documentation-example.rst - - Indices and tables - ================== - - * :ref:`search` - - Revision: _sha1_ - - Build date: |today| - - -The Sphinx Build -================ - -When you push documentation changes to gerrit a jenkins job will create html documentation. - -* Verify Jobs -For verify jobs a link to the documentation will show up as a comment in gerrit for you to see the result. - -* Merge jobs - -Once you are happy with the look of your documentation you can submit the patchset the merge job will -copy the output of each documentation directory to http://artifacts.opnfv.org/$project/docs/$name_of_your_folder/index.html - -Here are some quick examples of how to use rst markup - -This is a headline:: - - here is some code, note that it is indented - -links are easy to add: Here is a link to sphinx, the tool that we are using to generate documetation http://sphinx-doc.org/ - -* Bulleted Items - - **this will be bold** - -.. code-block:: bash - - echo "Heres is a code block with bash syntax highlighting" - - -Leave these at the bottom of each of your documents they are used internally - -Revision: _sha1_ - -Build date: |today| diff --git a/docs/how-to-use-docs/index.rst b/docs/how-to-use-docs/index.rst deleted file mode 100644 index 36710b3..0000000 --- a/docs/how-to-use-docs/index.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. OPNFV Release Engineering documentation, created by - sphinx-quickstart on Tue Jun 9 19:12:31 2015. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -.. image:: ../etc/opnfv-logo.png - :height: 40 - :width: 200 - :alt: OPNFV - :align: left - -Example Documentation table of contents -======================================= - -Contents: - -.. toctree:: - :numbered: - :maxdepth: 4 - - documentation-example.rst - -Indices and tables -================== - -* :ref:`search` - -Revision: _sha1_ - -Build date: |today| diff --git a/docs/requirements/01-intro.rst b/docs/requirements/01-intro.rst new file mode 100644 index 0000000..3da6f86 --- /dev/null +++ b/docs/requirements/01-intro.rst @@ -0,0 +1,24 @@ +Introduction +============ + +The purpose of this Requirements Project is to articulate the capabilities +and behaviours needed in Edge NFV platforms, and how they interact with +centralized NFVI and MANO components of NFV solutions. + + +Problem description +------------------- + +Edge NFVI location has certain specific requirements related to: + +1. Appropriate Tunneling for User Traffic across WAN (Ethernet, IP/MPLS) links +#. Appropriate Tunneling for Management Traffic across WAN links +#. Including reachability requirements to the compute platform (‘eth0’ resilience, + this also include backup path through other media e.g. 4G/5G) +#. Extending Multi-DC management to address many small "DC" locations +#. Monitoring Capabilities required for a remote Compute Node +#. Squaring Bare Metal with remote survivability and whether IaaS is more appropriate for remote locations +#. Security. As demarcation technology is operated in an un-trusted environment (CSP perspective) + additional means need to be implemented. Similarly, the enterprise might have concerns if + the security architecture is impacted as VNFs provide functions at different locations than + the precious hardware; topics like authentication, authorization, securing the traffic. diff --git a/docs/requirements/02-use_cases.rst b/docs/requirements/02-use_cases.rst new file mode 100644 index 0000000..6777a02 --- /dev/null +++ b/docs/requirements/02-use_cases.rst @@ -0,0 +1,29 @@ +Use cases and scenarios +======================= + +There are several use cases related to Edge NFV: + +1. vE-CPE. + [vE-CPE]_ is related to most popular NFV use case where NFVI compute node is + located at customer premises. Typical applications are virtual Firewall and Virtual BGP router; + VNF chain can be hosted in vE-CPU host and/or DC + +2. Stand-alone vE-CPE. + It is the same as above but all virtual appliances are hosted at the same CPE compute node. + +3. Residential GW. + Similar to vE-CPE, the major difference is scale. Typical VNFs are "WAN fault monitoring", + "Performance monitoring". Ratio between deployed vE-CPE + and Residential GW might reach 1:100 or even 1:1000, thus VNF management overhead must be minimized. + For instance, self-termination after predefined activity period seems preferable over + explicit VNF removing via management system. + +4. Distributed Base station. + TBD. What is the difference for it? + +5. Network connectivity. + In most cases CPE is connected to Metro Ethernet [#f1]_ . + + + +.. [#f1] In all above use cases management traffic is coming inband with tenant traffic. diff --git a/docs/requirements/03-architecture.rst b/docs/requirements/03-architecture.rst new file mode 100644 index 0000000..6123cb8 --- /dev/null +++ b/docs/requirements/03-architecture.rst @@ -0,0 +1,25 @@ +High level architecture and general features +============================================ + +Functional overview +------------------- + +We foresee two OpenStack deployment models: + 1. Single-cloud. Centralized OpenStack controller and ENFVI nodes are Compute nodes + 2. Multi-cloud. Each NFVI node contains OpenStack controller, thus it becomes an "embedded cloud" + with single internal compute node + +Architecture Overview +--------------------- + +Architecture overview is here. + +General Features and Requirements +--------------------------------- + +This is main part. + +High level northbound interface specification +--------------------------------------------- + +What is northbound here? VIM controller? diff --git a/docs/requirements/04-gaps.rst b/docs/requirements/04-gaps.rst new file mode 100644 index 0000000..3789755 --- /dev/null +++ b/docs/requirements/04-gaps.rst @@ -0,0 +1,49 @@ +Gap analysis in upstream projects +================================= + +Network related gaps +--------------------- + +1. Terminology. + Consider to keep upstream/downstream terminology for the traffic leaving/coming to Edge NFV. This gives + unambiguous names 'uplink/downlink' or 'access/network' for CPE interfaces. Inside DC this traffic is + called east-west and no special meaning for interfaces on compute/network node. +2. Uplink interface capacity. + In most cases those are 1GE as opposite to DC where 10/40G interfaces are prevailing. As result + 1GE interfaces are not part of CI. +3. Tunneling technology: + a. Case stand-alone NFVI - 802.1ad S-VLAN or MPLS. + #. Case distributed NFVI - VXLAN or NVGRE over 802.1ad. + * VXLAN and NVGRE tunnels don't support OAM check. + #. All above tunneling technology don't support integrity check. + #. All above tunneling technology don't support payload enryption (optional). +4. Management traffic: + a. Management traffic should come inband with tenant traffic. + b. Management traffic should easily come through firewalls, i.e. single IP/port would be ideal + (compare with OpenStack bunch of protocols [firewall]_). + c. Management connection might be disrupted for a long period of time; once provisioned Edge NFV device + must keep its functionality with no respect of management connection state. +5. Resiliency: + a. Network resiliency is based on dual-homing, service path shall be forked in that case. A VM presumable shall + be able to select active virtual link for data forwarding + #. SLA assurance for tenant virtual link - mandatory + #. Fault propagation towards VM is mandatory +Hypervisor gaps +--------------- +#. Monitoring Capabilities required for a remote Compute Node; Hypervisor shall provide extended monitoring of + VM and its resource usage. +OpenStack gaps +-------------- +Later should be per specific component? (nova, neutron...) + +OpenStack Nova + 1. Management system should support dozen of thousands individual hosts. + Currently each Edge Host is allocated in individual zone, is this approach scalable? + 2. Host is explicitly selected effectively bypassing NOVA scheduler + +Deployment gaps +--------------- +1. Only traffic interfaces are exposed (e.g. no eth0, no USB); SW deployment is different from DC. +#. Linux shell shall not be exposed; linux CLI shall be replaced presumable by REST. +#. Kernel and Hypervisor are hardened. Only OpenStack agents might be added during deployment. +#. AMT or IPMI shall not be used for SW deployment. diff --git a/docs/requirements/05-implementation.rst b/docs/requirements/05-implementation.rst new file mode 100644 index 0000000..ea5b0d9 --- /dev/null +++ b/docs/requirements/05-implementation.rst @@ -0,0 +1,37 @@ +Detailed implementation plan +============================ + +TBD + +Functional Blocks +----------------- + +TBD + +Sequence +-------- + +TBD. + +Implementation plan for OPNFV Release XYZ +----------------------------------------- + +TBD. + +Information elements +-------------------- + +TBD. + +Detailed northbound interface specification +------------------------------------------- + +TBD. + + +Blueprints +---------- + +TBD + + diff --git a/docs/requirements/06-summary.rst b/docs/requirements/06-summary.rst new file mode 100644 index 0000000..035f6ba --- /dev/null +++ b/docs/requirements/06-summary.rst @@ -0,0 +1,6 @@ +Summary and conclusion +====================== + +TBD + + diff --git a/docs/requirements/99-references.rst b/docs/requirements/99-references.rst new file mode 100644 index 0000000..dbf6cab --- /dev/null +++ b/docs/requirements/99-references.rst @@ -0,0 +1,14 @@ +References and bibliography +=========================== + +.. [OPSK] OpenStack, [Online]. Available at https://www.openstack.org/ +.. [ENFV] ETSI NFV, [Online]. Available at + http://www.etsi.org/technologies-clusters/technologies/nfv +.. [vE-CPE] ETSI NFV Use Cases, [Online]. Available at + http://www.etsi.org/deliver/etsi_gs/nfv/001_099/001/01.01.01_60/gs_nfv001v010101p.pdf +.. [security] IETF, [Online]. Available at + https://tools.ietf.org/html/draft-ietf-nvo3-security-requirements-06 + +.. [firewall] OpenStack FW, [Online]. Available at + http://docs.openstack.org/juno/config-reference/content/firewalls-default-ports.html + diff --git a/docs/requirements/glossary.rst b/docs/requirements/glossary.rst new file mode 100644 index 0000000..b3cf4d0 --- /dev/null +++ b/docs/requirements/glossary.rst @@ -0,0 +1,26 @@ +Glossary +============ + +**Definition of terms** + +Different SDOs and communities use different terminology related to +NFV/Cloud/SDN. This list tries to define an OPNFV terminology, +mapping/translating the OPNFV terms to terminology used in other contexts. + + +.. glossary:: + + CPE + Customer Premises Equipment + CSP + Communication Service Provider + DC + Data Center + NFV + Network Function Virtualization + + NFVI + Network Function Virtualization Infrastructure + + vE-CPE + Virtual Enterprise-Customer Premises Equipment diff --git a/docs/requirements/index.rst b/docs/requirements/index.rst new file mode 100644 index 0000000..271e9e2 --- /dev/null +++ b/docs/requirements/index.rst @@ -0,0 +1,15 @@ +ENFV: Edge NFV requirements project +*********************************** +.. toctree:: + :maxdepth: 4 + + 01-intro.rst + 02-use_cases.rst + 03-architecture.rst + 04-gaps.rst + 05-implementation.rst + 06-summary.rst + 99-references.rst + glossary.rst + + |