* [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