Soft Patch Panel
 help / color / mirror / Atom feed
* [spp] [PATCH 01/15] docs: add rst docs
@ 2018-02-01  4:04 ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 02/15] docs: add overview ogawa.yasufumi
                   ` (14 more replies)
  0 siblings, 15 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

This is the first commit to move markdown documents to rst.

Current documents are moved to each of directories of category. Top
directory of rst files is 'guides' which contains three category
directories, 'commands', 'setup' and 'tools'.

  docs/guides/
  ├── commands
  ├── index.rst
  ├── overview.rst
  ├── setup
  │   ├── index.rst
  │   └── setup_guide.rst
  └── tools

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/Makefile              |  20 +++++
 docs/guides/conf.py               | 165 ++++++++++++++++++++++++++++++++++++++
 docs/guides/index.rst             |  40 +++++++++
 docs/guides/setup/index.rst       |  38 +++++++++
 docs/guides/setup/setup_guide.rst |  38 +++++++++
 5 files changed, 301 insertions(+)
 create mode 100644 docs/guides/Makefile
 create mode 100644 docs/guides/conf.py
 create mode 100644 docs/guides/index.rst
 create mode 100644 docs/guides/setup/index.rst
 create mode 100644 docs/guides/setup/setup_guide.rst

diff --git a/docs/guides/Makefile b/docs/guides/Makefile
new file mode 100644
index 0000000..361a6cc
--- /dev/null
+++ b/docs/guides/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+SPHINXPROJ    = SoftPatchPanel
+SOURCEDIR     = .
+BUILDDIR      = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/docs/guides/conf.py b/docs/guides/conf.py
new file mode 100644
index 0000000..5a645fb
--- /dev/null
+++ b/docs/guides/conf.py
@@ -0,0 +1,165 @@
+# -*- coding: utf-8 -*-
+#
+# Soft Patch Panel documentation build configuration file, created by
+# sphinx-quickstart on Thu Jan 25 13:52:03 2018.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'Soft Patch Panel'
+copyright = u'2018, Yasufumi Ogawa'
+author = u'Yasufumi Ogawa'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = u'v17.11'
+# The full version, including alpha/beta/rc tags.
+release = u'v17.11'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This patterns also effect to html_static_path and html_extra_path
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# This is required for the alabaster theme
+# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
+html_sidebars = {
+    '**': [
+        'relations.html',  # needs 'show_related': True theme option to display
+        'searchbox.html',
+    ]
+}
+
+
+# -- Options for HTMLHelp output ------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'SoftPatchPaneldoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'SoftPatchPanel.tex', u'Soft Patch Panel Documentation',
+     u'Yasufumi Ogawa', 'manual'),
+]
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'softpatchpanel', u'Soft Patch Panel Documentation',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'SoftPatchPanel', u'Soft Patch Panel Documentation',
+     author, 'SoftPatchPanel', 'One line description of project.',
+     'Miscellaneous'),
+]
diff --git a/docs/guides/index.rst b/docs/guides/index.rst
new file mode 100644
index 0000000..fcc03f3
--- /dev/null
+++ b/docs/guides/index.rst
@@ -0,0 +1,40 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SPP documentation
+=================
+
+.. toctree::
+   :maxdepth: 1
+
+   overview
+   setup/index
+   commands/index
+   tools/index
diff --git a/docs/guides/setup/index.rst b/docs/guides/setup/index.rst
new file mode 100644
index 0000000..1816462
--- /dev/null
+++ b/docs/guides/setup/index.rst
@@ -0,0 +1,38 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Setup Guide
+===========
+
+.. toctree::
+   :maxdepth: 2
+   :numbered:
+
+   setup_guide
diff --git a/docs/guides/setup/setup_guide.rst b/docs/guides/setup/setup_guide.rst
new file mode 100644
index 0000000..77355d0
--- /dev/null
+++ b/docs/guides/setup/setup_guide.rst
@@ -0,0 +1,38 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Sample usage of the application
+===============================
+
+Compilation
+-----------
+
+.. note::
+    This is a note.
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 02/15] docs: add overview
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 03/15] docs: add primary commands ogawa.yasufumi
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Add overview section for describing SPP project.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/index.rst | 36 +++++++++++++++++++++++++++++
 docs/guides/overview.rst       | 51 ++++++++++++++++++++++++++++++++++++++++++
 docs/guides/tools/index.rst    | 36 +++++++++++++++++++++++++++++
 3 files changed, 123 insertions(+)
 create mode 100644 docs/guides/commands/index.rst
 create mode 100644 docs/guides/overview.rst
 create mode 100644 docs/guides/tools/index.rst

diff --git a/docs/guides/commands/index.rst b/docs/guides/commands/index.rst
new file mode 100644
index 0000000..b084b1f
--- /dev/null
+++ b/docs/guides/commands/index.rst
@@ -0,0 +1,36 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SPP Commands
+============
+
+.. toctree::
+   :maxdepth: 2
+   :numbered:
diff --git a/docs/guides/overview.rst b/docs/guides/overview.rst
new file mode 100644
index 0000000..7650a00
--- /dev/null
+++ b/docs/guides/overview.rst
@@ -0,0 +1,51 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Soft Patch Panel
+==================
+
+The goal of SPP is to easily interconnect DPDK applications together,
+and assign resources dynamically to these applications to build a
+pipeline.
+
+The first version of SPP provides for the management of DPDK ports, and
+assigning ports to different DPDK applications.
+
+The framework is composed of a primary DPDK application that is
+responsible for resource management. This primary application doesn't
+interact with any traffic, and is used to manage creation and freeing of
+resources only.
+
+A Python based management interface is provided to control the primary
+DPDK application to create resources, which are then to be used by
+secondary applications. This management application provides a socket
+based interface for the primary and secondary DPDK applications to
+interface to the manager. The management application will use OVSDB to
+maintain all created and assigned ports.
diff --git a/docs/guides/tools/index.rst b/docs/guides/tools/index.rst
new file mode 100644
index 0000000..9cf137e
--- /dev/null
+++ b/docs/guides/tools/index.rst
@@ -0,0 +1,36 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Tools
+===============
+
+.. toctree::
+   :maxdepth: 2
+   :numbered:
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 03/15] docs: add primary commands
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 02/15] docs: add overview ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 04/15] docs: add common commands ogawa.yasufumi
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/primary.rst | 59 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 docs/guides/commands/primary.rst

diff --git a/docs/guides/commands/primary.rst b/docs/guides/commands/primary.rst
new file mode 100644
index 0000000..b8e5f1d
--- /dev/null
+++ b/docs/guides/commands/primary.rst
@@ -0,0 +1,59 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Primary Commands
+====================
+
+status
+------
+
+.. code-block:: console
+
+    spp > pri status
+    recv:('127.0.0.1', 50524):{Server Running}
+
+
+exit
+----
+
+.. code-block:: console
+
+    spp > pri exit
+    closing:('127.0.0.1', 50524)
+
+
+clear
+-----
+
+.. code-block:: console
+
+    spp > pri clear
+    recv:('127.0.0.1', 50524):{clear stats}
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 04/15] docs: add common commands
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 02/15] docs: add overview ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 03/15] docs: add primary commands ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 05/15] docs: add secondary commands ogawa.yasufumi
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Common commands are for system wide operation, for instance, shutdown
all of SPP processes, record or restore configurations, and show
status.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/common.rst | 104 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 docs/guides/commands/common.rst

diff --git a/docs/guides/commands/common.rst b/docs/guides/commands/common.rst
new file mode 100644
index 0000000..728e68f
--- /dev/null
+++ b/docs/guides/commands/common.rst
@@ -0,0 +1,104 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Common Commands
+====================
+
+status
+------
+
+Display number of connected primary and secondary application count
+Also display connected secondary application client_id.
+
+.. code-block:: console
+
+    spp > status
+    Soft Patch Panel Status :
+    primary: 1
+    secondary count: 4
+    Connected secondary id: 1
+    Connected secondary id: 2
+
+
+record
+------
+
+.. code-block:: console
+
+    spp > record 2nfv_uni.config
+
+
+playback
+--------
+
+.. code-block:: console
+
+    spp> playback 2nfv_uni.config
+
+
+bye
+---
+
+``bye`` command is for terminating SPP processes.
+It supports two types of termination as sub commands.
+
+  - sec
+  - all
+
+First one is for terminating only secondary processes at once.
+
+.. code-block:: console
+
+    spp > bye sec
+    closing:<socket._socketobject object at 0x105750910>
+    closing:<socket._socketobject object at 0x105750a60>
+
+Second one is for all SPP processes other than controller.
+
+.. code-block:: console
+
+    spp > bye all
+    closing:<socket._socketobject object at 0x10bd95910>
+    closing:<socket._socketobject object at 0x10bd95a60>
+    closing:('127.0.0.1', 53620)
+
+help
+----
+
+.. note::
+
+    ``help`` command is not implemented yet.
+
+Displays brief help
+
+.. code-block:: console
+
+    spp > help
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 05/15] docs: add secondary commands
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (2 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 04/15] docs: add common commands ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 06/15] docs: add descriptions for pri commands ogawa.yasufumi
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/common.rst    |  36 ++++++++-
 docs/guides/commands/index.rst     |   7 ++
 docs/guides/commands/secondary.rst | 162 +++++++++++++++++++++++++++++++++++++
 3 files changed, 202 insertions(+), 3 deletions(-)
 create mode 100644 docs/guides/commands/secondary.rst

diff --git a/docs/guides/commands/common.rst b/docs/guides/commands/common.rst
index 728e68f..dc5e8e4 100644
--- a/docs/guides/commands/common.rst
+++ b/docs/guides/commands/common.rst
@@ -35,8 +35,8 @@ Common Commands
 status
 ------
 
-Display number of connected primary and secondary application count
-Also display connected secondary application client_id.
+Show the number of connected primary and secondary processes.
+It also show a list of secondary IDs
 
 .. code-block:: console
 
@@ -51,14 +51,34 @@ Also display connected secondary application client_id.
 record
 ------
 
+Start recording user's input and create a history file for ``playback``
+commnad.
+Recording is stopped by executing ``exit`` or ``playback`` command.
+
 .. code-block:: console
 
     spp > record 2nfv_uni.config
 
+.. note::
+
+    It is not supported to stop recording without ``exit`` or ``playback``
+    command.
+    It is planned to support ``stop`` command for stopping record in
+    next relase.
+
 
 playback
 --------
 
+Restore configuration from a config file.
+Content of config file is just a series of SPP commnad.
+You prepare a config file by using ``record`` command or editing a text
+file by hand.
+
+It is recommended to use extension ``.config`` to be self-sxplanatory
+as a config, although you can use any of extensions such as ``.txt`` or
+``.log``.
+
 .. code-block:: console
 
     spp> playback 2nfv_uni.config
@@ -90,6 +110,7 @@ Second one is for all SPP processes other than controller.
     closing:<socket._socketobject object at 0x10bd95a60>
     closing:('127.0.0.1', 53620)
 
+
 help
 ----
 
@@ -97,8 +118,17 @@ help
 
     ``help`` command is not implemented yet.
 
-Displays brief help
+Show brief help
 
 .. code-block:: console
 
     spp > help
+
+    Documented commands (type help <topic>):
+    ========================================
+    bye  help  playback  pri  record  sec  status
+
+    spp > help status
+    Display Soft Patch Panel Status
+    spp > help sec
+    Send command to secondary process
diff --git a/docs/guides/commands/index.rst b/docs/guides/commands/index.rst
index b084b1f..7526e68 100644
--- a/docs/guides/commands/index.rst
+++ b/docs/guides/commands/index.rst
@@ -31,6 +31,13 @@
 SPP Commands
 ============
 
+SPP provides commands for managing primary, secondary processes and SPP
+controller.
+
 .. toctree::
    :maxdepth: 2
    :numbered:
+
+   primary
+   secondary
+   common
diff --git a/docs/guides/commands/secondary.rst b/docs/guides/commands/secondary.rst
new file mode 100644
index 0000000..8186e5d
--- /dev/null
+++ b/docs/guides/commands/secondary.rst
@@ -0,0 +1,162 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Secondary Commands
+======================
+
+Each of secondary processes is managed with ``sec`` command.
+It is for sending sub commands to secondary with specific ID called
+secondary ID.
+
+``sec`` command takes an secondary ID and a sub command. They must be
+separated with delimiter ``;``.
+Some of sub commands take additional arguments for speicfying resource
+owned by secondary process.
+
+.. code-block:: console
+
+    spp > sec [SEC_ID];[SUB_CMD]
+
+
+status
+------
+
+Show running status and resources.
+
+.. code-block:: console
+
+    spp > sec 1;status
+    recv:7:{Client ID 1 Idling
+    1
+    port id: 0,on,PHY,outport: none
+    port id: 1,on,PHY,outport: none
+    }
+
+
+add
+---
+
+Add a PMD to the secondary with resource ID.
+
+Adding ring 0 by
+
+.. code-block:: console
+
+    spp> sec 1;add ring 0
+    recv:7:{addring0}
+
+Or adding vhost 0 by
+
+.. code-block:: console
+
+    spp> sec 1;add vhost 0
+    recv:7:{addvhost0}
+
+
+patch
+------
+
+Create a path between two ports, source and destination ports.
+Port ID is referred by status sub commnad.
+This command just creates path and does not start forwarding.
+
+.. code-block:: console
+
+    spp > sec 1;patch 0 2
+    recv:7:{patch02}
+
+
+forward
+-------
+
+Start forwarding.
+
+.. code-block:: console
+
+    spp > sec 1;forward
+    recv:7:{start forwarding}
+
+Running status is changed from ``Idling`` to ``Running`` by
+executing it.
+
+.. code-block:: console
+
+    spp > sec 1;status
+    recv:7:{Client ID 1 Running
+    1
+    port id: 0,on,PHY,outport: none
+    port id: 1,on,PHY,outport: none
+    }
+
+
+stop
+----
+
+Stop forwarding.
+
+.. code-block:: console
+
+    spp > sec 1;stop
+    recv:7:{start forwarding}
+
+Running status is changed from ``Running`` to ``Idling`` by
+executing it.
+
+.. code-block:: console
+
+    spp > sec 1;status
+    recv:7:{Client ID 1 Running
+    1
+    port id: 0,on,PHY,outport: none
+    port id: 1,on,PHY,outport: none
+    }
+
+
+del
+---
+
+Delete PMD added by ``add`` subcommand from the secondary.
+
+.. code-block:: console
+
+    spp> sec 1;del ring 0
+    recv:7:{delring0}
+
+
+exit
+----
+
+Terminate the secondary. For terminating all secondaries, use ``bye sec``
+command instead of it.
+
+.. code-block:: console
+
+    spp> sec 1;exit
+    recv:7:{delring0}
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 06/15] docs: add descriptions for pri commands
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (3 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 05/15] docs: add secondary commands ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 07/15] docs: fix erata of help command ogawa.yasufumi
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/primary.rst | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/docs/guides/commands/primary.rst b/docs/guides/commands/primary.rst
index b8e5f1d..0a338e9 100644
--- a/docs/guides/commands/primary.rst
+++ b/docs/guides/commands/primary.rst
@@ -32,9 +32,14 @@
 Primary Commands
 ====================
 
+Primary process is managed with ``pri`` command.
+
+
 status
 ------
 
+Show status of primary.
+
 .. code-block:: console
 
     spp > pri status
@@ -44,15 +49,24 @@ status
 exit
 ----
 
+Terminate primary.
+
 .. code-block:: console
 
     spp > pri exit
     closing:('127.0.0.1', 50524)
 
+.. note::
+
+    You should not use this command because terminating primary before
+    secondaries may cause an error.
+    You shold use ``bye`` command instead of ``pri exit``.
 
 clear
 -----
 
+Clear statistics.
+
 .. code-block:: console
 
     spp > pri clear
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 07/15] docs: fix erata of help command
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (4 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 06/15] docs: add descriptions for pri commands ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 08/15] docs: revise index in setup chapter ogawa.yasufumi
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/common.rst | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/docs/guides/commands/common.rst b/docs/guides/commands/common.rst
index dc5e8e4..719d663 100644
--- a/docs/guides/commands/common.rst
+++ b/docs/guides/commands/common.rst
@@ -114,11 +114,7 @@ Second one is for all SPP processes other than controller.
 help
 ----
 
-.. note::
-
-    ``help`` command is not implemented yet.
-
-Show brief help
+Show help message for SPP commands.
 
 .. code-block:: console
 
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 08/15] docs: revise index in setup chapter
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (5 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 07/15] docs: fix erata of help command ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 09/15] docs: update getting_started section ogawa.yasufumi
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

SPP setup guide is containing steps of install, compile, launching
processes, detailed network configuration and performance tuning in a
file. It is better to divide them into several sections.

This update is for revising file structure and index in 'setup'
chapter. It devide setup guide into three sections.

  * getting_started: installation and compilation
  * howto_use: launch SPP processes and VMs
  * use_cases: configure network with SPP

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/setup/getting_started.rst | 33 ++++++++++++++++++++++++++++++
 docs/guides/setup/howto_use.rst       | 33 ++++++++++++++++++++++++++++++
 docs/guides/setup/index.rst           |  4 +++-
 docs/guides/setup/setup_guide.rst     | 38 -----------------------------------
 docs/guides/setup/use_cases.rst       | 32 +++++++++++++++++++++++++++++
 5 files changed, 101 insertions(+), 39 deletions(-)
 create mode 100644 docs/guides/setup/getting_started.rst
 create mode 100644 docs/guides/setup/howto_use.rst
 delete mode 100644 docs/guides/setup/setup_guide.rst
 create mode 100644 docs/guides/setup/use_cases.rst

diff --git a/docs/guides/setup/getting_started.rst b/docs/guides/setup/getting_started.rst
new file mode 100644
index 0000000..b24666a
--- /dev/null
+++ b/docs/guides/setup/getting_started.rst
@@ -0,0 +1,33 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Getting Started
+===============
diff --git a/docs/guides/setup/howto_use.rst b/docs/guides/setup/howto_use.rst
new file mode 100644
index 0000000..0575790
--- /dev/null
+++ b/docs/guides/setup/howto_use.rst
@@ -0,0 +1,33 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+How to Use
+==========
diff --git a/docs/guides/setup/index.rst b/docs/guides/setup/index.rst
index 1816462..972132d 100644
--- a/docs/guides/setup/index.rst
+++ b/docs/guides/setup/index.rst
@@ -35,4 +35,6 @@ Setup Guide
    :maxdepth: 2
    :numbered:
 
-   setup_guide
+   getting_started
+   howto_use
+   use_cases
diff --git a/docs/guides/setup/setup_guide.rst b/docs/guides/setup/setup_guide.rst
deleted file mode 100644
index 77355d0..0000000
--- a/docs/guides/setup/setup_guide.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-..  BSD LICENSE
-    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-    * Neither the name of Intel Corporation nor the names of its
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Sample usage of the application
-===============================
-
-Compilation
------------
-
-.. note::
-    This is a note.
diff --git a/docs/guides/setup/use_cases.rst b/docs/guides/setup/use_cases.rst
new file mode 100644
index 0000000..fcff8d2
--- /dev/null
+++ b/docs/guides/setup/use_cases.rst
@@ -0,0 +1,32 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Use Cases
+===============================
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 09/15] docs: update getting_started section
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (6 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 08/15] docs: revise index in setup chapter ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 10/15] docs: update howto_use section ogawa.yasufumi
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Add explanation for setting up hugepages and binding network ports.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/setup/getting_started.rst | 240 ++++++++++++++++++++++++++++++++++
 1 file changed, 240 insertions(+)

diff --git a/docs/guides/setup/getting_started.rst b/docs/guides/setup/getting_started.rst
index b24666a..04df517 100644
--- a/docs/guides/setup/getting_started.rst
+++ b/docs/guides/setup/getting_started.rst
@@ -1,3 +1,5 @@
+.. _getting_started:
+
 ..  BSD LICENSE
     Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
     All rights reserved.
@@ -31,3 +33,241 @@
 
 Getting Started
 ===============
+
+Setup
+-----
+
+Reserving Hugepages
+~~~~~~~~~~~~~~~~~~~
+
+Hugepages must be enabled for running DPDK with high performance.
+Hugepage support is required to reserve large amount size of pages,
+2MB or 1GB per page, to less TLB (Translation Lookaside Buffers) and
+to reduce cache miss.
+Less TLB means that it reduce the time for translating virtual address
+to physical.
+
+Hugepage reservation might be different for 2MB or 1GB.
+
+For 1GB page, hugepage setting must be activated while booting system.
+It must be defined in boot loader configuration, usually is
+``/etc/default/grub``.
+Add an entry to define pagesize and the number of pages.
+Here is an example. `` hugepagesz`` is for the size and ``hugepages``
+is for the number of pages.
+
+.. code-block:: console
+
+    GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=8"
+
+.. note::
+
+    1GB hugepages might not be supported in your machine. It depends on
+    that CPUs support 1GB pages or not. You can check it by referring
+    ``/proc/cpuinfo``. If it is supported, you can find ``pdpe1gb`` in
+    the ``flags`` attribute.
+
+    .. code-block:: console
+
+        $ cat /proc/cpuinfo | pdpe1gb
+
+For 2MB page, you can activate hugepages while booting or at anytime
+after system is booted.
+Define hugepages setting in ``/etc/default/grub`` to activate it while
+booting, or overwrite the number of 2MB hugepages as following.
+
+.. code-block:: console
+
+    $ echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
+
+In this case, 1024 pages of 2MB (totally 2048 MB) are reserved.
+
+
+Mount hugepages
+~~~~~~~~~~~~~~~
+
+Make the memory available for using hugepages from DPDK.
+
+.. code-block:: console
+
+    mkdir /mnt/huge
+    mount -t hugetlbfs nodev /mnt/huge
+
+It is also available while booting by adding a configuration of mount
+point in ``/etc/fstab``, or after booted.
+
+The mount point for 2MB or 1GB can be made permanent accross reboot.
+For 2MB, it is no need to declare the size of hugepages explicity.
+
+.. code-block:: console
+
+    nodev /mnt/huge hugetlbfs defaults 0 0
+
+For 1GB, the size of hugepage must be specified.
+
+.. code-block:: console
+
+    nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0
+
+
+Install DPDK and SPP
+--------------------
+
+Before using SPP, you need to install DPDK.
+In this document, briefly describ how to install and setup DPDK.
+Refer to `DPDK documentation
+<https://dpdk.org/doc/guides/>`_ for more details.
+For Linux, see `Getting Started Guide for Linux
+<http://www.dpdk.org/doc/guides/linux_gsg/index.html>`_ .
+
+First, download and compile DPDK in any directory.
+Compiling DPDK takes a few minutes.
+
+.. code-block:: console
+
+    $ cd /path/to/any
+    $ git clone http://dpdk.org/git/dpdk
+    $ cd dpdk
+    $ export RTE_SDK=$(pwd)
+    $ export RTE_TARGET=x86_64-native-linuxapp-gcc  # depends on your env
+    $ make install T=$RTE_TARGET
+
+Then, download and compile SPP in any directory.
+
+.. code-block:: console
+
+    $ cd /path/to/any
+    $ git clone http://dpdk.org/git/apps/spp
+    $ cd spp
+    $ make  # Confirm that $RTE_SDK and $RTE_TARGET are set
+
+
+Binding Network Ports to DPDK
+-----------------------------
+
+Network ports must be bound to DPDK with a UIO (Userspace IO) driver.
+UIO driver is for mapping device memory to userspace and registering
+interrupts.
+
+UIO Drivers
+~~~~~~~~~~~
+
+You usually use the standard ``uio_pci_generic`` for many use cases
+or ``vfio-pci`` for more robust and secure cases.
+Both of drivers are included by default in modern Linux kernel.
+
+.. code-block:: console
+
+    # Activate uio_pci_generic
+    $ sudo modprobe uio_pci_generic
+
+    # or vfio-pci
+    $ sudo modprobe vfio-pci
+
+You can also use kmod included in DPDK instead of ``uio_pci_generic``
+or ``vfio-pci``.
+
+.. code-block:: console
+
+    sudo modprobe uio
+    sudo insmod kmod/igb_uio.ko
+
+Binding Network Ports
+~~~~~~~~~~~~~~~~~~~~~
+
+Once UIO driver is activated, bind network ports with the driver.
+DPDK provides ``usertools/dpdk-devbind.py`` for managing devices.
+
+Find ports for binding to DPDK by running the tool with ``-s`` option.
+
+.. code-block:: console
+
+    $ $RTE_SDK/usertools/dpdk-devbind.py --status
+
+    Network devices using DPDK-compatible driver
+    ============================================
+    <none>
+
+    Network devices using kernel driver
+    ===================================
+    0000:29:00.0 '82571EB Gigabit Ethernet Controller (Copper) 10bc' if=enp41s0f0 drv=e1000e unused=
+    0000:29:00.1 '82571EB Gigabit Ethernet Controller (Copper) 10bc' if=enp41s0f1 drv=e1000e unused=
+    0000:2a:00.0 '82571EB Gigabit Ethernet Controller (Copper) 10bc' if=enp42s0f0 drv=e1000e unused=
+    0000:2a:00.1 '82571EB Gigabit Ethernet Controller (Copper) 10bc' if=enp42s0f1 drv=e1000e unused=
+
+    Other Network devices
+    =====================
+    <none>
+    ....
+
+You can find network ports are bound to kernel driver and not to DPDK.
+To bind a port to DPDK, run ``dpdk-devbind.py`` with specifying a driver
+and a device ID.
+Device ID is a PCI address of the device or more friendly style like
+``eth0`` found by ``ifconfig`` or ``ip`` command..
+
+.. code-block:: console
+
+    # Bind a port with 2a:00.0 (PCI address)
+    ./usertools/dpdk-devbind.py --bind=uio_pci_generic 2a:00.0
+
+    # or eth0
+    ./usertools/dpdk-devbind.py --bind=uio_pci_generic eth0
+
+
+After binding two ports, you can find it is under the DPDK driver and
+cannot find it by using ``ifconfig`` or ``ip``.
+
+.. code-block:: console
+
+    $ $RTE_SDK/usertools/dpdk-devbind.py -s
+
+    Network devices using DPDK-compatible driver
+    ============================================
+    0000:2a:00.0 '82571EB Gigabit Ethernet Controller (Copper) 10bc' drv=uio_pci_generic unused=vfio-pci
+    0000:2a:00.1 '82571EB Gigabit Ethernet Controller (Copper) 10bc' drv=uio_pci_generic unused=vfio-pci
+
+    Network devices using kernel driver
+    ===================================
+    0000:29:00.0 '82571EB Gigabit Ethernet Controller (Copper) 10bc' if=enp41s0f0 drv=e1000e unused=vfio-pci,uio_pci_generic
+    0000:29:00.1 '82571EB Gigabit Ethernet Controller (Copper) 10bc' if=enp41s0f1 drv=e1000e unused=vfio-pci,uio_pci_generic
+
+    Other Network devices
+    =====================
+    <none>
+    ....
+
+
+Run DPDK Sample Application
+---------------------------
+
+You had better to run DPDK sample application before SPP
+as checking DPDK is setup properly.
+
+Try ``l2fwd`` as an example.
+
+.. code-block:: console
+
+   $ cd $RTE_SDK/examples/l2fwd
+   $ make
+     CC main.o
+     LD l2fwd
+     INSTALL-APP l2fwd
+     INSTALL-MAP l2fwd.map
+
+In this case, run this application with two options.
+
+  - -c: core mask
+  - -p: port mask
+
+.. code-block:: console
+
+   $ sudo ./build/app/l2fwd \
+     -c 0x03 \
+     -- -p 0x3
+
+It must be separated with ``--`` to specify which option is
+for EAL or application.
+Refer to `L2 Forwarding Sample Application
+<https://dpdk.org/doc/guides/sample_app_ug/l2_forward_real_virtual.html>`_
+for more details.
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 10/15] docs: update howto_use section
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (7 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 09/15] docs: update getting_started section ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 11/15] docs: add performance_opt section ogawa.yasufumi
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Add explanations for each of SPP processes.

