summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/etc/conf.py3
-rw-r--r--docs/how-to-use-docs/documentation-example.rst86
-rw-r--r--docs/how-to-use-docs/index.rst30
-rw-r--r--docs/requirements/01-intro.rst24
-rw-r--r--docs/requirements/02-use_cases.rst29
-rw-r--r--docs/requirements/03-architecture.rst25
-rw-r--r--docs/requirements/04-gaps.rst49
-rw-r--r--docs/requirements/05-implementation.rst37
-rw-r--r--docs/requirements/06-summary.rst6
-rw-r--r--docs/requirements/99-references.rst14
-rw-r--r--docs/requirements/glossary.rst26
-rw-r--r--docs/requirements/index.rst15
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
+
+