* For SPP controller, update for v17.11 and add description for options.

* For primary, add description for options.

* For secondary,
  * Separate for spp_nfv and spp_vm to be clear usage,
    running on host or VM.
  * Update how to launch VM and add detailed description for qemu
    options.
  * Add description for spp_vm is launched as a primary and behaves as
    secondary on VM.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/setup/howto_use.rst | 261 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 261 insertions(+)

diff --git a/docs/guides/setup/howto_use.rst b/docs/guides/setup/howto_use.rst
index 0575790..a5698d6 100644
--- a/docs/guides/setup/howto_use.rst
+++ b/docs/guides/setup/howto_use.rst
@@ -31,3 +31,264 @@
 
 How to Use
 ==========
+
+SPP consists of primary process for managing resources,
+secondary processes for forwarding packet,
+and SPP controller to accept user commands and sent it to SPP processes.
+
+You must keep in mind the order of launching processes.
+Primary process must be launched before secondary.
+In addition, controller need to be launched before primary and secondary
+because it prepares TCP connections for communicating primary and secondary.
+
+1. SPP Controller
+2. SPP Primary
+3. SPP Secondary
+
+
+SPP Controller
+----------------
+
+SPP controller is implemented as a python script ``spp.py``.
+
+.. code-block:: console
+
+    $ python spp.py
+    primary port : 5555
+    secondary port : 6666
+    Welcome to the spp.   Type help or ? to list commands.
+
+    spp >
+
+Controller communicate with primary via TCP port 5555 and with secondary
+processes via 6666 in defalt.
+You can change port number by using options.
+Please refer help message for options.
+
+.. code-block:: console
+
+    $ ./src/spp.py -h
+    usage: spp.py [-h] [-p PRI_PORT] [-s SEC_PORT] [-m MNG_PORT] [-ip IPADDR]
+
+    SPP Controller
+
+    optional arguments:
+      -h, --help            show this help message and exit
+      -p PRI_PORT, --pri-port PRI_PORT
+                            primary port number
+      -s SEC_PORT, --sec-port SEC_PORT
+                            secondary port number
+      -m MNG_PORT, --mng-port MNG_PORT
+                            management port number
+      -ip IPADDR, --ipaddr IPADDR
+                            IP address
+
+`SPP commands
+<http://spp.readthedocs.io/en/doc_rst/commands/index.html>`_ describes
+how to manage SPP processes from SPP controller.
+
+
+SPP Primary
+-----------
+
+SPP primary is a resource manager and initializing EAL
+for secondary processes.
+
+To launch primary, run ``spp_primary`` with options.
+
+.. code-block:: console
+
+    $ sudo ./src/primary/src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -c 0x02 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir=/dev/hugepages \
+        --proc-type=primary \
+        -- \
+        -p 0x03 \
+        -n 4 \
+        -s 192.168.122.1:5555
+
+SPP primary is a DPDK application and it takes EAL options before
+application specific options.
+Briefly describe about supported options.
+
+- EAL options:
+
+  - -c: core mask (one or two cores required)
+  - --socket-mem: memory size on each of NUMA nodes
+  - --huge-dir: path of hugepage dir
+  - --proc-type: process type
+
+- Application options:
+
+  - -p: port mask
+  - -n: number of ring PMD
+  - -s: IP address of controller and port prepared for primary
+
+.. note::
+
+    You do not need to give two cores if you are not interested in
+    statistics.
+    SPP primary is able to run with only one core and use second one
+    to show the statistics.
+
+
+SPP Secondary
+-------------
+
+Secondary process behaves as a client of primary process and a worker
+for doing tasks.
+
+This section describes about ``spp_nfv`` and ``spp_vm``,
+which just simply forward packets similar to ``l2fwd``.
+The difference between them is running on host or VM.
+``spp_vm`` runs inside a VM as described in name.
+
+
+Launch on Host
+~~~~~~~~~~~~~~
+
+Run ``spp_nfv`` with options.
+
+.. code-block:: console
+
+    $ cd /path/to/spp
+    $ sudo ./src/nfv/src/nfv/x86_64-native-linuxapp-gcc/spp_nfv \
+        -c 0x06 -n 4 \
+        --proc-type=secondary \
+        -- \
+        -n 1 \
+        -s 192.168.122.1:6666
+
+- EAL options:
+
+  - -c: core mask (two cores required)
+  - --proc-type: process type
+
+- Application options:
+
+  - -n: secondary ID
+  - -s: IP address of controller and port prepared for secondary
+
+Secondary ID is used to identify for sending messages and must be
+unique among all of secondaries.
+If you attempt to launch a secondary process with the same ID,
+SPP controller does not accept it and assign unused number.
+
+
+Launch on VM
+~~~~~~~~~~~~
+
+To communicate DPDK application running on a VM,
+it is required to create a virtual device for the VM.
+In this instruction, launch a VM with qemu command and
+create ``vhost-user`` and ``virtio-net-pci`` devices on the VM.
+
+Before launching VM, you need to prepare a socket file for creating
+``vhost-user`` device.
+Socket file is created from SPP secondary as following.
+
+.. code-block:: console
+
+    spp > sec 1;add vhost 0
+
+In this example, create socket file with index 0 from secondary of ID 1.
+Socket file is created as ``/tmp/sock0``.
+It is used as a qemu option to add vhost interface.
+
+Launch VM with ``qemu-system-x86_64`` for x86 64bit architecture.
+Qemu takes many options for defining resources including virtual
+devices.
+
+.. code-block:: console
+
+    $ sudo qemu-system-x86_64 \
+        -cpu host \
+        -enable-kvm \
+        -numa node,memdev=mem \
+        -mem-prealloc \
+        -hda /path/to/image.qcow2 \
+        -m 4096 \
+        -smp cores=4,threads=1,sockets=1 \
+        -object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,share=on \
+        -device e1000,netdev=net0,mac=00:AD:BE:B3:11:00 \
+        -netdev tap,id=net0,ifname=net0,script=/path/to/qemu-ifup \
+        -nographic \
+        -chardev socket,id=chr0,path=/tmp/sock0 \                   # /tmp/sock0
+        -netdev vhost-user,id=net1,chardev=chr0,vhostforce \        # netdev for vhost-user
+        -device virtio-net-pci,netdev=net1,mac=00:AD:BE:B4:11:00 \  # device for virtio-net-pci
+        -monitor telnet::44911,server,nowait
+
+This VM has two network interfaces.
+``-device e1000`` is a management network port
+which requires ``qemu-ifup`` to activate while launching.
+Management network port is used for login and setup the VM.
+``-device virtio-net-pci`` is created for SPP or DPDK application
+running on the VM.
+
+``vhost-user`` is a backend of ``virtio-net-pci`` which requires
+a socket file ``/tmp/sock0`` created from secondary with ``-chardev``
+option.
+
+For other options, please refer to
+`QEMU User Documentation
+<https://qemu.weilnetz.de/doc/qemu-doc.html>`_.
+
+.. note::
+
+    To launch several VMs, you have to prepare qemu images for the VMs.
+    You shortcut installing and setting up DPDK and SPP for each of
+    VMs by creating a tmeplate image and copy it to the VMs.
+
+After booted, you install DPDK and SPP in the VM as in the host.
+
+Run ``spp_vm`` with options.
+
+.. code-block:: console
+
+    $ cd /path/to/spp
+    $ sudo ./src/vm/src/vm/x86_64-native-linuxapp-gcc/spp_vm \
+        -c 0x03 -n 4 \
+        --proc-type=primary \
+        -- \
+        -p 0x01 \
+        -n 1 \
+        -s 192.168.122.1:6666
+
+- EAL options:
+
+  - -c: core mask (two cores required)
+  - --proc-type: process type
+
+- Application options:
+
+  - -p: port mask
+  - -n: secondary ID
+  - -s: IP address of controller and port prepared for secondary
+
+``spp_vm`` is also managed from SPP controller as same as on host.
+Secondary ID is used to identify for sending messages and must be
+unique among all of secondaries.
+If you attempt to launch a secondary process with the same ID,
+SPP controller does not accept it and assign unused number.
+
+In this case, port mask option is ``-p 0x01`` (using one port) because
+the VM is launched with just one vhost interface.
+You can use two or more ports if you launch VM with several
+``vhost-user`` and ``virtio-net-pci`` interfaces.
+
+Notice that ``spp_vm`` takes options similar to ``spp_primary``, not
+``spp_nfv``.
+It means that ``spp_vm`` has responsibilities for initializing EAL
+and forwarding packets in the VM.
+
+.. note::
+
+    ``spp_vm`` is actually running as primary process on a VM,
+    but managed as secondary process from SPP controller.
+    SPP does not support running resource manager as primary inside
+    a VM. Client behaves as secondary, but actually a primary, running
+    on the VM to communicate with other SPP procesess on host.
+
+    ``spp_vm`` must be launched with ``--proc-type=primary`` and
+    ``-p [PORTMASK]`` options similar to primary to initialize EAL.
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 11/15] docs: add performance_opt section
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (8 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 10/15] docs: update howto_use section ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 12/15] docs: update use_cases section ogawa.yasufumi
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Add section for performance optimization containing following topics.

* Reduce context switches
* Optimizing QEMU performance

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/setup/index.rst           |   1 +
 docs/guides/setup/performance_opt.rst | 106 ++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+)
 create mode 100644 docs/guides/setup/performance_opt.rst

diff --git a/docs/guides/setup/index.rst b/docs/guides/setup/index.rst
index 972132d..0ac18af 100644
--- a/docs/guides/setup/index.rst
+++ b/docs/guides/setup/index.rst
@@ -38,3 +38,4 @@ Setup Guide
    getting_started
    howto_use
    use_cases
+   performance_opt
diff --git a/docs/guides/setup/performance_opt.rst b/docs/guides/setup/performance_opt.rst
new file mode 100644
index 0000000..2bf8a5e
--- /dev/null
+++ b/docs/guides/setup/performance_opt.rst
@@ -0,0 +1,106 @@
+..  BSD LICENSE
+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Performance Optimization
+========================
+
+Reduce Context Switches
+-----------------------
+
+Use the ``isolcpus`` Linux kernel parameter to isolate them
+from Linux scheduler to reduce context switches.
+It prevents workloads of other processes than DPDK running on
+reserved cores with ``isolcpus`` parameter.
+
+For Ubuntu 16.04, define ``isolcpus`` in ``/etc/default/grub``.
+
+.. code-block:: console
+
+    GRUB_CMDLINE_LINUX_DEFAULT=“isolcpus=0-3,5,7”
+
+The value of this ``isolcpus`` depends on your environment and usage.
+This example reserves six cores(0,1,2,3,5,7).
+
+
+Optimizing QEMU Performance
+---------------------------
+
+QEMU process runs threads for vcpu emulation. It is effective strategy
+for pinning vcpu threads to decicated cores.
+
+To find vcpu threads, you use ``ps`` command to find PID of QEMU process
+and ``pstree`` command for threads launched from QEMU process.
+
+.. code-block:: console
+
+    $ ps ea
+       PID TTY      STAT   TIME COMMAND
+    192606 pts/11   Sl+    4:42 ./x86_64-softmmu/qemu-system-x86_64 -cpu host ...
+
+Run ``pstree`` with ``-p`` and this PID to find all threads launched from QEMU.
+
+.. code-block:: console
+
+    $ pstree -p 192606
+    qemu-system-x86(192606)--+--{qemu-system-x8}(192607)
+                             |--{qemu-system-x8}(192623)
+                             |--{qemu-system-x8}(192624)
+                             |--{qemu-system-x8}(192625)
+                             |--{qemu-system-x8}(192626)
+
+Update affinity by using ``taskset`` command to pin vcpu threads.
+The vcpu threads is listed from the second entry and later.
+In this example, assign PID 192623 to core 4, PID 192624 to core 5
+and so on.
+
+.. code-block:: console
+
+    $ sudo taskset -pc 4 192623
+    pid 192623's current affinity list: 0-31
+    pid 192623's new affinity list: 4
+    $ sudo taskset -pc 5 192624
+    pid 192624's current affinity list: 0-31
+    pid 192624's new affinity list: 5
+    $ sudo taskset -pc 6 192625
+    pid 192625's current affinity list: 0-31
+    pid 192625's new affinity list: 6
+    $ sudo taskset -pc 7 192626
+    pid 192626's current affinity list: 0-31
+    pid 192626's new affinity list: 7
+
+
+Reference
+---------
+
+* [1] `Best pinning strategy for latency/performance trade-off <https://www.redhat.com/archives/vfio-users/2017-February/msg00010.html>`_
+* [2] `PVP reference benchmark setup using testpmd <http://dpdk.org/doc/guides/howto/pvp_reference_benchmark.html>`_
+* [3] `Enabling Additional Functionality <http://dpdk.org/doc/guides/linux_gsg/enable_func.html>`_
+* [4] `How to get best performance with NICs on Intel platforms <http://dpdk.org/doc/guides/linux_gsg/nic_perf_intel_platform.html>`_
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 12/15] docs: update use_cases section
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (9 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 11/15] docs: add performance_opt section ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:04 ` [spp] [PATCH 13/15] docs: update overview section ogawa.yasufumi
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

* Update descriptions for old version of SPP which is not supported
  currently.

* Add explanation for configuring ring pmd and vhost pmd.

* Revise whole descriptions.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/setup/use_cases.rst | 437 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 436 insertions(+), 1 deletion(-)

diff --git a/docs/guides/setup/use_cases.rst b/docs/guides/setup/use_cases.rst
index fcff8d2..3b59498 100644
--- a/docs/guides/setup/use_cases.rst
+++ b/docs/guides/setup/use_cases.rst
@@ -29,4 +29,439 @@
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 Use Cases
-===============================
+=========
+
+.. _single_spp_nfv:
+
+Single spp_nfv
+--------------
+
+The most simple use case mainly for testing performance of packet
+forwarding on host.
+One ``spp_nfv`` and two physical ports.
+
+In this use case, try to configure two senarios.
+
+- Configure spp_nfv as L2fwd
+- Configure spp_nfv for Loopback
+
+
+First of all, Check the status of ``spp_nfv`` from SPP controller.
+
+.. code-block:: console
+
+    spp > sec 1;status
+    recv:6:{Client ID 1 Idling
+    1
+    port id: 0,on,PHY,outport: -99
+    port id: 1,on,PHY,outport: -99
+    }
+
+This message explains that ``sec 1`` has two physical ports refered as
+port id 0 and 1.
+``outpport: -99`` means that destionation port is not assigned.
+
+
+Configure spp_nfv as L2fwd
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Assing the destination of ports with ``patch`` subcommand and
+start forwarding.
+Patch from ``port 0`` to ``port 1`` and ``port 1`` to ``port 0``,
+which means it is bi-directional connection.
+
+.. code-block:: console
+
+    spp > sec 1;patch 0 1
+    spp > sec 1;patch 1 0
+    spp > sec 1;forward
+
+Confirm that status of ``sec 1`` is updated.
+
+.. code-block:: console
+
+    spp > sec 1;status
+    recv:6:{Client ID 1 Running
+    1
+    port id: 0,on,PHY,outport: 1
+    port id: 1,on,PHY,outport: 0
+    }
+
+.. code-block:: console
+
+                                                                        __
+                                    +--------------+                      |
+                                    |    spp_nfv   |                      |
+                                    |    (sec 1)   |                      |
+                                    +--------------+                      |
+                                         ^      :                         |
+                                         |      |                         |
+                                         :      v                         |
+    +----+----------+-------------------------------------------------+   |
+    |    | primary  |                    ^      :                     |   |
+    |    +----------+                    :      :                     |   |
+    |                                    :      :                     |   |
+    |                         +----------+      +---------+           |   |  host
+    |                         :                           v           |   |
+    |                  +--------------+            +--------------+   |   |
+    |                  |   phy port 0 |            |   phy port 1 |   |   |
+    +------------------+--------------+------------+--------------+---+ __|
+                              ^                           :
+                              |                           |
+                              :                           v
+
+Stop forwarding and reset patch to clear configuration.
+
+.. code-block:: console
+
+    spp > sec 1;stop
+    spp > sec 1;patch reset
+
+
+Configure spp_nfv for Loopback
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Patch ``port 0`` to ``port 0`` and ``port 1`` to ``port 1``
+for loopback.
+
+.. code-block:: console
+
+    spp > sec 1;patch 0 0
+    spp > sec 1;patch 1 1
+    spp > sec 1;forward
+
+
+Dual spp_nfv
+------------
+
+Use case for testing performance of packet forwarding
+with two ``spp_nfv`` on host.
+Throughput is expected to be better than
+:ref:`Single spp_nfv<single_spp_nfv>`
+use case
+because bi-directional forwarding of single nfv shared with two of
+uni-directional forwarding between dual spp_nfv.
+
+In this use case, configure two senarios almost similar to
+previous section.
+
+- Configure Two spp_nfv as L2fwd
+- Configure Two spp_nfv for Loopback
+
+
+Configure Two spp_nfv as L2fwd
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Assing the destination of ports with ``patch`` subcommand and
+start forwarding.
+Patch from ``port 0`` to ``port 1`` for ``sec 1`` and
+from ``port 1`` to ``port 0`` for ``sec 2``.
+
+.. code-block:: console
+
+    spp > sec 1;patch 0 1
+    spp > sec 2;patch 1 0
+    spp > sec 1;forward
+    spp > sec 2;forward
+
+.. code-block:: console
+
+                                                                        __
+                         +--------------+          +--------------+       |
+                         |    spp_nfv   |          |    spp_nfv   |       |
+                         |    (sec 1)   |          |    (sec 2)   |       |
+                         +--------------+          +--------------+       |
+                            ^        :               :         :          |
+                            |        |      +--------+         |          |
+                            :        v      |                  v          |
+    +----+----------+-----------------------+-------------------------+   |
+    |    | primary  |       ^        :      |                  :      |   |
+    |    +----------+       |        +------+--------+         :      |   |
+    |                       :               |        :         :      |   |
+    |                       :        +------+        :         |      |   |  host
+    |                       :        v               v         v      |   |
+    |                  +--------------+            +--------------+   |   |
+    |                  |   phy port 0 |            |   phy port 1 |   |   |
+    +------------------+--------------+------------+--------------+---+ __|
+                              ^                           :
+                              |                           |
+                              :                           v
+
+
+Configure two spp_nfv for Loopback
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Patch ``port 0`` to ``port 0`` for ``sec 1`` and
+``port 1`` to ``port 1`` for ``sec 2`` for loopback.
+
+.. code-block:: console
+
+    spp > sec 1;patch 0 0
+    spp > sec 2;patch 1 1
+    spp > sec 1;forward
+    spp > sec 2;forward
+
+.. code-block:: console
+
+                                                                        __
+                         +--------------+          +--------------+       |
+                         |    spp_nfv   |          |    spp_nfv   |       |
+                         |    (sec 1)   |          |    (sec 2)   |       |
+                         +--------------+          +--------------+       |
+                            ^        :               ^         :          |
+                            |        |               |         |          |
+                            :        v               :         v          |
+    +----+----------+-------------------------------------------------+   |
+    |    | primary  |       ^        :               ^         :      |   |
+    |    +----------+       |        :               |         :      |   |
+    |                       :        :               :         :      |   |
+    |                       :        |               :         |      |   |  host
+    |                       :        v               :         v      |   |
+    |                  +--------------+            +--------------+   |   |
+    |                  |   phy port 0 |            |   phy port 1 |   |   |
+    +------------------+--------------+------------+--------------+---+ __|
+                              ^                           ^
+                              |                           |
+                              v                           v
+
+
+Dual spp_nfv with Ring PMD
+--------------------------
+
+In this use case, configure two senarios by using ring PMD.
+
+- Uni-Directional L2fwd
+- Bi-Directional L2fwd
+
+Ring PMD
+~~~~~~~~
+
+Ring PMD is an interface for communicating between secondaries on host.
+The maximum number of ring PMDs is defined as ``-n``  option of
+``spp_primary`` and ring ID is started from 0.
+
+A reference of a ring PMD is added by using ``add`` subcommand.
+All of ring PMDs is showed by ``status`` subcommand.
+
+.. code-block:: console
+
+    spp > sec 1;add ring 0
+    recv:6:{addring0}
+    spp > sec 1;status
+    recv:6:{Client ID 1 Idling
+    1
+    port id: 0,on,PHY,outport: -99
+    port id: 1,on,PHY,outport: -99
+    port id: 2,on,RING(0),outport: -99
+    }
+
+Notice that ring 0 is added to ``sec 1`` and it is referred as
+port id 2.
+
+To clear the configuration, delete ``ring 0``.
+
+.. code-block:: console
+
+    spp > sec 1;del ring 0
+    recv:6:{delring0}
+    spp > sec 1;status
+    recv:6:{Client ID 1 Idling
+    1
+    port id: 0,on,PHY,outport: -99
+    port id: 1,on,PHY,outport: -99
+    }
+
+
+Uni-Directional L2fwd
+~~~~~~~~~~~~~~~~~~~~~
+
+Add a ring PMD and connect two ``spp_nvf`` processes.
+To configure network path, add ``ring 0`` to ``sec 1`` and ``sec 2``.
+Then, connect it with ``patch`` subcommand.
+
+.. code-block:: console
+
+    spp > sec 1;add ring 0
+    spp > sec 2;add ring 0
+    spp > sec 1;patch 0 2
+    spp > sec 2;patch 2 1
+    spp > sec 1;forward
+    spp > sec 2;forward
+
+.. code-block:: console
+
+                                                                        __
+                       +----------+      ring 0      +----------+         |
+                       |  spp_nfv |    +--------+    |  spp_nfv |         |
+                       |  (sec 1) | -> |  |  |  |- > |  (sec 2) |         |
+                       +----------+    +--------+    +----------+         |
+                          ^                                   :           |
+                          |                                   |           |
+                          :                                   v           |
+    +----+----------+-------------------------------------------------+   |
+    |    | primary  |       ^                               :         |   |
+    |    +----------+       |                               :         |   |
+    |                       :                               :         |   |
+    |                       :                               |         |   |  host
+    |                       :                               v         |   |
+    |                  +--------------+            +--------------+   |   |
+    |                  |   phy port 0 |            |   phy port  1|   |   |
+    +------------------+--------------+------------+--------------+---+ __|
+                              ^                           :
+                              |                           |
+                              :                           v
+
+
+Bi-Directional L2fwd
+~~~~~~~~~~~~~~~~~~~~
+
+Add two ring PMDs to two ``spp_nvf`` processes.
+For bi-directional forwarding,
+patch ``ring 0`` for a path from ``sec 1`` to ``sec 2``
+and ``ring 1`` for another path from ``sec 2`` to ``sec 1``.
+
+First, add ``ring 0`` and ``ring 1`` to ``sec 1``.
+
+.. code-block:: console
+
+    spp > sec 1;add ring 0
+    spp > sec 1;add ring 1
+    spp > sec 1;status
+    recv:6:{Client ID 1 Idling
+    1
+    port id: 0,on,PHY,outport: -99
+    port id: 1,on,PHY,outport: -99
+    port id: 2,on,RING(0),outport: -99
+    port id: 3,on,RING(1),outport: -99
+    }
+
+
+Then, add ``ring 0`` and ``ring 1`` to ``sec 2``.
+
+.. code-block:: console
+
+    spp > sec 2;add ring 0
+    spp > sec 2;add ring 1
+    spp > sec 1;patch 0 2
+    spp > sec 1;patch 3 0
+    spp > sec 2;patch 1 3
+    spp > sec 2;patch 2 1
+    spp > sec 1;forward
+    spp > sec 2;forward
+
+.. code-block:: console
+
+                                                                        __
+                                        ring 0                            |
+                                      +--------+                          |
+                    +------------+ <--|  |  |  |<-- +-----------+         |
+                    |          p3|    +--------+    |p3         |         |
+                    |  spp_nfv   |                  |  spp_nfv  |         |
+                    |  (sec 1) p2|--> +--------+ -->|p2 (sec 2) |         |
+                    +------------+    |  |  |  |    +-----------+         |
+                            ^         +--------+          ^               |
+                            |           ring 1            |               |
+                            v                             v               |
+    +---+----------+--------------------------------------------------+   |
+    |   | primary  |        ^                             ^           |   |
+    |   +----------+        |                             :           |   |
+    |                       :                             :           |   |
+    |                       :                             |           |   |  host
+    |                       v                             v           |   |
+    |                  +--------------+            +--------------+   |   |
+    |                  |  phy port 0  |            |  phy port 1  |   |   |
+    +------------------+--------------+------------+--------------+---+ __|
+                              ^                           ^
+                              |                           |
+                              v                           v
+
+
+Single spp_nfv with Vhost PMD
+-----------------------------
+
+Vhost PMD
+~~~~~~~~~
+
+Vhost PMD is an interface for communicating between on hsot and guest VM.
+As described in
+:doc:`How to Use<howto_use>`,
+vhost must be created by ``add`` subcommand before the VM is launched.
+
+
+Setup Vhost PMD
+~~~~~~~~~~~~~~~
+
+In this use case, add ``vhost 0`` to ``sec 1`` for communicating
+with the VM.
+First, check if ``/tmp/sock0`` is already exist.
+You have to remove it already exist to avoid failure of socket file
+creation.
+
+.. code-block:: console
+
+    $ ls /tmp | grep sock
+    sock0 ...
+
+    # remove it if exist
+    $ rm /tmp/sock0
+
+Create ``/tmp/sock0`` from ``sec 1``.
+
+.. code-block:: console
+
+    spp > sec 1;add vhost 0
+
+
+Uni-Directional L2fwd with Vhost PMD
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Start a VM with vhost interface as described in
+:doc:`How to Use<howto_use>`
+and launch ``spp_vm`` with secondary ID 2.
+You find ``sec 2`` from controller after launched.
+
+Patch ``port 0`` and ``port 1`` to ``vhost 0`` with ``sec 1``
+running on host.
+Inside VM, configure loopback by patching ``port 0`` and ``port 0``
+with ``sec 2``.
+
+.. code-block:: console
+
+    spp > sec 1;patch 0 2
+    spp > sec 1;patch 2 1
+    spp > sec 2;patch 0 0
+    spp > sec 1;forward
+    spp > sec 2;forward
+
+.. code-block:: console
+
+                                                    __
+                          +-----------------------+   |
+                          | guest                 |   |
+                          |                       |   |
+                          |   +--------------+    |   |  guest
+                          |   |    spp_vm    |    |   |  192.168.122.51
+                          |   |    (sec 2)   |    |   |
+                          |   |      p0      |    |   |
+                          +---+--------------+----+ __|
+                               ^           :
+                               |  virtio   |
+                               |           V                          __
+                           +--------------------+                       |
+                           |      spp_nfv       |                       |
+                           | p2   (sec 1)       |                       |
+                           +--------------------+                       |
+                               ^           :                            |
+                               |           +---------- +                |
+                               :                       v                |
+    +----+----------+--------------------------------------------+      |
+    |    | primary  |       ^                          :         |      |
+    |    +----------+       |                          :         |      |
+    |                       :                          |         |      | host
+    |                       :                          v         |      | 192.168.122.1
+    |                  +--------------+       +--------------+   |      |
+    |                  |   phy port 0 |       |  phy port  1 |   |      |
+    +------------------+--------------+-------+--------------+---+    __|
+                              ^                           :
+                              |                           |
+                              :                           v
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 13/15] docs: update overview section
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (10 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 12/15] docs: update use_cases section ogawa.yasufumi
@ 2018-02-01  4:04 ` ogawa.yasufumi
  2018-02-01  4:05 ` [spp] [PATCH 14/15] docs: add compile script for rst documentation ogawa.yasufumi
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:04 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

* Add overview image
* Add reference

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/images/spp_overview.svg | 327 ++++++++++++++++++++++++++++++++++++
 docs/guides/overview.rst            |  36 +++-
 2 files changed, 356 insertions(+), 7 deletions(-)
 create mode 100644 docs/guides/images/spp_overview.svg

diff --git a/docs/guides/images/spp_overview.svg b/docs/guides/images/spp_overview.svg
new file mode 100644
index 0000000..b36fac1
--- /dev/null
+++ b/docs/guides/images/spp_overview.svg
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="150mm"
+   height="118mm"
+   viewBox="0 0 531.49589 418.11005"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="spp_overview.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker4891"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4893"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker4763"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="scale(1.1) rotate(180) translate(1,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path4765" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker4659"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="scale(1.1) rotate(180) translate(1,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path4661" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4372"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4369"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.097042"
+     inkscape:cx="277.36996"
+     inkscape:cy="235.26889"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:window-width="1034"
+     inkscape:window-height="824"
+     inkscape:window-x="182"
+     inkscape:window-y="5"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-634.25241)">
+    <rect
+       style="opacity:1;fill:#f4ffff;fill-opacity:1;stroke:#000000;stroke-width:1.11988664;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4159"
+       width="483.0025"
+       height="367.29166"
+       x="23.566805"
+       y="651.90833" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="56.523876"
+       y="693.61035"
+       id="text4161"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4163"
+         x="56.523876"
+         y="693.61035">Host</tspan></text>
+    <rect
+       style="opacity:1;fill:#f4ff89;fill-opacity:1;stroke:#000000;stroke-width:0.58693719;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4165"
+       width="66.157944"
+       height="35.21917"
+       x="105.81387"
+       y="982.85632" />
+    <image
+       y="983.11047"
+       x="360.49991"
+       id="image4208"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAkCAYAAAA6uzK6AAAABHNCSVQICAgIfAhkiAAAAJBJREFU aIHtz6ENg0AARuE7wgoNCR5MFdQSWAjJCE3qugoS16SCGUgFCgyCBkRTeWzBifd/E7xnszx1RZUY gnlaTRzd7mFRJebxLH33nOL9Gk3XOhv4DvFB0xSaptA0haYpNE2haQpNU2iaQtMUmqbQNIWmKTRN oWkKTVNomiL8DN9/U/fOd8gZ9u1no8t1OQCtgRcV/QBKnwAAAABJRU5ErkJggg== "
+       style="image-rendering:optimizeSpeed"
+       preserveAspectRatio="none"
+       height="36"
+       width="68.734688" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="113.88774"
+       y="1008.8456"
+       id="text4289"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4291"
+         x="113.88774"
+         y="1008.8456">Port 0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="369.21759"
+       y="1008.8456"
+       id="text4293"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4295"
+         x="369.21759"
+         y="1008.8456">Port 1</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Layer 2"
+     style="display:inline"
+     transform="translate(0,-634.25241)">
+    <rect
+       style="opacity:1;fill:#e2ffe0;fill-opacity:1;stroke:#000000;stroke-width:0.90168411;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4301"
+       width="153.50304"
+       height="131.58806"
+       x="69.573288"
+       y="733.93939" />
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1.12799239;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4303"
+       width="82.375381"
+       height="57.882195"
+       x="104.35989"
+       y="772.99127" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="126.47623"
+       y="806.31165"
+       id="text4305"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4307"
+         x="126.47623"
+         y="806.31165">App</tspan></text>
+    <rect
+       style="opacity:1;fill:#f4ff89;fill-opacity:1;stroke:#000000;stroke-width:0.88377476;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4309"
+       width="67.150223"
+       height="33.633224"
+       x="112.10507"
+       y="831.32495" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="122.34349"
+       y="853.87616"
+       id="text4311"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4313"
+         x="122.34349"
+         y="853.87616">Port 3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="90.91153"
+       y="761.86603"
+       id="text4315"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4317"
+         x="90.91153"
+         y="761.86603">VM</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1.02233946;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4319"
+       width="325.10693"
+       height="66.082726"
+       x="104.29684"
+       y="917.01666" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="239.51016"
+       y="959.5462"
+       id="text4321"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4323"
+         x="239.51016"
+         y="959.5462">SPP</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4325"
+       width="81.214264"
+       height="60.588417"
+       x="248.98969"
+       y="767.37292" />
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4327"
+       width="77.346916"
+       height="59.299301"
+       x="358.25156"
+       y="768.66199" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="380.11893"
+       y="803.69592"
+       id="text4329"
+       sodipodi:linespacing="125%"
+       inkscape:transform-center-x="116.02033"
+       inkscape:transform-center-y="-86.370686"><tspan
+         sodipodi:role="line"
+         id="tspan4331"
+         x="380.11893"
+         y="803.69592">App</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="272.4115"
+       y="802.98505"
+       id="text4333"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4335"
+         x="272.4115"
+         y="802.98505">App</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="m 135.98294,1040.1823 0,-172.74142"
+       id="path4341"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4659)"
+       d="m 406.16653,828.63477 2.57823,210.12583"
+       id="path4343"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker4763)"
+       d="m 163.16604,865.49646 c 0.52752,36.53651 8.47283,75.20441 56.51561,75.658 49.9114,0.53441 53.19945,-59.7207 52.86945,-110.2966"
+       id="path4867"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4891)"
+       d="m 308.10124,829.94632 c 0.58023,57.38022 8.58713,105.79537 33.72706,104.82734 29.58113,1.23837 33.28459,-44.71668 33.72706,-104.82734"
+       id="path4883"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+  </g>
+</svg>
diff --git a/docs/guides/overview.rst b/docs/guides/overview.rst
index 7650a00..afb46cf 100644
--- a/docs/guides/overview.rst
+++ b/docs/guides/overview.rst
@@ -31,21 +31,43 @@
 Soft Patch Panel
 ==================
 
+Overview
+--------
+
+`Soft Patch Panel
+<http://dpdk.org/browse/apps/spp/>`_
+(SPP) is a DPDK application for providing switching
+functionality for Service Function Chaining in
+NFV (Network Function Virtualization).
+
+.. image:: images/spp_overview.svg
+   :height: 350 em
+   :width: 350 em
+
+With SPP, user is able to configure network easily and dynamically
+via simple patch panel like interface.
+
 The goal of SPP is to easily interconnect DPDK applications together,
 and assign resources dynamically to these applications to build a
 pipeline.
 
-The first version of SPP provides for the management of DPDK ports, and
-assigning ports to different DPDK applications.
+Design
+------
 
-The framework is composed of a primary DPDK application that is
+SPP is composed of a primary DPDK application that is
 responsible for resource management. This primary application doesn't
 interact with any traffic, and is used to manage creation and freeing of
 resources only.
 
-A Python based management interface is provided to control the primary
+A Python based management interface, SPP controller, is provided to
+control the primary
 DPDK application to create resources, which are then to be used by
-secondary applications. This management application provides a socket
+secondary applications.
+This management application provides a socket
 based interface for the primary and secondary DPDK applications to
-interface to the manager. The management application will use OVSDB to
-maintain all created and assigned ports.
+interface to the manager.
+
+Reference
+---------
+
+* [1] `Implementation and Testing of Soft Patch Panel <https://dpdksummit.com/Archive/pdf/2017USA/Implementation%20and%20Testing%20of%20Soft%20Patch%20Panel.pdf>`_
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 14/15] docs: add compile script for rst documentation
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (11 preceding siblings ...)
  2018-02-01  4:04 ` [spp] [PATCH 13/15] docs: update overview section ogawa.yasufumi
@ 2018-02-01  4:05 ` ogawa.yasufumi
  2018-02-01  4:05 ` [spp] [PATCH 15/15] makefile: add target for compile rst documents ogawa.yasufumi
  2018-02-05  2:34 ` [spp] [PATCH 01/15] docs: add rst docs Yasufumi Ogawa
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:05 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Add shell script for compile or clean rst documents. It is intended to
use from project's Makefile. Currently, this script support only html
and not pdf or other formats.

Usage:
  # Compile html documents
  $ docs/guides/compile-doc.sh doc-html

  # Clean documents generated in docs/guides/_build
  $ docs/guides/compile-doc.sh clean

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/compile-doc.sh | 9 +++++++++
 1 file changed, 9 insertions(+)
 create mode 100644 docs/guides/compile-doc.sh

diff --git a/docs/guides/compile-doc.sh b/docs/guides/compile-doc.sh
new file mode 100644
index 0000000..0db5e45
--- /dev/null
+++ b/docs/guides/compile-doc.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+cd `dirname ${0}`
+
+if [ $1 = 'doc-html' ]; then
+	make html
+elif [ $1 = 'clean' ]; then
+	make clean
+fi
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [spp] [PATCH 15/15] makefile: add target for compile rst documents
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (12 preceding siblings ...)
  2018-02-01  4:05 ` [spp] [PATCH 14/15] docs: add compile script for rst documentation ogawa.yasufumi
@ 2018-02-01  4:05 ` ogawa.yasufumi
  2018-02-05  2:34 ` [spp] [PATCH 01/15] docs: add rst docs Yasufumi Ogawa
  14 siblings, 0 replies; 17+ messages in thread
From: ogawa.yasufumi @ 2018-02-01  4:05 UTC (permalink / raw)
  To: spp, ferruh.yigit; +Cc: Yasufumi Ogawa

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Add targets for compile and clean RST documents.

  # Compile RST documents.
  $ make doc-html

  # Clean documents.
  $ make doc-clean

This update includes a change for .gitignore to exclude generated
documents in 'docs/guides/_build'.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 .gitignore | 1 +
 Makefile   | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/.gitignore b/.gitignore
index a01ee28..08ac066 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 .*.swp
+docs/guides/_build/*
diff --git a/Makefile b/Makefile
index fa6dcd3..9b198b7 100644
--- a/Makefile
+++ b/Makefile
@@ -43,3 +43,12 @@ include $(RTE_SDK)/mk/rte.vars.mk
 DIRS-y += src
 
 include $(RTE_SDK)/mk/rte.extsubdir.mk
+
+# Compile RST documents
+.PHONY: doc-html
+doc-html:
+	sh docs/guides/compile-doc.sh doc-html
+
+.PHONY: doc-clean
+doc-clean:
+	sh docs/guides/compile-doc.sh clean
-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [spp] [PATCH 01/15] docs: add rst docs
  2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
                   ` (13 preceding siblings ...)
  2018-02-01  4:05 ` [spp] [PATCH 15/15] makefile: add target for compile rst documents ogawa.yasufumi
@ 2018-02-05  2:34 ` Yasufumi Ogawa
  2018-02-06 15:22   ` Ferruh Yigit
  14 siblings, 1 reply; 17+ messages in thread
From: Yasufumi Ogawa @ 2018-02-05  2:34 UTC (permalink / raw)
  To: spp, ferruh.yigit, nakamura.hiroyuki

Hi, Ferruh

I completed to migrate markdown documents to RST and prepare patches. 
Could you merge this 15 patches, then next patches I will send after 
this mail. This update includes spp_vf documentation sent from Hiroyuki.

Thanks,
Yasufumi

On 2018/02/01 13:04, ogawa.yasufumi@lab.ntt.co.jp wrote:
> From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
> 
> This is the first commit to move markdown documents to rst.
> 
> Current documents are moved to each of directories of category. Top
> directory of rst files is 'guides' which contains three category
> directories, 'commands', 'setup' and 'tools'.
> 
>    docs/guides/
>    ├── commands
>    ├── index.rst
>    ├── overview.rst
>    ├── setup
>    │   ├── index.rst
>    │   └── setup_guide.rst
>    └── tools
> 
> Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
> ---
>   docs/guides/Makefile              |  20 +++++
>   docs/guides/conf.py               | 165 ++++++++++++++++++++++++++++++++++++++
>   docs/guides/index.rst             |  40 +++++++++
>   docs/guides/setup/index.rst       |  38 +++++++++
>   docs/guides/setup/setup_guide.rst |  38 +++++++++
>   5 files changed, 301 insertions(+)
>   create mode 100644 docs/guides/Makefile
>   create mode 100644 docs/guides/conf.py
>   create mode 100644 docs/guides/index.rst
>   create mode 100644 docs/guides/setup/index.rst
>   create mode 100644 docs/guides/setup/setup_guide.rst
> 
> diff --git a/docs/guides/Makefile b/docs/guides/Makefile
> new file mode 100644
> index 0000000..361a6cc
> --- /dev/null
> +++ b/docs/guides/Makefile
> @@ -0,0 +1,20 @@
> +# Minimal makefile for Sphinx documentation
> +#
> +
> +# You can set these variables from the command line.
> +SPHINXOPTS    =
> +SPHINXBUILD   = sphinx-build
> +SPHINXPROJ    = SoftPatchPanel
> +SOURCEDIR     = .
> +BUILDDIR      = _build
> +
> +# Put it first so that "make" without argument is like "make help".
> +help:
> +	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
> +
> +.PHONY: help Makefile
> +
> +# Catch-all target: route all unknown targets to Sphinx using the new
> +# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
> +%: Makefile
> +	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
> \ No newline at end of file
> diff --git a/docs/guides/conf.py b/docs/guides/conf.py
> new file mode 100644
> index 0000000..5a645fb
> --- /dev/null
> +++ b/docs/guides/conf.py
> @@ -0,0 +1,165 @@
> +# -*- coding: utf-8 -*-
> +#
> +# Soft Patch Panel documentation build configuration file, created by
> +# sphinx-quickstart on Thu Jan 25 13:52:03 2018.
> +#
> +# This file is execfile()d with the current directory set to its
> +# containing dir.
> +#
> +# Note that not all possible configuration values are present in this
> +# autogenerated file.
> +#
> +# All configuration values have a default; values that are commented out
> +# serve to show the default.
> +
> +# If extensions (or modules to document with autodoc) are in another directory,
> +# add these directories to sys.path here. If the directory is relative to the
> +# documentation root, use os.path.abspath to make it absolute, like shown here.
> +#
> +# import os
> +# import sys
> +# sys.path.insert(0, os.path.abspath('.'))
> +
> +
> +# -- General configuration ------------------------------------------------
> +
> +# If your documentation needs a minimal Sphinx version, state it here.
> +#
> +# needs_sphinx = '1.0'
> +
> +# Add any Sphinx extension module names here, as strings. They can be
> +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
> +# ones.
> +extensions = []
> +
> +# Add any paths that contain templates here, relative to this directory.
> +templates_path = ['_templates']
> +
> +# The suffix(es) of source filenames.
> +# You can specify multiple suffix as a list of string:
> +#
> +# source_suffix = ['.rst', '.md']
> +source_suffix = '.rst'
> +
> +# The master toctree document.
> +master_doc = 'index'
> +
> +# General information about the project.
> +project = u'Soft Patch Panel'
> +copyright = u'2018, Yasufumi Ogawa'
> +author = u'Yasufumi Ogawa'
> +
> +# The version info for the project you're documenting, acts as replacement for
> +# |version| and |release|, also used in various other places throughout the
> +# built documents.
> +#
> +# The short X.Y version.
> +version = u'v17.11'
> +# The full version, including alpha/beta/rc tags.
> +release = u'v17.11'
> +
> +# The language for content autogenerated by Sphinx. Refer to documentation
> +# for a list of supported languages.
> +#
> +# This is also used if you do content translation via gettext catalogs.
> +# Usually you set "language" from the command line for these cases.
> +language = None
> +
> +# List of patterns, relative to source directory, that match files and
> +# directories to ignore when looking for source files.
> +# This patterns also effect to html_static_path and html_extra_path
> +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
> +
> +# The name of the Pygments (syntax highlighting) style to use.
> +pygments_style = 'sphinx'
> +
> +# If true, `todo` and `todoList` produce output, else they produce nothing.
> +todo_include_todos = False
> +
> +
> +# -- Options for HTML output ----------------------------------------------
> +
> +# The theme to use for HTML and HTML Help pages.  See the documentation for
> +# a list of builtin themes.
> +#
> +html_theme = 'sphinx_rtd_theme'
> +
> +# Theme options are theme-specific and customize the look and feel of a theme
> +# further.  For a list of options available for each theme, see the
> +# documentation.
> +#
> +# html_theme_options = {}
> +
> +# Add any paths that contain custom static files (such as style sheets) here,
> +# relative to this directory. They are copied after the builtin static files,
> +# so a file named "default.css" will overwrite the builtin "default.css".
> +html_static_path = ['_static']
> +
> +# Custom sidebar templates, must be a dictionary that maps document names
> +# to template names.
> +#
> +# This is required for the alabaster theme
> +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
> +html_sidebars = {
> +    '**': [
> +        'relations.html',  # needs 'show_related': True theme option to display
> +        'searchbox.html',
> +    ]
> +}
> +
> +
> +# -- Options for HTMLHelp output ------------------------------------------
> +
> +# Output file base name for HTML help builder.
> +htmlhelp_basename = 'SoftPatchPaneldoc'
> +
> +
> +# -- Options for LaTeX output ---------------------------------------------
> +
> +latex_elements = {
> +    # The paper size ('letterpaper' or 'a4paper').
> +    #
> +    # 'papersize': 'letterpaper',
> +
> +    # The font size ('10pt', '11pt' or '12pt').
> +    #
> +    # 'pointsize': '10pt',
> +
> +    # Additional stuff for the LaTeX preamble.
> +    #
> +    # 'preamble': '',
> +
> +    # Latex figure (float) alignment
> +    #
> +    # 'figure_align': 'htbp',
> +}
> +
> +# Grouping the document tree into LaTeX files. List of tuples
> +# (source start file, target name, title,
> +#  author, documentclass [howto, manual, or own class]).
> +latex_documents = [
> +    (master_doc, 'SoftPatchPanel.tex', u'Soft Patch Panel Documentation',
> +     u'Yasufumi Ogawa', 'manual'),
> +]
> +
> +
> +# -- Options for manual page output ---------------------------------------
> +
> +# One entry per manual page. List of tuples
> +# (source start file, name, description, authors, manual section).
> +man_pages = [
> +    (master_doc, 'softpatchpanel', u'Soft Patch Panel Documentation',
> +     [author], 1)
> +]
> +
> +
> +# -- Options for Texinfo output -------------------------------------------
> +
> +# Grouping the document tree into Texinfo files. List of tuples
> +# (source start file, target name, title, author,
> +#  dir menu entry, description, category)
> +texinfo_documents = [
> +    (master_doc, 'SoftPatchPanel', u'Soft Patch Panel Documentation',
> +     author, 'SoftPatchPanel', 'One line description of project.',
> +     'Miscellaneous'),
> +]
> diff --git a/docs/guides/index.rst b/docs/guides/index.rst
> new file mode 100644
> index 0000000..fcc03f3
> --- /dev/null
> +++ b/docs/guides/index.rst
> @@ -0,0 +1,40 @@
> +..  BSD LICENSE
> +    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> +    All rights reserved.
> +
> +    Redistribution and use in source and binary forms, with or without
> +    modification, are permitted provided that the following conditions
> +    are met:
> +
> +    * Redistributions of source code must retain the above copyright
> +    notice, this list of conditions and the following disclaimer.
> +    * Redistributions in binary form must reproduce the above copyright
> +    notice, this list of conditions and the following disclaimer in
> +    the documentation and/or other materials provided with the
> +    distribution.
> +    * Neither the name of Intel Corporation nor the names of its
> +    contributors may be used to endorse or promote products derived
> +    from this software without specific prior written permission.
> +
> +    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> +    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> +    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +SPP documentation
> +=================
> +
> +.. toctree::
> +   :maxdepth: 1
> +
> +   overview
> +   setup/index
> +   commands/index
> +   tools/index
> diff --git a/docs/guides/setup/index.rst b/docs/guides/setup/index.rst
> new file mode 100644
> index 0000000..1816462
> --- /dev/null
> +++ b/docs/guides/setup/index.rst
> @@ -0,0 +1,38 @@
> +..  BSD LICENSE
> +    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> +    All rights reserved.
> +
> +    Redistribution and use in source and binary forms, with or without
> +    modification, are permitted provided that the following conditions
> +    are met:
> +
> +    * Redistributions of source code must retain the above copyright
> +    notice, this list of conditions and the following disclaimer.
> +    * Redistributions in binary form must reproduce the above copyright
> +    notice, this list of conditions and the following disclaimer in
> +    the documentation and/or other materials provided with the
> +    distribution.
> +    * Neither the name of Intel Corporation nor the names of its
> +    contributors may be used to endorse or promote products derived
> +    from this software without specific prior written permission.
> +
> +    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> +    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> +    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +Setup Guide
> +===========
> +
> +.. toctree::
> +   :maxdepth: 2
> +   :numbered:
> +
> +   setup_guide
> diff --git a/docs/guides/setup/setup_guide.rst b/docs/guides/setup/setup_guide.rst
> new file mode 100644
> index 0000000..77355d0
> --- /dev/null
> +++ b/docs/guides/setup/setup_guide.rst
> @@ -0,0 +1,38 @@
> +..  BSD LICENSE
> +    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> +    All rights reserved.
> +
> +    Redistribution and use in source and binary forms, with or without
> +    modification, are permitted provided that the following conditions
> +    are met:
> +
> +    * Redistributions of source code must retain the above copyright
> +    notice, this list of conditions and the following disclaimer.
> +    * Redistributions in binary form must reproduce the above copyright
> +    notice, this list of conditions and the following disclaimer in
> +    the documentation and/or other materials provided with the
> +    distribution.
> +    * Neither the name of Intel Corporation nor the names of its
> +    contributors may be used to endorse or promote products derived
> +    from this software without specific prior written permission.
> +
> +    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> +    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> +    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +Sample usage of the application
> +===============================
> +
> +Compilation
> +-----------
> +
> +.. note::
> +    This is a note.
> 


-- 
Yasufumi Ogawa
NTT Network Service Systems Labs

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [spp] [PATCH 01/15] docs: add rst docs
  2018-02-05  2:34 ` [spp] [PATCH 01/15] docs: add rst docs Yasufumi Ogawa
@ 2018-02-06 15:22   ` Ferruh Yigit
  0 siblings, 0 replies; 17+ messages in thread
From: Ferruh Yigit @ 2018-02-06 15:22 UTC (permalink / raw)
  To: Yasufumi Ogawa, spp, nakamura.hiroyuki

On 2/5/2018 2:34 AM, Yasufumi Ogawa wrote:
> Hi, Ferruh
> 
> I completed to migrate markdown documents to RST and prepare patches. 
> Could you merge this 15 patches, then next patches I will send after 
> this mail. This update includes spp_vf documentation sent from Hiroyuki.

Series applied, thanks.

> 
> Thanks,
> Yasufumi
> 
> On 2018/02/01 13:04, ogawa.yasufumi@lab.ntt.co.jp wrote:
>> From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
>>
>> This is the first commit to move markdown documents to rst.
>>
>> Current documents are moved to each of directories of category. Top
>> directory of rst files is 'guides' which contains three category
>> directories, 'commands', 'setup' and 'tools'.
>>
>>    docs/guides/
>>    ├── commands
>>    ├── index.rst
>>    ├── overview.rst
>>    ├── setup
>>    │   ├── index.rst
>>    │   └── setup_guide.rst
>>    └── tools
>>
>> Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
<...>

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2018-02-06 15:22 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-01  4:04 [spp] [PATCH 01/15] docs: add rst docs ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 02/15] docs: add overview ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 03/15] docs: add primary commands ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 04/15] docs: add common commands ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 05/15] docs: add secondary commands ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 06/15] docs: add descriptions for pri commands ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 07/15] docs: fix erata of help command ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 08/15] docs: revise index in setup chapter ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 09/15] docs: update getting_started section ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 10/15] docs: update howto_use section ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 11/15] docs: add performance_opt section ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 12/15] docs: update use_cases section ogawa.yasufumi
2018-02-01  4:04 ` [spp] [PATCH 13/15] docs: update overview section ogawa.yasufumi
2018-02-01  4:05 ` [spp] [PATCH 14/15] docs: add compile script for rst documentation ogawa.yasufumi
2018-02-01  4:05 ` [spp] [PATCH 15/15] makefile: add target for compile rst documents ogawa.yasufumi
2018-02-05  2:34 ` [spp] [PATCH 01/15] docs: add rst docs Yasufumi Ogawa
2018-02-06 15:22   ` Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).